
IDPS & SandBox & AntiVirus UCCISORE FURTIVO. MorphAES è il primo motore polimorfo di shellcode al mondo, con proprietà metamorfiche e capacità di bypassare i sandbox, rendendolo non rilevabile per un IDPS; è multipiattaforma e indipendente dalle librerie.
IDPS & SandBox & AntiVirus STEALTH KILLER.

MorphAES è il primo motore polymorphic di shellcode al mondo, con proprietà metamorfiche e la capacità di bypassare i sandbox, che lo rende non rilevabile per un IDPS, è anche cross-platform e indipendente dalle librerie.
Proprietà:
Dipendenze per il morpher:
Dipendenze per l'esecuzione del codice:
Tuttavia, ci sono alcune limitazioni (alias aspetti white-hat):
Dovrai assemblare la mia implementazione personalizzata AESNI-128-ECB usando una CPU Intel x64 e metterla nella stessa cartella dello script Python.
Per Linux:
sudo apt-get install python
as --64 AES.s -o AES.o
ld AES.o -o AES
Esegui lo script Python e inserisci il tuo shellcode o nulla per uno shell Linux predefinito. Puoi anche specificare il tuo indirizzo di esecuzione.
È anche possibile compilare ed eseguire su Windows/BSD/Mac, ma lo sto ancora testando.
Puoi testare il PoC Linux in assembly:
as --64 shellcodePoC.s -o shellcodePoC.o
ld shellcodePoC.o -o shellcodePoC
./shellcodePoC
o in C:
gcc -m64 -fno-stack-protector -z execstack shellcode.c -o shellcode
./shellcode
Ogni file è commentato e spiegato.
A questo punto, dovrebbe essere abbastanza ovvio che gli hash saranno diversi ogni volta, ma confrontiamo gli SSDEEP di 2 eseguibili Linux dello stesso shellcode:
Beh, c'è qualcosa in comune, ma globalmente sono 2 firme diverse, ora che dire dello shellcode stesso:
Firme quasi totalmente diverse per lo stesso shellcode morphato!
Alla data di pubblicazione, l'eseguibile veniva rilevato come shellcode solo da 2 antivirus su 53 (AVG e Ikarus) su virustotal, ma ora, non riesce nemmeno ad essere analizzato.
malwr e cuckoo2 non vedono nulla di sospetto.
Dal punto di vista del reverser, IDA non vedrà nulla.
Radare2 mostrerà le istruzioni reali solo se assemblato dall'assemblatore stesso, tuttavia non rileva alcuna attività crittografica o sospetta per l'eseguibile.
Anche se non l'ho testato personalmente, penso che FortiSandbox, Sophos Sandstorm, Blue Coat, GateWatcher e i loro derivati potrebbero fallire miseramente...
Fondamentalmente, può trasformare il codice di uno script-kid (o un codice noto) in un zero-day.
Gli IDPS falliranno perché è quasi impossibile creare una firma e difficile fare un'espressione regolare o un'analisi euristica.
La maggior parte dei sandbox non utilizzano direttamente le istruzioni Intel AES-NI, quindi non eseguiranno il codice, quindi "tutto è a posto" per loro, mentre non lo è.
L'unico modo per sconfiggere questo tipo di shellcode è utilizzare un sandboxing appropriato e/o un'IA.
Ovviamente anche DEP/NX/CANARY/ASLR dovrebbero funzionare.
Nota che l'intera esecuzione è fatta in puro assembly, nessun Python (o OpenSSL) è necessario per l'esecuzione dello shellcode poiché utilizzo solo istruzioni assembly integrate, quindi è indipendente dal sistema (certamente, dovrai assemblarlo per ciascuno adattando le istruzioni/opcode, ma sono comunque gli stessi).
Questo è ancora un lavoro in corso, implementerò i motori e i PoC per Windows e BSD/Mac al più presto.
Gli IDPS e i sandbox sono il passato.
"La tradizione diventa la nostra sicurezza, e quando la mente è sicura è in decadenza."
Jiddu Krishnamurti