
एक Rust होनीपॉट जो CVE-2026-41940 के लिए एक कमजोर cPanel/WHM इंस्टेंस का अनुकरण करता है

एक Rust हनीपॉट जो CVE-2026-41940 (cPanel2Shell प्रमाणीकरण बाईपास) के लिए एक कमजोर cPanel/WHM इंस्टेंस का अनुकरण करता है।
यह हनीपॉट cPanel2Shell भेद्यता स्कैनर द्वारा उपयोग किए जाने वाले प्रतिक्रिया अनुक्रम का अनुकरण करता है:
msg_code:[expired_session] मार्कर प्रदान करता हैजो हमलावर प्रारंभिक जांच से आगे बढ़ते हैं, उन्हें इन-मेमोरी वर्चुअल फाइल सिस्टम द्वारा समर्थित एक नकली bash शेल में डाल दिया जाता है।
cargo build --release
# डिफ़ॉल्ट: स्वतः-जनित TLS के साथ पोर्ट 2087, 2083
./target/release/cpanel2shell-honeypot
# कस्टम पोर्ट
./target/release/cpanel2shell-honeypot -p 2083,2087
# TLS अक्षम करें
./target/release/cpanel2shell-honeypot --no-tls
# हॉट-रिलोड के साथ प्रति-होस्टनाम TLS
./target/release/cpanel2shell-honeypot --certs-config data/certs.toml
# सभी विकल्प
./target/release/cpanel2shell-honeypot --help
data/certs.toml बनाएं (data/certs.example.toml देखें):
default = "auto"
[auto]
cache_dir = "./captures/certs"
key_type = "ecdsa-p256"
validity_days = 365
issuer_cn = "Let's Encrypt Authority X3"
[[host]]
sni = "cpanel.example.com"
cert = "/etc/honeypot/certs/cpanel.pem"
key = "/etc/honeypot/certs/cpanel.key"
src/
├── main.rs # प्रवेश बिंदु, रनटाइम सेटअप
├── cli.rs # कमांड-लाइन तर्क
├── config.rs # एप्लिकेशन कॉन्फ़िगरेशन
├── router.rs # HTTP रूट परिभाषाएं
├── capture.rs # अनुरोध लॉगिंग और पेलोड भंडारण
├── sessions/ # सत्र दृढ़ता
├── handlers/ # HTTP अनुरोध हैंडलर
├── shell/ # Bash इंटरप्रेटर और VFS
│ ├── lexer.rs # टोकनाइज़र
│ ├── parser.rs # रिकर्सिव डिसेंट पार्सर
│ ├── exec.rs # AST निष्पादक
│ ├── expand.rs # वेरिएबल विस्तार
│ ├── builtins.rs # शेल बिल्टिन
│ ├── commands.rs # बाहरी कमांड स्टब्स
│ ├── vfs.rs # वर्चुअल फाइल सिस्टम
│ └── init.rs # फाइल सिस्टम सीड डेटा
└── tls/ # TLS सर्टिफिकेट प्रबंधन
├── config.rs # सर्टिफिकेट कॉन्फ़िगरेशन
├── generator.rs # सर्टिफिकेट जनरेशन
├── resolver.rs # SNI सर्टिफिकेट रिज़ॉल्यूशन
└── watcher.rs # कॉन्फ़िग फ़ाइल हॉट-रिलोड
नकली शेल bash का एक उपसमुच्चय लागू करता है:
$VAR, ${VAR:-default})$(cmd), `cmd`)सत्र स्थिति (cwd, env, VFS राइट्स, इतिहास) JSON स्नैपशॉट के माध्यम से पुनरारंभ के बाद भी बनी रहती है।
सभी हमलावर गतिविधि ./captures/ में लिखी जाती है:
| फ़ाइल पैटर्न | विवरण |
|---|---|
upload_*.bin | अपलोड की गई फ़ाइलें |
upload_meta_*.txt | अपलोड मेटाडेटा |
post_*.txt | POST अनुरोध बॉडी |
cmd_*.txt | टर्मिनल कमांड |
sessions/*.json | सत्र स्नैपशॉट |
certs/ | कैश्ड TLS सर्टिफिकेट |
until/case कीवर्ड के लिए उन्नत शेल पार्सरMIT