Zum Inhalt springen
Nehmen Sie am 10. September 2024 an Censys teil und besuchen Sie unseren Bedrohungsabwehr Workshop in San Francisco, CA | Jetzt anmelden
Blogs

CVE-2022-46169: Kakteen

Anfang Dezember 2022 veröffentlichte eine Open-Source-Netzwerküberwachungslösung namens Cacti (die ursprünglich als Frontend für die Industriestandard-Netzwerkgrafikdatenbank RRDTool entwickelt wurde) einen detaillierten Sicherheitshinweis für Versionen bis einschließlich 1.2.22 und erhielt die CVE-Nummer CVE-2022-46169. Diese Sicherheitslücke blieb unbemerkt, bis SonarSource am 2. Januar 2023 einen Blog-Beitrag veröffentlichte, in dem es seine Erkenntnisse darlegte, und einige Tage später, am 7. Januar 2023, teilte die Shadowserver Foundation mit , dass die Sicherheitslücke in freier Wildbahn ausgenutzt wurde, um Malware herunterzuladen und zu installieren.

Censys hat 6.427 Hosts im Internet beobachtet, auf denen eine Version von Cacti läuft. Leider können wir die genaue Softwareversion nur sehen, wenn ein bestimmtes Thema(Sunrise) in der Webanwendung aktiviert ist. Dies gibt uns jedoch einen guten Einblick in die anfälligen und nicht-anfälligen Versionen dieses Problems. Im Folgenden sind die Versionen von Cacti aufgeführt, die wir sehen konnten. Die rot markierten Zeilen sind angreifbar, während die grün markierten Zeilen neuere, nicht angreifbare Versionen sind. Wie wir sehen können, laufen die meisten dieser Cacti-Server mit einer sehr alten und veralteten Version, wobei nur 26 Hosts mit einer der gepatchten Versionen arbeiten.

Kakteen Version Host-Zahl
1.1.38 465
1.2.16 141
1.2.22 122
1.2.21 111
1.2.19 106
1.2.14 84
1.2.10 64
1.2.15 63
1.2.2 55
1.2.18 53
1.2.17 52
1.2.20 44
1.1.19 33
1.2.12 32
1.2.3 25
1.2.23 22
1.2.8 19
1.1.36 16
1.2.9 15
1.1.37 15
1.2.7 13
1.2.5 12
1.2.6 11
1.2.1 10
1.1.28 8
1.2.13 8
1.2.4 8
1.1.30 7
1.1.27 7
1.1.24 6
1.2.11 6
1.1.35 6
1.2.0 4
1.3.0 4
1.1.29 4
1.1.26 3
1.1.25 3
1.1.20 3
1.1.33 2
1.1.21 1

Die meisten Hosts, auf denen Cacti läuft, befinden sich in Brasilien (1.320 Hosts), gefolgt von Indonesien mit 795 Hosts und den Vereinigten Staaten mit 254 Hosts.

Land Gastgeber
Brasilien 1,320 20.54%
Indonesien 795 12.37%
Vereinigte Staaten 254 3.95%
China 193 3.0%
Bangladesch 104 1.62%
Russland 99 1.54%
Ukraine 93 1.45%
Philippinen 70 1.09%
Thailand 65 1.01%
Vereinigtes Königreich 56 0.87%

Details zur Schwachstelle

Die größte Schwachstelle besteht darin, wie Cacti eine bestimmte HTTP-Anfrage für eine bestimmte Art von Polling-Aktion" verarbeitet, die in der Datenbank definiert ist. In der Software können Benutzer Aktionen zur Überwachung eines einzelnen Hosts (als "Poller" bezeichnet) definieren. Ein solcher Poller-Typ führt ein PHP-Skript aus und erwartet, dass die zurückgegebenen Daten korrekt formatiert sind. Eines der Abfrageargumente, die zur Ausführung dieser PHP-Skripte verwendet werden, ist jedoch nicht ordnungsgemäß bereinigt und wird an den Ausführungsaufruf weitergegeben, was zu einer Befehlsinjektion führt. Während diese Funktion nur authentifizierten Benutzern zur Verfügung stehen sollte, wurde ein weiterer Fehler aufgedeckt, der es dem Angreifer ermöglicht, die Authentifizierung vollständig zu umgehen.

Unten sehen wir eine erfolgreiche Befehlsinjektion, die zur Remotecodeausführung (RCE) führt:

Im Blog von SonarSource finden Sie einen ausgezeichneten Artikel mit weiteren Details über die Schwachstelle. Es wurde ein Proof-of-Concept-Exploit geschrieben, um Befehle auf einem verwundbaren Cacti-Server einzuschleusen und auszuführen.

Wer überwacht die Monitore?

Cacti ist nicht die einzige Anwendung, die zur Überwachung des Zustands einer Reihe von Diensten oder eines Netzwerks eingesetzt wird; es gibt viele weitere Beispiele. Diese Arten von Überwachungstools sind ausgezeichnete Ziele für Angreifer. Da diese Systeme in vielerlei Hinsicht Bestandsdatenbanken sind, enthalten sie wertvolle Informationen über den Aufbau und die Architektur eines Netzwerks. Da diese Systeme häufig standardmäßig (in der Regel zumindest schreibgeschützt) Zugriff auf die (Überwachungs-)Endpunkte des gesamten Unternehmens haben, könnte die Kompromittierung eines solchen Hosts der erste Schritt zur Infiltration des gesamten Unternehmens sein.

Auch wenn (derzeit) nicht alle Überwachungssoftware wie Cacti eine bekannte Schwachstelle aufweist, ist dies keine Entschuldigung dafür, sie öffentlich im Internet zu lassen, wenn dies nicht notwendig ist, insbesondere da die darin enthaltenen Daten sehr wertvoll sind. Censys empfiehlt immer, die Authentifizierung zu aktivieren und Überwachungsdienste hinter einem VPN- oder VPC-Segment zu platzieren, zusammen mit geeigneten IP-Filterregeln, um sicherzustellen, dass das Internet keinen Zugriff auf Ihre kritischen Ressourcen hat.

Angreifer können andere Dienste wie Cacti nutzen, um Informationen über ein Unternehmen zu erhalten. Das Systemüberwachungs-Tool Netdata beispielsweise liefert in Echtzeit Systemmetriken auf Host-Ebene über das Gerät, auf dem es läuft. Außerdem ist es standardmäßig nicht authentifiziert, so dass jeder mit einem Webbrowser das Innenleben eines Servers und alle darin enthaltenen pikanten Details einsehen kann. Zum Zeitpunkt der Erstellung dieses Berichts gab es über 30.000 Netdata-Dashboards, die über das Internet zugänglich waren.

Traefik, ein moderner HTTP-Reverse-Proxy und Load Balancer für Microservices, umfasst auch einen optionalen Überwachungsdienst und ein Dashboard für ihre Bereitstellungen. Wenn der Dienst nicht mit aktivierter Sicherheit konfiguriert ist, können viele Informationen versehentlich an die Öffentlichkeit gelangen. Zum Beispiel alle derzeit laufenden Anwendungen und Dienste, die Ports und eventuelle Fehlermeldungen der Instanz.

(Traefik Dashboard Landing Page)

(Überwachung auf Dienstebene)

Zum Zeitpunkt des Verfassens dieses Beitrags waren über 14.000 Traefik-Überwachungs-Dashboards im Internet verfügbar, die wertvolle Einblicke in das Netzwerk eines Unternehmens geben können.

Sogar die Protokolle, die zur Überwachung von Systemen eingesetzt werden, können falsch konfiguriert und dazu verwendet werden, Informationen über ein Netzwerk zu erhalten. SNMP (Simple Network Management Protocol) wird beispielsweise oft mit einem öffentlichen Benutzer konfiguriert, und wenn man weiß, wie man es benutzt, kann es zu einer sehr wertvollen Schnittstelle werden. So können Sie beispielsweise öffentliche SNMP-Dienste nutzen, um Informationen über die internen und externen Routing-Tabellen eines Hosts oder Routers zu erhalten:

~$ snmpnetstat -v 2c -c public -Cr <X.X.X.X>
Routing tables (ipCidrRouteTable)
Destination                Gateway            Flags   Interface
default                    XXX.XX.XX.254      <UG>    
10/8                       10.255.1.254       <UG>    
10.255.1/24                *                  <U>     Gi2.1023
10.255.1.6                 *                  <UH>    Gi2.1023
172.XX.10/24               *                  <U>     Gi1.1017
172.XX.10.22               *                  <UH>    Gi1.1017
172.XX/16                  XXX.XX.X.254       <UG>    
172.XX.1/24                *                  <U>     Gi2.1012
172.XX.1.6                 *                  <UH>    Gi2.1012

Sie können sogar alle derzeit bestehenden Netzwerkverbindungen, die über dieses Gerät laufen, und alle abhörenden Dienste, die sich möglicherweise hinter einer Firewall befinden, anzeigen. Sie können sogar die Funktionalität des Unix-Befehls "netstat" imitieren:

 

~$ snmpnetstat -v 2c -c public -Ca X.X.X.X
Active Internet (tcp) Connections
Proto Local Address               Remote Address                    State   PID
tcp4  *.*                         *.*                                   0     0
Listening Internet (tcp) Connections
Proto Local Address                 PID
tcp4  *.*                             0
Active Internet (udp) Connections
Proto Local Address               Remote Address                PID
udp4  *.*                         *.*                             0
udp4  *.*                         *.*                             0
udp4  *.*                         *.*                             0
udp4  *.*                         *.*                             0
udp4  *.*                         *.*                             0
udp4  *.*                         *.*                             0
udp4  *.*                         *.*                             0
udp4  XX.XXX.XXX.XX.snmp          ?.35504                         0
udp4  XXX.10.10.22.bootps         XXX.XX.X.XXX.bootps           331
udp4  XXX.10.10.22.ntp            *.ntp                           0
udp4  XXX.10.10.22.snmp-tra       *.*                             0
udp4  XXX.10.10.22.isakmp         *.*                             0
udp4  XXX.10.10.22.ipsec-na       *.*                             0
udp4  XXX.10.10.22.50834          *.*                             0

SNMP ist so weit verbreitet, dass Censys über 1,5 Millionen dieser Dienste im Internet sehen kann. Wenn wir alle physischen Netzwerkschnittstellen all dieser Dienste zusammenzählen (indem wir alle Werte der OID, die die Anzahl der Schnittstellen enthält, addieren), erhalten wir 2.197.202.422 physische Schnittstellen. Ich könnte noch viel mehr über die Nützlichkeit von SNMP aus der Sicht eines Angreifers erzählen, aber das ist ein Thema für einen anderen Beitrag an einem anderen Tag.

Dies sind nur einige wenige Beispiele für falsch konfigurierte oder standardmäßig unsichere Überwachungstools, die wir hier bei Censys kennengelernt haben. Der wichtigste Punkt, auf den wir hinauswollen, ist, dass solche Dienste gesperrt und vor den neugierigen Händen potenzieller Angreifer geschützt werden sollten.

Was kann getan werden?

  • Aktualisieren Sie auf die neueste Version von Cacti (v1.2.23 und v1.3.0)
  • Schränken Sie den Zugriff auf diese (und alle anderen Netzwerküberwachungs)-Anwendung mithilfe von Firewall-Regeln, VPN-Segmentierung oder VPC-Segmentierung ein, um sie vom Internet aus unzugänglich zu machen.
  • Censys ASM-Kunden haben Zugang zu mehreren Cacti-Risiken.

Referenzen

Lösungen für das Management von Angriffsflächen
Mehr erfahren