
# Sliver HTTP(S) C2 PNG बम DoS शोषण — GHSA-663m-7x7m-g4fw (CVE-2026-77622)
Sliver C2 के HTTP(S) लिसनर के लिए डिनायल-ऑफ-सर्विस एक्सप्लॉइट। प्रति-सेशन PNG एन्कोडिंग नॉन्स को ब्रूट-फोर्स करता है और एक डीकंप्रेशन बम भेजता है जो सर्वर की मेमोरी को खत्म कर देता है।
GHSA-663m-7x7m-g4fw के रूप में प्रकाशित।
Sliver का HTTP(S) C2 चैनल संदेशों को PNG इमेज के अंदर लपेटता है। प्रत्येक सेशन को [1, 65537) की सीमा में एक रैंडम नॉन्स सौंपा जाता है, और सर्वर केवल उन अनुरोधों से PNG डेटा डिकोड करता है जिनका ?n= क्वेरी पैरामीटर सेशन के नॉन्स से मेल खाता है। यह एक रूटिंग तंत्र है, प्रमाणीकरण जांच नहीं — कीस्पेस 16 बिट का है।
सर्वर PNG को Go के image.Decode() से डिकोड करता है, जो मेमोरी में width × height × bytes_per_pixel आवंटित करता है। 32767×32767 RGBA के घोषित आयामों वाली PNG फ़ाइल वायर पर लगभग 3 KB में संपीड़ित होती है लेकिन मेमोरी में 4 GB से अधिक में डीकंप्रेस होती है। सर्वर डिकोड किए गए आयामों पर कोई सीमा नहीं लगाता है।
एक्सप्लॉइट तीन चरणों में काम करता है:
GHSA-663m-7x7m-g4fw में संदर्भित फिक्स से पहले के Sliver C2 संस्करण। HTTP या HTTPS लिसनर चलाने वाला कोई भी Sliver सर्वर उजागर है।
go build -o pngboomer
कोई बाहरी निर्भरता नहीं। केवल मानक लाइब्रेरी।
./pngboomer -url http://target:8080/ [options]
| फ्लैग | डिफ़ॉल्ट | विवरण |
|---|---|---|
-url | http://127.0.0.1:8080/ | Sliver HTTP C2 बेस URL |
-workers | 8 | स्कैन समवर्तीता |
-probe-w | 2000 | प्रोब PNG चौड़ाई |
-probe-h | 2000 | प्रोब PNG ऊंचाई |
-probe-color | 2 | प्रोब कलर टाइप (2=RGB, 6=RGBA) |
-kill-w | 32767 | किल PNG चौड़ाई |
-kill-h | 32767 | किल PNG ऊंचाई |
-kill-color | 6 | किल कलर टाइप (2=RGB, 6=RGBA) |
-threshold-ms | 50 | नॉन्स डिटेक्शन के लिए न्यूनतम प्रतिक्रिया समय फ़्लोर |
-outlier-mult | 15.0 | अनुकूली थ्रेशोल्ड = बेसलाइन p99 × यह |
-calibrate | 16 | कैलिब्रेशन नमूनों की संख्या |
-verify | 3 | प्रति उम्मीदवार नॉन्स पुनः-प्रोब गिनती |
-max-nonce | 65537 | नॉन्स रेंज का शीर्ष (Sliver मापांक) |
-probe-timeout | 5s | प्रति-प्रोब HTTP टाइमआउट |
-kill-timeout | 180s | किल अनुरोध HTTP टाइमआउट |
-target-cap-mb | 10240 | घोषित लक्ष्य मेमोरी कैप (सुरक्षा जांच) |
-nonce | 0 | स्कैन छोड़ें, इस नॉन्स का सीधे उपयोग करें |
-scan-only | false | नॉन्स खोजें और किल भेजे बिना इसे प्रिंट करें |
-no-confirm | false | किल के बाद लक्ष्य की मृत्यु के लिए TCP पोलिंग छोड़ें |
-no-color | false | ANSI कलर आउटपुट अक्षम करें |
स्थानीय Docker लक्ष्य के खिलाफ डिफ़ॉल्ट स्कैन और किल:
./pngboomer -url http://127.0.0.1:8080/ -target-cap-mb 10240
केवल स्कैन (किल किए बिना नॉन्स खोजें):
./pngboomer -url https://c2.target.com/ -scan-only
जब आप पहले से नॉन्स जानते हों तो स्कैन छोड़ें:
./pngboomer -url http://target:8080/ -nonce 41337
किल बम लक्ष्य पर मल्टी-GB PNG डिकोड का कारण बनता है। परीक्षण करते समय, Sliver सर्वर को --memory=<N>g के साथ Docker कंटेनर के अंदर चलाएं और -target-cap-mb N पास करें ताकि टूल खतरनाक वर्कर/प्रोब संयोजनों को मना कर दे जो लक्ष्य की मेमोरी से अधिक होंगे।
प्रोब PNG इतना बड़ा है कि इसे डिकोड करने में गलत नॉन्स के सर्वर के फास्ट-पाथ अस्वीकृति की तुलना में काफी अधिक समय लगता है। स्कैन नॉन्स रेंज को शफल करता है और इसे वर्कर गोरूटीन में वितरित करता है। प्रत्येक वर्कर उम्मीदवार नॉन्स के साथ प्रोब PNG भेजता है और प्रतिक्रिया समय मापता है।
जब कोई प्रतिक्रिया अनुकूली थ्रेशोल्ड (-threshold-ms और baseline_p99 × outlier-mult में से अधिक) से अधिक हो जाती है, तो उम्मीदवार को -verify बार पुनः-प्रोब किया जाता है। यदि पुनः-प्रोब का बहुमत भी थ्रेशोल्ड से अधिक है, तो नॉन्स की पुष्टि हो जाती है। यदि नहीं, तो उम्मीदवार को ब्लैकलिस्ट कर दिया जाता है और स्कैन जारी रहता है। स्कैन छोड़ने से पहले अधिकतम 8 गलत-सकारात्मक "ब्लिप्स" सहन किए जाते हैं।
GitHub की निजी सलाहकार प्रक्रिया के माध्यम से Bishop Fox को रिपोर्ट किया गया। CalebKingan ने पैच लिखा।
-silent| false |
| केवल खोजा गया नॉन्स stdout पर प्रिंट करें |