Wir analysieren eine Sicherheitsanfälligkeit in Citrix ADC, mit der Sie in einer Minute in das interne Netzwerk des Unternehmens eindringen können

Ende letzten Jahres entdeckte ein Experte von Positive Technologies die Sicherheitsanfälligkeit CVE-2019-19781 in der Citrix ADC-Software, mit der jeder nicht autorisierte Benutzer beliebige Befehle des Betriebssystems ausführen kann. Weltweit sind rund 80.000 Unternehmen



bedroht . Um die Sache noch schlimmer zu machen, wird Citrix ADC an der Schnittstelle zwischen dem externen und dem internen Netzwerk eines Unternehmens installiert. Nach dem Ausnutzen der Sicherheitsanfälligkeit erhält der Angreifer sofort Zugriff auf das interne Netzwerk des Unternehmens und kann Angriffe auf das private Netzwerksegment entwickeln. In dem heutigen Artikel wird der Autor der Studie die Sicherheitsanfälligkeit genauer analysieren, Einzelheiten zu ihrer Erkennung und Ausnutzung. Gehen!







Was ist Citrix ADC?



Citrix ADC ist eine softwarebasierte Lösung für die Bereitstellung und den Lastausgleich von Anwendungen, die speziell entwickelt wurde, um die Leistung herkömmlicher Cloud- und Webanwendungen zu beschleunigen, unabhängig davon, wo sie gehostet werden. Solche Controller werden am häufigsten in der IT- und Telekommunikationsbranche eingesetzt. Prognosen zufolge wird die Nachfrage nach ADCs von Finanz- und Versicherungsunternehmen bis 2023 steigen.



Wie ernst ist es?



Bei der Überwachung aktueller Bedrohungen (Threat Intelligence) wurde festgestellt, dass mindestens 80.000 Unternehmen aus 158 Ländern potenziell anfällig sind. Zum Zeitpunkt der Entdeckung der Sicherheitsanfälligkeit gehörten die Vereinigten Staaten von Amerika (der absolute Marktführer - mehr als 38% aller gefährdeten Organisationen befinden sich in den USA), Deutschland, Großbritannien, den Niederlanden und Australien zu den TOP-5 nach Anzahl dieser Organisationen.



Russland belegte den 26. Platz in Bezug auf die Gesamtzahl der potenziell gefährdeten Unternehmen in verschiedenen Geschäftsbereichen - insgesamt mehr als 300 Organisationen. Kasachstan und Weißrussland belegten den 44. bzw. 45. Platz in Bezug auf die Anzahl der gefährdeten Unternehmen.



Ab Februar 2020 gehörten Brasilien (43% der Unternehmen, in denen die Sicherheitsanfälligkeit ursprünglich festgestellt wurde), China (39%), Russland (35%), Frankreich (34%) zu den wichtigsten Ländern in Bezug auf die Anzahl potenziell gefährdeter Organisationen. Italien (33%) und Spanien (25%). Die beste Dynamik bei der Beseitigung von Sicherheitslücken zeigten die USA, das Vereinigte Königreich und Australien: In diesen Ländern wurden 21% der Unternehmen registriert, die weiterhin gefährdete Geräte verwendeten und keine Schutzmaßnahmen ergriffen.







Entdeckung und Betrieb



Gleich zu Beginn meiner Recherche stellte ich fest, dass ein nicht autorisierter Benutzer mit Path Traversal auf statische Dateien zugreifen kann, auf die ohne Autorisierung nicht zugegriffen werden kann (/vpn/../vpns/style.css). Dies wurde während einer Black-Box-Analyse des Citrix ADC festgestellt.







Das oben beschriebene Verhalten hat mich interessiert, daher habe ich beschlossen, das Citrix ADC-Image zu finden und lokal auszuführen (danke an meinen Kollegen Yuri Aleinov für die Hilfe).



Zunächst haben wir die Apache-Webserverkonfiguration (/etc/httpd.conf) analysiert, die für die Weboberfläche dieser Anwendung verantwortlich ist. Wie wir im Bild unten sehen können, werden Pfade, die unter das Muster " /vpns/portal/scripts/.*\.pl$ " fallen, von der ModPerl :: Registry-Funktion verarbeitet. Es stellt sich heraus, dass es möglich ist, Perl-Skripte aus dem Ordner auszuführen/ netscaler / portal / scripts / ohne autorisierung.







Danach begann ich, die Skripte zu analysieren, die wir unter /vpn/../vpns/portal/scripts/ [scriptName] .pl aufrufen können .







Fast jedes Skript ruft die csd-Funktion des Moduls NetScaler :: Portal :: UserPrefs auf ( /netscaler/portal/modules/NetScaler/Portal/UserPrefs.pm ). Die Funktion funktioniert mit den HTTP-Headern NSC_USER und NSC_NONCE. Mit dem zweiten Header werden keine interessanten Aktionen ausgeführt, aber der Wert des NSC_USER-Headers wird als Dateiname verwendet. Wenn die Datei (deren Name als Wert des NSC_USER-Headers übergeben wurde) nicht vorhanden ist, wird diese Datei mit einer bestimmten Struktur erstellt. Wenn sie bereits vorhanden ist, wird die Variable $ doc analysiert und basiert darauf .... Es stellt sich heraus, dass wir, wenn wir die Pfadüberquerung im Dateinamen verwenden, eine Datei mit der Erweiterung ".xml" in jedem Verzeichnis des Dateisystems erstellen können, in dem wir Schreibberechtigungen haben. Um dies zu überprüfen, senden Sie die Zeile "../../../../tmp/myTestFile" als Wert des Headers "NSC_USER" und prüfen Sie, ob die Datei im Verzeichnis "/ tmp /" vorhanden ist. Zu diesem Zeitpunkt können wir eine Datei mit der Erweiterung ".xml" erstellen, aber es gibt keine Möglichkeit, den Inhalt der Datei zu steuern. Achten wir auf das Skript "newbm.pl", das sich auch in dem Verzeichnis befindet, an dem wir interessiert sind. Dieses Skript verwendet POST-Parameter und schreibt die Werte von Parametern wie "url", "title" und "desc" in eine Datei (deren Name im NSC_USER-Header angegeben ist).



























Jetzt ist es nicht nur möglich, XML-Dateien an beliebigen Stellen zu erstellen, sondern auch deren Inhalt teilweise zu steuern.



Um den Pfad zu RCE fortzusetzen, kehren wir zur Webserverkonfiguration zurück und stellen fest, dass ein weiterer Pfad (/ vpns / portal /) von der Perl-Funktion NetScaler :: Portal :: Handler ( / netscaler / portal / modules / NetScaler / Portal / verarbeitet wird). Handler.pm )







Die Handlerfunktion ruft den Teil des Pfads nach dem letzten "/" Zeichen als Dateinamen ab, sucht ihn im Ordner "/ netscaler / portal / templates /" und versucht, diese Datei mit der Bibliothek "Template Toolkit" zu rendern. Wenn wir also unsere Datei mit Vorlagen in den Ordner laden können, können wir auch das Rendern aufrufen.











Eine weitere Ausnutzung wird durch die Tatsache erschwert, dass die Bibliothek "Template Toolkit" in einem solchen Modus arbeitet, dass es unmöglich ist, Perl-Code mit Standardmethoden auszuführen. Beispielsweise kann die Direktive " [% PERL%] " nicht verwendet werden .







Aufgrund dieser Einschränkungen habe ich mich entschlossen, nach Schwachstellen in den Standard-Bibliotheks-Plugins zu suchen. Betrachten Sie ein Plugin wie "Datafile" ( /usr/local/lib/perl5/site_perl/5.14.2/mach/Template/Plugin/Datafile.pm ). Die Datei ist ziemlich klein, daher achten wir sofort auf den Aufruf der Standardfunktion "open" mit zwei Argumenten. Diese Verwendung ist unsicher und kann zu RCE führen.







Wir versuchen, die Sicherheitsanfälligkeit lokal auszunutzen und erstellen zur Überprüfung eine Datei "testRCE" im Ordner "/ tmp /".







Im Moment haben wir die Möglichkeit, Dateien an beliebigen Stellen im System zu erstellen, um deren Inhalt und Schwachstelle in der Template Toolkit-Bibliothek teilweise zu kontrollieren. Wir verwenden all dies, um die Ausführung beliebiger Befehle von einem nicht autorisierten Benutzer zu erhalten.



Erstellen Sie im Ordner eine Datei mit Vorlagen, deren Rendering zur Ausführung des Codes und zur Erstellung eines Web-Befehlszeileninterpreters führt.







Dann rendern wir diese Datei.







Wir wenden uns dem zuvor erstellten Skript (Web-Shell) zu und führen einen beliebigen Betriebssystembefehl aus.







Wie Sie sich schützen können



Citrix hat Anleitungen zur Behebung dieser Sicherheitsanfälligkeit veröffentlicht. Darüber hinaus empfiehlt der Hersteller den Benutzern, alle anfälligen Softwareversionen sofort auf die empfohlenen zu aktualisieren.



Unternehmen können Firewalls auf Anwendungsebene verwenden, um einen potenziellen Angriff zu blockieren. Beispielsweise erkennt die PT Application Firewall diesen Angriff sofort: Das System sollte so eingestellt werden, dass gefährliche Anforderungen für Echtzeitschutz blockiert werden. Unter Berücksichtigung der Gesamtlebensdauer der identifizierten Sicherheitsanfälligkeit (die seit der Veröffentlichung der ersten anfälligen Version der Software, dh seit 2014, relevant ist) ist es auch wichtig, im Nachhinein eine mögliche Ausnutzung dieser Sicherheitsanfälligkeit (und dementsprechend einen Kompromiss der Infrastruktur) zu ermitteln.



Benutzer von PT Network Attack Discovery können ab dem 18. Dezember 2019 spezielle Regeln nutzen, die Versuche erkennen, diese Sicherheitsanfälligkeit online auszunutzen.



Autor : Mikhail Klyuchnikov (@ __mn1__ ), Positive Technologies



Zeitleiste



  • 5. Dezember 2019 Citrix gemeldet
  • 19. Dezember 2019 Freigabe von Minderungsmaßnahmen von Citrix



All Articles