Lets gooooooo!! no artigo anterior falamos sobre shellcode em base64, como citado, o base64 foi utilizado como uma forma de ofuscação, todavia a mesma não é lá aquelas coisas.
Lets gooooooo!! no artigo anterior falamos sobre shellcode em base64, como citado, o base64 foi utilizado como uma forma de ofuscação, todavia a mesma não é lá aquelas coisas. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Com isso em mente, trabalhei em uma versão um pouco mais sofisticada, utilizando uma XOR para encriptar o shellcode embarcado em meu malware! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Os autores de malware geralmente codificam sua carga maliciosa para evitar a detecção e dificultar a análise, e eu tentei recriar esse comportamento. Vejo regularmente cargas úteis codificadas com a função XOR. Muitas vezes, eles usarão uma sequência de bytes como chave de codificação, onde no exemplo é nosso caso. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Assim como no exemplo do programa que utilizava o base 64 eu utilizei o binário do notepad como minha payload. Para utilizar o xor neste binário, desenvolvi um simples programa em python que tem como função receber um arquivo via argumento e efetuar o XOR em seus bytes baseado em uma chave pré definida! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POR ALGUM MOTIVO O PINGBACK NÃO DEIXOU EU ANEXAR O CÓDIGO PYTHON AQUI!! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
logo, para acessa-lo, clique aqui!! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Feito esse processo de encriptação, vamos para o código do malware!! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A premissa do malware ainda continua a mesma! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
começamos desenvolvendo a função de decrypt do shellcode, que vai receber os dados necessários, como a chave e a payload encriptada: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A main do código continua a mesma, onde temos novamente a alocação do buffer de memória para a carga útil, a descriptografia do shellcode, só que dessa vez utilizando o XOR, a definição da memória recèm alocada para ser executável e a execução da thread contendo shellcode (notepad.exe). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
O projeto do artigo pode ser encontrado aqui!! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Espero que tenham gostado, nos vemos no próximo artigo!! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#malware #reverseengineer #malwaredev #devmalware #CTI #cti #cyberthreatintelligence #killchain #mitre #malwarereverseengineer #cyberintelligence #sigma #yara #security #cybersecurity #cybercrime #C #C++ #python #dev #offensivesecurity #defensivesecurity #blueteam #redteam #purpleteam |