Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GENERAL QUESTION] how to penetrate symmetric NATs #13

Open
revintec opened this issue Jan 23, 2018 · 0 comments
Open

[GENERAL QUESTION] how to penetrate symmetric NATs #13

revintec opened this issue Jan 23, 2018 · 0 comments

Comments

@revintec
Copy link

revintec commented Jan 23, 2018

Hi, I have two questions

  1. is pwnat applicable for symmetric NAT? how about two symmetric NATs?
  2. can ICMP Time Exceeded message payload be used to transport data?

I encountered a enterprise NAT, which does the following:

  1. host A, inside the NAT, binds a UDP socket to a local address, say 10.0.0.1:8888
  2. A sends a packet to another public host B 101.0.0.1:9000, B sees A as 110.0.0.1:8888
  3. A sends a packet to host B 101.0.0.1:9001 using the same socket, B now sees A as 110.0.0.2:8888
  4. host C is behind another NAT. host A and C both drop packets from unknown origin

I would like to build a tunnel between A and C, traditional p2p hole punching method won't work, because when A tries to connect C, it's using a different public address than B sees. I don't think the original pwnat is designed to solve these kind of problems, it seems that pwnat focused on removing dependency on host B? https://samy.pl/pwnat/ says that "This will work behind many NATs and firewalls, but not all.", does that intended to mean symmetric NAT is not supported? in this case, the problem lies exactly that C don't know what the public address of A is.

I intercepted some ICMP Time Exceeded messages for ICMP ping requests, the original ping body was included in the Time Exceeded reply. can we modify the reply, use that part to encode some data? will the modified packet be accepted and routed correctly by NATs?

I'm trying to build a prototype that can penetrate symmetric NATs. I'm new to the field, succeeded in getting ICMP Time Exceeded replies by modifying TTL, but still learning about how to read ICMP Time Exceeded replies from OS.

@revintec revintec changed the title [GENERAL QUESTION]symmtric NAT [EDITING] [GENERAL QUESTION]symmetric NAT Jan 23, 2018
@revintec revintec changed the title [EDITING] [GENERAL QUESTION]symmetric NAT [GENERAL QUESTION] how to penetrate symmetric NATs Jan 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant