
Scan-Tool zum Testen auf SaltStack-Schwachstellen CVE-2020-11651 & CVE-2020-11652.
Was ist das?
Scan-Tool zum Testen auf SaltStack-Schwachstellen CVE-2020-11651 & CVE-2020-11652.
Die Schwachstellen ermöglichen es einem Angreifer, der sich mit dem Port des "Request-Servers" verbinden kann, alle Authentifizierungs- und Autorisierungskontrollen zu umgehen und beliebige Kontrollnachrichten zu veröffentlichen, Dateien überall im Dateisystem des "Master"-Servers zu lesen und zu schreiben und den geheimen Schlüssel zu stehlen, der zur Authentifizierung am Master als Root verwendet wird. Die Auswirkung ist die vollständige Remote-Befehlsausführung als Root sowohl auf dem Master als auch auf allen Minions, die sich mit ihm verbinden.
Wie man es installiert.
Das Tool erfordert Python 2.7 oder Python 3. Externe Abhängigkeiten können mit pip oder easy_install installiert werden. Zum Beispiel:
sudo pip install -r requirements.txt
Wie benutzt man es?
Es sind 2 Erkennungsmethoden enthalten:
Token-Offenlegung (-t)
Diese Methode wird mit der Option -t aufgerufen und versucht, den Salt-Root-Token durch Ausnutzung der Schwachstelle zu lesen. Obwohl diese Methode eigenständig ist, funktioniert sie nur auf neueren Versionen; einige ältere Versionen werden nicht unterstützt.
Remote Code Execution zu Out-of-Band (DNS) (-c)
Diese Methode nutzt die Schwachstelle aus, indem sie den Befehl nslookup ausführt, um eine DNS-Abfrage an den Appcheck Sentinel-Server auszulösen. Der Scanner konsultiert dann den AppCheck DNS-Server, um festzustellen, ob die Ausführung erfolgte. Um dies zu erreichen, muss das Tool eine Verbindung zu https://ptst.io/ herstellen.
Hinweis: Weitere Informationen zu Sentinel finden Sie in Abschnitt [4] unten
Empfohlene Befehlszeile: salt_rce_scanner.py -r cidr_ip_range -t -c
[Befehlszeilenoptionen]
/ _ \ / __ \ | | |
/ /\ _ __ _ __ | / / |__ ___ | | __
| _ | ' | ' | | | ' \ / _ / __| |/ /
| | | | |) | |) | _/\ | | | / (| <
_| |/ ./| ./ _/| ||_|___||_
| | | |
|| |_|
SaltStack Scanner (CVE-2020-11651 & CVE-2020-11652)
Author: Gary O'Leary-Steele
Version: 0.1 Alpha
Verwenden Sie -h, um die Nutzungsoptionen anzuzeigen
optionale Argumente: -h, --help diese Hilfemeldung anzeigen und beenden -r CIDR_RANGE Zielhost oder CIDR-Bereich zum Scannen -p PORT Zielport (standardmäßig 4506) -c Remote-Befehlsinjektionstest aktivieren (Out-of-Band DNS zu AppCheck Sentinel) -t Root-Token-Offenlegungsprüfung aktivieren -T THREADS Maximale Threads (Standard ist 50) -o OUTPUT_FILE Ausgabedatei
AppCheck Sentinel
= Hintergrund =
Traditionell werden Schwachstellen in Webanwendungen durch Modifikation der vom Client bereitgestellten Eingaben erkannt, um eine spezifische Antwort vom Server auszulösen. Zum Beispiel werden SQL Injection-Schwachstellen oft durch das Senden von Payloads erkannt, die eine Signatur vom Datenbankserver zurückgeben lassen; in anderen Fällen sind Payloads darauf ausgelegt, eine spezifische Zeitverzögerung auszulösen, die gemessen werden kann, um die Schwachstelle zu erkennen. In jedem Fall verwenden diese Methoden In-Band-Techniken, bei denen sowohl der Angriff als auch die Antwort denselben Pfad wie regulärer Website-Verkehr nehmen und zu einer sofortigen Bestätigung der Schwachstelle führen.
= Out-of-Band-Erkennung =
Es gibt jedoch Fälle, in denen In-Band-Techniken nicht effektiv sind. Betrachten Sie zum Beispiel eine E-Commerce-Website, die Bestellungen sammelt, die später über ein Backend-Bestellverarbeitungssystem überprüft werden. Während AppCheck Schwachstellen (In-Band) innerhalb der E-Commerce-Website während eines Routine-Scans erkennt, werden Schwachstellen innerhalb des Backend-Bestellverarbeitungssystems möglicherweise erst ausgelöst, wenn sie später (von einem anderen Benutzer oder Prozess) aufgerufen werden.
Weitere häufige Fälle treten auf, wenn das Auslösen der Schwachstelle keinen zuverlässigen In-Band-Mechanismus zur Bestätigung des Fehlers bietet. Zum Beispiel könnten die Messungen der Server-Antwortzeiten unzuverlässig sein, wenn die normalen Server-Antwortzeiten unregelmäßig sind. In anderen Fällen hat die Schwachstelle möglicherweise keinen Einfluss darauf, wie der Server reagiert, unabhängig davon, ob sie erfolgreich ausgenutzt wird oder nicht.
Um diese Einschränkungen zu überwinden, implementiert AppCheck ein Out-of-Band-Erkennungssystem namens Sentinel.
Sentinel ist ein Cloud-basiertes Überwachungssystem, das speziell entwickelte DNS-, SMTP-, HTTP(s)- und SMB-Dienste hostet, die Out-of-Band-Verbindungen abfangen, die als Ergebnis einer AppCheck-Angriffsnutzlast ausgelöst werden.
Während eines Scans sendet AppCheck speziell entwickelte Payloads, die darauf ausgelegt sind, Out-of-Band-Verbindungen auszulösen, wenn sie erfolgreich ausgeführt werden. Sentinel erkennt dann diese Ausführung und aktualisiert die Scan-Ergebnisse entsprechend. Eine der häufigsten Techniken ist die Verwendung von DNS-Tokens, die in die Payload eingebettet sind. DNS-Abfragen werden standardmäßig an den autoritativen DNS-Server für eine bestimmte Domäne weitergeleitet, um aufgelöst zu werden. Daher kann das anfällige System, selbst wenn es keinen Internetzugang hat, mit Sentinel kommunizieren, solange es DNS-Namen auflösen kann.