Shellter Project - Ferramenta para bypass de AV [Artigo]
[ Hits: 6.047 ]
Por: Luiz Vieira em 06/11/2015 | Blog: http://hackproofing.blogspot.com/
Burlando antivírus
Há tempos ensino em um de meus cursos, como é possível burlar antivírus com binários maliciosos, fazendo o enconding do mesmos, além de também trabalhar com PE's que são aplicações nativas de Windows, portanto consideradas inócuas pelos antivírus, só que payloads maliciosos personalizados embutidos e também encodados.
Todo esse processo, sempre ensino a fazer manualmente, para que o aluno saiba como funciona e o que acontece por debaixo dos panos. Então dá-lhe immunity debugger, LordPE e outras ferramentas para fazer isso, e um pouco de conhecimento e assembly.
Basicamente, para pegarmos um PE válido, standalone, e transformarmos em um binário com payload malicioso embutido e encodado seguimos o seguinte procedimento:
criamos um stub, com permissão de execução, dentro do PE, onde injetaremos os códigos (payload e encoder/decoder baseado em XOR por exemplo);
injetamos o payload e o encoder/decoder no stub;
alteramos o entrypoint do PE para o início o decoder;
colocamos um breakpoint no final do payload malicioso e configuramos para que nosso encoder codifique apenas o código do payload;
executamos o programa (através de um debugger) e quando a execução para no breakpoint, salvamos o código todo, já encodado, como um novo PE.
o entrypoint do PE deve estar direcionado para o início do encoder/decoder que agora vai decodificar o payload sempre que o mesmo for carregado na memória;
após o decoder ser executado, o payload precisa ser executado, e ao final direcionar o fluxo de execução para o entrypoint original;
a pilha deve estar organizada, ao final de execução do payload e redirecionamento de fluxo de execução para o entrypoint original, da mesma maneira como estaria se o fluxo de execução normal não houvesse sido alterado.
Resumindo, esse é o trabalho que temos para criar um PE válido, com código malicioso embutido e bypass de antivirus. Um pouco trabalhoso, não?
Como expliquei antes, prefiro ensinar isso aos meus alunos, para que saibam o que acontece quando usamos ferramentas automatizadas, como é o caso do Shellter.
Shellter é uma ferramenta de injeção dinâmica de shellcode em PE's de 32bits, e os shellcodes podem ser tanto personalizados, quanto criados por outras ferramentas como o Metasploit ou Veil Framework (que já utiliza técnicas de evasão de AV muito melhores que o Metasploit).
Alguns tipos de payload que o Shellter já utiliza por padrão:
Outra característica interessantíssima dessa ferramenta, é o Stealth Mode feature, que permite infectar o mesmo binário mais de uma vez, e com mais de um payload. Eles chama isso de RedTeam funcionality, pois para quem precisa fazer um pentest físico, com engenharia social, é muito melhor ser capaz de executar vários ataques de uma só vez plugando um pendrive na máquina da vítima ou enviando um binário malicioso.
E uma das coisas mais importantes, para proteger contra a detecção de antivírus, é o código polimórfico, como destacado na documentação do próprio Shellter:
"Shellter will break down a given algorithm or code block and will mix its effective instructions with dynamically generated polymorphic code that does not interfere with the logic of the original algorithm."
E ainda possui proteções contra engenharia reversa :-)
Para aprender um pouco mais sobre essas ferramentas (Shellter e Veil Framework), acesse seus sites, pois tem muita coisa interessante lá!