Checkliste für Citrix ADC CVE-2019-19781

Citrix hat eine Woche vor Weihnachten eine Warnung über eine kritische Sicherheitslücke (CVE-2019-19781) in allen Citrix ADC & Gateway Systemen veröffentlicht. Seit dem 10.1.2020 wurden mehrere funktionierende Exploits veröffentlicht, die für jeden zugänglich sind.

Wichtig ! Der Fix von Citrix mit der Responder Policy funktioniert nicht bei Systemen mit der Version 12.1.51.16/51.19, 50.31 und älter. Wenn diese Version im Einsatz ist, bitte auf die aktuellste 12.1 Version updaten.

Die Exploits ermöglichen eine anonyme Ausführung von Remotecode und dadurch nicht authentifizierten Angreifern, die verschiedenen Maschinen mit Root Rechten zu übernehmen.

Seit geraumer Zeit wird von verschiedenen Einrichtungen ein massives Scannen nach Citrix ADC Maschinen wahrgenommen. Diese erstellte Liste wird nun angegriffen.

Es gibt nun einen Online Checker für das Exploit

cve-2019-19781.azurewebsites.net

Für reine Microsoft Admins gibt es nun auch Powershell Scripts um zu prüfen, ob das System korrumpiert oder noch offen ist.

https://github.com/j81blog/ADC-19781

Firmware Updates

Citrix kann derzeit keinen Patch zur Verfügung stellen. Es stehen aber schon Termine fest, wann diese erscheinen werden:

Citrix ADC and Citrix Gateway
VersionRefresh BuildExpected Release Date
10.510.5.70.12Patch is here
11.111.1.63.15Patch is here
12.012.0.63.13Patch is here
12.112.1.55.18Patch is here
13.013.0.47.24Patch is here
Citrix SD-WAN WANOP  
ReleaseCitrix ADC ReleaseExpected Release Date
10.2.610.2.6bPatch is here
11.0.311.0.3bPatch is here

Anleitung zum Updaten der Appliances findet man <<hier>>

Workaround

Führt die folgenden Befehle über das Command line interface der GUI oder direkt auf der Appliance (über Putty) aus.

Command line interface

  • Logt euch auf das betroffene System ein und geht dort auf die Navigationspunkte System > Diagnostics
  • Im Menüpunkt Diagnostics geht ihr auf der rechten Seite auf Command line interface
  • In der CLI lönnt ihr die folgenden Befehle eingeben und einzeln per Go ausführen

Direkt per Putty

  • Startet Putty und gebt die Management IP des betroffenen Systems ein
  • Verbindet euch mit dem System und gebt euren Benutzer und das Passwort ein
  • Nun könnt ihr die unten aufgeführten Befehle einfügen und ausführen

Standalone System

Mit dem folgenden Befehlen werden die Responder Actions & Policy erstellt.

Nun stellen wir noch sicher, dass die Änderungen auch für die Management Schnittstelle gelten.

HA Pair

Auf dem Primary

Gebt folgendes per Putty oder CLI ein.

Danach schwenkt den HA State der Maschine per GUI oder Shell Command auf Secondary.

  • Navigiert nach System > High Availability

  • Im Nodes Reiter, wählt einen Node aus und klickt in der Action list auf Force Failover.

Oder gebt per Putty oder CLI den folgenden Befehl ein:

Nun stellen wir noch sicher, dass die Änderungen auch für die Management Schnittstelle gelten. Wieder über Putty oder CLI, folgendes eingeben.

Auf dem Secondary, nachdem der Primary gestartet ist

Schwenkt den HA State der Maschine per GUI oder Shell Command wieder auf Secondary und gibt danach folgendes über Putty oder CLI ein.

Cluster

CLIP

Gebt folgendes per Putty oder CLI ein.

Nun stellen wir noch sicher, dass die Änderungen auch für die Management Schnittstelle gelten und geben folgendes über Putty oder CLI ein.

Auf jedem Cluster Knoten

Gebt folgendes per Putty oder CLI ein.

In der Admin Partition

Gebt folgendes per Putty oder CLI ein.

Überprüfung der Systeme

Selbst Systeme mit den vorhandenen Schutzmaßnahmen sollten einer eingehenden Überprüfung unterzogen werden, da man nie mit Sicherheit sagen kann, wann Angriffe begonnen haben könnten, bevor sie breit angelegt wurden.

Hier eine Zusammenfassung der Artikel, Twitter Einträge und eigener Erfahrungen bezüglich der Angriffswelle.

Bash Skript zum überprüfen des Systems

Daniel Weppeler hat ein Bash Script erstellt um Citrix ADC / Netscaler auf Korrumpierung zu prüfen.

Download des Scripts in Git unter

https://t.co/8WxG21YXJ2?amp=1

Danach könnt ihr das Script wie folgt starten.

Citrix hat auch noch ein Script herausgebracht. Ladet es hier runter und kopiert es dann auf den Netscaler / Citrix ADC hoch. Startet es danach, mit dem folgenden Befehl (Bei mir liegt es in /tmp).

Danach könnt ihr den Log File prüfen, mit den folgenden Befehlen.

XML Dateien

Die Exploits schreiben alle Dateien in mehrere verschiedene Verzeichnisse. Überprüft daher die folgenden Verzeichnisse, ob dort Unbekannte Benutzernamen auftauchen. Mittlerweile löschen Hacker diese Dateien, nachdem diese sich aufgeschaltet haben. Alle Befehle sollten per Putty oder CLI ausgeführt werden.

Dieses Verzeichnis beinhaltet normalerweise keine XML-Dateien und daher sollte folgende Anzeige folgen.

Wenn Dateien gefunden worden sind, ist ein erster Zugriff auf das System schon geschehen.

Dieses Verzeichnis existiert normalerweise gar nicht.

Wenn aber kein Error kommt oder sogar Dateien in diesem Ordner sind, wurde das System erfolgreich angegriffen.

Hier ein Angriff mit einer .xml.ttc2 Datei.

Der Inhalt der .xml.ttc2 Datei.

Dieses Verzeichnis sollte nicht existieren oder nur XML-Dateien beinhalten, von Benutzern die man kennt.

Wenn XML-Dateien in diesem Ordner vorhanden sind, die Unbekannt sind, wurde das System erfolgreich angegriffen.

Wenn Dateien vorhanden sind, diese umgehend löschen, um weitere Angriffe direkt zu bemerken.

Neue Ordner

Die folgenden Ordner sollten nicht vorhanden sein.

UDP Listener

Bei einer Attacke, wo der Angreifer alle anderen Backdoors schliesst, baut er sich selber dann eine Backdoor über UDP Port 18634 auf. Scannt daher genau nach diesem Port.

Bash logs

Es können bei Attacken auch Einträge in der bash.logs erscheinen. Wir suchen hier nach dem Benutzer nobody, da dies seine Rechte sind, wenn er über Apache kommt und einem Pfad der bei Angriffen erstellt wird.

Abgebildet einige Angriffe.

Apache Log Dateien

Darüber hinaus hinterlassen Angriffe, Einträge in den Apache httpaccess Log Dateien.

Attacken….

Abgebildet sind weitere Attacken.

Und noch mehr Attacken..

Oben eine Attacke mit einem netten Verweis auf die offene Stelle unter CVE-2019-19781 (11 Januar 2020 07:39:59) und weitere Angriffe am Abend (19:18:11 usw.)

Cron Jobs

Angreifer könnten sich über die Cron-Jobs eine Backdoor eingebaut haben und damit einen persistenten Zugriff erhalten, auch wenn die Schwachstelle gepatcht wird. Überprüft eure crontab Datei auf Anomalien.

Unten aufgeführt eine nicht korrumpierte crontab Datei.

No alt text provided for this image

Überprüft nun noch, ob neue Benutzer hinzugefügt worden sind. Unten aufgeführt die normalen Benutzer in der passwd Datei bei Citrix ADC / Netscaler vor der Version 13.0.

Hier eine Liste der Benutzer auf einem Citrix ADC Version 13.0.

Überprüft nun noch, ob einer der vorhandenen Benutzer einen Cron Job zugeordnet hat (hier z.B. der Benutzer nobody).

Hier sieht man die crontab Datei bei einem korrumpierten Server.

Inhalt dieser Datei.

Löscht diese Datei aus dem Pfad:

Die ERROR Antwort bedeutet nur das diese Benutzer keine Cron Jobs zugeordnet haben, was ein normales Verhalten ist.

Nobody Prozesse

Im Kontext des Nobody Benutzers wurden bei Angriffen auch neue Prozesse gestartet. Hier ein Beispiel für die erlaubten Prozesse.

Und ein attackierter Server. Die oberste Zeile ist Schadsoftware.

Perl & Python Scripte

Durch das hinzufügen von eigenen Perl oder Python Skripten kann ebenfalls ein Backdoor geöffnet werden.

Wenn mehr als die angebildeten grep Abfragen zu sehen sind, sollten die weiteren Skripte, durch eine Google Suche überprüft werden.

Dies sind normale Skripte für eine ADC Instanz die in Azure gehostet ist.

Crypto Miners

Ich habe mehrere ADC Instanzen gesehen, die nach dem Angriff als Crypto Miner genutzt worden sind. Mit dem folgenden Befehl sieht man alle laufenden Prozesse. Hier sollte kein weiterer Prozess, neben NSPPE-xx, dauerhaft auf 100% sein. Abgebildet ein normaler Zustand.

Vorgehensweise nach Update durch Citrix (Standalone,CLIP, HA Primary)

Führt die folgenden Befehle in Putty oder über die CLI aus, nachdem der Patch von Citrix (Ende Januar) installiert ist.

Entfernen des nsapi Befehls aus der rc.netscaler Datei.

Ein Neustart der Instanzen ist nicht notwendig, um die Richtlinie anzuwenden. Es ist ein vorbeugender Schritt, um sicherzustellen, dass alle offenen Sitzungen, die über die Schwachstelle eingegangen sind, gelöscht werden.

Gegenmaßnahmen bei betroffenen Systemen

Wie DJ Eshelmann in seinem Blog schreibt, soll man folgendes tun, wenn das System korrumpiert wurde.

  • Nehmt die ADC Instanz vom Netzwerk
  • Ändert das Kennwort aller auf dem ADC gespeicherten LDAP oder anderen AD / Netzwerkkonten
  • Stellt ein neues SSL-Zertifikat und eine neue Key Datei für alle Client SSL-Dateien auf dem Gerät aus (Die Schlüssel sind in Dateien auf dem ADC gespeichert, die theoretisch vom Angreifer ausgelesen werden könnten)
  • Wenn es eine VPX Appliance ist und Snapshots des Geräts (älter als der 9. Januar 2020) vorhanden sind, kann es sich lohnen, diese zuerst wiederherzustellen, aber dies ist KEINE GARANTIE für die Sicherheit
    • Um ganz sicher zu gehen, die Konfigurationsdatei des betroffenen Systems exportieren und in eine neue frische VPX Appliance kopieren / wiederherzustellen
    • Beachtet hierbei das die gleiche Hardware-Adresse genutzt wird, sonst ist die Lizenz ungültig und muss neu angefordert / eingespielt werden
    • Trennt das Netzwerk vor dem Start
    • Startet die Appliance und überprüft über die Konsole, dass der VPX nicht kompromittiert ist
    • Ändert das nsroot-Passwort
    • Nur das interne Netzwerk anschließen
    • Führt den oben aufgeführten Fix aus
    • Das externe Netzwerk anschließen
    • Behaltet die Protokolle und die Responder Hits im Auge
  • Ersetzt die SSL Zertifikate auf der Appliance zum frühestmöglichen Zeitpunkt
  • Widerruft die kompromittierten SSL Zertifkate und SSL Keys

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* I consent to having this website store my submitted information so they can respond to my inquiry.