Whatever floats your boat – Bitter APT setzt Angriffe auf Bangladesch fort

Wichtigste Erkenntnisse

  • Das SECUINFRA Falcon Team hat einen aktuellen Angriff identifiziert, der mit der auf Bangladesch ausgerichteten Kampagne der Advanced Persistent Threat Gruppe “Bitter”, auch bekannt als T-APT-17, übereinstimmt.
  • Bitter setzt bösartige Dokumentdateien als Köder ein, die verschiedene Implementierungen der so genannten “Equation Editor Exploits” enthalten, um die folgenden Malware-Stufen herunterzuladen.
  • Die zweite Stufe besteht aus einem Loader, der Informationen über das infizierte System sammelt und die dritte Stufe von einem Remote-Server abruft.
  • Die dritte Stufe eines Bitter-Angriffs kann verschiedene Arten von Malware enthalten, z. B. Keylogger, Stealer oder Remote Access Trojaner (RATs). Wir haben einen der neueren RATs analysiert, den wir als “Almond RAT” bezeichnen.

Überblick

Die Bitter APT-Gruppe soll seit mindestens 2013 aktiv sein und wurde erstmals 2016 von Forcepoint Labs gemeldet, als sie hauptsächlich auf Pakistan abzielte. Es wird vermutet, dass die Bedrohungsgruppe in Südasien ansässig ist. Schon damals nutzte die Gruppe Spearphishing-E-Mails, um Microsoft Office (z. B. CVE-2012-0158) zu kompromittieren und zusätzliche Malware herunterzuladen, so dass sich ihr Modus Operandi im Vergleich zu ihren heutigen Angriffen nicht geändert hat. Gelegentlich zielen sie auch auf Android-Geräte mit Remote-Access-Trojanern, wie BitDefender im Jahr 2020 berichtete.

Im Februar 2019 dokumentierte Palo Alto Networks Bitter-Angriffe mit einem Downloader der zweiten Stufe namens “ArtraDownloader“, der bereits seit 2017 im Einsatz ist. Auch chinesische und saudi-arabische Organisationen wurden in die Liste der Ziele aufgenommen.

Wie von Cyble und Kaspersky im Jahr 2021 entdeckt, ist die Bitter-Gruppe auch zu mehr als nur alten Office-Exploits fähig, zum Beispiel zum Missbrauch von 0-Day-Schwachstellen wie einer Windows-Kernel-Schwachstelle (CVE-2021-1732) und einer Schwachstelle im Windows-Desktop-Window-Manager (CVE-2021-28310) zur Privilegienerweiterung.

Im Mai 2022 veröffentlichte Cisco Talos eine Analyse einer neuen Bitter-Kampagne, die von Oktober 2021 bis Februar 2022 mit einem neuartigen Downloader der zweiten Stufe namens “ZxxZ” auf Nutzer in Bangladesch abzielt.

Dieser Bericht baut auf den von Talos veröffentlichten Erkenntnissen auf und deckt einen Angriff ab, der vermutlich Mitte Mai 2022 durchgeführt wurde.

Kurz vor der Fertigstellung dieses Berichts veröffentlichte das Qi Anxin Threat Intellingence Center einen Bericht über die jüngsten Bitter-Aktivitäten, die sich gegen militärische Einrichtungen in Bangladesch richteten. Darin wurde auch das in diesem Blogbeitrag analysierte RAT-Sample erwähnt.

Am 4. Juli veröffentlichte @c3rb3ru5d3d53c einen Bericht über eine Bitter-Kampagne, die auf Pakistan abzielte. Neben vielen Analyseschritten, die mit unserem Ansatz übereinstimmen, wurde auch gezeigt, wie der ZxxZ Downloader mit einem benutzerdefinierten C2-Server verwendet werden kann.

Analyse

Excel-Maledoc

Das Sample des bösartigen Excel-Dokuments (1bf615946ad9ea7b5a282a8529641bf6) wurde über den öffentlichen Any.Run Sandbox-Dienst bezogen. Wie bei früheren Kampagnen von Bitter wurde die Datei wahrscheinlich über eine Spearphishing-E-Mail verbreitet, die nicht für die Analyse verfügbar ist. Das Sample wurde zuvor von Simon Kenin (k3yp0d) auf Twitter erwähnt.

Der Dateiname des Dokuments lautet “Repair of different csoc cstc, china supplied system – BNS BIJOY.xls”. Die Abkürzungen csoc und cstc stehen wahrscheinlich für “China Shipbuilding & Offshore International Co. Ltd” und “China Shipbuilding Trading Co. Ltd”, und BNS Bijoy ist der Name einer “Lenkwaffenkorvette der Castle-Klasse” (kleines Kriegsschiff) der Marine von Bangladesch (Wikipedia).

Das Dokument enthält keinen lesbaren Inhalt zu dem Thema, das der Dateiname suggeriert, sondern nur ein weißes rechteckiges Bild und Unicode-Zeichen, was die Opfer darauf aufmerksam machen sollte, dass es sich nicht um ein legitimes Dokument handelt. Sobald die Datei geöffnet wird, wird der Equation-Editor-Exploit, den wir als CVE-2018-0798 identifiziert haben, ausgeführt.

Abb. 1: Sichtbarer Inhalt des Excel-Dokuments

Ohne den Benutzer in irgendeiner Weise zu alarmieren, wird der Equation Editor im Hintergrund gestartet und zum Herunterladen und Ausführen der nächsten Malware-Stufe verwendet. Wenn wir den Prozessbaum mit ProcMon verfolgen, können wir sehen, dass die heruntergeladene Binärdatei nach C:\$Drw\fsutil.exe geschrieben und über den Windows Explorer ausgeführt wird.

Abb. 2: Prozessbaum des Gleichungseditors

Um Informationen aus dem Maldoc zu extrahieren, haben wir uns zunächst für einen dynamischen Ansatz entschieden. Durch die Registrierung eines Debuggers für die ausführbare Datei Equation Editor über gflags.exe, die Teil des Windows-SDK ist, können wir x32dbg an den Prozess anhängen, sobald das Excel-Dokument geöffnet wird (diese Technik wurde von Colin Hardy für CVE-2017-1182 vorgestellt).

Abb. 3: Registrierung eines Debuggers für den Gleichungseditor

Da Excel darauf wartet, dass der Equation Editor beendet wird, wird unsere Debugging-Sitzung leider nach einer bestimmten Zeit mit der unten stehenden Fehlermeldung beendet, so dass wir anders vorgehen müssen.

Abb. 4: Fehlerdialog bei der Fehlersuche im Gleichungseditor

Mit dem bekannten, von Didier Stevens entwickelten oledump-Tool können wir uns die Datenströme innerhalb der Excel-Datei ansehen. In diesem Fall ist der Stream A4, der den Namen Equation Native trägt, von besonderem Interesse für uns.

Abb. 5: Einsehen des Inhalts der Excel-Datei mit oledump

Durch Angabe des Streams und des Parameters -d können wir den Stream ausgeben, um ihn weiter zu analysieren.

Abb. 6: Entladen des Equation Streams

Wenn wir die entleerte Datei in einem Hex-Editor öffnen, können wir zwei verschiedene Datensegmente erkennen. Grün hervorgehoben sind Daten, bei denen es sich wahrscheinlich um den für den Equation Editor-Exploit erforderlichen Shellcode handelt. Da es so gut wie keine lesbaren ASCII-Zeichenfolgen gibt (bei genauem Hinsehen können wir Fragmente erkennen, die wie “URL” oder “http” aussehen), sind diese Daten wahrscheinlich auf irgendeine Weise verschlüsselt oder encodiert. Darunter sehen wir Daten in einem sich wiederholenden Muster, das als Padding für den Memory-Corruption-Exploit CVE-2018-0798 verwendet wird.

Abb. 7: Analysieren des Shellcodes in einem Hex-Editor

Um den Shellcode-Teil der Daten zu entschlüsseln, haben wir eine Frequenzsanalyse (eine sehr nützliche Funktion des Okteta Hex-Editors) durchgeführt, um festzustellen, welche Werte am häufigsten vorkommen, da in einem Bericht der Sophos Labs aus dem Jahr 2019 ein Maldoc-Builder für CVE-2018-0798 analysiert wurde, der eine XOR-basierte Kodierung für den Shellcode implementiert. Bei diesem Maldoc ist das häufigste Byte FF, sodass wir davon ausgehen, dass dieses Byte als Null-Byte kodiert werden könnte und FF daher der Schlüssel in einer Ein-Byte-XOR-Kodierung sein könnte.

Abb. 8: Frequenzanalyse des Shellcodes

Die Verwendung von Cyberchef mit dem mutmaßlichen Shellcode-Abschnitt und dem XOR-Schlüssel liefert lesbare Zeichenfolgen. Hieraus können wir wichtige Informationen über den ausgeführten Shellcode und Indikatoren wie die URL für die nächste Malware-Stufe extrahieren.

Abb. 9: Dekodieren des XOR-ed Shellcodes

Die Visualisierung unten zeigt die wichtigsten API-Aufrufe im Shellcode:

Abb. 10: Grafik verdeutlicht die Funktionalität des Maldoc Shellcodes

Durch erneutes Debuggen des Equation-Editor-Exploits und manuelles Setzen eines Breakpoints z. B. bei URLDownloadToFileA können wir diese Ergebnisse bestätigen.

Abb. 11: Manuelles Laden von urlmon.dll, um einen Breakpoint auf URLDownloadToFileA zu setzen

Die Download-Abfrage an emshedulersvc[.]com/vc/vc liefert ein Sample für Bitters Downloader der zweiten Stufe, den wir im Folgenden untersuchen werden.

Abb. 12:Einbruch in URLDownloadToFile

ZxxZ / MuuyDownloader

Etwa in der zweiten Jahreshälfte 2021 wechselte Bitter von seinem ArtraDownloader der zweiten Stufe zu einer neuen, aber ähnlichen Implementierung namens “ZxxZ” benannt durch Talos und “MuuyDownloader” durch das Qi Anxin Threat Intelligence Center. Er ist in Visual C++ implementiert und scheint auf den ersten Blick nicht gepackt zu sein. Der Zeitstempel der Kompilierung deutet darauf hin, dass diese Binärdatei am 11. Mai 2022 erstellt wurde, was mit dem Zeitrahmen des bösartigen Dokuments übereinstimmt.

Abb. 13: Aufgespürt – Einfaches Parsen der PE-Datei, Entropie-Graph

Vergleicht man diese Fingerprinting-Funktion mit der von Cisco Talos dokumentierten, so stellt man fest, dass Bitter auf das Trennzeichen ZxxZ (welches dem Downloader seinen Namen gab) verzichtet und stattdessen einen einfachen Unterstrich verwendet. Dies geschah möglicherweise, um eine Erkennung durch IDS/IPS-Systeme zu vermeiden, die auf diesem sehr spezifischen Trennzeichen basieren. Ein Blick auf ältere Bitter-Recherchen zeigt, dass die Bedrohungsgruppe diese Muster von Zeit zu Zeit ändert, um eine Entdeckung zu vermeiden.

Abb. 14: ZxxZ Einholen von Systeminformationen

Der Check-in bei einem vom Angreifer kontrollierten Staging-Server enthält das Benutzerkonto und den Hostnamen des Systems. Die folgende Funktion stellt die HTTP-GET-Anfrage manuell zusammen und sendet sie über eine Socket-Verbindung an den C2-Server.

Abb. 15: ZxxZ sendet eine GET Anfrage mit dem Host Fingerprint zu C2

Wir haben diese Netzwerkkommunikation anhand von Paketaufzeichnungen überprüft. Ein weiterer gemeinsamer Indikator für die Bitter-Infrastruktur ist die Verwendung des LiteSpeed-Webservers, der auch in älteren Berichten dokumentiert wurde.

Abb. 16: Packet capture der obigen GET-Anfrage

Nach dem Abrufen der nächsten Malware-Stufe von einem Staging-Server schreibt ZxxZ die Binärdatei auf die Festplatte und versucht, sie auszuführen. Auf dem Screenshot unten sehen wir, dass die Bitter-Gruppe die C2-Opcode-Strings, die Talos zuvor als DN-S (erfolgreicher Download) und RN_E (Fehler beim Ausführen) dokumentiert hatte, in S und F geändert hat, vermutlich eine Abkürzung für Success und Failure. Dies ist wahrscheinlich eine weitere Maßnahme zur Umgehung älterer Erkennungsregeln. Die Ausführung der Nutzlast wurde ebenfalls geändert und verwendet nun CreateProcessA anstelle von ShellExecuteA wie in der älteren Version von ZxxZ.

Abb. 17: ZxxZ Abrufen und Ausführen der nächsten Stufe

Leider konnte die eigentliche Nutzlast nicht vom Staging-Server abgerufen werden, da dieser nur eine leere Datei namens CAPT.msi zurückgab.

Figure 18: Request made to another staging server for the third stage

Almond RAT

Die Informationen über die von Bitter (die üblicherweise  als BitterRAT bezeichnet werden) eingesetzten Remote-Access-Trojaner (RATs) sind begrenzt und manchmal widersprüchlich. Wir haben festgestellt, dass Bitter je nach Szenario und Ziel unterschiedliche RAT-Implementierungen/Varianten einsetzt.

In diesem Fall analysierten wir ein Beispiel für einen .NET-basierten RAT, den wir in früheren Berichten oder Open-Source-Repositories nicht identifizieren konnten. In Ermangelung einer existierenden Erkennung und eines besseren Namens werden wir es für diese Analyse als “Almond RAT” bezeichnen. Das Beispiel wurde erstmals von dem Twitter-Nutzer @binlmmhc erwähnt. Der oben erwähnte aktuelle Bericht von Qi Anxin bezeichnet dieses RAT lediglich als “leichtgewichtige Fernsteuerung”.

Abb. 19: Detect it Easy analysiert die Almond RAT PE-Datei

Grundlegende Funktionen

Die Hauptfunktion des RAT prüft vor dem Aufruf der StartClient-Funktion auf die Mutex-Zeichenkette saebamini.com SingletonApp. Wie sich herausstellte, müssen selbst erfahrene Angreifer manchmal die wirklich einfachen Dinge nachschlagen: in diesem Fall ein kurzes Tutorial über Allowing Only One Instance of a C# Application to Run, die denselben Mutex-String verwendet. Wie immer haben sie nur die Hälfte der Antwort kopiert und vergessen, den Aufruf von ReleaseMutex am Ende einzufügen…

Abb. 20: Hauptfunktion, Setzen einer Mutex

Almond RAT verwendet die String-Verschlüsselung, um die Erkennung und das Reverse Engineering zu erschweren. Wichtige/aufschlussreiche Zeichenfolgen wie die untenstehende Command&Control (C2) IP-Adresse sind daher in die Funktion ciphertext.Decrypt verpackt.

Abb. 21: StartClient-Funktion, die die AES-String-Verschlüsselung zeigt

Die Entschlüsselungsfunktion implementiert ein standardmäßiges AES-256-CBC-Verschlüsselungsschema, bei dem der IV und der Schlüssel aus dem gegebenen Klartextpasswort über PDKDF2 abgeleitet werden. Da es trivial ist, dies z. B. in Python neu zu implementieren, haben wir alle verschlüsselten Zeichenfolgen in der Binärdatei entschlüsselt und die .NET-Assembly geändert, um die Lesbarkeit des Codes für diesen Bericht zu verbessern. Die Dateihashes der unveränderten und modifizierten Binärdateien finden Sie im IoC-Abschnitt am Ende des Beitrags.

Abb. 22: String-Entschlüsselungsfunktion mit AES CBC

Die StartClient-Funktion implementiert die Socket-basierte C2-Kommunikationsschnittstelle für Almond RAT. In den von uns beobachteten Beispielen gab es keine Domänen oder dynamischen DNS-Dienste, sondern nur IPv4-Adressen, die für die Rückverbindung zu den Bedrohungsakteuren verwendet wurden. Eine charakteristische Eigenschaft des RAT ist die Verwendung des tcp-Ports 33638 . Bei der ersten Kontaktaufnahme mit dem C2-Server überträgt Almond RAT gesammelte Systeminformationen wie Hostname, Betriebssystemversion, interne IP-Adresse und MAC-Adresse sowie Speicherkennungen (Festplatteninformationen werden nicht übertragen), um einen Fingerabdruck des infizierten Systems zu erstellen. Für die C2-Kommunikation wird ein 1024-Byte-Puffer verwendet.

Abb. 23: StartClient Funktion

Fähigkeiten und C2-Kommunikation

Als nächstes werden wir die Funktionalität von Almond RAT genauer untersuchen.  Zu Beginn der Funktion StartCommWithServer setzt das RAT ein zufälliges Empfangs-Timeout zwischen 20 und 30 Sekunden für den Socket. Das untersuchte Beispiel nimmt insgesamt sieben verschiedene Befehle an. Der REFRESH-Befehl wird als Heartbeat-Signal verwendet, das dem C2-Server mitteilt, dass der RAT noch aktiv ist und mit einem einfachen OK antwortet.

Der DRIVE-Befehl gibt eine Liste der angeschlossenen Speichergeräte zurück.

Mit dem DELETE*-Befehl können die Angreifer zugängliche Dateien löschen, indem sie einen Pfad angeben. Bei unzureichenden Berechtigungen z.B. wird eine Ausnahme zurückgegeben. Das * in der Befehlszeichenfolge wird als Trennzeichen zwischen dem Befehl und dem Dateipfad verwendet.

Abb. 24: Basic C2 Funktionalität

Almond RAT ermöglicht die Ausführung beliebiger Befehle über eine cmd.exe-Instanz. Es hat eine eigene Implementierung für Verzeichniswechsel über cd und Verzeichnisauflistungen über OK. Der CMD-Befehl verwendet eine Tilde statt eines Sternchens, um die Teile des Befehls zu trennen.

Abb. 25: Ausführen des Befehls

Zusätzlich zu der Funktionalität, Verzeichnisse und Dateien über die Eingabeaufforderung aufzulisten, unterstützt der RAT auch einen recht komplexen DIR*-Befehl. Er ist in der Lage, die Erreichbarkeit von Dateien zu überprüfen und Metadaten wie die letzte Schreibzeit einer Datei anzuzeigen.

Abb. 26: Verzeichnis- und Dateilisten

Da Bitters Hauptziel die Spionage ist, benötigen sie eine Möglichkeit, Daten vom System zum C2-Server zu exfiltrieren, was über den Befehl DOWNLOAD* geschieht.

Um weitere Malware oder andere Dateien auf dem System abzulegen, wird auch der Befehl UPLOAD* unterstützt, der das folgende Dateinamenschema verwendet: yyyyMMdd-hhmmss_filename

Abb. 27: DOWNLOAD* und UPLOAD* Funktionen

Wenn der RAT einen unbekannten Befehl vom Betreiber erhält, gibt er die Meldung XXX zurück, um den Fehler anzuzeigen.

Abb. 28: Ausnahmebehandlung im Falle eines unbekannten Befehls

Die Hauptzwecke von Almond RATs scheinen die Entdeckung des Dateisystems, die Datenexfiltration und die Möglichkeit zu sein, weitere Tools nachzuladen bzw. die Persistenz herzustellen. Das Design der Tools scheint so angelegt zu sein, dass es schnell geändert und an das aktuelle Angriffsszenario angepasst werden kann.

Hosting-Infrastruktur / Netzwerkindikatoren

WHOIS und DNS Records

Der Staging-Server für den Downloader und der Staging-Server für den RAT werden bei Host Sailor gehostet. Der Command&Control-Server für den Downloader wird bei Namecheap gehostet und der für Almond RAT bei Nexeon Technologies. Abgesehen von den in diesem Bericht analysierten Samples wurden keine weiteren signifikanten Malware-Aktivitäten mit diesen vier Domänen festgestellt.

Staging Server ZxxZ Downloader

Domain emshedulersvc[.]com
Registrar ENOM Inc.
Hoster Host Sailor Ltd.
Created 10.05.2022 – 91.195.240[.]103
Updated 12.05.2022 – 194.36.191[.]196

C2 Server ZxxZ Downloader

Domain huandocimama[.]com            
Registrar Namecheap Inc.
Hoster Namecheap Inc.
Created 19.08.2021 – 162.0.232[.]109
Updated N/A

Staging Server dritte Stufe

Domain diyefosterfeeds[.]com
Registrar ENOM Inc.
Hoster Host Sailor Ltd.
Created 02.02.2022 – 194.36.191[.]196
Updated N/A

Almond RAT C2 Server

Domain 64.44.131[.]109
Hoster Nexeon Technologies Inc.
ASN AS20278
Created 27.02.2014

Bei der Untersuchung dieser DNS-Einträge fiel uns auch auf, dass am 30.05.2022 ein neuer Eintrag für spurshipbroker[.]com unter 194.36.191[.]196 erstellt wurde. Bei dieser Domain scheint es sich um einen so genannten “Typosquat” (Nachahmung) von spurshipbrokers[.]com, einem indischen Schifffahrts- und Transportunternehmen, zu handeln. Dieser Datensatz stach zwischen scheinbar rechtmäßigem Webhosting und Typosquats für Bankseiten auf diesem von Bitter genutzten Webhost/IP hervor. Auch wenn wir zu diesem Zeitpunkt keine weiteren Beweise dafür haben, dass dies mit den Aktivitäten von Bitter zusammenhängt, so passt es doch sehr gut zu der Herangehensweise der Gruppe und dem Köder mit dem Thema Marine.

Yara Regeln

Den Yara-Regelsatz, den wir für diesen Bericht erstellt haben, finden Sie unten in unserem Github-Repository: SIFalcon/Detection und auf Abuse.ch Yaraify.

/*
Yara Rule Set
Author: SECUINFRA Falcon Team
Date: 2022-06-23
Identifier: 0x03-yara_win-Bitter_T-APT-17
Reference: “https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh”
*/

/* Rule Set —————————————————————– */

rule APT_Bitter_Maldoc_Verify {

meta:
description = “Detects Bitter (T-APT-17) shellcode in oleObject (CVE-2018-0798)”
author = “SECUINFRA Falcon Team (@SI_FalconTeam)”
tlp = “WHITE”
reference = “https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh”
date = “2022-06-01”
hash0 = “0c7158f9fc2093caf5ea1e34d8b8fffce0780ffd25191fac9c9b52c3208bc450”
hash1 = “bd0d25194634b2c74188cfa3be6668590e564e6fe26a6fe3335f95cbc943ce1d”
hash2 = “3992d5a725126952f61b27d43bd4e03afa5fa4a694dca7cf8bbf555448795cd6”

strings:
// This rule is meant to be used for verification of a Bitter Maldoc
// rather than a hunting rule since the oleObject it is matching is
// compressed in the doc zip

$xor_string0 = “LoadLibraryA” xor
$xor_string1 = “urlmon.dll” xor
$xor_string2 = “Shell32.dll” xor
$xor_string3 = “ShellExecuteA” xor
$xor_string4 = “MoveFileA” xor
$xor_string5 = “CreateDirectoryA” xor
$xor_string6 = “C:\\Windows\\explorer” xor
$padding = {000001128341000001128341000001128342000001128342}

condition:
3 of ($xor_string*)
and $padding
}

rule APT_Bitter_ZxxZ_Downloader {

meta:
description = “Detects Bitter (T-APT-17) ZxxZ Downloader”
author = “SECUINFRA Falcon Team (@SI_FalconTeam)”
tlp = “WHITE”
reference = ” https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh”
date = “2022-06-01”
hash0 = “91ddbe011f1129c186849cd4c84cf7848f20f74bf512362b3283d1ad93be3e42”
hash1 = “90fd32f8f7b494331ab1429712b1735c3d864c8c8a2461a5ab67b05023821787”
hash2 = “69b397400043ec7036e23c225d8d562fdcd3be887f0d076b93f6fcaae8f3dd61”
hash3 = “3fdf291e39e93305ebc9df19ba480ebd60845053b0b606a620bf482d0f09f4d3”
hash4 = “fa0ed2faa3da831976fee90860ac39d50484b20bee692ce7f0ec35a15670fa92”

strings:
// old ZxxZ samples / decrypted strings
$old0 = “MsMp” ascii
$old1 = “SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion” ascii
$old2 = “&&user=” ascii
$old3 = “DN-S” ascii
$old4 = “RN_E” ascii

// new ZxxZ samples
$c2comm0 = “GET /” ascii
$c2comm1 = “profile” ascii
$c2comm2 = “.php?” ascii
$c2comm3 = “data=” ascii
$c2comm4 = “Update” ascii
$c2comm5 = “TTT” ascii

condition:
uint16(0) == 0x5a4d
and filesize > 39KB // Size on Disk/1.5
and filesize < 2MB // Size of Image*1.5

and (all of ($old*)) or (all of ($c2comm*))

}

import “pe”
import “dotnet”

rule APT_Bitter_Almond_RAT {

meta:
description = “Detects Bitter (T-APT-17) Almond RAT (.NET)”
author = “SECUINFRA Falcon Team (@SI_FalconTeam)”
tlp = “WHITE” reference = ” https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh”
date = “2022-06-01” hash = “55901c2d5489d6ac5a0671971d29a31f4cdfa2e03d56e18c1585d78547a26396”

strings:
$function0 = “GetMacid” ascii
$function1 = “StartCommWithServer” ascii
$function2 = “sendingSysInfo” ascii
$dbg0 = “*|END|*” wide
$dbg1 = “FILE>” wide
$dbg2 = “[Command Executed Successfully]” wide

condition:
uint16(0) == 0x5a4d
and dotnet.version == “v4.0.30319”
and filesize > 12KB // Size on Disk/1.5
and filesize < 68KB // Size of Image*1.5
and any of ($function*)
and any of ($dbg*)
}

rule APT_Bitter_PDB_Paths {

meta:
description = “Detects Bitter (T-APT-17) PDB Paths”
author = “SECUINFRA Falcon Team (@SI_FalconTeam)”
tlp = “WHITE”
reference = “https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh”
date = “2022-06-22”
hash0 = “55901c2d5489d6ac5a0671971d29a31f4cdfa2e03d56e18c1585d78547a26396”

strings:
// Almond RAT
$pdbPath0 = “C:\\Users\\Window 10 C\\Desktop\\COMPLETED WORK\\” ascii
$pdbPath1 = “stdrcl\\stdrcl\\obj\\Release\\stdrcl.pdb”

// found by Qi Anxin Threat Intellingence Center
// reference: https://mp.weixin.qq.com/s/8j_rHA7gdMxY1_X8alj8Zg
$pdbPath2 = “g:\\Projects\\cn_stinker_34318\\”
$pdbPath3 = “renewedstink\\renewedstink\\obj\\Release\\stimulies.pdb”

condition:
uint16(0) == 0x5a4d
and any of ($pdbPath*)
}

Indicators of Compromise

Samples

Alle in diesem Bericht erwähnten Samples werden zu Verifikations- und weitergehenden Forschungszwecken über die Plattformen MalwareBazaar und Malshare bereitgestellt.

Maldoc

Filename: Repair of different csoc cstc, china supplied system – BNS BIJOY.xlsx
MD5: 1bf615946ad9ea7b5a282a8529641bf6
SHA1: 358867f105b517624806c3315c5426803f7c42a7
SHA256: bc03923e3cc2895893571068fd20dd0bc626764d06a009b91dac27982e40a085

Extrahiertes oleObject:

MD5: a1d9e1dccfbba118d52f95ec6cc7c943
SHA1: 8efa4d5574a0c80733e9824ec146521385a68424
SHA256: 0c7158f9fc2093caf5ea1e34d8b8fffce0780ffd25191fac9c9b52c3208bc450

ZxxZ / Muuy Downloader

Filename: vc
MD5: 6e4b4eb701f3410ebfb5925db32b25dc
SHA1: c330ef43bbee001296c6c120cf68e4c90d078d9c
SHA256: 91ddbe011f1129c186849cd4c84cf7848f20f74bf512362b3283d1ad93be3e42

Almond RAT

Filename: stdrcl.exe
MD5: 71e1cfb5e5a515cea2c3537b78325abf
SHA1: bcc9e35c28430264575831e851182eca7219116f
SHA256: 55901c2d5489d6ac5a0671971d29a31f4cdfa2e03d56e18c1585d78547a26396

Geänderte Baugruppe mit entschlüsselten Zeichenfolgen:

MD5: d58e6f93bd1eb81eacc965d530709246
SHA1: a47aec515f303ae7f427d98fc69fe828fa9c6ec6
SHA256: d83cb82be250604b2089a1198cedd553aaa5e8838b82011d6999bc6431935691

Host-basierte Indikatoren

# File paths associated with the Downloader
C:\$Drw\dsw
C:\$Drw\fsutil.exe

# Almond RAT Mutex
saebamini.com SingletonApp

Network-basierte Indikatoren

emshedulersvc[.]com/vc/vc
m.huandocimama[.]com
diyefosterfeeds[.]com

91.195.240[.]103
194.36.191[.]196
162.0.232[.]109
64.44.131[.]109

MITRE ATT&CK TTPs

Erste Stufe – Initiale Kompromittierung

Taktik Technik Beschreibung Erkennbar
Resource Development Stage Capabilities: Upload Malware (T1608.001 Bitter is using legitimate webhosting services to stage malware Hosters: HostSailor, Namecheap
Initial Access Phishing: Spearphishing Attachment (T1566.001) Bitter is distributing malicious Microsoft Office documents with military / naval lures Filename: Repair of different csoc cstc, china supplied system – BNS BIJOY.xlsx
Execution Exploitation for Client Execution (T1203) Exploitation of the Microsoft Office Equation Editor via a Memory Corruption (CVE-2018-0798) OLE file with stream named: Equation Native

 

Zwischenstufe – Herunterladen von zusätzlichen Tools

Taktik Technik Beschreibung Erkennbar
Defense Evasion Obfuscated Files or Information (T1027) Important strings in ZxxZ/MuuyDownloader executables are XOR encrypted Example string: vSCbLAsUGPVbnCW
Reconnaissance Gather Victim Host Information: Software (T1592.002) ZxxZ/MuuyDownloader fingerprints the attacked system Requested URL: hxxp://m.huandocimama[.]com/JvQKLsTYuMe/xAexyBbnDxW/profiles.php?profiles=<USERNAME_HOSTNAME>
Command and Control Ingress Tool Transfer (T1105) ZxxZ/MuuyDownloader is capable of downloading files from the C2 onto the system Command: UPLOAD*filepath, File naming scheme: yyyyMMdd-hhmmss_filename

Finale Stufe – Spionage

Taktik Technik Beschreibung Erkennbar
Defense Evasion Obfuscated Files or Information (T1027) Important strings in Almond RAT executables are encrypted using AES-CBC Encrypted: 4CjJPGsn5qweV7CEMgTzXtD/2oxaXj/Cddgsjl8tJGU=, Decrypted: 64.44.131.109
Reconnaissance Gather Victim Host Information: Software (T1592.002) Almond RAT fingerprints the attacked system Generated Fingerprint: HOSTNAME*MAC_ADDRESS*OS_VERSION
Command and Control Non-Standard Port (T1571) Almond RAT communicates with the C2 via a non-standard port Network port: 33638/tcp
Command and Control Ingress Tool Transfer (T1105) Almond RAT is capable of downloading files from the C2 onto the system Command: UPLOAD*filepath, Network Port: 33638/tcp
Exfiltration Exfiltration over C2 Channel (T1041) Almond RAT is capable of uploading accessible files from the system to a C2 server Command: DOWNLOAD*filepath, Network Port: 33638/tcp
Exfiltration Data Transfer Size Limits (T1030) Almond RAT is using a 1024 byte buffer for C2 communication and Exfiltration Network buffer: 1024 bytes
Discovery File and Directory Discovery (T1083) Almond RAT is capable of enumerating directories and files Command: DIR*
Impact Data Destruction (T1485) Almond RAT is capable of deleting accessible files on the system Command: DELETE*filepath

Fazit

Die Bitter Gruppe setzt ihren Exploit-Ansatz in Asien mit thematischen Ködern und internen Änderungen fort, um bestehende Detektionen zu umgehen. Um sich vor solchen Angriffen zu schützen, sollten Maßnahmen zur Erkennung und Bekämpfung von Netzwerken und Endpunkten ergriffen werden, und häufig ausgenutzte Software wie Microsoft Office sollte regelmäßig aktualisiert werden. Wir werden diese Bedrohungsgruppe weiterhin beobachten und über Änderungen ihrer Taktiken, Techniken und Verfahren berichten.

Vielen Dank, dass Sie sich die Zeit genommen haben, unseren Analysebericht zu lesen! Wenn Sie über unsere Forschung auf dem Laufenden bleiben möchten, sollten Sie uns auf Twitter folgen.

Beitrag teilen auf:

XING
Twitter
LinkedIn

SECUINFRA Falcon Team • Autor

Digital Forensics & Incident Response Experten

Neben den Tätigkeiten, die im Rahmen von Kundenaufträgen zu verantworten sind, kümmert sich das Falcon Team um den Betrieb, die Weiterentwicklung und die Forschung zu diversen Projekten und Themen im DF/IR Bereich.

> alle Artikel
Cookie Consent mit Real Cookie Banner