
Esplora la rete utilizzando VPNPivot tool
A volte eseguiamo penetration test esterni e quando compromettiamo il target remoto vorremmo esplorare la rete interna dietro di esso e ottenere tale compromissione come possedere Active Directory, accedere a file condivisi, condurre attacchi MITM ... ecc. Esistono molte tecniche come il port forwarding, socks4 ..., ma ognuna ha i suoi pro e contro. Questo è il motivo per cui le tecniche di VPN pivoting sono emerse, risolvono tutti i problemi riscontrati utilizzando entrambe le tecniche sopra menzionate. Ti permette di interagire con reti interne bloccate da firewall, NAT... ecc.
Questa è un'implementazione della tecnica VPN pivoting in Linux utilizzando socket di basso livello puri all'interno del dispositivo tap. Crea un tunnel completamente crittografato usando SSL/TLS tra la macchina di destinazione e l'attaccante.
VPN Pivot invia e riceve uno stack TCP/IP completamente crittografato su un socket di flusso TCP, quindi i peer lo inoltrano al dispositivo/host desiderato. L'attaccante esplora la rete interna come se vi appartenesse, con un indirizzo IP locale ottenuto dal server DHCP o configurato staticamente.
yaourt -S vpnpivot-git
L'installazione è piuttosto semplice, basta digitare i seguenti comandi:
root@pwnies:~# git clone https://github.com/0x36/VPNPivot.git
root@pwnies:~# cd VPNPivot
root@pwnies:~/VPNPivot# ./autogen.sh
root@pwnies:~/VPNPivot# ./configure
root@pwnies:~/VPNPivot# make && make install
Il server VPNPivot deve essere eseguito sulla macchina dell'attaccante; crea un dispositivo virtuale (tap) con la possibilità di cambiare MAC (utile per spoofing e MAC switching), indirizzo IP, MTU e anche il proprietario dell'interfaccia. I dispositivi TAP interagiscono con la macchina di destinazione; inviano/ricevono frame Ethernet grezzi. Una volta che l'attaccante ottiene una connessione tunnel riuscita, il dispositivo tap può interagire con il server DHCP della rete interna compromessa, ricevere/inviare pacchetti broadcast e anche riutilizzare indirizzi IP.
Lavorare con pivots è molto facile, devi solo sapere cosa fa ogni opzione:
root@pwnies:~/VPNPivot# ./src/pivots -h
__ _______ _ _ _____ _ _
\ \ / / __ \| \ | | __ (_) | |
\ \ / /| |__) | \| | |__) |__ _____ | |_
\ \/ / | ___/| . ` | ___/ \ \ / / _ \| __|
\ / | | | |\ | | | |\ V / (_) | |_
\/ |_| |_| \_|_| |_| \_/ \___/ \__|
VPNPivot server v1.0 by Simo36
-i --iface <device> Crea un dispositivo tap non persistente
-I --ifconf <ip/mask> Configurazione interfaccia (IP/MASK)
-p --port <port> Porta di ascolto del server (default: 12345)
-m --mtu <size> Dimensione MTU del dispositivo virtuale (default: 1550)
-u --user <user> Proprietario del dispositivo utente (OPZIONALE)
-H --hw <MAC> Imposta indirizzo MAC per l'interfaccia
-C --cert <server_cert> Nome file del certificato PEM
-P --pkey <private_key> Nome file della chiave privata PEM
-v --verbose Modalità verbosa
-d Demone
root@pwnies:~/VPNPivot#
Tutte le opzioni sopra sono opzionali, ma vale la pena spiegarle anche se le descrizioni sono autoesplicative:
Il client VPN Pivot deve essere eseguito sulla macchina di destinazione; crea due file socket, il primo come client per il tunnel e il secondo per interagire direttamente con la rete del dispositivo. Funziona come se stessimo creando un dispositivo tap non rilevabile, rendendolo più difficile da individuare.
Lavorare con pivotc è più facile che con il server; devi solo non confonderti quando tenti di farlo connettere a pivots:
root@pwnies:~/VPNPivot# ./src/pivotc
Usage :
./src/pivotc <server IP> <server port> <locale IP> [MTU]
root@pwnies:~/VPNPivot#
Le opzioni sono:
Non c'è niente di meglio di una demo dal vivo; ecco perché ho realizzato un video che spiega l'uso base di VPNPivot, e il video è su YouTube.
Questo è tutto! Buon pwn :-) Saluti