Durante un Penetration test è possibile che, dopo esser riusciti ad ottenere i privilegi di amministrazione su un host, esso abbia accesso ad una rete interna non accessibile dall’esterno. Non potendo fare scansioni in modo diretto, bisogna fare in modo di usare la propria macchina per identificare gli altri host presenti e le possibili vulnerabilità che potrebbero avere.

Concatenazione di reti interne

La tecnica da utilizzare viene detta Port Forwarding, ed è, citando Wikipedia, l’operazione che permette il trasferimento di dati da un computer ad un’altro tramite una specifica porta di comunicazione. Ci sono diverse tipologie di port forwarding, tra le quali:

  1. Local port forwarding: è una delle tipologie più comuni e può essere utilizzato per poter bypassare i firewall che bloccano certe porte. Essa istituisce un connessione SSH tra il client SSH e il server SSH. SSH ascolta su una porta locale stabilita quando la connessione è stata stabilita. Qualsiasi connessione a questa porta viene inoltrata attraverso il tunnel SSH sicuro e inviata a un host remoto e a una porta predefiniti;
  2. Dynamic port forwarding: in questo caso l’obiettivo è quello di consentire ai clienti di connettersi in modo sicuro a un server di fiducia che funge da intermediario al fine di inviare/ricevere dati a uno o più server di destinazione e permette di comunicare con tutto il range delle porte.

Per eseguire l’operazione ci possono essere diversi modi, vediamone un paio

Dynamic port forwarding tramite SSH

Creare un tunnel tramite ssh è la via più semplice e comoda in quanto, una volta aperto, tramite proxy sarà possibile accedere a tutta la rete interna. Il comando è

ssh -f -N -D 9050 username@indirizzo_IP

dove:

    • -f manda in background il comando una volta eseguito, in modo tale da non lasciare aperto un terminale apposta;
    • -N istruisce SSH di non mandare comandi remoti, decisamente utile in questo caso;
    • -D determina la porta dinamica da utilizzare per la connessione.

Prima di eseguirlo, si deve usare un tool come proxychains per instradare tutte le connessioni verso quella porta. Per configurarlo, basta modificare il file apposito ed inserire la porta scelta nello scorso comando (dovrebbe essere in /etc/proxychains.conf).

Configurazione di proxychains

Una volta configurato si può lanciare il comando ssh. Per verificare che tutto sia andato a buon fine, basta provare ad eseguire un comando verso un indirizzo interno di quella rete.

Curl tramite proxychains

Ora tutti i programmi che supportano una connessione tramite un proxy socks4 potranno essere utilizzati con gli IP privati. Ad esempio si potrà utilizzare nmap per scansionare la rete interna (andrà sicuramente più lento rispetto ad una scansione normale)

proxychains nmap -sTV -p80 -Pn -T4 10.200.0.33

Nmap tramite proxychains

Port forwarding tramite Metasploit

Sebbene io non ami particolarmente l’automatizzazione di metasploit, in questo caso può venirci particolarmente utile, poichè potremo utilizzare i suoi script anche  in una rete interna.  Nel seguente esempio, prenderò il caso in cui, dopo un bruteforce, ci rendiamo conto che l’host compromesso appartiene ad un’altra rete interna.

msf auxiliary(scanner/ssh/ssh_login) > run  [+] 192.168.200.225:22 - Success: 'root:password' 'uid=0(root) gid=0(root) groups=0(root) Linux phpcgi 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux ' [*] Command shell session 1 opened (192.168.200.50:41929 -> 192.168.200.225:22) at 2018-07-29 22:14:59 +0200 [*] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed 

Shell linux aperta con Metasploit

Per prima cosa, ottieniamo una shell meterpreter con il comando

sessions -u 1

in maniera tale da aver più controllo sulla macchina appena compromessa

Meterpeter shell e indirizzo IP privato

Come si può vedere nello screenshot l’indirizzo IP della macchina compromessa è privato. Vediamo ora di creare un port forwarding ed utilizzarlo a nostro favore.

msf exploit(multi/handler) > use post/multi/manage/autoroute msf post(multi/manage/autoroute) > set subnet 10.200.0.1 subnet => 10.200.0.1 msf post(multi/manage/autoroute) > set session 2 session => 2 msf post(multi/manage/autoroute) > run  [!] SESSION may not be compatible with this module. [*] Running module against 10.200.0.33 [*] Searching for subnets to autoroute. [+] Route added to subnet 10.200.0.0/24 from host's routing table. [*] Post module execution completed 

Ed ecco che ora abbiamo creato un percorso diretto verso la rete interna! Se ora volessimo scansionare un host interno alla rete, basterà usare i classici moduli di metasploit

Scansione porte interne

Conclusioni

Non è cosi raro incontrare situazioni di questo tipo, ed è sempre un bene riuscire a trovare la manovra giusta da eseguire per potersi spostare nella rete e trovare altri host vulnerabili. Se l’articolo non è abbastanza chiaro, consiglio la guida di Offensive Security e Explore Hidden Networks with double pivoting.

Hits: 842

Facebooktwitterredditlinkedintumblrmail

L’articolo Effettuare Penetration test di reti interne tramite Port Forwarding proviene da HackTips.

HackTips


Stai cercando prodotti per l’hacking, la sicurezza informatica e il penetration testing? Hai bisogno di bonificare il tuo smartphone, il tuo pc o il tuo sito da virus e malware? Devi rintracciare una persona o recuperare delle informazioni urgenti? Devi riprendere possesso di un account, una mail o di una password che ti hanno sottratto? Vuoi acquistare device già configurati per sperimentare tutte le tecniche di hacking in modo facile e veloce? Hai esigenze particolari in ambito software o hardware? Possiamo aiutarti!

Contattaci subito per avere un aiuto immediato : dettagliaci tramite mail o Whatsapp che tipo di supporto ti occorre e ti invieremo un riscontro immediato!

Compila e invia il modulo qui sotto per inviarci subito una richiesta di supporto

Scrivi il tuo indirizzo email qui

Scrivi qui come possiamo aiutarti – ti supportiamo immediatamente per ogni tua esigenza!