Si chiama pwnat ed è un’utility per Linux (ma non solo a giudicare dai makefile con cui viene distribuita) che sto tenendo d’occhio da un po’ per la possibilità che offre di far comunicare direttamente due o più PC, client e server, dietro altrettanti NAT. Non è necessario impostare alcun port fowarding nei router in quanto pwnat stabilisce un tunnel che sfrutta il protocollo UDP tra i computer interessati.

Per funzionare è necessario avviare un’istanza di pwnat come server e una come client. Ecco le opzioni:

./pwnat <-s | -c>

-c client mode
: [local ip] [proxy port (def:2222)]

-s server mode
: [local ip] [proxy port (def:2222)] [[allowed host]:[allowed port] ...]

Poniamo di voler far comunicare tramite SSH un server e un client dietro NAT senza port forwarding, per far questo dovremo avviare pwnat sul server SSH:

sudo pwnat -s indirizzo_ip_server

mentre sul client daremo:

sudo ./pwnat -c 127.0.0.1 3333 indirizzo_ip_server 2222 127.0.0.1 22

A questo punto basterà dal client collegarci al server stabilendo una connessione locale:

ssh -p 3333 user@127.0.0.1

Il login verrà fatto sul server remoto. Nelle prove che ho effettuato tutto ha funzionato senza problemi.

Nelle istruzioni di utilizzo di pwnat viene anche indicata la possibilità di realizzare un proxy per la navigazione:

Server side allowing anyone to proxy:

./pwnat -s

Client wanting to connect to google.com:80:

./pwnat -c 8000 google.com 80

Then, browse to http://localhost:8000 to visit the google

Personalmente non sono riuscito a testare questa funzionalità per un segmentation fault restituito da pwnat.

Per usare pwnat basta scaricare i sorgenti e dare soltanto un “make” per creare il binario del programma. Buon test!

Post correlati:

  1. IPFuck: navigare “anonimi” senza proxy con Firefox
  2. Accesso negato al sito di George W. Bush
  3. Sniffare il traffico di iPhone e iPad con Zed Attack Proxy
  4. Wicd 1.5.0 su Slackware 12.1: connessioni WPA senza problemi
  5. PS3 firmware 3.21, evitare l’aggiornamento con un proxy

Taggato con:
 

5 Responses to pwnat: far comunicare due PC dietro NAT senza port forwarding

  1. Lorenzo scrive:

    Ma se non fa NAT come funziona?

  2. Matteo scrive:

    @Lorenzo la tecnica che utilizza pwnat è abbastanza complessa, sintetizzando basta dire che utilizza prima degli ICMP Echo Request per identificare server e client e poi crea un tunnel su protocollo UDP come spiegato in dettaglio sulla pagina di pwnat:

    "Finally, both sides are fully communicating over UDP, allowing protocols that run over TCP to tunnel through"

  3. spippolazione scrive:

    Bello, praticamente convince i router che il traffico che arriva dall'esterno dal client e' in risposta (legittima) ad un traffico generato dal server che manda pacchetti a caso verso internet.

    Geniale. Lo devo provare prima che qualche collega lo scopra e faccia del casino. :-D

  4. [...] pwnat: far comunicare due PC dietro NAT senza port forwarding – Si chiama pwnat ed è un’utility per Linux (ma non solo a giudicare dai makefile con cui viene distribuita) che sto tenendo d’occhio da un po’ per la possibilità che offre di far comunicare direttamente due o più PC, client e server, dietro altrettanti NAT. Non è necessario impostare alcun port fowarding nei router in quanto pwnat stabilisce un tunnel che sfrutta il protocollo UDP tra i computer interessati. [...]

  5. Jatt159 scrive:

    Mah credo che la versione per windows , pubblicata dall’autore, non vada … Ho provato a creare una chat server, utilizzando winsock, e un client entrambi usano TCP. Sul Computer A(Quello che ha la chat server) ho avviato il pwnat server , ma quando un Computer B, con il client chat, cerca di connettersi attraverso il client pwnat, il tutto crasha! Non riesco a spiegarmelo :(

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>