
विंडोज प्रक्रियाओं से जानकारी निकालने और संवेदनशील स्ट्रिंग्स को डंप करने के लिए छोटी टूलकिट
विंडोज प्रक्रियाओं से जानकारी निकालने और संवेदनशील स्ट्रिंग्स को डंप करने के लिए छोटा टूलकिट। FormThief के साथ उपयोग के लिए बनाया गया।
प्रक्रिया मेमोरी डंप करें और पढ़ने योग्य स्ट्रिंग्स खोजें। केवल इस संस्करण के लिए PID, खोज स्ट्रिंग और रेंज प्रदान की गई है। जब खोज स्ट्रिंग मिलती है, तो रेंज पैरामीटर इंगित करता है कि पाई गई स्ट्रिंग के प्रत्येक ओर कितने वर्ण मुद्रित किए जाने चाहिए, जब तक वे मान्य ASCII हैं।
VS में कंपाइल करें। नीचे Outlook प्रक्रिया से उपयोगकर्ता जानकारी डंप करने का उदाहरण:
PS C:\Users\capde> .\procsearch.exe 7592 "email" 500
[+] Search string "email" FOUND: (...) "age_group": "adult", "association_status": "{\"com.microsoft.Olk\":\"associated\"}"
,"authority": "https://login.microsoftonline.com/consumers", "birthday": "1969-3-1", "display_name": "John Doe",
"email": "[email protected]", "first_name": "John", "id": "3a25f54136ac887c", "last_name": "Doe", "location":
"UK", "login_name":"[email protected]","onprem_sid": "", "password_change_url": "", "phone_number": "" (...)
Inline-Execute-PE के साथ ठीक से काम नहीं कर रहा है। मैं इसे हल करने पर काम कर रहा हूं और C++ BOF संस्करण पर भी, जो C संस्करण की तुलना में अधिक खोज रेंज की अनुमति देनी चाहिए।
.cna को कंपाइल और लोड करें:
x86_64-w64-mingw32-gcc -c procsearch-BOF.c -o procsearch-BOF.o
BOF संस्करण बफर आकारों के प्रति संवेदनशील है, इसलिए <range> विकल्प मौजूद नहीं है और आउटपुट कुछ हद तक सीमित है। बफर आकारों के साथ खेलने के लिए स्वतंत्र महसूस करें, लेकिन सावधान रहें कि यदि बहुत बड़ा है तो आपको __chkstk त्रुटियां मिल सकती हैं या बीकन हैंग हो सकता है।
आदर्श रूप से मैं इसे C++ में लिखना चाहता था जो मैंने bof-vs के साथ स्थानीय रूप से काम करते देखा है, लेकिन बीकन में चलाने पर कुछ गड़बड़ अज्ञात प्रतीक त्रुटियां या क्रैश लौटाता है। जब संभव होगा तब अपडेट करूंगा। C में खोज फ़ंक्शन/बफर को लागू करने का शायद एक बेहतर तरीका है, लेकिन यह अभी के लिए काम करेगा।
मैं एक बहुत बड़ी प्रक्रिया में एकल वर्ण जैसे "." की खोज करने की अनुशंसा नहीं करता क्योंकि यह बीकन को हैंग कर सकता है। BOF का उपयोग करते समय कम से कम 3 या 4 वर्णों की खोज स्ट्रिंग की अनुशंसा करता हूं। C++ संस्करण के साथ आप रेंज को वास्तव में बढ़ा सकते हैं।
Outlook प्रक्रिया से डमी उपयोगकर्ता डेटा डंप करने का उदाहरण:
https://github.com/mlcsec/proctools/assets/47215311/dccd1223-774e-4dec-8353-91c057900a07
दिए गए pid के लिए सभी फ़ाइल संस्करण जानकारी प्रिंट करने के लिए C# उपयोगिता। VS या csc के साथ कंपाइल करें:

C BOF जो उपरोक्त कुछ कार्यक्षमता को दोहराता है, VerQueryValue(lpVersionInfo, "\\StringFileInfo\\040904b0\\... मानों को डंप करने में समस्याओं का पता लगाने की आवश्यकता है।
.cna को कंपाइल और लोड करें:
x86_64-w64-mingw32-gcc -c procinfo-BOF.c -o procinfo-BOF.o

निर्दिष्ट प्रक्रिया के लिए कमांड लाइन तर्क निकालें। .cna को कंपाइल और लोड करें:
x86_64-w64-mingw32-gcc -c procargs.c -o procargs-BOF.o

एक प्रक्रिया को समाप्त करें (या CS में kill का उपयोग करें, मुझे नहीं पता कि मैंने यह क्यों बनाया):
x86_64-w64-mingw32-gcc -c prockill-BOF.c -o prockill-BOF.o
