顯示具有 IP 標籤的文章。 顯示所有文章
顯示具有 IP 標籤的文章。 顯示所有文章

2010年6月21日

[破解]讓兩端都用NAT的人照樣可以連線

繼上次【如何隱藏自己的IP掃瞄別人的port】這篇 好久沒有寫網路破解方面的文章了
今天要介紹的是 如果有個server在NAT後面, 另一個NAT後面的client要怎麼連到這個server呢?
不需要port forwarding, 不需要DMZ, 也不需要透過第三台在firewall外面的機器喔! (像skype和teamviewer就是透過第三台機器)
而且 在NAT後面的server不需要先知道client的IP (通常都只有client知道server的IP)

怎麼可能? 真的嗎? 是的! 原理呢?

你有在router的NAT後面 ping過外面的某台機器嗎?
有沒有想過為什麼ping的結果為什麼傳得回來?
利用他傳回來的原理 以及tunneling, 你就可以讓兩個NAT後面的雙方有個管道可以溝通

詳細原理如下:
router在看到NAT裡面有人傳送ping的package出去之後的一小段時間內 會允許相對的ping response 傳回來
A在這個router(我們叫他R)的NAT後面 去ping (or tracert) 3.3.3.3
路徑中每一台機器(假設我們叫他B)都可以回給這個R, 說他連不到3.3.3.3
而這個R 看到ping response是關於3.3.3.3的 他就知道要傳回給A
A就會知道從哪一個IP(B)傳回這個response, 告訴他B連不到3.3.3.3
OK, 你已經破解了一邊了. 你已經有辦法讓B告訴A(要記得, A在NAT後面)他自己的IP(B的IP)
這時候, B一樣去ping一個IP, 比如說 還是3.3.3.3
A趕緊送一個ping response去給B的router(要記得,ping response會包含所有經過的node的IP,所以可以知道B的router的IP)
一樣的, B的router就會告訴B, 說"A說他連不到3.3.3.3". (but who cares)
PS: 3.3.3.3可以是一個根本不存在的機器

到此 你可以看到 A想辦法傳東西給B, B也想辦法傳了東西給A. And this is a handshake.
再來 A和B已經互相知道對方的IP 不需要那麼麻煩了
透過一樣的原理 A和B用UDP把資料傳來傳去 router看到雙方互傳類似的package, 就讓這些UDP data通過.
剩下的 只需要把TCP的package透過這個UDP tunnel互傳 就好了.

這裡有個利用這個原理做出來的proxy
http://samy.pl/pwnat/
玩玩看吧
記住: client要連到在NAT後面的server的時候 得先知道server的外部IP, 通常是router的IP. (內部IP不重要)

2007年5月10日

IP 地理位置

由以下網頁 可得
海大男一舍 140.121.210.1~140.121.213.253
台大男一舍 140.112.211.xxx
交大九舍 140.113.94.xxx
交大十三舍 140.113.141.xxx


http://www.wretch.cc/blog/aaamy&article_id=1040263
http://ftp.isu.edu.tw/pub/Unix/BBS/FireBird/cvs/bbs/etc/hosts
https://opensvn.csie.org/traccgi/pttbbs/browser/trunk/pttbbs/sample/etc/domain_name_query.cidr?rev=2725

2007年5月8日

沒有 IP address 的 Service

之前提到 tor 可以讓你隱藏 IP 但是 是主動『連出去』的 IP
其實 tor 也可以讓你提供服務,如:www, ftp, bbs, 等服務 但是照樣不洩漏你的IP
什麼?那人家用你的domain name去nslookup一下不就知道你的IP了?
no no no...
你只能透過tor 然後用一個虛擬的domain name去連那個不知道在哪裡的server
嗄?不知道IP也可以連?
多說無益~
試試看吧!透過tor 連 這個隱藏的wiki
學會之後...你會想要提供怎樣的服務呢?

怎樣架設這樣沒有IP的server呢?詳情請見
http://tor.eff.org/docs/tor-hidden-service.html.en