IT NEXT GEN GmbH hat eine Mailware beobachtet, die über Adware- und trojanerähnliche Funktionen verfügt und auf der Programmiersprache Go (allgemein als Golang bezeichnet) basiert. Die Malware, die erstmals im Dezember 2021 entdeckt wurde, zielt derzeit auf macOS-Geräte ab, kann den Netzwerkverkehr abfangen, mit einem Command-and-Control-Kanal (C2) kommunizieren und für die Erkundung von Aktivitäten auf den Endgeräten verwendet werden. Microsoft hat diese Bedrohung “Proxit” genannt, basierend auf den Projekten und Funktionen, die der Malware-Entwickler verwendet.

Die Malware nutzt mehrere Open-Source-Tools für das Eindringen und erstellt eigene Module, um den Datenverkehr von verschiedenen Chat-, Medien- und Finanzanwendungen abzufangen. Obwohl Golang-basierte Malware nicht besonders neu ist, erwarten wir, dass mehr Hacker die Go-Programmiersprache zur Entwicklung neuer Malware nutzen werden.

Microsoft Defender Antivirus kann diese Malware erkennen und vor ihr schützen. Microsoft Defender for Endpoint erkennt und blockiert außerdem zusätzliche heruntergeladene Daten und verdächtige Systemaktivitäten im Zusammenhang mit dieser Bedrohung.

Was passiert hier genau?

Diese Malware gehört zu einer laufenden Kampagne, die ihre Technik gegen Ende Dezember 2021 geändert und in den letzten Monaten mehrere Funktionsupdates erhalten hat. Alle verdächtigen Dateien und ihre aktualisierten Versionen werden auf der Domain  “peerbinary-manager.ams3.digitaloceanspaces.com” gehostet. Die Bestimmung von Zielen ist noch unbekannt, aber es ist möglich, dass sich diese Malware in Form von Malvertising oder als gefälschtes Software-Update getarnt verbreitet.

Der erste Zugriff erfolgt über eine ausführbare macOS-Datei (Mach-O), die in ZIP-Archive eingebettet hat und auf Geräten abgelegt wird. Die Python-basierte ausführbare Mach-O-Datei ist ein Downloader für zusätzliche Daten, die wiederum eine weitere ZIP-Datei mit der darin eingebetteten Golang-Binärdatei herunterlädt. Die zusätzlichen Daten werden über eine Curl-Anfrage heruntergeladen und in das Verzeichnis /tmp entpackt. Sobald die Malware Zugriff erhält, verwendet sie das Programm “xattr” (Extended Attributes), um Apples Gatekeeper-Programm zum Schutz von Anwendungen zu umgehen – ein Programm, das sicherstellt, dass nur signierte und beglaubigte Anwendungen unter macOS ausgeführt werden, indem es das Quarantänekennzeichen entfernt. Die Entfernung des Quarantänekennzeichens wird von Apples Gatekeeper-Schutz gelesen, und wenn die Datei ausgeführt wird, wird der Benutzer aufgefordert, den Start entweder zuzulassen oder zu verweigern. Die Malware versucht dann, ein Duplikat der Golang-basierten Mach-O Adware im Ordner “/Library/Application Support” zu erstellen und auszuführen. Nach dem Start werden alle ZIP- und anfänglichen Dropper-Dateien mit dem Befehlszeilen-Dienstprogramm rm entfernt, um den Fußabdruck des Angreifers zu minimieren.

Die Golang-basierten Daten werden im Ordner “/library/application support” abgelegt. Das wichtigste Modul in der Golang-basierten Binärdatei ist ein speziell entwickeltes Modul namens “proxit”, das zum Abfangen des Netzwerkverkehrs verwendet wird. In der neuesten Version wurden neben der Netzwerküberwachung und dem Senden der abgefangenen Daten an den Server neue Funktionen hinzugefügt. Das Proxit-Modul enthält mehrere maßgeschneiderte Module, mit denen die Malware verschiedene Aktivitäten durchführen kann.
Einige der interessanten Module zur Funktionalität von Proxit sind hier aufgeführt:

proxit_com_peer_peer* – für den Aufbau und die Verwaltung einer Verbindung mit dem C2-Server
proxit_com_common_config* – zum Laden der Konfigurationsdatei entsprechend der Version
proxit_com_common_messages* – zum Senden und Empfangen von Nachrichten
proxit_com_cnc_grpcmodels* – für die Einrichtung von Peer-Proxys und Kommunikationskanälen
proxit_com_common_hostinfo* – zum Sammeln von Hardware-Informationen der kompromittierten Geräte wie z.B. CPU-Statistiken
proxit_com_common_logger* – für die Protokollierung der Startphasen von Proxit

Wenn der Payload im Anwendungsordner gestartet wird, gleich eine Systemprüfung der Betriebssystemversionen und einige andere Prüfungen durchgeführt, um zu bestätigen, dass sie in einer virtuellen Umgebung ausgeführt wird. Diese Aufgaben werden durch Abfragen über Befehlszeilen erledigt. Wir haben auch mehrere Varianten beobachtet, bei denen verschiedene Golang-Projekte eingebunden wurden, die ähnliche Ergebnisse abliefern.