FamousSparrow: Cyberspionage statt Zimmer‑Service

Die neue APT-Gruppe FamousSparrow greift Hotel-Server an, um Regierungsvertreter und Unternehmen gezielt auszuspionieren.

Die neue APT-Gruppe FamousSparrow greift Hotel-Server an, um Regierungsvertreter und Unternehmen gezielt auszuspionieren.

ESET-Forscher haben eine neue Cyberspionage-Gruppe entdeckt, die weltweit Hotels, Regierungen und Privatunternehmen ins Visier genommen hat. Wir haben diese Gruppe FamousSparrow genannt und glauben, dass sie mindestens seit 2019 aktiv ist.

Bei der Untersuchung der Angriffe ergab unsere Telemetrieanalyse, dass FamousSparrow  die im März 2021 ausführlich beschriebene Microsoft Exchange-Schwachstelle ProxyLogon ausnutzte. Laut der ESET-Telemetrie begann FamousSparrow schon am 03.03.2021, dem Tag nach der Veröffentlichung des Patches, die Schwachstellen auszunutzen.

In diesem Blogpost diskutieren wir, warum wir den Angriff FamousSparrow zuschreiben und die Zielauswahl der Gruppe. Darauf folgt eine detaillierte technische Analyse der hauptsächlich genutzten Backdoor der Gruppe, die wir SparrowDoor genannt haben.

Ein Hinweis zur Attribution

FamousSparrow ist, laut unseren Erkenntnissen, die derzeit einzige Gruppe, die die maßgeschneiderte Backdoor SparrowDoor nutzt (sie wird in den weiteren Abschnitten dieses Blogposts ausführlich beschrieben). Daneben verwendet sie auch zwei maßgeschneiderte Versionen von Mimikatz (siehe Abschnitt Indicators of Compromise), mittels derer eventuell weitere Vorfälle mit dieser Gruppe in Verbindung gebracht werden können.

Obwohl wir FamousSparrow als eigenständige Einheit betrachten, haben wir Verbindungen zu anderen bekannten APT-Gruppen gefunden. In einem Fall setzten die Angreifer eine Variante von Motnug ein, bei der es sich um einen von SparklingGoblin verwendeten Loader handelt. In einem anderen Fall fanden wir auf einer von FamousSparrow kompromittierten Maschine ein laufendes Metasploit mit cdn.kkxx888666[.]com als C&C-Server. Diese Domäne gehört zu einer Gruppe namens DRDControl.

Viktimologie

Nach unseren Erkenntnissen ist die Gruppe mindestens seit August 2019 aktiv und greift hauptsächlich Hotels in aller Welt an. Darüber hinaus konnten wir einige Ziele in weiteren Sektoren gesehen, wie Regierungen, internationale Organisationen, Ingenieurbüros und Anwaltskanzleien. Diese befanden sich in den folgenden Ländern:

  • Brasilien
  • Burkina Faso
  • Südafrika
  • Kanada
  • Israel
  • Frankreich
  • Guatemala
  • Litauen
  • Saudi Arabien
  • Taiwan
  • Thailand

Großbritannien

Figure 1. Geographic distribution of FamousSparrow targets

Abbildung 1. Geografische Verteilung der FamousSparrow -Ziele

Angriffsvektoren

In einigen Fällen konnten wir den anfänglichen Kompromittierungsvektor von FamousSparrow  finden. Diese Systeme wurden durch anfällige, mit dem Internet verbundene Webanwendungen kompromittiert. Wir glauben, dass FamousSparrow bekannte Sicherheitslücken bei der Remotecodeausführung in Microsoft Exchange (einschließlich der ProxyLogon-Schwachstelle im März 2021), Microsoft SharePoint und Oracle Opera (Geschäftssoftware für die Hotelverwaltung) ausgenutzt hat, um verschiedene bösartige Malware-Samples auf den Systemen zu droppen.

Sobald der Server kompromittiert wurde, setzten die Angreifer mehrere maßgeschneiderte Tools ein:

  • Eine Mimikatz-Variante
  • Ein kleines Dienstprogramm, das ProcDump auf der Festplatte ablegt und es verwendet, um den lsass-Prozess zu sichern, wahrscheinlich um speicherinterne Geheimnisse wie Anmeldeinformationen zu sammeln
  • Nbtscan, ein NetBIOS-Scanner
  • Ein Lader für die SparrowDoor-Hintertür

Durch unsere Telemetrie konnten wir nur die Loader-Komponente wiederherstellen (SHA-1: E2B0851E2E281CC7BCA3D6D9B2FA0C4B7AC5A02B). Außerdem fanden wir einen sehr ähnlichen Loader auf VirusTotal (SHA-1: BB2F5B573AC7A761015DAAD0B7FF03B294DC60F6), der es uns ermöglichte, die fehlenden Komponenten, einschließlich SparrowDoor, zu finden.

Analyse von SparrowDoor

Der Loader

SparrowDoor wird zunächst über DLL-Suchreihenfolgen-Hijacking geladen, wobei drei Elemente verwendet werden – eine legitime ausführbare K7-Computing-Datei (Indexer.exe), die als DLL-Hijacking-Host verwendet wird, eine bösartige DLL (K7UI.dll) und verschlüsselter Shellcode (MpSvc.dll) – alle davon werden in %PROGRAMDATA%\Software\ abgelegt. Es kann davon ausgegangen werden, dass das Befehlszeilenargument, das bei der anfänglichen SparrowDoor-Ausführung verwendet wird, um die Persistenz einzurichten, entweder nichts oder alles andere als -i, -k oder -d ist (die Funktionalitäten dieser drei Argumente werden unten erklärt). Sobald Persistenz erreicht wurde, wird SparrowDoor mit dem Befehlszeilenargument -i ausgeführt. Abbildung 2 für zeigt einen kurzen Überblick über den Ablauf des anfänglichen Malware-Ladevorgangs. Wenn Sie einen tieferen Einblick in den Ladevorgang wünschen, lesen Sie weiter!

Figure 2. SparrowDoor staging

Abbildung 2. SparrowDoor-Staging

Die legitime ausführbare Datei Indexer.exe benötigt die Bibliothek K7UI.dll, damit sie funktioniert. Daher sucht das Betriebssystem in Verzeichnissen in der vorgeschriebenen Ladereihenfolge nach der DLL-Datei. Da das Verzeichnis, in dem die Datei Indexer.exe gespeichert ist, die höchste Priorität in der Ladereihenfolge hat, ist es für DLL-Suchreihenfolgen-Hijacking verletzlich. Und auf genau diese Weise wird die Malware geladen: Indexer.exe lädt die bösartige K7UI.dll, die wiederum den Code in Indexer.exe patcht (von call WinMain zu jmp K7UI.0x100010D0) und dann zu Indexer.exe zurückkehrt. Infolgedessen führt Indexer.exe eine Subroutine in K7UI.dll aus (die sich im Abschnitt .text befindet), anstatt WinMain aufzurufen. Wir bezeichnen diese Subroutine im Weiteren als Launcher. Die Funktion des Launchers besteht darin, MpSvc.dll (den verschlüsselten Shellcode) aus dem Verzeichnis, in dem auch Indexer.exe gespeichert ist, in den Speicher zu laden, den Inhalt zu entschlüsseln und dann den Shellcode auszuführen.

Der Shellcode (MpSvc.dll) wird mit Vier-Byte-XOR verschlüsselt, wobei der Schlüssel den ersten vier Byte der Datei entspricht.

Der Shellcode MpSvc.dll lädt verschiedene Bibliotheken, die für den Aufbau einer PE-Struktur verantwortlich sind, und sucht die Adressen der zu verwendenden Funktionen. Danach weist er RWX-Speicher zu und kopiert verschiedene Stellen im Shellcode hinein (um die PE-Struktur aufzubauen). Er löst auch den Import mehrerer Funktionen aus verschiedenen Bibliotheken auf. Schließlich führt er das neu erstellte Backdoor-PE vom Einstiegspunkt aus. Interessanterweise hat dieses neu erstellte ausführbare Image keine PE-Header, wie in Abbildung 2 gezeigt. Der Loader führt die Hintertür dadurch aus, dass er zum Einstiegspunkt an einem fest codierten Offset innerhalb des zugewiesenen Speichers springt.

Abbildung 3. Der PE-Header fehlt in der neu erstellten Hintertür des MpSvc.dll-Shellcodes

Abbildung 3. Der PE-Header fehlt in der neu erstellten Hintertür des MpSvc.dll-Shellcodes

Die Backdoor

Die an die Backdoor übergebenen Argumente werden von den Argumenten geerbt, die an Indexer.exe oder an jede andere Binärdatei übergeben werden, die den Shellcode/die Backdoor injiziert bekommt. Die Aufgaben, die die Backdoor nach der Angabe eines Arguments ausführt, sind in Tabelle 1 aufgeführt.

Tabelle 1. Aktionen, die basierend auf den Befehlszeilenargumenten von SparrowDoor ausgeführt werden.

ArgumentAktion
Kein Argument oder nicht mit den unten genannten übereinstimmendDie Persistenz wird über den Run-Schlüssel der Registrierung und einen Dienst festgelegt, der mit den in der Binärdatei fest codierten Konfigurationsdaten (beschrieben im nächsten Abschnitt) erstellt und gestartet wird. Abschließend wird die Backdoor mit dem Schalter -i neu gestartet.
-iDie Backdoor wird mit -k neu gestartet.
-kDer Backdoor-Interpreter (wird später beschrieben) wird mit einem Kill-Switch aufgerufen.
-dDer Backdoor-Interpreter wird ohne Kill-Switch aufgerufen.

Hinweis:

  1. Der Kill-Switch gibt der Hintertür die Berechtigungen, um SparrowDoor zu deinstallieren oder neu zu starten.
  2. Der Backdoor-Interpreter wird unabhängig vom verwendeten Argument aufgerufen, da er immer mit einem -k– oder -d-Argument endet.

Konfigurationsdaten für SparrowDoor

Die Konfiguration befindet sich in der Binärdatei und wird mit dem Multi-Byte-XOR-Schlüssel ^&32yUgf  entschlüsselt. Die Konfiguration hat folgendes Format:

Die entschlüsselten Werte sind in Tabelle 2 aufgeführt.

Tabelle 2. Die Schlüssel-Wert-Paare der Konfiguration zusammen mit einer Beschreibung ihres Zwecks

KeyValuePurpose
domaincredits.offices-analytics[.]comC&C server domain
useruserProxy-Einstellungen für die Verbindung zum C&C-Server
passpass
ip127.1.1.1
port8080
serviceNameWSearchIndexInformationen, die zum Erstellen eines Dienstes zum Einrichten der Persistenz verwendet werden. Beachten Sie auch, dass serviceName als Wertname unter dem Run-Schlüssel in der Registrierung verwendet wird
serviceDisplayNameWindows Search Index
serviceDescriptionStellt Inhaltsindizierung, Eigenschaftszwischenspeicherung und Suchergebnisse für Dateien, E-Mail und anderen Inhalt bereit.

Die Verbindungen können entweder über einen Proxy erfolgen oder nicht, und sie verbinden die Backdoor über Port 443 (HTTPS) mit dem C&C-Server. Daher sollte die Kommunikation mit TLS verschlüsselt sein. Beim ersten Versuch, den C&C-Server zu kontaktieren, prüft SparrowDoor, ob eine Verbindung ohne Proxy hergestellt werden kann, und wenn nicht, werden die Daten über einen Proxy gesendet. Alle ausgehenden Daten werden mit dem XOR-Schlüssel hH7@83#mi verschlüsselt und alle eingehenden Daten mit dem XOR-Schlüssel h*^4hFa entschlüsselt. Die Daten haben eine Struktur, die mit einer Befehls-ID beginnt, gefolgt von der Länge der folgenden verschlüsselten Daten, danach gefolgt von den verschlüsselten Daten.

Abbildung 4 zeigt ein Beispiel dafür, wie die Daten an den C&C-Server gesendet werden (in diesem Fall sendet er Systeminformationen), während Abbildung 5 die Klartextform derselben Datennutzlast zeigt.

Abbildung 4. Ein Wireshark-Dump mit den von der Backdoor gePOSTeten Daten

Abbildung 4. Ein Wireshark-Dump mit den von der Backdoor gePOSTeten Daten

Figure 5. The decrypted data containing system information

Abbildung 5. Die entschlüsselten Daten mit Systeminformationen

Die lokale IP-Adresse des Opfers kann in diesem Fall in eine Dezimalzahl umgewandelt werden, was 192.168.42.1 ergibt.

Die Session-ID ist die Session-ID der Remotedesktopdienste, die dem Backdoor-Prozess zugeordnet ist und mithilfe des Windows-API-Aufrufs ProcessIdToSessionId gefunden wird.

Der systemInfoHash wird über den sdbm-Hash-Algorithmus unter Verwendung des Benutzernamens, des Computernamens, der Hostadressen und der Sitzungs-ID berechnet.

Die Backdoor-Interpreterfunktion

Die Rechteeskalation wird in dieser Funktion durchgeführt, indem das Zugriffstoken des SparrowDoor-Prozesses angepasst wird, um SeDebugPrivilege zu aktivieren. Danach wird die shutdown-Funktion (Ws2_32.dll) gepatcht, um das Deaktivieren von Sende- und Empfangsvorgängen auf einem Socket zu verhindern. Die closesocket-Funktion (Ws2_32.dll) wird gepatcht, damit die DONT_LINGER-Option zuerst den Socket schließt, ohne darauf zu warten, dass ausstehende Daten gesendet oder empfangen werden. Schließlich werden Systeminformationen an den C&C-Server gesendet (wie in den Abbildungen 4 und 5 oben gezeigt), um im Gegenzug Daten zurück zu erhalten.

Basierend auf dem Befehls-ID-Feld in den vom C&C-Server empfangenen Daten kann die Hintertür verschiedene bösartige Aktionen ausführen, die in Tabelle 3 detailliert aufgeführt sind.

Tabelle 3. Aktionen, die von SparrowDoor ausgeführt werden, wenn die entsprechenden Befehls-IDs empfangen werden:

Befehls-IDAktion
0x1C615632Der aktuelle Prozess wird geschlossen.
0x1DE15F35Ein untergeordneter svchost.exe-Prozess wird mit processToken-Informationen des vom C&C-Server angegebenen Prozesses (Prozess-ID) mit dem Argument -d gestartet und dann wird der Shellcode in den Prozess eingefügt.
0x1A6B561AEin Verzeichnis wird mit dem vom C&C-Server bereitgestellten Namen erstellt.
0x18695638Eine Datei wird umbenannt. Sowohl die umzubenennende Datei als auch der neue Name werden vom C&C-Server bereitgestellt.
0x196A5629Eine Datei wird gelöscht, wie in den eingehenden Daten angegeben.
0x17685647Wenn die Länge der Daten 1 ist und die Daten mit $ übereinstimmen, wird die Länge von systemInfoHash zusammen mit einem Array von Laufwerkstypen gesendet.
Wenn die Länge der Daten größer als 2 ist und die ersten 2 Bytes der Daten mit $\ übereinstimmen, werden Informationen über die Dateien in einem angegebenen Verzeichnis gesendet. Die enthaltenen Informationen sind die folgenden: Dateiattribute, Dateigröße und Dateischreibzeit.
0x15665665Ein neuer Thread wird erstellt, um den Inhalt einer angegebenen Datei zu exfiltrieren.
0x16675656Wenn der Kill-Switch aktiviert ist, werden die aktuellen Persistenzeinstellungen (Registrierung und Dienst) entfernt und die Datei Indexer.exe ausgeführt (um den Dropper neu zu starten). Wenn nicht, wird die Backdoor-Schleife neu gestartet.
0x14655674Ein neuer Thread wird erstellt, um die Daten in eine angegebene Datei zu schreiben.
0x12635692 Wenn der Kill-Switch aktiviert ist, werden die Persistenzeinstellungen entfernt und alle von SparrowDoor verwendeten Dateien (Indexer.exe, K7UI.dll und MpSvc.dll) werden entfernt. Wenn nicht, wird die Backdoor-Schleife neu gestartet.
0x13645683Stimmen die Daten mit „switch“ überein, dann wird die Backdoor mit dem Schalter -d neu gestartet.
Wenn nicht, erzeugt es eine cmd.exe-Shell und richtet Named Pipes für Ein- und Ausgabe ein (die vom C&C-Server verwendet werden), um eine interaktive Reverse-Shell einzurichten.
Wenn die Daten mit Exit\r\n übereinstimmen, wird die erzeugte Shell beendet.
SonstigesStartet die Backdoor-Schleife neu.

Fazit

FamousSparrow  ist eine weitere APT-Gruppe, die Anfang März 2021 Zugriff auf die Schwachstelle ProxyLogon Remote Code Execution hatte. Sie nutzte in der Vergangenheit bekannte Schwachstellen in Serveranwendungen wie SharePoint und Oracle Opera aus. Dies ist eine weitere Mahnung daran, wie wichtig es ist, mit dem Internet verbundene Anwendungen möglichst schnell zu patchen oder, falls ein schnelles Patchen nicht möglich ist, sie überhaupt nicht mit dem Internet zu verbinden.

Die Ziele, das Regierungen weltweit einschließt, legen nahe, dass die Absicht von FamousSparrow  Spionage ist. Wir haben einige Links zu SparklingGoblin und DRBControl hervorgehoben, aber wir sind der Meinung, dass diese Gruppen nicht identisch sind.

Eine umfassende Liste von Indicators of Compromise (IoCs) und Beispielen finden Sie in unserem GitHub-Repository.

Bei Fragen oder um Mustereinsendungen zu diesem Thema zu senden, kontaktieren Sie uns unter threatintel@eset.com.

Indicators of Compromise

UPDATE (13. Oktober 2021): Die IP-Adresse 45.192.178[.]206 wurde aus den Indicators of Compromise entfernt. Dies war ein Fehler unsererseits.

SHA-1FilenameESET detection nameDescription
B9601E60F87545441BF8579B2F62668C56507F4Ap64.exe
debug.log
Win64/Riskware.Mimikatz.HMimikatz
4DF896624695EA2780552E9EA3C40661DC84EFC8p64.exe
debug.log
Win64/Riskware.Mimikatz.HMimikatz
76C430B55F180A85F4E1A1E40E4A2EA37DB97599dump.exeWin64/Kryptik.BSQLsass dumper
873F98CAF234C3A8A9DB18343DAD7B42117E85D4nbtscan.exeWin32/NetTool.Nbtscan.ANbtscan
FDC44057E87D7C350E6DF84BB72541236A770BA21.cabWin32/FamousSparrow.ADropper
C36ECD2E0F38294E1290F4B9B36F602167E33614Indexer.exe-Legitimate K7 Computing binary
BB2F5B573AC7A761015DAAD0B7FF03B294DC60F6K7UI.dllWin32/FamousSparrow.ALoader
23E228D5603B4802398B2E7419187AEF71FF9DD5MpSvc.dllEncrypted shellcode
2560B7E28B322BB7A56D0B1DA1B2652E1EFE76EA--Decrypted shellcode
E2B0851E2E281CC7BCA3D6D9B2FA0C4B7AC5A02BK7UI.dllWin32/FamousSparrow.BLoader
DomainIP addressComment
credits.offices-analytics[.]com-SparrowDoor C&C server
-27.102.113[.]240Delivery domain

MITRE ATT&CK techniques

This table was built using version 9 of the MITRE ATT&CK framework.

TacticIDNameDescription
Resource DevelopmentT1588.005Obtain Capabilities: ExploitsFamousSparrow used RCE vulnerabilities against Microsoft Exchange, SharePoint and Oracle Opera.
T1583.001Acquire Infrastructure: DomainsFamousSparrow purchased a domain at Hosting Concepts.
T1583.004Acquire Infrastructure: ServerFamousSparrow rented servers at Shanghai Ruisu Network Technology and DAOU TECHNOLOGY.
Initial AccessT1190Exploit Public-Facing ApplicationFamousSparrow used RCE vulnerabilities against Microsoft Exchange, SharePoint and Oracle Opera.
ExecutionT1059.003Command and Scripting Interpreter: Windows Command ShellFamousSparrow used cmd.exe to run commands to download and install SparrowDoor.
T1203Exploitation for Client ExecutionFamousSparrow used RCE vulnerabilities in Microsoft Exchange, SharePoint and Oracle Opera to install SparrowDoor.
PersistenceT1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup FolderSparrowDoor achieves persistence through the HKCU Run registry value WSearchIndex = \Indexer.exe -i registry entry.
T1543.003Create or Modify System Process: Windows ServiceFamousSparrow installs SparrowDoor as a service named WSearchIndex.
T1574.001Hijack Execution Flow: DLL Search Order HijackingFamousSparrow loads the malicious K7UI.dll through DLL search order hijacking.
Defense EvasionT1055.001Process Injection: Dynamic-link Library InjectionMpSvc.dll (shellcode) is injected into processes by SparrowDoor.
T1134.002Access Token Manipulation: Create Process with TokenSparrowDoor creates processes with tokens of processes specified by the C&C server, using the CreateProcessAsUserA API.
T1134Access Token ManipulationSparrowDoor tries to adjust its token privileges to receive SeDebugPrivilege.
T1027Obfuscated Files or InformationThe shellcode, MpSvc.dll, is encrypted using XOR, along with the config embedded within SparrowDoor.
Credentials AccessT1003OS Credential DumpingFamousSparrow makes use of a custom Mimikatz version.
DiscoveryT1082System Information DiscoverySparrowDoor collects the username, computername, RDP session ID, and drive types in the system and sends this data to the C&C server.
T1083File and Directory DiscoverySparrowDoor can probe files in a specified directory obtaining their names, attributes, sizes and last modified times, and sends this data to the C&C server.
CollectionT1005Data from Local SystemSparrowDoor has the ability to read file contents and exfiltrate them to the C&C server.
Command and ControlT1071.001Application Layer Protocol: Web ProtocolsSparrowDoor communicates with the C&C server using the HTTPS protocol.
T1573.001Encrypted Channel: Symmetric CryptographySparrowDoor encrypts/decrypts communications with its C&C server using different multi-byte XOR keys.
ExfiltrationT1041Exfiltration Over C2 ChannelSparrowDoor exfiltrates data over its C&C channel.

Newsletter-Anmeldung

Hier können Sie mitdiskutieren