Discussione AV bypass in mrt.exe con classic template injection (Bypass di tutti gli AV, 4/82 detection su VT)

Stato
Discussione chiusa ad ulteriori risposte.

Netcat

Utente Jade
17 Gennaio 2022
478
134
345
691
Ultima modifica:
mrt.exe , formalmente "Strumento di Rimozione Malware" open source per Microsoft Windows, nella sua build del 2004 è presente un primo problema che consente all'antico programma di funzionare ancora sui sistemi moderni tramite SysWOW64 ( le app antiche non dovrebbero funzionare su Windows 10 proprio perché non rispondono agli standard di sicurezza moderni) , tuttavia "mrt.exe" non è altro che un packer che fallisce nell'intento di proteggere un PE più sensibile a process injection , chiamato sasscln.exe, che può essere estratto con 7-zip o WinRAR. Questo PE è vulnerabile a classic template injection (22927 entry point + 3 sezioni per storage, loading ed exec), un attacco tradizionale che normalmente genera molte detection, data la sua rinomata popolarità fra gli AV vendor, ma non in questo caso.

Osservando le caratteristiche di SassCln, si nota che il PE esegue una serie di "junk operations" di routine adatte a mascherare l'esecuzione di shellcode in background, e un'alta reputazione (Microsoft signed binary).

Sfruttando questa fortuita occasione per fare lateral movement:

- Rimozione della firma originale di Microsoft, per impedire che il file originale subisca un danno reputazionale;
- XOR shellcode offuscato in .text section;
- Misurazione dell'entrophy finale, "6,69" in .text, "2,95" in ,data, "3,07" in .rsrc;
- Operazioni junk in runtime (altra vulnerabilità che contribuisce a far rimanere il PE invisibile all'AV al runtime, queste operazioni compiute da SassCln non solo sono innoque, ma anche sembrare "benigne", data la natura del PE): drop di file log innoqui in C:\Windows\debug\sasscln.log, syscall innoque (mswsock.dll, psapi.dll, rpcrt4.dll)

Ciò che contribuisce in larga parte al bypass è la routine di operazioni innoque, l'high rep delle signature e i normali processi di iniezione e offuscamento di shellcode.
4 AV hanno notato qualcosa di strano, dovuto all'entrophy del file.

RISULTATO: il PE generato da quest'esperimento è capace di eludere completamente a static+runtime tutti quegli AV che implementano tecniche poco efficaci nel rilevamento dei malware "off the land" (i nomi degli AV saranno nominati per ragioni di privacy).

Uno shellcode servito in questa maniera è scopribile solo vedendo quello che succede in RAM piuttosto che in plain sight.
Contro gli AV più attenti a quello che accade in memory i risultati sono stati altalenanti, ma hanno generalmente risposto meglio. La static detection è rimasta sempre bassissima in ogni caso invece, finché non ho condiviso il sample su VT.

Il bypass degli AV che controllano cosa viene allocato ed eseguito in memory non sarà trattato in questo thread.
 
Stato
Discussione chiusa ad ulteriori risposte.