
Grafana स्कैनर जिसमें सभी सार्वजनिक CVE शामिल हैं, जिन्हें मैंने grafana परीक्षण को आसान बनाने के लिए एक ही स्क्रिप्ट में एकत्र किया है
Grafana के लिए एक कमांड-लाइन भेद्यता स्कैनर। यह इंस्टॉल किए गए Grafana संस्करण का फिंगरप्रिंट लेता है, संस्करण-जागरूक CVE जाँचों का एक सेट चलाता है, सामान्य कॉन्फ़िगरेशन कमज़ोरियों का ऑडिट करता है, परिणामों को स्थानीय डेटाबेस में संग्रहीत करता है, और उन्हें एक छोटे वेब डैशबोर्ड के माध्यम से प्रस्तुत कर सकता है।
यह उपकरण Grafana इंस्टेंसों पर अनुरोध भेजता है और कुछ जाँचों के लिए ज्ञात एक्सप्लॉइट पथों (पाथ ट्रैवर्सल, SQL इंजेक्शन, SSRF) का प्रयास करता है। इसे केवल उन्हीं सिस्टमों पर चलाएँ जिनके आप स्वामी हैं या जिनके परीक्षण की लिखित अनुमति आपके पास है। अनधिकृत स्कैनिंग आपके क्षेत्राधिकार में कंप्यूटर-दुरुपयोग कानूनों का उल्लंघन कर सकती है।
requestsflask (केवल --serve के लिए आवश्यक)pip install -r requirements.txt
# Scan a single target
python scanner.py -u https://grafana.example.com
# Scan a list of URLs from a file
python scanner.py -f targets.txt -o report
# Detect Grafana instances in a mixed URL list, then scan them
python scanner.py --auto-search urls.txt -o discovery
# Persist results to a database and view them in the dashboard
python scanner.py -f targets.txt --db vulndb.json
python scanner.py --serve --db vulndb.json
| Option | Description |
|---|---|
-u, --url | एकल लक्ष्य URL स्कैन करें |
-f, --file | किसी फ़ाइल में प्रति पंक्ति एक लक्ष्य के रूप में सूचीबद्ध लक्ष्यों को स्कैन करें |
--auto-search FILE | URL सूची में Grafana का पता लगाएँ, फिर पाए गए इंस्टेंसों को स्कैन करें |
-o, --output BASE | JSON/HTML/CSV रिपोर्ट फ़ाइलों का आधार नाम |
--timeout N | प्रति-अनुरोध टाइमआउट सेकंडों में (डिफ़ॉल्ट 10) |
--threads N | समवर्ती स्कैन थ्रेड (डिफ़ॉल्ट 5) |
--db FILE | दिए गए पथ पर JSON भेद्यता डेटाबेस सक्षम करें |
--serve [PORT] | Flask वेब डैशबोर्ड प्रारंभ करें (डिफ़ॉल्ट पोर्ट 8080) |
--host | वह पता जिससे डैशबोर्ड बाइंड होता है (डिफ़ॉल्ट 127.0.0.1) |
--dashboard-token TOKEN | सभी डैशबोर्ड रूट्स पर इस bearer टोकन की आवश्यकता होगी |
--auth-token | प्रमाणित एंडपॉइंट्स स्कैन करने के लिए bearer टोकन |
--auth-user / --auth-pass | स्कैनिंग के लिए बेसिक प्रमाणीकरण |
--no-ssl-verify | TLS प्रमाणपत्र सत्यापन अक्षम करें (चेतावनी प्रिंट करता है) |
-v, --verbose | प्रति-जाँच विवरण प्रिंट करें |
--no-banner | प्रारंभिक हेडर छुपाएँ |
--no-ssl-verify केवल स्व-हस्ताक्षरित प्रमाणपत्रों वाले आंतरिक होस्ट के लिए पास करें; ऐसा करने पर एक चेतावनी प्रिंट होती है, क्योंकि अन्यथा क्रेडेंशियल इंटरसेप्शन के लिए उजागर हो सकते हैं।--dashboard-token सेट नहीं करते, डैशबोर्ड अप्रमाणित रहता है। जब डैशबोर्ड किसी गैर-लोकल इंटरफ़ेस से बाउंड होता है तो आपको एक टोकन सेट करना होगा। सभी स्थिति-परिवर्तन अनुरोधों के लिए भी CSRF टोकन आवश्यक है।-o के साथ, स्कैनर BASE.json, BASE.html, और BASE.csv लिखता है। HTML रिपोर्ट उन javascript:/data:/vbscript: URI को निष्क्रिय कर देती है जो किसी दुर्भावनापूर्ण लक्ष्य प्रतिक्रिया से आ सकते हैं।
--db के साथ, निष्कर्ष एक JSON फ़ाइल में संग्रहीत होते हैं जिसे परमाणु रूप से लिखा जाता है: पिछली स्थिति की एक .bak प्रति रखी जाती है, और जो फ़ाइल पार्स नहीं हो पाती उसे चुपचाप छोड़ने के बजाय .corrupt-<timestamp> में स्थानांतरित कर दिया जाता है।
स्कैनर संस्करण-जागरूक CVE जाँचें तथा कॉन्फ़िगरेशन ऑडिट (सुरक्षा हेडर, CORS, अनाम पहुँच, स्व-पंजीकरण, प्लगइन विश्लेषण, उजागर मेट्रिक्स) चलाता है। पूर्ण CVE सूची और पहचान विधि नोट्स docs/vulnerabilities.md में हैं।
scanner.py — इंजन, जाँच, डेटाबेस, वेब डैशबोर्ड, CLIdocs/usage.md — स्कैनिंग मोड और कार्यप्रवाहdocs/vulnerabilities.md — CVE संदर्भdocs/architecture.md — आंतरिक संरचना और डेटा प्रवाहtests/ — परीक्षण सुइटmake test # run the test suite
make lint # ruff + flake8
CI पाइपलाइन Python 3.9–3.12 पर परीक्षण और लिंटर चलाती है और Docker इमेज बनाती है।
MIT. LICENSE देखें।