來自:信安之路(微訊號: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、資料庫、運維等。