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.
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 |
Victim A (2017) |
Victim B |
Victim C |
Victim D |
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.
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.
Ein Klick auf die Schaltfläche führt die update Funktion aus, die in Abbildung 4 dargestellt ist.
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.
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.
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.
Diese geplanten Aufgaben sind:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Die Keylogger-Implementierung ist eher traditionell und verwendet die Windows GetKeyState API-Funktion - siehe Abbildung 19.
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.
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.
Die Konfiguration wird in JSON formatiert, wie in Abbildung 22 dargestellt.
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>" "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.
"capture_on_key_press":"<value>",
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.
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.
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 |
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 |
Drive-by Compromise |
Disco is delivered via a fake Windows Update website. |
|
Execution |
User Execution: Malicious File |
Disco needs to be manually executed by the victim. |
|
Persistence |
Scheduled Task/Job: Scheduled Task |
Disco persists as a scheduled task that downloads an executable from a “fake” SMB share every minute. |
|
Create or Modify System Process: Windows Service |
NightClub persists as a ServiceDll of a service named WmdmPmSp. |
||
Privilege Escalation |
Exploitation for Privilege Escalation |
Disco has a plugin to exploit the CVE-2021-1732 local privilege escalation vulnerability. |
|
Defense Evasion |
Deobfuscate/Decode Files or Information |
Since 2020, NightClub has used an external configuration file encrypted with RSA. |
|
Collection |
Data from Local System |
NightClub steals recent files from the local system. |
|
Data from Removable Media |
NightClub steals files from the local system. |
||
Input Capture: Keylogging |
NightClub has a plugin to record keystrokes. |
||
Screen Capture |
NightClub and Disco each have a plugin to take screenshots. |
||
Audio Capture |
NightClub has a plugin to record audio. |
||
Command and Control |
Application Layer Protocol: File Transfer Protocols |
Disco communicates via the SMB protocol. |
|
Application Layer Protocol: Mail Protocols |
NightClub communicates via the SMTP protocol. |
||
Application Layer Protocol: DNS |
One of the NightClub plugins is a backdoor that communicates via DNS. |
||
Data Encoding: Standard Encoding |
NightClub encodes files, attached to email, in base64. |
||
Data Encoding: Non-Standard Encoding |
NightClub encodes commands and responses sent via its DNS C&C channel with a modified form of base64. |
||
Encrypted Channel: Symmetric Cryptography |
NightClub receives plugins in email attachments, encrypted using AES-CBC. |
||
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 |
Exfiltration Over C2 Channel |
NightClub and Disco exfiltrate data over the C&C channel (SMTP, SMB, and DNS). |
|
Impact |
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. |