
हल्का Python स्कैनर CVE-2023-48795 (SSH Terrapin prefix truncation) के लिए। निष्क्रिय बैनर ग्रैब और KEXINIT पार्स करता है ताकि कमजोर सिफर/MAC संयोजनों और लापता strict-KEX मिटिगेशन का पता लगा सके।
CVE-2023-48795 — एसएसएच टेरापिन प्रीफिक्स ट्रंकेशन कमजोरी के लिए एक हल्का पायथन स्कैनर।
टेरापिन एसएसएच में एक प्रोटोकॉल-स्तरीय कमजोरी है, जो सक्रिय MitM करने वाले हमलावर को बातचीत के दौरान विस्तार जानकारी को छोटा करने, कनेक्शन सुरक्षा को डाउनग्रेड करने की अनुमति देती है — सबसे गंभीर रूप से
ext-info(सर्वर हस्ताक्षर एल्गोरिदम के लिए उपयोग) औरping(OpenSSH केno-authएक्सटेंशन द्वारा उपयोग) को अक्षम करना।
| फ़ील्ड | विवरण |
|---|---|
| CVE | CVE-2023-48795 |
| CVSS | 5.9 (मध्यम) |
| प्रकार | SSH प्रोटोकॉल — उपसर्ग छंटाई / अखंडता दरकिनार |
| खुलासा | दिसंबर 2023 |
| प्रभावित | OpenSSH < 9.6, PuTTY < 0.80, libssh < 0.10.6, और कई अन्य |
| संदर्भ | terrapin-attack.com |
यह कमजोरी मौजूद है क्योंकि कुछ SSH सिफर/MAC संयोजन — विशेष रूप से chacha20-poly1305 और CBC-मोड सिफर के साथ Encrypt-then-MAC — सक्रिय MitM हमलावर को हैंडशेक के दौरान SSH अनुक्रम संख्या इंजेक्ट और हटाने, बिना पहचान के निगोशिएटेड एक्सटेंशन डेटा को छोटा करने की अनुमति देते हैं।
फिक्स ने एक सख्त KEX विस्तार (kex-strict-*[email protected]) पेश किया जिसे क्लाइंट और सर्वर दोनों को प्रतिरक्षित होने के लिए विज्ञापित करना होगा।
स्क्रिप्ट केवल एक पैसिव बैनर ग्रैब और KEXINIT पार्स करती है — कोई पूर्ण SSH हैंडशेक, कोई प्रमाणीकरण, कोई शोषण नहीं:
SSH_MSG_KEXINIT पैकेट प्राप्त करता है और पार्स करता हैचूंकि जांच पूरी तरह से कुंजी विनिमय चरण के भीतर होती है, यह गैर-हस्तक्षेपकारी है और एक सामान्य TCP कनेक्शन प्रयास से परे कोई सार्थक निशान नहीं छोड़ती है।
socket, struct, argparse, concurrent.futures)git clone https://github.com/Mr-Whiskerss/terrapin_check
cd terrapin_check
chmod +x terrapin_check.py
python3 terrapin_check.py <host> [port]
python3 terrapin_check.py 192.168.1.10
python3 terrapin_check.py 192.168.1.10 2222
प्रति पंक्ति एक लक्ष्य — host या host:port प्रारूप स्वीकार करता है।
python3 terrapin_check.py -f targets.txt
python3 terrapin_check.py -f targets.txt --threads 20 --timeout 3
python3 terrapin_check.py -f targets.txt --summary
usage: terrapin_check.py [-h] [-f FILE] [-p PORT] [--threads THREADS] [--timeout TIMEOUT] [--summary] [host] [port]
positional arguments:
host Target host (लक्ष्य होस्ट)
port SSH port (SSH पोर्ट, डिफ़ॉल्ट: 22)
options:
-h, --help Show this help message and exit (यह सहायता संदेश दिखाएं और बाहर निकलें)
-f, --file FILE File containing hosts (host या host:port प्रति पंक्ति वाली फ़ाइल)
-p, --port-flag PORT Default port when using -f (डिफ़ॉल्ट पोर्ट जब -f का उपयोग करें, डिफ़ॉल्ट: 22)
--threads THREADS Concurrent threads for bulk scan (बल्क स्कैन के लिए समवर्ती थ्रेड, डिफ़ॉल्ट: 10)
--timeout TIMEOUT Socket timeout in seconds (सॉकेट टाइमआउट सेकंड में, डिफ़ॉल्ट: 5.0)
--summary Print one-line summary per host only (प्रति होस्ट केवल एक-पंक्ति सारांश प्रिंट करें)
| कोड | अर्थ |
|---|---|
0 | कोई असुरक्षित होस्ट नहीं मिला |
1 | एक या अधिक असुरक्षित होस्ट पाए गए |
यह स्क्रिप्ट को पाइपलाइनों और स्वचालित कार्यप्रवाहों में साफ-सुथरे ढंग से उपयोग करने की अनुमति देता है।
────────────────────────────────────────────────────────────
Target : 192.168.1.10:22
Banner : SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
Status : VULNERABLE
Strict-KEX : No
✗ ChaCha20-Poly1305 advertised → prefix-truncation possible
✗ CBC+ETM combination advertised
CBC ciphers : aes128-cbc, aes256-cbc
ETM MACs : [email protected], [email protected]
KEX algorithms:
curve25519-sha256
ecdh-sha2-nistp256
diffie-hellman-group14-sha256
────────────────────────────────────────────────────────────
[VULN] 192.168.1.10:22 VULNERABLE (CVE-2023-48795)
[SAFE] 192.168.1.20:22 Not vulnerable
[MIT] 192.168.1.30:22 Algorithms present but strict-KEX mitigates
[?] 192.168.1.99:22 ERROR: Connection refused
स्क्रिप्ट एक होस्ट को VULNERABLE चिह्नित करती है यदि निम्न में से कोई एक सत्य है, और सख्त-KEX विस्तार विज्ञापित नहीं है:
सर्वर किसी भी एन्क्रिप्शन दिशा में [email protected] विज्ञापित करता है।
सर्वर किसी भी CBC-मोड सिफर और किसी भी ETM MAC को एक साथ विज्ञापित करता है:
जांचे गए CBC सिफर:
aes128-cbc, aes192-cbc, aes256-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, idea-cbc, arcfour, arcfour128, arcfour256, [email protected]
जांचे गए ETM MAC:
[email protected], [email protected], [email protected], [email protected], और वेरिएंट
यदि सर्वर अपनी KEX एल्गोरिदम सूची में [email protected] विज्ञापित करता है, तो कनेक्शन इस बात की परवाह किए बिना सुरक्षित है कि कौन से सिफर और MAC पेश किए गए हैं। स्क्रिप्ट इस मामले में VULNERABLE के बजाय MITIGATED की रिपोर्ट करेगी।
| कार्रवाई |
|---|
# /etc/ssh/sshd_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
MACs hmac-sha2-256,hmac-sha2-512
एल्गोरिदम हटाने से सिफर चपलता कम हो जाती है। अपग्रेड करना हमेशा पसंदीदा सुधार है।
यह उपकरण केवल अधिकृत सुरक्षा मूल्यांकन के लिए है। इसका उपयोग केवल उन प्रणालियों के विरुद्ध करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। लेखक दुरुपयोग के लिए कोई दायित्व स्वीकार नहीं करता है।
Mr-Whiskerss पेंटेस्टिंग टूलकिट का हिस्सा।
| विवरण |
|---|
| OpenSSH अपग्रेड करें | क्लाइंट और सर्वर दोनों पर ≥ 9.6 पर अपग्रेड करें। सख्त KEX डिफ़ॉल्ट रूप से सक्षम है। |
| अन्य कार्यान्वयन को पैच करें | PuTTY ≥ 0.80, libssh ≥ 0.10.6, Paramiko ≥ 3.4.0, AsyncSSH ≥ 2.14.2 |
| असुरक्षित एल्गोरिदम हटाएं | यदि तुरंत अपग्रेड संभव नहीं है, तो sshd_config से chacha20-poly1305 और CBC सिफर + ETM MAC हटाएं: |