
IDPS & SandBox & AntiVirus ASSASSINO FURTIVO. O MorphAES é o primeiro motor de shellcode polimórfico do mundo, com propriedades metamórficas e capacidade de contornar sandboxes, o que o torna indetectável para um IDPS, sendo também multiplataforma e independente de bibliotecas.
IDPS & SandBox & AntiVirus ASSASSINO STEALTH.

MorphAES é o primeiro mecanismo de shellcode polimórfico do mundo, com propriedades metamórficas e capacidade de contornar sandboxes, o que o torna indetectável para um IDPS, também é multiplataforma e independente de bibliotecas.
Propriedades:
Dependências para o morpher:
Dependências para a execução do código:
No entanto, existem algumas limitações (também conhecidas como aspectos white-hat):
Você precisará montar minha implementação personalizada de AESNI-128-ECB usando uma CPU Intel x64 e colocá-la na mesma pasta do script Python.
Para Linux:
sudo apt-get install python
as --64 AES.s -o AES.o
ld AES.o -o AES
Execute o script Python e insira seu shellcode ou nada para um shell Linux padrão. Você também pode especificar seu próprio endereço de execução.
Também é possível construir e executar no Windows/BSD/Mac, mas ainda estou testando.
Você pode testar a PoC Linux em assembly:
as --64 shellcodePoC.s -o shellcodePoC.o
ld shellcodePoC.o -o shellcodePoC
./shellcodePoC
ou em C:
gcc -m64 -fno-stack-protector -z execstack shellcode.c -o shellcode
./shellcode
Cada arquivo é comentado e explicado
Neste ponto, deve ser bastante óbvio que os hashes seriam diferentes a cada vez, mas vamos comparar os SSDEEP de 2 executáveis Linux do mesmo shellcode:
Bem, há algo em comum, mas globalmente são 2 assinaturas diferentes. E quanto ao próprio shellcode:
Assinaturas quase totalmente diferentes para o mesmo shellcode metamorfoseado!
Na data da publicação, o executável foi detectado como shellcode por apenas 2 dos 53 antivírus (AVG e Ikarus) no virustotal, mas agora, ele simplesmente falha na análise.
malwr e cuckoo2 não veem nada suspeito.
Na perspectiva do reverser, o IDA também não verá nada.
O Radare2 mostraria as instruções reais apenas se montado pelo próprio montador, mas não detecta nenhuma criptografia ou atividade suspeita no executável.
Embora eu não tenha testado pessoalmente, acho que FortiSandbox, Sophos Sandstorm, Blue Coat, GateWatcher e seus derivados podem falhar bastante...
Basicamente, pode transformar o código de um script-kid (ou um conhecido) em um zero-day.
IDPS falhará porque é quase impossível criar uma assinatura e difícil fazer uma expressão regular ou análise heurística.
A maioria das sandboxes não usa instruções Intel AES-NI diretamente, então elas não executarão o código, então "está tudo bem" para elas, enquanto não está.
A única maneira de derrotar esse tipo de shellcode é usar um sandboxing adequado e/ou uma IA.
Claro que DEP/NX/CANARY/ASLR também devem funcionar.
Observe que toda a execução é feita em assembly puro, nenhum Python (ou OpenSSL) é necessário para a execução do shellcode, pois eu uso apenas instruções de assembly integradas, portanto é independente de sistema (certamente, você precisará montá-lo para cada um adaptando as instruções/opcodes, mas eles ainda são os mesmos).
Este ainda é um trabalho em andamento, implementarei mecanismos e PoCs para Windows e BSD/Mac em breve.
IDPSes e sandboxes são o passado.
"A tradição torna-se nossa segurança, e quando a mente está segura, ela está em decadência."
Jiddu Krishnamurti