歡迎光臨
每天分享高質量文章

輕鬆理解端口轉發和端口映射

來自:信安之路(微信號:xazlsec)

端口是什麼,我們在之前的文章里已經做瞭解釋,請看《輕鬆理解網絡端口是什麼》,端口轉發和端口映射都是為瞭解決內網主機的端口無法在外部直接訪問而衍生出來的技術,通過中間服務器進行中轉,將內部的端口映射到公網 IP 上或者將內部端口轉發到外部服務器,供用戶或者自己來使用,那麼他們的區別是什麼呢?

端口轉發

顧名思義,就是將端口進行轉發,具體哪個端口轉發到哪個端口要以應用場景為準,比如我們拿到一臺內外服務器 A 的權限,通過掃描發現了同內網的另一臺服務器 B 且開了 80 端口,我們該如何使用瀏覽器訪問它呢?我們畫一個圖如下:

從上圖中可以看到,我們已經與 A 建立了通道,我們可以在 A 上上傳任意檔案,執行任意的系統命令,我們如何能夠訪問 B 的 80 端口?假設 A 是在公網上,有公網 IP,我們可以訪問它的任意端口。

1、直接在 A 上執行 curl 命令訪問 B 的 80 端口(這種方式不方便我們測試 B 的 80 端口的漏洞,不方便利用)

2、在 A 上開啟一個 socks 5 代理,我們使用瀏覽器設置好代理,將我們的瀏覽器代理到標的內網,然後訪問 B 的 80 端口。

3、在 A 上執行端口轉發,將 B 的 80 端口轉發到 A 的 8080,然後我們直接用瀏覽器訪問 A 的 8080 端口即可,這個原理就是端口轉發

總結一下,端口轉發就是將一個端口,這個端口可以本機的端口也可以是本機可以訪問到的任意主機的端口都可以轉發到任意一臺可以訪問到的 IP 上,通常這個 IP 是公網 IP,方便我們使用。

端口映射

顧名思義,就是映射端口,就是將一個內網端口映射到公網上的某個端口,我們來看一個實體,我自己的電腦是在內網中,沒有公網 IP,但是我想提供一個端口供其他人使用,怎麼辦呢?我們來看一個圖:

A 和 B 在不同的內網,各自有自己的內網 IP ,但是互相無法直接訪問,這時就需要一個中間服務器,要 A 和 B 都可以訪問然後作為中轉服務器,實現上面的標的,這個中間服務器需要有一個公網 IP,如圖:

上圖的 C 就是有公網 IP 的中間服務器,我們可以將 A 的 80 端口映射到 C 的 80 端口,這時,B 就可以訪問 C 的 80 端口,也就相當於訪問 A 的 80 端口了,這裡其實核心原理也是端口轉發,只不過是將本機的端口轉發到遠程的某個端口。

總結

端口轉發和端口映射的核心原理是一樣的,只不過是使用的場景不一樣,我們將本機的端口轉發到遠程某個端口,我們可以叫端口映射,也可以叫端口轉發;我們如果把本機可以訪問到的任意 IP 的端口轉發到另外一臺服務器的端口,我們叫他端口轉發。說起來有點繞,其實具體如何理解,什麼樣的叫法,最終是要在實際的場景中使用的,能夠解決你的問題就可以了,也不用糾結到底叫什麼,這裡沒有提到端口轉發和映射的工具,如有需要請看之前發佈的文章:原創 穿越邊界的姿勢


●編號801,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

 

Linux學習

更多推薦25個技術類微信公眾號

涵蓋:程式人生、演算法與資料結構、黑客技術與網絡安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。