MoustachedBouncer ist eine Cyberspionage-Gruppe, die von ESET Research entdeckt und in diesem Blogpost erstmals öffentlich beschrieben wird. Die Gruppe ist seit mindestens 2014 aktiv und zielt ausschließlich auf ausländische Botschaften in Belarus ab. Seit 2020 ist MoustachedBouncer höchstwahrscheinlich in der Lage, Adversary-in-the-Middle (AitM)-Angriffe auf ISP-Ebene in Belarus durchzuführen, um seine Ziele zu kompromittieren. Die Gruppe verwendet zwei separate Toolsets, die wir NightClub und Disco genannt haben.

Die wichtigsten Punkte dieses Blogposts:

  • MoustachedBouncer ist seit mindestens 2014 aktiv.
  • Wir schätzen mit mittlerem Vertrauen ein, dass die Gruppe im Interesse oder Auftrag von Belarus handelt.
  • MoustachedBouncer hat sich auf die Spionage von ausländischen Botschaften in Belarus spezialisiert.
  • MoustachedBouncer setzt seit 2020 die Adversary-in-the-Middle-Technik ein, um Überprüfungen von Captive Portals auf einen C&C-Server umzuleiten und Malware-Plugins über SMB-Freigaben bereitzustellen.
  • Wir glauben, dass MoustachedBouncer ein behördliches Abhörsystem (wie SORM) verwendet, um seine AitM-Operationen durchzuführen.
  • Wir gehen davon aus, dass MoustachedBouncer eng mit Winter Vivern zusammenarbeitet, einer anderen Gruppe, die es auf europäische Diplomaten abgesehen hat, aber andere TTPs verwendet.
  • Seit 2014 betreibt die Gruppe ein Malware-Framework, das wir NightClub genannt haben. Es nutzt die Protokolle SMTP und IMAP (E-Mail) für die C&C-Kommunikation.
  • Seit 2020 nutzt die Gruppe parallel dazu ein zweites Malware-Framework, das wir Disco nennen.
  • Sowohl NightClub als auch Disco unterstützen zusätzliche Spionage-Plugins, darunter einen Screenshotter, einen Audiorekorder und ein Tool zum Stehlen von Dateien (File Stealer).

Viktimologie

Laut ESET-Telemetrie zielt die Gruppe auf ausländische Botschaften in Belarus ab, und wir haben vier verschiedene Länder identifiziert, deren Botschaftsmitarbeiter angegriffen wurden: zwei aus Europa, eines aus Südasien und eines aus Afrika. Die wichtigsten Daten sind in Abbildung 1 dargestellt.

MoustachedBouncer_Timeline_edited

Abbildung 1. Zeitleiste der Aktivitäten von MoustachedBouncer

Zuschreibung

Obwohl wir MoustachedBouncer als eigenständige Gruppe verfolgen, haben wir Elemente gefunden, die uns mit geringer Sicherheit vermuten lassen, dass sie eng mit einer anderen Gruppe namens Winter Vivern zusammenarbeiten. Letztere wurde im Jahr 2021 entdeckt und ist 2023 immer noch aktiv. Im März 2023 nutzte Winter Vivern eine bekannte XSS-Schwachstelle (CVE-2022-27926) im Zimbra-E-Mail-Portal, um Webmail-Anmeldedaten von Diplomaten mehrerer europäischer Länder zu stehlen. Diese Kampagne wurde von den Forschern von Proofpoint öffentlich bekannt gemacht.

Die Aktivitäten von MoustachedBouncer erstrecken sich von 2014 bis 2022, und die TTPs der Gruppe haben sich im Laufe der Zeit weiterentwickelt. So haben wir zum Beispiel gesehen, dass sie AitM-Angriffe erst seit 2020 einsetzten. Die Zielrichtung ist jedoch die gleiche geblieben.

Tabelle 1 zeigt die Merkmale der einzelnen Kampagnen. Angesichts dieser Elemente gehen wir mit großer Sicherheit davon aus, dass sie alle mit MoustachedBouncer in Verbindung stehen.

Tabelle 1. Zusammenhänge zwischen den MoustachedBouncer-Kampagnen

 

VirusTotal
(2014)

Victim A (2017)

Victim B
 (2020-2022)

Victim C
(2020-2022)

Victim D
(2021-2022)

NightClub implant

X

X

 

X

 

NightClub plugins

 

X

X

X

 

Disco implant

 

 

X

 

X

SharpDisco dropper

 

 

X

 

 

Compromise via AitM

?

?

?

?

X

Malware delivery via AitM on SMB shares

 

 

X

 

X

Victims: foreign embassies in Belarus

?

X

X

X

X

 

Angriffsvektor: AitM

In diesem Abschnitt wird der anfängliche Zugriff durch Disco beschrieben. Wir kennen aktuell noch nicht die Methode, die MoustachedBouncer für die Installation von NightClub verwendet.

Gefälschtes Windows-Update

Um ihre Ziele zu kompromittieren, manipulieren die Betreiber von MoustachedBouncer den Internetzugang ihrer Opfer, wahrscheinlich auf ISP-Ebene, um Windows glauben zu machen, es befinde sich hinter einem unverschlüsselten Portal. Windows 10 prüft, ob es mit einer HTTP-Anfrage an http://www.msftconnecttest.com/connecttest.txt auf das Internet zugreifen kann . Falls die Antwort nicht Microsoft Connect Test lautet, wird ein Browserfenster auf http://www.msftconnecttest.com/redirect geöffnet. Bei den von MoustachedBouncer anvisierten IP-Bereichen wird der Netzwerkverkehr auf ISP-Ebene manipuliert, und die letztgenannte URL wird auf eine scheinbar legitime, aber gefälschte Windows-Update-URL, http://updates.microsoft[.]com/, umgeleitet. Daher wird die gefälschte Windows-Update-Seite einem potenziellen Opfer bei der Netzwerkverbindung angezeigt. Die gefälschte Update-Seite ist in Abbildung 2 dargestellt. Der von uns beobachtete Text ist auf Russisch, wahrscheinlich weil dies mittlerweile die Hauptsprache in Belarus ist, aber es ist möglich, dass auch Versionen in anderen Sprachen existieren. Auf der Seite wird darauf hingewiesen, dass kritische Sicherheitsupdates für das System installiert werden müssen.

Figure 2. Fake Windows Update page

Abbildung 2. Gefälschte Windows-Update-Seite

Beachten Sie, dass die Seite unverschlüsseltes HTTP und nicht HTTPS verwendet und dass die Subdomäne updates.microsoft[.]com nicht auf den Nameservern von Microsoft existiert, so dass sie im offenen Internet nicht aufgelöst werden kann. Während des Angriffs wurde diese Domäne auf dem Rechner der Zielperson zu 5.45.121[.]106 aufgelöst. Diese IP-Adresse wird für das Parken von Domains verwendet und steht in keiner Beziehung zu Microsoft. Obwohl es sich um eine über das Internet routingfähige IP-Adresse handelt, erreicht der Datenverkehr zu dieser IP-Adresse während des AitM-Angriffs niemals das Internet. Sowohl die DNS-Auflösungen als auch die HTTP-Antworten wurden während der Übertragung eingeschleust, wahrscheinlich auf der Ebene des ISP.

Ein wichtiger Punkt ist, dass die Adversary-in-the-Middle-Technik (AitM) nur gegen einige ausgewählte Organisationen (vielleicht nur Botschaften) und nicht landesweit eingesetzt wird. Es ist nicht möglich, die Umleitung zu reproduzieren, indem man einfach von einer zufälligen IP-Adresse in Belarus aus startet.

Verbreitung der Malware

Die in Abbildung 2 dargestellte HTML-Seite lädt JavaScript-Code von http://updates.microsoft[.]com/jdrop.js. Dieses Skript ruft zunächst setTimeout auf, um eine Sekunde nach dem Laden der Seite die Funktion jdrop auszuführen. Diese Funktion (siehe Abbildung 3) zeigt ein modales Fenster mit einer Schaltfläche namens Получить обновления (Übersetzung: "Updates abrufen") an.

Figure 3. jdrop function

Abbildung 3. jdrop-Funktion

Ein Klick auf die Schaltfläche führt die update Funktion aus, die in Abbildung 4 dargestellt ist.

Figure 4. update function

Abbildung 4. update Funktion

Diese Funktion veranlasst den Download eines gefälschten Windows Update-Installationsprogramms von der legitim erscheinenden URL http://updates.microsoft[.]com/MicrosoftUpdate845255.zip. Sie zeigt auch einige Anweisungen zur Installation des Updates an: Для установки обновлений, скачайте и запустите "MicrosoftUpdate845255.msi". (Übersetzung: "Um Updates zu installieren, laden Sie "MicrosoftUpdate845255.msi" herunter und führen Sie es aus").

Wir waren nicht in der Lage, die heruntergeladene Datei MicrosoftUpdate845255.zip abzurufen, aber unsere Telemetrie zeigt, dass sie eine bösartige ausführbare Datei namens MicrosoftUpdate845255.exe enthält.

Sie ist in Go geschrieben und erstellt eine geplante Aufgabe, die jede Minute \\35 .214.56[.]2\OfficeBroker\OfficeBroker.exe ausführt. Wie der Pfad vermuten lässt, holt er die ausführbare Datei über SMB von 35.214.56[.]2. Diese IP-Adresse gehört zu einem Google-Cloud-Kunden, aber genau wie beim HTTP-Server gehen wir davon aus, dass die SMB-Antworten über AitM injiziert werden und dass die Angreifer nicht die Kontrolle über die tatsächlich über das Internet erreichbare IP-Adresse haben.

Wir haben auch die folgenden SMB-Server beobachtet, die über AitM abgefangen wurden:

  • \\209.19.37[.]184
  • \\38.9.8[.]78
  • \\59.6.8[.]25

Wir haben dieses Verhalten in zwei verschiedenen ISP-Netzen beobachtet: Unitary Enterprise A1 und Beltelecom. Dies deutet darauf hin, dass diese ISPs möglicherweise nicht die volle Vertraulichkeit und Integrität der Daten gewährleisten. Wir empfehlen ausländischen Organisationen in Belarus dringend, einen Ende-zu-Ende-verschlüsselten VPN-Tunnel zu verwenden, idealerweise Out-of-Band (d. h. nicht vom Endpunkt aus), der Internetkonnektivität aus einem vertrauenswürdigen Netzwerk bietet.

Abbildung 5 zeigt unsere Hypothese über den Kompromittierungsvektor und das Abfangen des Datenverkehrs.

 

Figure 5. Compromise via AitM scenario

Abbildung 5. Kompromittierung über AitM-Szenario

AitM - Allgemeine Überlegungen

Das AitM-Szenario erinnert uns an die Bedrohungsakteure von Turla und StrongPity, die auf der Ebene des Internetdienstanbieters Software-Trojaner installiert haben.

Normalerweise wird diese Methode des Erstzugriffs von Bedrohungsakteuren verwendet, die in ihrem eigenen Land operieren, da sie einen direkten Zugang zu den Internetdienstanbietern oder deren vorgelagerten Anbietern erfordert. In vielen Ländern ist es den Sicherheitsdiensten gestattet, mithilfe spezieller Geräte, die in den Räumlichkeiten der Internetdienstanbieter installiert werden, sogenannte "behördliche Abhörmaßnahmen" durchzuführen.

In Russland schreibt ein Gesetz aus dem Jahr 2014 vor, dass Internetdienstanbieter Geräte mit der Bezeichnung SORM-3 installieren müssen, die es dem Föderalen Sicherheitsdienst (FSB) ermöglichen, gezielte Überwachungen durchzuführen. Die Geräte verfügen über DPI-Funktionen (Deep Packet Inspection) und wurden wahrscheinlich von Turla in seiner Mosquito-Kampagne eingesetzt.

Im Jahr 2018 deckte das Citizen Lab auf, dass DPI-Geräte, die von der kanadischen Firma Sandvine entwickelt wurden, zur Modifizierung des HTTP-Verkehrs in der Türkei und Ägypten verwendet wurden. In der Türkei wurden die Geräte angeblich eingesetzt, um Internetnutzer auf einen bösartigen Server umzuleiten, wenn sie versuchten, bestimmte Windows-Anwendungen herunterzuladen, was mit den Aktivitäten von StrongPity übereinstimmt. In Ägypten wurden diese Geräte angeblich dazu verwendet, Werbung und Skripte zum Schürfen von Kryptowährungen einzuschleusen, um Geld zu verdienen.

Im Jahr 2020 enthüllte ein Bloomberg-Artikel, dass das National Traffic Exchange Center von Belarus die gleichen Sandvine DPI-Geräte kaufte, aber laut einem Cyberscoop-Artikel wurde der Vertrag im September 2020 gekündigt.

In einem 2021 veröffentlichten Bericht von Amnesty International heißt es: "Nach belarussischem Recht müssen alle Telekommunikationsanbieter des Landes ihre Hardware mit dem SORM-System kompatibel machen". Weiter heißt es: "Das SORM-System ermöglicht den Behörden einen direkten, ferngesteuerten Zugriff auf die gesamte Nutzerkommunikation und die damit verbundenen Daten, ohne den Anbieter zu benachrichtigen". Wir gehen davon aus, dass MoustachedBouncer dieses SORM-System zur Durchführung seiner Operationen nutzt.

Während die Kompromittierung von Routern zur Durchführung von AitM in Botschaftsnetzwerken nicht völlig ausgeschlossen werden kann, deutet das Vorhandensein behördlicher Abhörmöglichkeiten in Belarus darauf hin, dass die Manipulation des Datenverkehrs eher auf der Ebene des Internetanbieters als auf den Routern der Zielpersonen stattfindet.

Implantate: NightClub und Disco

Seit 2014 haben sich die von MoustachedBouncer verwendeten Malware-Familien weiterentwickelt, und eine große Veränderung fand 2020 statt, als die Gruppe begann, AitM-Angriffe einzusetzen. Gleichzeitig begann sie, viel einfachere, in .NET und Go entwickelte Tools zu verwenden. In Anlehnung an NightClub haben wir dieses neue Toolset Disco genannt.

MoustachedBouncer arbeitet mit den beiden Implantatfamilien parallel, aber auf einem bestimmten Rechner wird immer nur eine eingesetzt. Wir gehen davon aus, dass Disco in Verbindung mit AitM-Angriffen eingesetzt wird, während NightClub für Opfer verwendet wird, bei denen ein Abfangen des Datenverkehrs auf ISP-Ebene nicht möglich ist, z. B. durch die Verwendung eines verschlüsselten VPN, bei dem der Internetverkehr außerhalb von Belarus geleitet wird.

Disco

Wie im vorherigen Abschnitt erwähnt, wird die erste Stufe über eine gefälschte Windows Update-Seite bereitgestellt (SHA-1: E65EB4467DDB1C99B09AE87BA0A964C36BAB4C30). Es handelt sich um einen einfachen, in Go geschriebenen Dropper, der eine geplante Aufgabe erstellt, die jede Minute OfficeBroker.exe ausführt. OfficeBroker.exe wird über das SMB-Protokoll per AitM-Angriff heruntergeladen. Die Hauptfunktion des Droppers ist in Abbildung 6 dargestellt.

Figure 6. Main function of the Go dropper

Abbildung 6. Hauptfunktion des Go-Droppers

Schließlich führt der Dropper eine DNS-Anfrage nach windows.system.update[.]com durch. Diese Domäne existiert nicht, aber die DNS-Anfrage wird wahrscheinlich über AitM abgefangen und ist wahrscheinlich ein Signal, um die Betreiber zu benachrichtigen, dass der Computer erfolgreich kompromittiert wurde.

Wir waren nicht in der Lage, die Datei OfficeBroker.exe abzurufen, aber es ist sehr wahrscheinlich, dass sie als Downloader fungiert, da wir beobachtet haben, dass weitere Plugins von SMB-Freigaben ausgeführt wurden. Die Plugins wurden in Go entwickelt und sind recht simpel, da sie größtenteils auf externen Go-Bibliotheken basieren. Tabelle 2 gibt einen Überblick über die verschiedenen Plugins.

 

Tabelle 2. Von MoustachedBouncer im Jahr 2021-2022 verwendete Go-Plugins

Download URL / Path on disk

Description

\\209.19.37[.]184\driverpack\aact.exe

Takes screenshots using the kbinani/screenshot library. Screenshots are saved in .\AActdata\<d>_<s>.dat (on the SMB share) where <d> is the active display number and <s> the date. It sleeps 15 seconds between each screenshot.

C:\Users\Public\driverpack\driverpackUpdate.exe

Executes PowerShell scripts with powershell.exe -NoProfile -NonInteractive <command>, where <command> is read from the file .\idata. The output is written in .\odata.

C:\Users\Public\driverpack\sdrive.exe

Executes C:\Users\Public\‌driverpack\driverpackUpdate.exe (the plugin above) using elevated rights via CVE-2021-1732. The code was likely inspired by a PoC on GitHub and uses the zydis code generation library.

\\209.19.37[.]184\driverpack\officetelemetry.exe

A reverse proxy strongly inspired by the GitHub repository revsocks. We were unable to retrieve the command line parameters with the proxy IP address.

\\38.9.8[.]78\driverpack\DPU.exe

Another sample of the PowerShell plugin.

%userprofile%\appdata\nod32update\nod32update.exe

Another sample of the reverse proxy plugin.

\\59.6.8[.]25\outlooksync\outlooksync.exe

Takes screenshots; it is similar to the first plugin. Images are saved in ./logs/${DATETIME}.dat.

\\52.3.8[.]25\oracle\oracleTelemetry.exe

Screenshot plugin packed with Themida.

Interessanterweise nutzen die Plugins auch SMB-Freigaben für die Datenexfiltration. Es gibt keinen C&C-Server außerhalb der Räumlichkeiten der Angreifer, der eingesehen oder ausgeschaltet werden könnte. Es scheint auch keine Möglichkeit zu geben, diesen C&C-Server über das Internet zu erreichen. Dies verleiht der Netzwerkinfrastruktur der Angreifer eine hohe Widerstandsfähigkeit.

SharpDisco und NightClub-Plugins

Im Januar 2020 beobachteten wir, dass ein MoustachedBouncer-Dropper, den wir SharpDisco nannten, von https://mail.mfa.gov.<redacted>/EdgeUpdate.exe durch einen Microsoft Edge-Prozess heruntergeladen wurde. Es ist nicht klar, wie die Angreifer den HTTPS-Datenverkehr manipulieren konnten, aber es ist möglich, dass dem Opfer eine Warnung über ein ungültiges TLS-Zertifikat angezeigt wurde. Eine andere Möglichkeit ist, dass MoustachedBouncer diese Regierungswebsite kompromittiert hat.

SharpDisco (SHA-1: A3AE82B19FEE2756D6354E85A094F1A4598314AB)

SharpDisco ist ein in C# entwickelter Dropper. Er zeigt ein gefälschtes Update-Fenster an (siehe Abbildung 7), während er im Hintergrund zwei geplante Aufgaben erstellt.

Figure 7. Fake Microsoft Edge update window

Abbildung 7. Gefälschtes Microsoft Edge-Update-Fenster

Diese geplanten Aufgaben sind:

scheduled tasks

WINCMDA.EXE und WINCMDB.EXE sind wahrscheinlich nur umbenannte cmd.exe Instanzen. Jede Minute liest die Aufgabe, was in \\24 .9.51[.]94\EDGEUPDATE\EDGEAIN (auf der SMB-Freigabe) steht, leitet es an cmd.exe weiter und schreibt die Ausgabe nach \\24 .9.51[.]94\EDGEUPDATE\EDGEAOUT. Bei der zweiten Aufgabe verhält es sich genauso, allerdings mit den Dateien EDGEBIN und EDGEBOUT. Von einem höheren Standpunkt aus betrachtet, sind diese Aufgaben Reverse Shells mit einer Latenz von einer Sekunde.

Dann sendet der Dropper, wie in Abbildung 8 gezeigt, eine DNS-Anfrage für eine nicht registrierte Domäne, edgeupdate-security-windows[.]com. Dies ähnelt der Vorgehensweise des Disco-Droppers 2022.

Figure 8. Dropper used in 2020

Abbildung 8. Im Jahr 2020 verwendeter Dropper

Die ESET-Telemetrie zeigt, dass die Reverse Shell verwendet wurde, um einen echten Python-Interpreter in C:\Users\Public\WinTN\WinTN.exe abzulegen. Wir haben dann beobachtet, dass zwei Plugins von cmd.exe auf der Festplatte abgelegt wurden, was bedeutet, dass sie wahrscheinlich auch von der Reverse Shell abgelegt wurden. Die beiden Plugins sind:

  • Ein "recent-files stealer" in C:\Users\Public\WinSrcNT\It11.exe
  • Ein Monitor für externe Laufwerke in C: \Users\Public\It3.exe

Interessanterweise teilen sich diese Plugins den Code mit NightClub (beschrieben im Abschnitt NightClub - 2017 (SHA-1: F92FE4DD679903F75ADE64DC8A20D46DFBD3B277) unten). Dadurch konnten wir die Toolsets von Disco und NightClub miteinander verknüpfen.

Recent-Files Stealer (SHA-1: 0DAEA89F91A55F46D33C294CFE84EF06CE22E393)

Bei diesem Plugin handelt es sich um eine ausführbare Windows-Datei namens It11.exe. Wir glauben, dass es über die oben erwähnte Reverse Shell ausgeführt wurde. Im Plugin ist kein Persistenzmechanismus implementiert.

Es ruft die zuletzt auf dem Computer geöffneten Dateien ab, indem es den Inhalt des Ordners %USERPROFILE%\Recent (unter Windows XP) oder von %APPDATA%\Microsoft\Windows\Recent (in neueren Windows-Versionen) liest. Diese Ordner enthalten LNK-Dateien, die jeweils auf eine kürzlich geöffnete Datei verweisen.

Das Plugin bettet seinen eigenen LNK-Format-Parser ein, um den Pfad zur Originaldatei zu extrahieren.

Wir konnten dieses Plugin nicht zum Laufen bringen, aber die statische Analyse zeigt, dass die Dateien in die SMB-Freigabe \24 .9.51[.]94\EDGEUPDATE\update\ exfiltriert werden. Das Plugin verwaltet eine Liste der bereits exfiltrierten Dateien und deren CRC-32-Prüfsumme in %TEMP%\index.dat. Dadurch wird wahrscheinlich vermieden, dass dieselbe Datei mehr als einmal übertragen wird.

Externe Laufwerksüberwachung (SHA-1: 11CF38D971534D9B619581CEDC19319962F3B996)

Bei diesem Plugin handelt es sich um eine ausführbare Windows-Datei namens It3.exe. Wie auch der Recent-Files Stealer implementiert es keinen Persistenzmechanismus.

Das Plugin ruft GetLogicalDrives in einer Schleife auf, um eine Liste aller angeschlossenen Laufwerke zu erhalten, einschließlich Wechsellaufwerke wie USB-Sticks. Dann erstellt es eine Rohkopie des NTFS-Volumes jedes Wechsellaufwerks und schreibt sie in das aktuelle Arbeitsverzeichnis, in unserem Beispiel C:\Users\Public\. Der Dateiname ist eine zufällig generierte Zeichenfolge aus sechs bis acht alphanumerischen Zeichen, zum Beispiel heNNYwmY.

Es unterhält eine Protokolldatei im <Arbeitsverzeichnis>\index.dat mit den CRC-32-Prüfsummen der kopierten Datenträger.

Das Plugin scheint keine Exfiltrationsfunktionen zu haben. Es ist wahrscheinlich, dass die gestaffelten Laufwerksdumps später über die Reverse Shell abgerufen werden.

NightClub

Seit 2014 verwendet MoustachedBouncer ein Malware-Framework, das wir NightClub nennen, weil es eine C++-Klasse namens nightclub enthält. Wir haben Samples aus den Jahren 2014, 2017, 2020 und 2022 gefunden. In diesem Abschnitt wird die Entwicklung von NightClub von einer einfachen Backdoor zu einem vollständig modularen C++-Implantat beschrieben.

Zusammenfassend lässt sich sagen, dass NightClub eine Implantatfamilie ist, die E-Mails für ihre C&C-Kommunikation verwendet. Seit 2016 können zusätzliche Module per E-Mail zugestellt werden, um die Spionagefähigkeiten zu erweitern.

NightClub - 2014

Dies ist die älteste bekannte Version von NightClub. Wir haben einen Dropper und einen Orchestrator gefunden.

Der Dropper (SHA-1: 0401EE7F3BC384734BF7E352C4C4BC372840C30D) ist eine ausführbare Datei namens EsetUpdate-0117583943.exe, die am 19.11.2014 von der Ukraine aus zu VirusTotal hochgeladen wurde. Wir wissen nicht, wie sie zu diesem Zeitpunkt verbreitet wurde.

Die Hauptfunktion, die in Abbildung 9 dargestellt ist, lädt die Ressource MEMORY und schreibt ihren Inhalt in %SystemRoot%\System32\creh.dll. Er wird im Klartext in der PE-Ressource gespeichert.

Figure 9. Main function of the dropper

Abbildung 9. Hauptfunktion des Droppers

Anschließend ändert der Dropper die Zeitstempel für die Erstellung, den Zugriff und das Schreiben von creh.dll in die Zeitstempel der echten Windows-DLL user32.dll.

Schließlich erstellt er einen Windows-Dienst namens WmdmPmSp und setzt dessen ServiceDll in der Registry auf %SystemRoot%\System32\creh.dll - siehe Abbildung 10.

Figure 10. Modification of the value ServiceDll

Abbildung 10. Ändern des Wertes ServiceDll

Die zuvor gelöschte DLL, creh.dll (SHA-1: 5B55250CC0DA407201B5F042322CFDBF56041632) ist der NightClub-Orchestrator. Er hat einen einzigen Export namens ServiceMain und sein PDB-Pfad lautet D:\Programming\Projects\Work\SwampThing\Release\Win32\WorkingDll.pdb.

Er ist in C++ geschrieben und die Namen einiger Methoden und Klassen sind in den RTTI-Daten enthalten - siehe Abbildung 11.

 

Figure 11. Method and class names from the RTTI data

Abbildung 11. Methoden- und Klassennamen aus den RTTI-Daten

Einige der Zeichenketten werden mit dem folgenden linearen kongruenten Generator (LCG) verschlüsselt: staten+1 = (690069 × staten + 1) mod 232. Für jede verschlüsselte Zeichenfolge ist ein Seed (state0) zwischen 0 und 255 vorgesehen. Zur Entschlüsselung einer Zeichenfolge wird staten von jedem verschlüsselten byten abgezogen. Ein Beispiel für eine verschlüsselte Zeichenfolgenstruktur ist in Abbildung 12 dargestellt.

Figure 12. Encrypted string format

Abbildung 12. Format der verschlüsselten Zeichenfolge

Eine nicht verschlüsselte Protokolldatei befindet sich in C:\Windows\System32\servdll.log. Sie enthält sehr grundlegende Informationen über die Initialisierung des Orchestrators - siehe Abbildung 13.

Figure 13. Log file

Abbildung 13. Protokolldatei

NightClub hat zwei Hauptfunktionen:

- Überwachung von Dateien

- Exfiltrieren von Daten über SMTP (E-Mail)

Datei-Überwachung

Die hier implementierte Funktionalität ist sehr ähnlich zu der des oben beschriebenen Datei-Überwachungs-Plugins aus dem Jahr 2020. Es durchsucht auch die Verzeichnisse %USERPROFILE%\Recent unter Windows XP und in neueren Windows-Versionen %APPDATA%\Microsoft\Windows\Recent und implementiert denselben LNK-Parser - siehe Abbildung 14 und Abbildung 15.

Figure 14. LNK parser (2014 sample – 5B55250CC0DA407201B5F042322CFDBF56041632)

Abbildung 14. LNK-Parser (Sample von 2014 - 5B55250CC0DA407201B5F042322CFDBF56041632)

Figure 15. LNK parser (2020 sample – 0DAEA89F91A55F46D33C294CFE84EF06CE22E393)

Abbildung 15. LNK-Parser (Sample von 2020 -0DAEA89F91A55F46D33C294CFE84EF06CE22E393)

 

Die aus den LNK-Dateien abgerufenen Dateien werden nach %TEMP%\<Originaldateiname>.bin kopiert. Beachten Sie, dass im Gegensatz zur Variante 2020 nur Dateien mit den Erweiterungen .doc, .docx, .xls, .xslx oder .pdf kopiert werden.

Er überwacht auch Wechsellaufwerke in einer Schleife, um Dateien von ihnen zu stehlen.

SMTP C&C-Kommunikation

NightClub verwendet das SMTP-Protokoll, um Daten zu exfiltrieren. Auch wenn die C&C-Kommunikation per E-Mail nicht nur bei MoustachedBouncer vorkommt und auch von anderen Angreifern wie Turla (siehe LightNeuron und die Outlook-Backdoor ) verwendet wird, ist sie doch recht selten. Der Code basiert auf dem CSmtp-Projekt, das auf GitHub verfügbar ist. Die Informationen der E-Mail-Konten sind hart kodiert und mit dem LCG-Algorithmus verschlüsselt. In dem von uns analysierten Sample ist die E-Mail-Konfiguration wie folgt:

- SMTP-Server: smtp.seznam.cz

- Absenderadresse: glen.morriss75@seznam[.]cz

- Absender-Passwort: <redacted>

- Empfängeradresse: SunyaF@seznam[.]cz

seznam.cz ist ein tschechisches Webportal, das einen kostenlosen Webmail-Dienst anbietet. Wir glauben, dass die Angreifer ihre eigenen E-Mail-Konten erstellt haben, anstatt legitime Konten zu kompromittieren.

NightClub exfiltriert die Dateien, die zuvor mit der Dateiüberwachungsfunktion(FileMonitor in Abbildung 11) nach %TEMP% kopiert wurden. Sie werden in base64 kodiert und als Anhang hinzugefügt. Der Name des Anhangs ist der ursprüngliche Dateiname mit der Erweiterung .bin.

Abbildung 16 zeigt die Exfiltration einer Datei über SMTP. NightClub authentifiziert sich mit den Anmeldeinformationen für das Konto glen.morriss75@seznam[.]cz und sendet eine E-Mail an SunyaF@seznam[.]cz mit der gestohlenen Datei im Anhang.

Figure 16. TCP stream of the SMTP communication from our test machine

Abbildung 16. TCP-Stream der SMTP-Kommunikation von unserem Testrechner

 

Beachten Sie, dass einige Header, die auf den ersten Blick verdächtig aussehen könnten, die Standardeinstellungen des CSmtp-Projekts sind, so dass sie wahrscheinlich nicht unterscheidbar sind. Dazu gehören:

- X-Mailer: The Bat! (v3.02) Professional

- Inhalt-Typ: multipart/mixed; boundary="__MESSAGE__ID__54yg6f6h6y456345"

Der Bat! ist ein in Osteuropa weit verbreiteter E-Mail-Client. Daher ist der X-Mailer-Header wahrscheinlich mit dem E-Mail-Verkehr in Belarus identisch.

NightClub - 2017 (SHA-1: F92FE4DD679903F75ADE64DC8A20D46DFBD3B277)

Im Jahr 2017 fanden wir eine neuere Version von NightClub, die am 05.06.2017 kompiliert wurde. Auf dem Rechner des Opfers befand sie sich unter C:\Windows\System32\metamn.dll. Ihr Dateiname im DLL-Exportverzeichnis lautet DownloaderService.dll, und sie hat einen einzigen Export namens ServiceMain. Sie enthält den PDB-Pfad D:\AbcdMainProject\Rootsrc\Projects\MainS\Ink\Release\x64\EtfFavoriteFinder.pdb.

Zur Persistenz wird ein Windows-Dienst namens WmdmPmSp erstellt, wie in früheren Versionen. Leider ist es uns nicht gelungen, den Dropper wiederherzustellen.

Diese NightClub-Version enthält auch einige C++-Klassen- und -Methodennamen, darunter nightclub, in den RTTI-Daten - siehe Abbildung 17.

Figure 17. Method and class names from the RTTI data of the 2017 NightClub version

Abbildung 17. Methoden- und Klassennamen aus den RTTI-Daten der NightClub-Version 2017

Wie in früheren Versionen wird für die C&C-Kommunikation das SMTP-Protokoll über die CSmtp-Bibliothek mit fest codierten Anmeldedaten verwendet. In dem von uns analysierten Beispiel lautet die Mail-Konfiguration:

- SMTP-Server: smtp.mail.ru

- Absenderadresse: fhtgbbwi@mail[.]ru

- Absender-Passwort: [redacted]

- Empfängeradresse: nvjfnvjfnjf@mail[.]ru

Der Hauptunterschied besteht darin, dass sie den kostenlosen E-Mail-Anbieter von Seznam.cz zu Mail.ru gewechselt haben.

Diese NightClub-Version verwendet externe Plugins, die im Ordner %APPDATA%\NvmFilter\ gespeichert sind. Es handelt sich um DLLs mit dem Namen <random>.cr (z. B. et2z7q0FREZ.cr) mit einem einzigen Export namens Starts. Wir haben zwei Plugins identifiziert: einen Keylogger und einen Dateimonitor.

Keylogger (SHA-1: 6999730D0715606D14ACD19329AF0685B8AD0299)

Dieses Plugin wurde in %APPDATA%\NvmFilter\et2z7q0FREZ.cr gespeichert und ist eine DLL mit einem Export, Starts. Es enthält den PDB-Pfad D:\Programming\Projects\Autogen\Kh\AutogenAlg\Release\x64\FileMonitoringModule.pdb und wurde in C++ entwickelt. Die RTTI-Daten zeigen einige Klassennamen - siehe Abbildung 18.

Figure 18. Method and class names from the RTTI data of the NightClub keylogger plugin

Abbildung 18. Methoden- und Klassennamen aus den RTTI-Daten des NightClub Keylogger-Plugins

Die Keylogger-Implementierung ist eher traditionell und verwendet die Windows GetKeyState API-Funktion - siehe Abbildung 19.

Figure 19. NightClub keylogger

Abbildung 19. NightClub-Keylogger

Der Keylogger unterhält eine Klartext-Protokolldatei in %TEMP%\uirtl.tmp. Sie enthält das Datum, den Titel der Anwendung und die protokollierten Tastenanschläge für diese spezifische Anwendung. Ein von uns erstelltes Beispiel ist in Abbildung 20 zu sehen.

Figure 20. Example of the output of the keylogger (generated by us)

Abbildung 20. Beispiel für die Ausgabe des Keyloggers (von uns generiert)

Dateiüberwachung (SHA-1: 6E729E84C7672F048ED8AE847F20A0219E917FA)

Dieses Plugin wurde in %APPDATA%\NvmFilter\sTUlsWa1.cr gespeichert und ist eine DLL mit einem einzigen Export namens Starts. Sein PDB-Pfad, D:\Programming\Projects\Autogen\Kh\AutogenAlg\Release\x64\FileMonitoringModule.pdb, wurde nicht entfernt, und es verwendet den Code der oben beschriebenen Datei-Überwachungsmodule von 2014 und 2020 wieder. Es überwacht Laufwerke und aktuelle Dateien und kopiert Dateien zur Exfiltration nach %TEMP%\AcmSym\rm. Seine Protokolldatei wird in %TEMP%\indexwti.sxd gespeichert .

NightClub- 2020-2022

Im Jahr 2020-11 beobachteten wir eine neue Version von NightClub, die in Belarus auf den Computern des diplomatischen Personals eines europäischen Landes eingesetzt wurde. Im Juli 2022 kompromittierte MoustachedBouncer erneut einige der gleichen Computer. Die Versionen 2020 und 2022 von NightClub sind nahezu identisch, und der Angriffsvektor ist nach wie vor unbekannt.

Die Architektur unterscheidet sich geringfügig von den vorherigen Versionen, da der Orchestrator auch Netzwerkfunktionen implementiert. Die zweite Komponente, die von den Entwicklern als Modul-Agent bezeichnet wird, ist nur für das Laden der Plugins zuständig. Alle Samples wurden im Ordner %APPDATA%\microsoft\def\ gefunden und sind in C++ mit statisch gelinkten Bibliotheken wie CSmtp oder cpprestsdk geschrieben. Daher sind die ausführbaren Dateien recht groß - etwa 5 MB.

Orchestrator

Auf den Rechnern der Opfer hießen beide Orchestrator-Varianten (SHA-1: 92115E21E565440B1A26ECC20D2552A214155669 und D14D9118335C9BF6633CB2A41023486DACBEB052) svhvost.exe. Wir glauben, dass MoustachedBouncer versucht hat, sich als der Name der legitimen ausführbaren Datei svchost.exe auszugeben. Zur Aufrechterhaltung erstellt er einen Dienst namens vAwast.

Im Gegensatz zu früheren Versionen fügen sie zur Verschlüsselung der Zeichenketten einfach 0x01 an jedes Byte an. Zum Beispiel würde die Zeichenkette cmd.exe als dne/fyf verschlüsselt werden. Ein weiterer Unterschied besteht darin, dass die Konfiguration in einer externen Datei gespeichert wird und nicht mehr fest in der Binärdatei kodiert ist. Sie wird in dem hartkodierten Pfad %APPDATA%\Microsoft\def\Gfr45.cfg gespeichert, und die Daten werden mit einem privaten 2048-Bit-RSA-Schlüssel (siehe Abbildung 21) unter Verwendung der Funktionen BCryptImportKeyPair und BCryptDecrypt entschlüsselt.

Figure 21. Hardcoded private RSA key

Abbildung 21. Hardcodierter privater RSA-Schlüssel

Die Konfiguration wird in JSON formatiert, wie in Abbildung 22 dargestellt.

Figure 22. NightClub external configuration format

Abbildung 22. Format der externen NightClub-Konfiguration

Die wichtigsten Schlüssel sind transport und modules. Ersterer enthält Informationen über die Mailbox, die für die C&C-Kommunikation verwendet wird, wie in den Vorgängerversionen. Der zweite Schlüssel enthält die Liste der Module.

Modul-Agent

Die beiden Varianten des Modul-Agenten (SHA-1: DE0B38E12C0AF0FD63A67B03DD1F8C1BF7FA6128 und E6DE72516C1D4338D7E45E028340B54DCDC7A8AC) erhielten den Namen schvost.exe, was eine weitere Nachahmung des Dateinamens svchost.exe ist.

Diese Komponente ist für den Start der in der Konfiguration angegebenen Module verantwortlich. Es handelt sich um DLLs, die jeweils einen Export namens Start oder Starts haben. Sie werden auf der Festplatte unverschlüsselt mit der Erweiterung .ini gespeichert, sind aber eigentlich DLLs.

Module

Im Laufe unserer Untersuchung haben wir fünf verschiedene Module gefunden: einen Audiorekorder, zwei fast identische Screenshot-Tools, einen Keylogger und eine DNS-Backdoor. Für alle Module gilt: Ihre Konfiguration, die in JSON formatiert ist, wird als Argument an die Funktion Start oder Starts übergeben.

Standardmäßig wird die Ausgabe des Plugins in %TEMP%\tmp123.tmp geschrieben. Dies kann über das Konfigurationsfeld file geändert werden. Tabelle 3 zeigt die verschiedenen Plugins.

Tabelle 3. NightClub-Plugins

DLL export name

Configuration

Description

NotifyLoggers.dll

{

    "name":"<value>",

    "enabled":"<value>",

    "max_size":"<value>",

    "file":"<value>",

    "chk_t":"<value>",

    "r_d":"<value>",

    "f_hs":"<value>",

    "t_hs":"<value>"

}

An audio recorder that uses the Lame library, and mciSendStringW to control the audio device. The additional configuration fields are likely used to specify options for Lame.

MicroServiceRun.dll

{

    "name":"<value>",

    "enabled":"<value>",

    "max_size":"<value>",

    "file":"<value>"
    "capture_on_key_press":"<value>",

    "period_in_sec":"<value>",

    "quality":"<value>",

    "app_keywords":"<value>"

}

A screenshotter that uses CreateCompatibleDC and GdipSaveImageToStream and writes captured images in file to disk. If app_keywords is not empty, it uses GetForegroundWindow to check the name of the active Window and capture it only if it matches app_keywords.

JobTesterDll.dll

{

    "name":"<value>",

    "enabled":"<value>",

    "max_size":"<value>",

    "file":"<value>"

}

A keylogger that uses the GetKeyState API. It writes the log in file to disk and the format is <Date><Title bar><content>.

ParametersParserer.dll

{

    "name":"<value>",

    "enabled":"<value>",

    "max_size":"<value>",

    "file":"<value>",

    "cc_server_address":"<value>"

}

A DNS-tunneling backdoor. cc_server_address specifies the IP address of a DNS server to which requests are sent. More details follow.

Die DNS-Tunneling-Backdoor (ParametersParserer.dll) verwendet ein benutzerdefiniertes Protokoll, um Daten von einem bösartigen DNS-Server (cc_server_address) zu senden und zu empfangen. Abbildung 23 zeigt, dass die DNS-Anfrage an die in der Konfiguration angegebene IP-Adresse gesendet wird, wobei der pExtra-Parameter von DnsQuery_A verwendet wird.

Figure 23. DNS request to the C&C server

Abbildung 23. DNS-Anfrage an den C&C-Server

Das Plugin fügt die zu exfiltrierenden Daten als Teil des Subdomain-Namens der Domain hinzu, die in der DNS-Anfrage verwendet wird(pszName oben). Die Domain ist immer 11.1.1.cid und die Daten sind in der Subdomain enthalten. Es wird das folgende Format verwendet, wobei x der Buchstabe und nicht eine Variable ist:

x + <modifizierter base64(Puffer)> + x.11.1.1.cid

Die erste DNS-Anfrage, die das Plugin sendet, lautet zum Beispiel xZW1wdHkx.11.1.1.cid, wobei ZW1wdHk als leer dekodiert wird.

Beachten Sie, dass die base64-Funktion kein Standard ist. Sie entfernt das =, falls vorhanden, aus dem Ergebnis der base64-Kodierung und ersetzt außerdem die Zeichen / durch -s und + durch -p. Auf diese Weise werden gültige Subdomänen erstellt, da die Standardausgabe der base64-Kodierung die Zeichen +, / und = enthalten kann, die alle in Domänennamen ungültig sind und im Netzwerkverkehr erkannt werden könnten.

Anschließend liest das Plugin das Ergebnis, bei dem es sich um einen oder mehrere TXT-DNS-Einträge handeln sollte, da das Flag DNS_TYPE_TEXT an DnsQuery_A übergeben wird. Microsoft nennt die zugrunde liegende Struktur DNS_TXT_DATAA. Sie enthält ein Array von Zeichenketten, die zur Berechnung des Ausgabepuffers verkettet werden.

Figure 24. The plugin reads the TXT record

Abbildung 24. Das Plugin liest den TXT-Eintrag

Das erwartete Format der Antwort ist:

x + <Argument kodiert mit modifiziertem base64> + x.<cmd_id>.<unbekannte ganze Zahl>.1.<cmd_name>

Dies ist ähnlich dem Format der Anfragen. Das <argument encoded with modified base64> verwendet ebenfalls die benutzerdefinierte base64-Kodierung ohne = und mit -p für + und -s für /. <cmd_name> ist eine beliebige Zeichenfolge, die nicht von der Backdoor verwendet wird; sie wird wahrscheinlich von den Operatoren verwendet, um die verschiedenen Befehle zu verfolgen. <cmd_id> ist eine ganze Zahl, die einem Befehl in der Backdoor-Anweisung switch entspricht.

Wenn die Betreiber zum Beispiel calc.exe ausführen wollten, würde der DNS-C&C-Server die Antwort xYzpcd2luZG93c1xzeXN0ZW0zMlxjYWxjLmV4ZQx.27.2.1.calc, wobei Yzpcd2luZG93c1xzeXN0ZW0zMlxjYWxjLmV4ZQ als c:\windows\system32\calc.exe dekodiert wird und 27 die Befehlskennung zum Erstellen eines neuen Prozesses ist. Alle von dieser Backdoor unterstützten Befehle sind in Tabelle 4 aufgeführt.

Tabelle 4. Von der DNS-Backdoor implementierte Befehle

ID

Description

0x15 (21)

Copy a directory (from a source to a destination)

0x16 (22)

Move a file (from a source to a destination)

0x17 (23)

Remove a file or a directory

0x18 (24)

Search a file for a given pattern (Note: we are unsure about the exact behavior of this command)

0x19 (25)

Write a buffer to a file

0x1A (26)

Read a file

0x1B (27)

Create a process

Das Ergebnis der Befehle wird über DNS-Anfragen an den Angreifer zurückgespielt, wie oben beschrieben. Der einzige Unterschied besteht darin, dass 11 im Domänennamen durch 12 ersetzt wird, wie in diesem Beispiel gezeigt: xdGltZW91dAx.12.1.1.cid. In diesem Fall hat das Plugin den Nachrichten-Timeout an den C&C-Server gesendet.

Fazit

MoustachedBouncer ist ein erfahrener Bedrohungsakteur, der es auf ausländische Diplomaten in Belarus abgesehen hat. Er verwendet recht fortschrittliche Techniken für die C&C-Kommunikation, darunter das Abfangen von Netzwerken auf ISP-Ebene für das Disco-Implantat, E-Mails für das NightClub-Implantat und DNS in einem der NightClub-Plugins.

Die wichtigste Erkenntnis ist, dass Unternehmen in Ländern, in denen das Internet nicht vertrauenswürdig ist, für ihren gesamten Internetverkehr einen verschlüsselten VPN-Tunnel zu einem vertrauenswürdigen Standort verwenden sollten, um Netzwerkprüfgeräte zu umgehen.

Wenn Sie Fragen zu unserer auf WeLiveSecurity veröffentlichten Studie haben, kontaktieren Sie uns bitte unter threatintel@eset.com.
ESET Research bietet private APT Intelligence Reports und Datenfeeds an. Wenn Sie Fragen zu diesem Service haben, besuchen Sie die ESET Threat Intelligence Seite.

IoCs

Dateien

SHA-1

Filename

Detection

Description

02790DC4B276DFBB26C714F29D19E53129BB6186

index.html

JS/TrojanDownloader.Agent.YJJ

Fake Windows update webpage.

6EFF58EDF7AC0FC60F0B8F7E22CFE243566E2A13

jdrop.js

JS/TrojanDownloader.Agent.YJJ

JavaScript code that triggers the download prompt of the fake Windows update.

E65EB4467DDB1C99B09AE87BA0A964C36BAB4C30

MicrosoftUpdate845255.exe

WinGo/Agent.ET

Disco dropper.

3A9B699A25257CBD0476CB1239FF9B25810305FE

driverpackUpdate.exe

WinGo/Runner.B

Disco plugin. Executes PowerShell scripts.

19E3D06FBE276D4AAEA25ABC36CC40EA88435630

DPU.exe

WinGo/Runner.C

Disco plugin. Executes PowerShell scripts.

52BE04C420795B0D9C7CD1A4ACBF8D5953FAFD16

sdrive.exe

Win64/Exploit.CVE-2021-1732.I

Disco plugin. LPE exploit for CVE-2021-1732.

0241A01D4B03BD360DD09165B59B63AC2CECEAFB

nod32update.exe

WinGo/Agent.EV

Disco plugin. Reverse proxy based on revsocks.

A01F1A9336C83FFE1B13410C93C1B04E15E2996C

aact.exe

WinGo/Spy.Agent.W

Disco plugin. Takes screenshots.

C2AA90B441391ADEFAA3A841AA8CE777D6EC7E18

officetelemetry.exe

WinGo/Agent.BT

Disco plugin. Reverse proxy based on revsocks.

C5B2323EAE5E01A6019931CE35FF7623DF7346BA

oracleTelemetry.exe

WinGo/Spy.Agent.W

Disco plugin packed with Themida. Takes screenshots.

C46CB98D0CECCB83EC7DE070B3FA7AFEE7F41189

outlooksync.exe

WinGo/Spy.Agent.W

Disco plugin. Takes screenshots.

A3AE82B19FEE2756D6354E85A094F1A4598314AB

kb4480959_EdgeUpdate.exe

MSIL/TrojanDropper.Agent.FKQ

Disco .NET dropper.

4F1CECF6D05571AE35ED00AC02D5E8E0F878A984

WinSrcNT.exe

Win32/Nightclub.B

NightClub plugin used by Disco. Steals recent files.

0DAEA89F91A55F46D33C294CFE84EF06CE22E393

It11.exe

Win32/Nightclub.B

NightClub plugin used by Disco. Steals recent files.

11CF38D971534D9B619581CEDC19319962F3B996

It3.exe

Win32/Nightclub.B

NightClub plugin used by Disco. Makes raw dumps of removable drives.

F92FE4DD679903F75ADE64DC8A20D46DFBD3B277

metamn.dll

Win64/Nightclub.B

NightClub (2017 version).

6999730D0715606D14ACD19329AF0685B8AD0299

et2z7q0FREZ.cr

Win64/Nightclub.B

NightClub plugin. Keylogger.

6E729E84C7672F048ED8AE847F20A0219E917FA3

sTUlsWa1.cr

Win64/Nightclub.A

NightClub plugin.  File stealer.

0401EE7F3BC384734BF7E352C4C4BC372840C30D

EsetUpdate-0117583943.exe

Win32/Nightclub.C

NightClub dropper.

5B55250CC0DA407201B5F042322CFDBF56041632

creh.dll

Win32/Nightclub.C

NightClub (2014).

D14D9118335C9BF6633CB2A41023486DACBEB052

svhvost.exe

Win32/Nightclub.D

Orchestrator (NightClub).

E6DE72516C1D4338D7E45E028340B54DCDC7A8AC

schvost.exe

Win32/Nightclub.D

Module agent (NightClub).

3AD77281640E7BA754E9B203C8B6ABFD3F6A7BDD

nullnat.ini

Win32/Nightclub.D

Backdoor with DNS tunneling (NightClub plugin).

142FF0770BC6E3D077FBB64D6F23499D9DEB9093

soccix.ini

Win32/Nightclub.D

Keylogger (NightClub plugin).

FE9527277C06D7F986161291CE7854EE79788CB8

oreonion.ini

Win32/Nightclub.D

Screenshotter (NightClub plugin).

92115E21E565440B1A26ECC20D2552A214155669

svhvost.exe

Win32/Nightclub.D

Orchestrator (NightClub).

DE0B38E12C0AF0FD63A67B03DD1F8C1BF7FA6128

schvost.exe

Win32/Nightclub.D

Module agent (NightClub).

D2B715A72BBA307CC9BF7690439D34F62EDF1324

sysleg.ini

Win32/Nightclub.D

Records audio (NightClub plugin).

DF8DED42F9B7DE1F439AEC50F9C2A13CD5EB1DB6

oreonion.ini

Win32/Nightclub.D

Takes screenshots (NightClub plugin).

C&C-Server

IP

Domain

First seen

Comment

185.87.148[.]86

centrocspupdate[.]com

November 3, 2021

Suspected NightClub C&C server.

185.87.151[.]130

ocsp-atomsecure[.]com

November 11, 2021

Suspected NightClub C&C server.

45.136.199[.]67

securityocspdev[.]com

July 5, 2022

NightClub C&C server.

45.136.199[.]129

dervasopssec[.]com

October 12, 2022

Suspected NightClub C&C server.

in AitM verwendete "Fake"-Domains

Hinweis: Diese Domains werden in einem Kontext verwendet, in dem DNS-Anfragen abgefangen werden, bevor sie das Internet erreichen. Sie werden außerhalb des AitM-Angriffs nicht aufgelöst.

windows.network.troubleshooter[.]com

updates.microsoft[.]com

 

IP-Adressen der SMB-Freigabe während des AitM-Angriffs

Hinweis: Diese IP-Adressen werden in einem Kontext verwendet, in dem der Datenverkehr zu diesen Adressen abgefangen wird, bevor er das Internet erreicht. Diese IP-Adressen, die über das Internet geroutet werden können, sind außerhalb des AitM-Angriffs nicht bösartig.

24.9.51[.]94

35.214.56[.]2

38.9.8[.]78

52.3.8[.]25

59.6.8[.]25

209.19.37[.]184

E-Mail-Adressen

fhtgbbwi@mail[.]ru

nvjfnvjfnjf@mail[.]ru

glen.morriss75@seznam[.]cz

SunyaF@seznam[.]cz

MITRE ATT&CK-Techniken

Diese Tabelle wurde mit Version 13 des MITRE ATT&CK-Frameworks erstellt.

Tactic

ID

Name

Description

Reconnaissance

T1590.005

Gather Victim Network Information: IP Addresses

MoustachedBouncer operators have collected IP addresses, or address blocks, of their targets in order to modify network traffic for just those addresses.

Initial Access

T1189

Drive-by Compromise

Disco is delivered via a fake Windows Update website.

Execution

T1204.002

User Execution: Malicious File

Disco needs to be manually executed by the victim.

Persistence

T1053.005

Scheduled Task/Job: Scheduled Task

Disco persists as a scheduled task that downloads an executable from a “fake” SMB share every minute.

T1543.003

Create or Modify System Process: Windows Service

NightClub persists as a ServiceDll of a service named WmdmPmSp.

Privilege Escalation

T1068

Exploitation for Privilege Escalation

Disco has a plugin to exploit the CVE-2021-1732 local privilege escalation vulnerability.

Defense Evasion

T1140

Deobfuscate/Decode Files or Information

Since 2020, NightClub has used an external configuration file encrypted with RSA.

Collection

T1005

Data from Local System

NightClub steals recent files from the local system.

T1025

Data from Removable Media

NightClub steals files from the local system.

T1056.001

Input Capture: Keylogging

NightClub has a plugin to record keystrokes.

T1113

Screen Capture

NightClub and Disco each have a plugin to take screenshots.

T1123

Audio Capture

NightClub has a plugin to record audio.

Command and Control

T1071.002

Application Layer Protocol: File Transfer Protocols

Disco communicates via the SMB protocol.

T1071.003

Application Layer Protocol: Mail Protocols

NightClub communicates via the SMTP protocol.

T1071.004

Application Layer Protocol: DNS

One of the NightClub plugins is a backdoor that communicates via DNS.

T1132.001

Data Encoding: Standard Encoding

NightClub encodes files, attached to email, in base64.

T1132.002

Data Encoding: Non-Standard Encoding

NightClub encodes commands and responses sent via its DNS C&C channel with a modified form of base64.

T1573.001

Encrypted Channel: Symmetric Cryptography

NightClub receives plugins in email attachments, encrypted using AES-CBC.

T1557

Adversary-in-the-Middle

MoustachedBouncer has performed AitM at the ISP level to redirect its targets to a fake Windows Update page. It has also done AitM on the SMB protocol to deliver malicious files from “fake” servers.

Exfiltration

T1041

Exfiltration Over C2 Channel

NightClub and Disco exfiltrate data over the C&C channel (SMTP, SMB, and DNS).

Impact

T1565.002

Data Manipulation: Transmitted Data Manipulation

MoustachedBouncer has modified the HTTP traffic from specific IP addresses at the ISP level in order to redirect its targets to a fake Windows Update page.