Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
Log in
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
MemFiles — Beacon द्वारा उत्पन्न फ़ाइलों को डिस्क के बजाय मेमोरी में लिखने के लिए एक CobaltStrike टूलकिट | Kitploit
उपकरण/GitHubGitHub/octoberfest7/memfiles
डेटा निष्कासनपोस्ट-शोषणकमांड एंड कंट्रोलरेड टीमिंग
GitHuboctoberfest7/memfiles

MemFiles

Beacon द्वारा उत्पन्न फ़ाइलों को डिस्क के बजाय मेमोरी में लिखने के लिए एक CobaltStrike टूलकिट

रिपॉजिटरी देखें
47762122 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

MemFiles

अस्वीकरण:

यह प्रोजेक्ट जटिल है और यह समझने में विफलता कि यह कैसे काम करता है और पर्याप्त रूप से परीक्षण करने में विफलता के परिणामस्वरूप आप Beacons को क्रैश कर सकते हैं और पहुँच खो सकते हैं!

मैं अत्यधिक प्रोत्साहित करता हूँ कि आप "तकनीकी विवरण, डिज़ाइन संबंधी विचार और टिप्पणी" अनुभाग तक के सभी दस्तावेज़ पढ़ें!

परिचय

MemFiles CobaltStrike के लिए एक टूलकिट है जो Operators को Beacon प्रक्रिया द्वारा निर्मित फ़ाइलों को लक्षित सिस्टम पर डिस्क पर लिखने के बजाय मेमोरी में लिखने में सक्षम बनाता है। इसका सफलतापूर्वक Windows 7, 10, और 11 पर परीक्षण किया गया है; संबंधित सर्वर संस्करण बिना किसी समस्या के काम करने चाहिए। MemFiles केवल x64 Beacons तक सीमित है।

यह NTDLL.dll के भीतर कई अलग-अलग NtAPI's को hook करके और उन API के कॉल्स को उन फ़ंक्शनों पर पुनर्निर्देशित करके ऐसा करता है जिन्हें Beacon प्रक्रिया मेमोरी स्पेस में इंजेक्ट किया गया है।

MemFiles मानता है कि Beacon प्रक्रिया में NTDLL की एक साफ़/बिना hook वाली प्रति मौजूद है। ऐसे Beacon प्रक्रिया में MemFiles की व्यवहार्यता के बारे में कोई गारंटी नहीं दी जाती है जहाँ EDR hooks अभी भी सक्रिय हैं। MemFiles का उपयोग करने से पहले NTDLL को repair/refresh करें!

MemFiles टूलकिट में एक "विशेष", गैर-मौजूद निर्देशिका परिभाषित की गई है; इस विशेष निर्देशिका में लिखी गई कोई भी फ़ाइल MemFiles द्वारा कैप्चर की जाएगी और मेमोरी में लिखी जाएगी, जहाँ से उन्हें बाद में Teamserver पर डाउनलोड किया जा सकता है।

MemFiles उन अधिकांश (सभी नहीं) टूल्स के साथ संगत है जो Beacon प्रक्रिया के भीतर चलते हैं और जिन्हें अपना आउटपुट किसी विशिष्ट निर्देशिका में लिखने का निर्देश दिया जा सकता है। इसे काम करने के लिए उन्नत विशेषाधिकारों की आवश्यकता नहीं होती है।

इसमें शामिल हैं:
-BOF's
-.NET assemblies इनलाइन चलाई गईं, जैसे inline-executeAssembly का उपयोग करके
-PE's इनलाइन चलाए गए, जैसे Inline-Execute-PE का उपयोग करके

ये सभी संगत हैं क्योंकि ये Beacon प्रक्रिया के अंदर चलते हैं, जहाँ प्रासंगिक NtAPI's hook किए गए हैं।

MemFiles निम्नलिखित जैसी चीज़ों के साथ काम नहीं करता है:
-execute-assembly
-shell
-run

इनमें से कोई भी संगत नहीं है क्योंकि ये सभी अन्य प्रक्रियाओं को स्पॉन करते हैं जिनके NtAPI's hook नहीं किए गए हैं।

MemFiles का परीक्षण Rubeus, SharpHound, Procdump, और Powershell जैसे टूल्स के साथ सफलतापूर्वक किया गया है जब उन्हें Beacon प्रक्रिया के भीतर चलाया जाता है।

सेटअप

रिपॉजिटरी को clone करें और वैकल्पिक रूप से hookdir वेरिएबल को बदलें, जो /PIC/Source/NtCreateFile.c और /PIC/Source/NtOpenFile.c दोनों में लाइन 56 पर परिभाषित है। यह वेरिएबल वह "विशेष" निर्देशिका है जो MemFiles को संकेत देती है कि उसे बनाई जा रही फ़ाइल को इंटरसेप्ट करना चाहिए। hookdir वेरिएबल डिफ़ॉल्ट रूप से "redteam" पर सेट है। सुनिश्चित करें कि यह वेरिएबल लक्षित सिस्टम पर कोई वास्तविक निर्देशिका नहीं है, और यह दोनों फ़ाइलों में समान है!

image

आवश्यक BOF's और PIC फ़ंक्शन दोनों को compile करने के लिए 'make all' चलाएँ।

MemFiles.cna को CobaltStrike Client में load करें। सुनिश्चित करें कि जिस निर्देशिका से CobaltStrike चल रहा है वह आपके उपयोगकर्ता द्वारा writable है; MemFiles वहाँ एक text फ़ाइल (memfiles.txt) बनाता है ताकि MemFiles के कार्य करने के लिए आवश्यक डेटा की उपलब्धता सुनिश्चित हो सके।

MemFiles को प्रत्येक नए Beacon में इंस्टॉल करने के लिए कॉन्फ़िगर किया जा सकता है जो Teamserver में कॉल करता है; यह MemFiles->Config मेनू आइटम का उपयोग करके किया जाता है। डिफ़ॉल्ट रूप से, MemFiles नए Beacons में ऑटो-इंस्टॉल नहीं होता है। ध्यान दें कि यह एक वैश्विक सेटिंग है; यदि दो Clients Teamserver से जुड़े हैं और दोनों में MemFiles.cna लोड है, यदि Client A "Install on beacon initial" सेटिंग को टॉगल करता है, तो यह परिवर्तन Client B पर भी प्रभावी होगा!

image

कमांड्स

MemFiles में 4 लक्ष्य-उन्मुख कमांड्स हैं जो BOF's चलाते हैं और 1 आंतरिक कमांड है जो प्रोजेक्ट डेटा संरचना को संचालित करता है।

लक्ष्य-उन्मुख:

  1. meminit
  2. memlist
  3. memfetch
  4. memclean

आंतरिक डेटा संरचना:

  1. memtable

meminit

meminit Beacon प्रक्रिया में MemFiles इंस्टॉल करने के लिए ज़िम्मेदार है।

MemFiles द्वारा hook किए गए NtAPI's की सूची निम्नलिखित है:

  1. NtCreateFile
  2. NtWriteFile
  3. NtClose
  4. NtQueryVolumeInformationFile
  5. NtQueryInformationFile
  6. NtSetInformationFile
  7. NtOpenFile
  8. NtReadFile
  9. NtFlushBuffersFile

meminit निम्नलिखित प्रमुख क्रियाएँ करता है:

  1. प्रत्येक hook किए गए NtAPI के लिए एक position independent replacement फ़ंक्शन Beacon को भेजता है
  2. MemFiles को अपने पूरे lifecycle में आवश्यक विभिन्न मानों को रखने के लिए Beacon मेमोरी में एक संरचना बनाता है
  3. इस संरचना का पता प्रत्येक PIC replacement फ़ंक्शन में patch करता है
  4. मेमोरी आवंटित करता है और प्रत्येक PIC replacement फ़ंक्शन को Beacon प्रक्रिया मेमोरी में inject करता है
  5. प्रत्येक hook किए गए NtAPI के लिए एक trampoline बनाता है
  6. सूचीबद्ध प्रत्येक NtAPI को उसके कुछ/सभी बाइट्स को overwrite करके hook करता है, निष्पादन को PIC replacement फ़ंक्शन पर पुनर्निर्देशित करता है।

memlist

memlist का उपयोग किसी दिए गए Beacon के लिए MemFiles द्वारा वर्तमान में मेमोरी में संग्रहीत सभी फ़ाइलों को प्रदर्शित करने के लिए किया जाता है।
image
कई फ़ील्ड प्रदर्शित की जाती हैं, जिनमें से उपयोगकर्ता के लिए सबसे प्रासंगिक और रुचिकर फ़ील्ड फ़ाइल का नाम और संग्रहीत डेटा की लंबाई है।

memfetch

memfetch का उपयोग किसी दिए गए Beacon के लिए MemFiles द्वारा मेमोरी में संग्रहीत फ़ाइलों को वास्तव में प्राप्त करने के लिए किया जाता है।

डिफ़ॉल्ट रूप से, memfetch उन सभी फ़ाइलों को प्राप्त करेगा जो MemFiles द्वारा संग्रहीत हैं और जिनका "handle" बंद कर दिया गया है। यह डिज़ाइन विकल्प उस फ़ाइल को डाउनलोड करने के प्रयास से संबंधित किसी भी समस्या से बचने के लिए बनाया गया था जिसे कोई प्रोग्राम/एप्लिकेशन अभी तक लिखना समाप्त नहीं किया है।

इसका मतलब है कि यदि कोई प्रोग्राम/एप्लिकेशन फ़ाइल के लिए खोले गए handle को बंद करने में विफल रहता है, तो फ़ाइल memfetch द्वारा डाउनलोड नहीं की जाएगी।

इसे memfetch के साथ "force" तर्क का उपयोग करके कम किया जा सकता है, अर्थात 'memfetch force' का उपयोग करके handle की स्थिति की परवाह किए बिना सभी फ़ाइलों को मेमोरी से प्राप्त किया जा सकता है।

memfetch द्वारा मेमोरी से प्राप्त की गई फ़ाइलें डाउनलोड के रूप में Teamserver को वापस भेजी जाती हैं और CobaltStrike में Downloads टैब के माध्यम से Teamserver से Client पर synced की जा सकती हैं।

एक बार जब कोई फ़ाइल Teamserver द्वारा डाउनलोड हो जाती है, तो उसे Beacon प्रक्रिया की मेमोरी से मिटा दिया जाता है और उसकी प्रविष्टि, जैसा कि memlist के माध्यम से दिखाई जाती है, हटा दी जाती है।

memclean

memclean Beacon प्रक्रिया से MemFiles को साफ़ करने और हटाने के लिए ज़िम्मेदार है।

MemFiles के लिए मानक उपयोग केस में इसे इंस्टॉल करना और Beacon के जीवनकाल के दौरान इसे इंस्टॉल छोड़ देना शामिल है; हालाँकि यदि कोई MemFiles का उपयोग किसी टूल के साथ मिलकर फ़ाइल आउटपुट को कैप्चर और प्राप्त करने के लिए करना चाहता है, और फिर MemFiles को अनइंस्टॉल करना चाहता है ताकि उसके आर्टिफैक्ट मेमोरी में न रहें, तो memclean का उपयोग Beacon प्रक्रिया को meminit चलाने से पहले की मूल स्थिति में वापस लाने के लिए किया जा सकता है।

इसमें शामिल हैं:

  1. प्रत्येक hook किए गए NtAPI को unhook करना
  2. प्रत्येक बनाए गए trampoline को zero करना और free करना
  3. प्रत्येक injected PIC replacement फ़ंक्शन को zero करना और free करना
  4. MemFiles struct को zero करना और free करना
टूल डाउनलोड करें