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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
mquire — शून्य-निर्भरता लिनक्स मेमोरी फोरेंसिक्स, बाहरी डीबग जानकारी के बिना प्रकार-जागरूक मेमोरी विश्लेषण के लिए कर्नेल-एम्बेडेड BTF और kallsyms का लाभ उठाता है। | Kitploit
उपकरण/GitHubGitHub/trailofbits/mquire
OSINT (खुला स्रोत खुफिया)मेमोरी फोरेंसिकभेद्यता विश्लेषणरिवर्स इंजीनियरिंगफोरेंसिकमालवेयर विश्लेषणडिजिटल फोरेंसिकबाइनरी विश्लेषणखतरा खुफियालर्निंग और शिक्षाघटना प्रतिक्रिया
18484623 दिन पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHub
trailofbits/mquire

mquire

शून्य-निर्भरता लिनक्स मेमोरी फोरेंसिक्स, बाहरी डीबग जानकारी के बिना प्रकार-जागरूक मेमोरी विश्लेषण के लिए कर्नेल-एम्बेडेड BTF और kallsyms का लाभ उठाता है।

रिपॉजिटरी देखेंवेबसाइट

mquire

mquire, memory और inquire शब्दों का एक संयोजन, एक मेमोरी क्वेरी करने वाला उपकरण है जो osquery से प्रेरित है।

मुख्य लाभ: बाहरी डीबग प्रतीकों की आवश्यकता नहीं

mquire बिना बाहरी डीबग प्रतीकों की आवश्यकता के Linux कर्नेल मेमोरी स्नैपशॉट का विश्लेषण कर सकता है।

विश्लेषण के लिए आवश्यक सब कुछ पहले से ही मेमोरी डंप में एम्बेडेड है। इसका मतलब है कि आप विश्लेषण कर सकते हैं:

  • अज्ञात या कस्टम कर्नेल जो आपने पहले कभी नहीं देखे
  • बिना तैयारी के कोई भी Linux वितरण
  • मेमोरी स्नैपशॉट जहां बाहरी डीबग प्रतीक उपलब्ध नहीं हैं या खो गए हैं

आवश्यकताएँ

कर्नेल संस्करण आवश्यकताएँ:

  • BTF समर्थन: BTF सक्षम के साथ कर्नेल 4.18 या नया (अधिकांश आधुनिक वितरण इसे डिफ़ॉल्ट रूप से सक्षम करते हैं)
  • Kallsyms समर्थन: कर्नेल 6.4 या नया (scripts/kallsyms.c प्रारूप में बदलावों के कारण)

यह कैसे काम करता है

mquire दो प्रकार की जानकारी पढ़कर कर्नेल मेमोरी का विश्लेषण करता है जो आधुनिक Linux कर्नेल में एम्बेडेड हैं:

  1. BTF से प्रकार की जानकारी (BPF Type Format) - कर्नेल डेटा प्रकारों की संरचना और लेआउट का वर्णन करता है। BTF डेटा को btfparse crate का उपयोग करके पार्स किया जाता है।
  2. Kallsyms से प्रतीक जानकारी - कर्नेल प्रतीकों के मेमोरी स्थान प्रदान करता है ( /proc/kallsyms द्वारा उपयोग किया गया वही डेटा)

प्रकार की जानकारी को प्रतीक स्थानों के साथ जोड़कर, mquire जटिल कर्नेल डेटा संरचनाओं को ढूंढ और पढ़ सकता है जैसे:

  • प्रक्रिया मेमोरी मैपिंग (मेपल ट्री संरचनाओं का उपयोग करके)
  • कैश की गई फ़ाइल डेटा (XArray संरचनाओं का उपयोग करके)
  • कर्नेल लॉग संदेश

यह कर्नेल के फ़ाइल कैश से सीधे फ़ाइलें निकालना संभव बनाता है, भले ही वे डिस्क से हटा दी गई हों।

अनुकूलता नोट

Kallsyms स्कैनर कर्नेल स्रोत में scripts/kallsyms.c के डेटा प्रारूप पर निर्भर करता है। यदि भविष्य के कर्नेल संस्करण इस प्रारूप को बदलते हैं, तो स्कैनर ह्युरिस्टिक्स को अपडेट की आवश्यकता हो सकती है।

क्षमताएँ

तालिकाएँ

mquire सिस्टम के विभिन्न पहलुओं या उपकरण की स्थिति को क्वेरी करने के लिए SQL तालिकाएँ प्रदान करता है।

mquire एक डेटाबेस नहीं है। प्रत्येक क्वेरी मेमोरी को स्कैन करके और पॉइंटर्स का अनुसरण करके कर्नेल डेटा संरचनाओं का पुनर्निर्माण करती है। कोई पूर्व-गणना की गई इंडेक्स या कैश किए गए परिणाम नहीं हैं: प्रत्येक तालिका पहुंच कर्नेल डेटा का ट्रैवर्सल है। बार-बार स्कैन से बचने के लिए AS MATERIALIZED का उपयोग करें (देखें क्वेरी ऑप्टिमाइज़ेशन), और प्रति-प्रक्रिया तालिकाओं जैसे task_open_files और memory_mappings को क्वेरी करते समय एकल प्रक्रिया तक स्कैन को सीमित करने के लिए task जैसी बाधाएँ प्रदान करें।

डिज़ाइन सिद्धांत: जॉइन कुंजी के रूप में वर्चुअल पते। तालिकाएँ विहित जॉइन कुंजी के रूप में virtual_address (अंतर्निहित डेटा संरचना का कर्नेल पता) का उपयोग करती हैं, न कि pid या अन्य उपयोगकर्ता-दृश्य पहचानकर्ताओं का। यह जानबूझकर किया गया है, क्योंकि एक ही PID विभिन्न डिस्कवरी स्रोतों और रूट कार्यों में कई बार प्रकट हो सकता है, जबकि एक वर्चुअल पता विशिष्ट रूप से एक विशिष्ट कर्नेल ऑब्जेक्ट की पहचान करता है। SQL तालिकाएँ और अंतर्निहित LinuxOperatingSystem API दोनों इस परंपरा के आसपास बनाए गए हैं।

सिस्टम जानकारी

  • os_version - कर्नेल संस्करण और आर्किटेक्चर
  • system_info - होस्टनाम और डोमेन नाम
  • boot_time - सिस्टम बूट समय
  • kallsyms - कर्नेल प्रतीक पते ( /proc/kallsyms के समान डेटा)
  • dmesg - कर्नेल रिंग बफ़र संदेश ( dmesg कमांड के समान डेटा)

प्रक्रिया जानकारी

  • tasks - कमांड लाइन और बाइनरी पथों के साथ चल रही प्रक्रियाएँ। प्रत्येक कार्य को कई स्वतंत्र स्रोतों के माध्यम से खोजा जाता है, जो रूटकिट का पता लगाने के लिए उपयोगी है। रूटकिट का पता लगाने के लिए कार्य गणना विधियों की तुलना करना और डीडुप्लिकेटेड प्रक्रिया सूची देखें।
  • task_open_files - प्रत्येक प्रक्रिया द्वारा खोली गई फ़ाइलें (लक्षित विश्लेषण के लिए एक task बाधा प्रदान करें, या एक साथ सभी कार्यों को क्वेरी करें)
  • memory_mappings - प्रत्येक प्रक्रिया द्वारा मैप किए गए मेमोरी क्षेत्र (लक्षित विश्लेषण के लिए एक task बाधा प्रदान करें, या एक साथ सभी कार्यों को क्वेरी करें)
  • task_capabilities - एक कार्य के लिए Linux क्षमता सेट (प्रभावी, अनुमत, विरासत योग्य, बाउंडिंग, एम्बिएंट)। एक task बाधा की आवश्यकता है, इसलिए इसे tasks/processes के साथ जोड़ें (जैसे, JOIN task_capabilities c ON c.task = p.virtual_address)।
  • task_ptrace_flags - दिए गए कार्य के ptrace फ़ील्ड को डीकोड करता है। एक task बाधा की आवश्यकता है।

कर्नेल मॉड्यूल

  • kernel_modules - मेटाडेटा (नाम, स्थिति, संस्करण, पैरामीटर, टेंट फ़्लैग) के साथ लोड किए गए कर्नेल मॉड्यूल
  • kernel_module_mem_entries - कर्नेल मॉड्यूल ऑब्जेक्ट से mem प्रविष्टियाँ। एक kernel_module बाधा की आवश्यकता है, इसलिए इसे kernel_modules के साथ जोड़ें (जैसे, JOIN kernel_module_mem_entries r ON r.kernel_module = m.virtual_address)।
  • ftrace_ops - डिफ़ॉल्ट रूप से ftrace_ops_list प्रतीक से चलाए गए struct ftrace_ops नोड्स की सूची। एक एकल नोड पढ़ने के लिए virtual_address को बाधित करें, या एक मनमाना नोड से चलने के लिए start_vaddr (वैकल्पिक रूप से end_vaddr द्वारा सीमित) को बाधित करें।

नेटवर्क जानकारी

  • network_connections - सक्रिय नेटवर्क कनेक्शन (TCP सॉकेट)
  • network_interfaces - IP पतों और MAC पतों के साथ नेटवर्क इंटरफ़ेस

फ़ाइल सिस्टम

  • syslog_file - कर्नेल के फ़ाइल कैश से पढ़े गए सिस्टम लॉग (भले ही लॉग फ़ाइलें हटाई गई हों या अनुपलब्ध हों, जब तक वे मेमोरी में कैश की गई हैं, काम करता है)

डीबगिंग

  • mquire_diagnostics - विश्लेषण प्रगति, चेतावनियाँ और त्रुटियाँ दिखाने वाले आंतरिक mquire लॉग

कमांड

mquire तीन मुख्य कमांड प्रदान करता है:

  • mquire shell - मेमोरी स्नैपशॉट क्वेरी करने के लिए एक इंटरैक्टिव SQL शेल प्रारंभ करें
  • mquire query - एक एकल SQL क्वेरी निष्पादित करें और परिणाम आउटपुट करें (JSON या तालिका प्रारूप का समर्थन करता है)
  • mquire command - मेमोरी स्नैपशॉट पर कस्टम कमांड निष्पादित करें (जैसे, .task_tree, .system_version, .dump)

डॉट कमांड

mquire SQL क्वेरी से अलग करने के लिए डॉट (.) से उपसर्गित विशेष कमांड प्रदान करता है।

अंतर्निहित कमांड

ये कमांड इंटरैक्टिव शेल और mquire query के साथ काम करते हैं:

  • .tables - सभी उपलब्ध तालिकाओं की सूची बनाएं
  • .schema - सभी तालिकाओं के लिए स्कीमा दिखाएं
  • .schema <table> - किसी विशिष्ट तालिका के लिए स्कीमा दिखाएं
  • .commands - सभी उपलब्ध कस्टम कमांड की सूची बनाएं
  • .exit - इंटरैक्टिव शेल से बाहर निकलें (केवल शेल)

कस्टम कमांड

ये कमांड इंटरैक्टिव शेल और mquire command के साथ काम करते हैं:

उपलब्ध विकल्पों और उपयोग जानकारी को देखने के लिए किसी भी कमांड के साथ --help का उपयोग करें। उदाहरण: .task_tree --help

.system_version

ऑपरेटिंग सिस्टम संस्करण जानकारी प्रदर्शित करें।

यह SELECT * FROM os_version के बराबर एक सुविधा कमांड है, लेकिन स्वरूपित आउटपुट के साथ।

.task_tree

चल रही प्रक्रियाओं और थ्रेड्स का एक पदानुक्रमित ट्री प्रदर्शित करें, जो Linux पर pstree कमांड के समान है।

विकल्प:

  • --show-threads - प्रक्रियाओं के अतिरिक्त थ्रेड्स को शामिल करें। सक्षम होने पर, प्रत्येक प्रविष्टि के लिए TGID और TID दोनों प्रदर्शित करता है।
  • --use-real-parent - ट्री संरचना बनाने के लिए parent के बजाय real_parent फ़ील्ड का उपयोग करें। real_parent फ़ील्ड किसी भी रिपेरेंटिंग से पहले मूल पैरेंट प्रक्रिया दिखाता है (पैरेंट प्रक्रिया समाप्त होने के बाद भी प्रक्रिया निर्माण श्रृंखला को ट्रैक करने के लिए उपयोगी)।

नोट:

  • थ्रेड दिखाते समय प्रारूप [TGID TID] है, या थ्रेड छिपाए जाने पर [TGID] है। TGID (थ्रेड ग्रुप आइडेंटिफ़ायर) को आमतौर पर PID कहा जाता है। मुख्य थ्रेड के लिए (जहां TGID == TID), दोनों मान समान होंगे।

.carve

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

टूल डाउनलोड करें