
Windows 프로세스 실행 기법 조사를 위한 PoC 및 도구
이 저장소는 Windows 프로세스 실행 기법을 조사하기 위해 만들어졌습니다. 대부분의 PoC는 기법에 대응하는 이름으로 명명됩니다.
BlockingDLL : 이 도구 모음은 DLL 차단(Blocking DLL) 프로세스를 테스트하기 위한 것입니다. README.md를 참조하십시오.
CloneProcess : 이 디렉터리는 프로세스 포킹(forking)과 리플렉션(reflection)을 위한 것입니다. README.md를 참조하십시오.
CommandLineSpoofing : 이 PoC는 명령줄 스푸핑(Command Line Spoofing)을 수행합니다. 이 기법은 Windows 11에서는 작동하지 않을 수 있습니다.
DarkLoadLibrary : 이 디렉터리의 PoC는 @_batsec_이(가) 공개한 Dark Load Library를 테스트하기 위한 것입니다. README.md를 참조하십시오.
GhostlyHollowing : 이 PoC는 Ghostly Hollowing을 수행합니다.
Misc : 이 디렉터리는 이 저장소의 PoC 개발을 위한 헬퍼 도구를 위한 것입니다.
PhantomDllHollower : 이 PoC는 Phantom DLL Hollowing을 수행합니다. README.md를 참조하십시오.
PPIDSpoofing : 이 PoC는 PPID 스푸핑(Spoofing)을 수행합니다.
ProcessDoppelgaenging : 이 PoC는 프로세스 도펠갱어링(Process Doppelgänging)을 수행합니다. Microsoft Defender의 커널 보호 개선으로 인해 이 기법은 최신 Windows OS(아마 2021년경 이후)에서는 작동하지 않습니다. 따라서 최신 환경에서 이 기법을 테스트하려면 Microsoft/Windows Defender Antivirus Service를 중지해야 합니다. hasherezade의 저장소의 해당 이슈를 참조하십시오.
ProcessGhosting : 이 PoC는 프로세스 고스팅(Process Ghosting)을 수행합니다. 커널 보호로 인해 이 기법은 22H2부터 최신 Windows에서는 작동하지 않습니다.
ProcessHerpaderping : 이 PoC는 프로세스 허퍼더핑(Process Herpaderping)을 수행합니다. 파일 잠금 문제로 인해 실행하려는 파일보다 작은 가짜 이미지 파일을 선택하면 파일 크기 축소가 실패하고 herpaderping 프로세스의 파일 서명이 손상됩니다. 이 기법을 최대한 활용하려면 가짜 이미지 파일 크기가 실행하려는 파일보다 커야 합니다. 커널 보호로 인해 이 기법은 22H2부터 최신 Windows에서는 작동하지 않습니다.
ProcessHollowing : 이 PoC는 프로세스 할로잉(Process Hollowing)을 수행합니다. 원본과 달리 ZwUnmapViewOfSection / NtUnmapViewOfSection을 사용하는 대신 PE 이미지를 새 메모리 영역에 파싱합니다.
ProcMemScan : 원격 프로세스를 조사하기 위한 진단 도구입니다. README.md를 참조하십시오.
ProtectedProcess : 이 도구 모음은 보호된 프로세스(Protected Process)를 테스트하기 위한 것입니다. README.md를 참조하십시오.
ReflectiveDLLInjection : 이 도구 모음은 리플렉티브 DLL 인젝션(Reflective DLL Injection)을 테스트하기 위한 것입니다. README.md를 참조하십시오.
sRDI : 이 디렉터리는 sRDI(Shellcode Reflective DLL Injection) 도구를 위한 것입니다. README.md를 참조하십시오.
TransactedHollowing : 이 PoC는 Transacted Hollowing을 수행합니다.
WmiSpawn : 이 PoC는 WMI로 프로세스 생성을 시도합니다. 프로세스는 WmiPrvSE.exe의 자식 프로세스로 생성됩니다. 로컬 머신 프로세스 실행과 원격 머신 프로세스 실행을 지원합니다. 사용법은 README.md에서 확인할 수 있습니다.
참고 : 현재 ProcessHollowing 코드는 Debug 빌드에서 작동하지 않습니다. 테스트하려면 Release 빌드를 사용하십시오. 이 이슈를 참조하십시오.
보호된 프로세스 Part 3 : Windows PKI 내부 구조 (서명 수준, 시나리오, 루트 키, EKU 및 런타임 서명자)
Windows 10에서 Mimikatz 없이 LSA 보호(일명 Protected Process Light) 우회하기
연구에 감사드립니다:
Tal Liberman (@tal_liberman)
Eugene Kogan (@EuKogan)
hasherezade (@hasherezade)
Gabriel Landau (@GabrielLandau)
Forrest Orr (@_forrestorr)
Stephen Fewer (@stephenfewer)
batsec (@_batsec_)
Nick Landers (@monoxgas)