ssh隧道的妙用

2022-08-23 10:15:15 字數 1921 閱讀 1004

場景說明:

a主機和b主機在同乙個園區網,a主機可以出公網,b主機不可以出公網。滲透工程師已經拿下a主機控制權。

一、如何在外網訪問到b主機

方案:ssh本地埠對映

背景:當我們拿下a主機之後想和b主機通訊,可以選擇直接在a主機上進行操作,但這樣會留下相關日誌,增加了被發現的風險。此時可以通過ssh隧道直接在本機與b主機進行通訊,既方便又不會留下痕跡。

工作原理:與a主機建立ssh隧道,並在本地偵聽乙個空閒埠,並將之對映至b主機指定埠即可。此時訪問本地偵聽的埠,流量實質將匯入b主機指定埠,從而實現安全的訪問b主機。

隧道建立命令: ssh -fng -l 7001:172.20.163.135:22 [email protected] -p 22

-l: 本地埠**

-f: 後台執行程序

-n: 不執行登入shell

-g: 復用訪問時作為網管,支援多主機訪問本地偵聽埠(即:如果不加此選項則7001埠只在127.0.0.1介面上偵聽,加上此選項則7001埠在0.0.0.0介面上偵聽)

7001: 在本地開啟偵聽的埠

172.20.163.135:22 : b主機及要連的埠

172.20.163.136: a主機

結果驗證:ssh [email protected] -p 7001 ====>此時將直接連到b主機的22埠

二、拿下b主機後如何讓b主機出公網

背景:拿下b主機後想讓b和公網主機c通訊,怎麼辦?

方案: ssh遠端埠對映

工作原理:與a主機建立ssh隧道,並在a主機偵聽乙個空閒埠,將此埠對映至c主機指定埠即可。此時b主機訪問a主機偵聽的埠,流量實質將匯入c主機指定埠,從而實現b主機連線公網上任何一台主機。

隧道建立命令: ssh -fng -r 7001:202.2.20.2:80 [email protected] -p 22

-r: 遠端埠**

-f: 後台執行程序

-n: 不執行登入shell

-g: 復用訪問時作為網管,支援多主機訪問本地偵聽埠(即:如果不加此選項則7001埠只在127.0.0.1介面上偵聽,加上此選項則7001埠在0.0.0.0介面上偵聽)(注意:不知道為什麼遠端埠**時加引數g和沒加乙個樣)

7001: 在a主機開啟偵聽的埠

172.20.163.135:22 : c主機及要連的埠

172.20.163.136: a主機

結果驗證:ssh [email protected] -p 7001 ====>此時將直接連到c主機的22埠

三、以上隧道只能建立點到點的隧道,如何建立點到多的隧道             *****> 亦是最簡單的fanqiang方法(國外網路看成是遠端內網)

背景:想建立一條隧道就可以訪問遠端內網裡一片裝置

方案:ssh動態埠對映

工作原理:與a主機建立ssh隧道,並在本地偵聽乙個空閒埠。此時公網主機設定socks**為滲透者ip及其偵聽的埠,流量實質將通過此埠流向遠端內網任意位址。a主機將自動判斷過來的流量該去哪。

隧道建立命令: ssh -fng -d 7001 [email protected] -p 22

-d: 動態埠**

7001: 本地啟動的socks**埠

結果驗證: 設定**後瀏覽器訪問'http://內網主機',即可訪問其內部系統

SSH 隧道技術

ssh 隧道 下面的命令告訴 ssh 1 ssh 2 n f l 5023 localhost 23 user foo.example.com 上述 ssh 命令使用了下面這些選項 2強制 ssh 使用第2版的協議 如果需要和較老的 ssh 一同工作請不要使用這個選項 n表示不使用命令列,或者說只使...

ssh隧道建立

問題 目標伺服器 a 在nat之後,中介伺服器 m 在公網上,客戶端 c 在nat後,需要從c發起ssh連線到a。解決辦法 1.從a發起ssh連線到m,繫結m的遠端埠,假設a和m的ssh服務都在22埠監聽。在a上執行 ssh nfr 19022 localhost 22 user host m ip...

SSH 反向隧道

這篇文章主要介紹了如何利用ssh 反向隧道穿透nat,並演示了如何維持一條穩定的ssh 隧道。假設有機器a 和b,a 有公網ip,b 位於nat 之後並無可用的埠 現在想由a 主動向b 發起ssh 連線。由於b 在nat 後端,無可用公網ip 埠這樣乙個組合,所以a 無法穿透nat,這篇文章應對的就...