Creating TCP connection with both computers behind firewalls

Dan Kaminsky has a presentation at a Blackhat conference detailing how two computers could establish TCP connection through the temporary cooperation of a third party.

Dan provides several techniques. One of them:

  • A connects to B by explictly routing through Z. However, Z pretends to be B and accepts connection on the behalf of B.
  • Similarly, B connects to A by routing through Z. Z again, pretends to be A and accepts connection on behalf of A.
  • The firewalls now thinks that A and B have a direct connection to one another. The route is altered so that A and B no longer route through Z.
  • A and B now have a direct connection to each other

It appears that UltraVNC’s NAT2NAT uses this principle.

Update 7/01/2006: Also see NAT Traversal Techniques

Leave a Reply