
Scanner für Kompromittierungsindikatoren für CVE-2019-19781
Dieses Repository enthält ein Werkzeug zur Erkennung von Kompromittierungen von Citrix ADC Appliances im Zusammenhang mit CVE-2019-19781. Das Werkzeug und seine Ressourcen kodieren Kompromittierungsindikatoren, die während FireEye Mandiant-Untersuchungen gesammelt wurden. Weitere Informationen finden Sie im Blog, der die Veröffentlichung dieses Tools ankündigt.
Zusammenfassend wird das Werkzeug:
Es wird nicht:
Mit Rückmeldungen aus der Community könnte das Tool bei der Erkennung gründlicher werden. Bitte eröffnen Sie ein Issue, reichen Sie einen PR ein oder kontaktieren Sie die Autoren, wenn Sie Probleme, Ideen oder Feedback haben.
Dieser Scanner kann identifizieren:
Der Kompromittierungsindikator (IoC)-Scanner für CVE-2019-19781 wurde gemeinsam von FireEye Mandiant und Citrix entwickelt, basierend auf Erkenntnissen aus Incident-Response-Einsätzen im Zusammenhang mit der Ausnutzung von CVE-2019-19781. Das Ziel des Scanners ist es, verfügbare Logquellen und forensische Systemartefakte zu analysieren, um Beweise für eine erfolgreiche Ausnutzung von CVE-2019-19781 zu identifizieren. Es gibt Einschränkungen hinsichtlich dessen, was das Werkzeug leisten kann, und daher sollte die Ausführung des Werkzeugs nicht als Garantie dafür angesehen werden, dass ein System frei von Kompromittierung ist. Beispielsweise könnten Logdateien auf dem System mit Kompromittierungsnachweisen abgeschnitten/gerollt sein, das System könnte neu gestartet worden sein, ein Angreifer könnte das System manipuliert haben, um Kompromittierungsnachweise zu entfernen, und/oder ein Rootkit installiert haben, das Kompromittierungsnachweise maskiert, usw.
Die Ausgabe dieses Werkzeugs fällt in eine von drei Kategorien:
Beweis für Kompromittierung. Dies ist die Standardeinstellung.
Jeder Beweis, der in diese Kategorie fällt, zeigt an, dass ein Gerät erfolgreich kompromittiert wurde.
Dies kann alles sein, von der Ausführung von Befehlen, die Informationen offenlegen (z. B. Anzeigen der Konfigurationsdateien ns.conf oder smb.conf), bis hin zur Installation einer Hintertür (z. B. NOTROBIN, ein Coin-Miner usw.) oder dem Ablegen einer Perl-basierten Web-Shell.
Beweis für erfolgreiches Schwachstellen-Scanning (dies könnte ein autorisierter Systemadministrator oder ein nicht autorisierter Angreifer sein). Jeder Beweis, der in diese Kategorie fällt, zeigt an, dass sich das System in einem anfälligen Zustand befand (z. B. war die Gegenmaßnahme nicht angewendet) und dass mindestens der erste Schritt zur Ausnutzung von CVE-2019-19781 erfolgreich war.
Beweis für fehlgeschlagenes Schwachstellen-Scanning. Jeder Beweis, der in diese Kategorie fällt, zeigt an, dass Versuche, das System zu scannen oder auszunutzen, fehlgeschlagen sind.
Dieses Werkzeug ist nicht garantiert, alle Kompromittierungsnachweise oder alle Kompromittierungsnachweise im Zusammenhang mit CVE-2019-19781 zu finden. Wenn Anzeichen für eine Kompromittierung auf Systemen festgestellt werden, sollten Organisationen eine forensische Untersuchung des kompromittierten Systems durchführen, um den Umfang und das Ausmaß des Vorfalls zu bestimmen. Dieses Werkzeug wird WIE BESEHEN und ohne Gewährleistung angeboten.
Sie sollten das eigenständige Bash-Skript vom Releases-Tab dieses Repositorys herunterladen. Das Kopieren des Quellverzeichnisses auf eine Citrix ADC Appliance ist möglich, aber nicht empfohlen.
Der IoC-Scanner kann direkt auf einer Citrix ADC Appliance ausgeführt werden.
In diesem Modus scannt das Werkzeug Dateien, Prozesse und Ports auf bekannte Indikatoren.
Das Werkzeug schreibt Diagnosemeldungen in den STDERR-Stream und Ergebnisse in den STDOUT-Stream.
Bei typischer Verwendung sollten Sie STDOUT zur Überprüfung in eine Datei umleiten.
Das Werkzeug muss im Live-Modus auf einer Citrix ADC Appliance als root ausgeführt werden.
Zum Beispiel:
$ sudo bash ./ioc-scanner-CVE-2019-19781-v1.1.sh > "/tmp/results-$(date).txt"
Das Werkzeug ist für die Verwendung mit den folgenden Produkten konzipiert:
Der IoC-Scanner kann auch ein gemountetes forensisches Image untersuchen. In diesem Szenario übergeben Sie ein Befehlszeilenargument, das den Pfad zum Stammverzeichnis des Images angibt. Sie müssen nicht root sein, um im Offline-Modus zu laufen.
Zum Beispiel:
$ bash ./ioc-scanner-CVE-2019-19781-v1.1.sh /mnt/path/to/evidence/root/
In beiden Modi extrahiert das Werkzeug unterstützenden Code in ein temporäres Verzeichnis; dieses Verzeichnis wird bei Beendigung des Skripts gelöscht. Das Werkzeug nimmt keine weiteren Änderungen am System vor, obwohl es zur Erzeugung von Logeinträgen führen kann.
Wie bei jeder forensischen Analyse bevorzugen Sie die Offline-Analyse eines dd-Images gegenüber der Live-Reaktion.
Dies wird die Wahrscheinlichkeit eliminieren, dass das Werkzeug relevante Beweise überschreibt.
Bitte lesen Sie die Häufig gestellten Fragen für weitere Details.
Wenn Sie weitere Wege zur Identifizierung von Kompromittierungen erfinden, ziehen Sie bitte in Betracht, zu diesem IoC-Scanner beizutragen. Wir möchten den gründlichsten und korrektesten Scanner wie möglich bereitstellen.
Das Hauptziel ist es, Kompromittierungsindikatoren mit hohem Vertrauen zu melden. Da Benutzer sich auf die Ausgabe dieses Werkzeugs verlassen können, um weitere Untersuchungen einzuleiten, ist es wichtig, dass wir sie nicht auf eine falsche Fährte schicken. Daher sollte Aktivität wie einfaches Scannen im Standardmodus nicht gemeldet werden. Jegliche Beweise dafür, dass ein Akteur auf das System zugegriffen, Informationen abgerufen oder Inhalte erstellt hat, sollten immer gemeldet werden.
Wir stellen dieses Werkzeug als Bash-Skript bereit, da es ein gemeinsamer Nenner über Citrix ADC Appliances hinweg ist. Hier ist die Feature-Matrix für Citrix ADC-Releases:
Obwohl wir gesehen haben, dass Malware Go verwendet, um FreeBSD/NetScaler anzugreifen, unterstützt Go FreeBSD 6.x nicht.
Wir pflegen spärliche Dateisystem-Images mit Kompromittierungsnachweisen im Verzeichnis ./tests/.
Wenn Sie diesem Werkzeug IoCs hinzufügen, wie bekannte Pfade oder blockierte Inhalte, stellen Sie bitte Beispiele der Nachweise zum Testen bereit.
Sie können die Unit-Tests auf einem Linux- oder macOS-System wie folgt ausführen:
$ bash ./tests/test.sh
runnning test: access-logs
runnning test: xml-template
runnning test: crontab
runnning test: var-cron-tabs-nobody
runnning test: error-logs
runnning test: file-system
runnning test: netscalerd
runnning test: notrobin-tmp-init
runnning test: notrobin-var-nstmp-nscache
runnning test: ns-content
runnning test: chr-encoded-template
runnning test: copied-ns-conf
runnning test: curl-in-template
runnning test: perms
runnning test: var-tmp-netscaler-portal-templates
runnning test: var-vpn-bookmark
runnning test: webshell-in-scripts
runnning test: shell-history
runnning test: bash_log
runnning test: notice_log
Sobald Sie das Quell-Repository ausgecheckt haben, können Sie ein eigenständiges Skript mit dem Werkzeug ./build.sh erstellen.
Dies packt das primäre Skript und unterstützende Ressourcen in ein einzelnes Bündel.
Bei Ausführung wird es in ein temporäres Verzeichnis extrahiert, von dort ausgeführt und dann aufgeräumt.
Zum Erstellen:
$ bash ./build.sh > ioc-scanner-CVE-2019-19781-rev$(git rev-parse HEAD | cut -c 1-8).sh
Für weitere Informationen von FireEye bezüglich CVE-2019-19781 und Ausnutzung in freier Wildbahn siehe:
Die Reaktion auf CVE-2019-19781 war eine bedeutende Anstrengung in der gesamten Sicherheitsbranche, und diese Blogs zitieren stark zusätzliche Beiträge, die für Benutzer dieses Werkzeugs von Wert sein werden. Wir empfehlen, das verlinkte Material aus diesen Beiträgen zu lesen, um Aktivitäten in Ihrer Umgebung bestmöglich zu verstehen. Wie immer steht das FireEye Mandiant-Team zur Verfügung, um Folgefragen zu beantworten oder bei einer Untersuchung weiterzuhelfen, indem Sie uns hier kontaktieren.
| NetScaler Version | OS | Verfügbare Sprachen |
|---|
| 13.0 | FreeBSD 8.4 | Bash, Perl, Python |
| 12.1 | FreeBSD 8.4 | Bash, Perl, Python |
| 12.0 | FreeBSD 8.4 | Bash, Perl, Python |
| 11.1 | FreeBSD 8.4 | Bash, Perl |
| 10.5 | FreeBSD 8.4 | Bash, Perl |
| 10.1 | FreeBSD 6.3 | Bash, Perl |
| 9.3 | FreeBSD 6.3 | Bash, Perl |