pwnat
, by Samy Kamkar, is a tool that allows any client behind a NAT to communicate with a server behind a separate NAT with no port forwarding and no DMZ setup on any routers in order to directly communicate with each other.
There is no middle man, no proxy, no third party, no UPnP required, no spoofing, no DNS tricks. The server does not need to know the client’s IP address before connecting.
More importantly, the client can then connect to any host or port on any remote host or to a fixed host and port decided by the server.
Simply put, this is a proxy server that works behind a NAT, even when the client is also behind a NAT.
usage: ./pwnat <-s | -c> <args>
-c client mode
<args>: [local ip] <local port> <proxy host> [proxy port (def:2222)] <remote host> <remote port>
-s server mode
<args>: [local ip] [proxy port (def:2222)] [[allowed host]:[allowed port] ...]
-6 use IPv6
-v show debug output (up to 2)
-h show this help and exit
EXAMPLE
Server side allowing anyone to proxy:
./pwnat -s
Client wanting to connect to google.com:80:
./pwnat -c 8000 pwnat.server.com google.com 80
Dor more information click here.