場景說明:
A主機和B主機在同一個園區網,A主機能夠出公網,B主機不能夠出公網。滲透工程師已經拿下A主機控制權。shell
1、如何在外網訪問到B主機瀏覽器
方案:ssh本地端口映射
背景:當咱們拿下A主機以後想和B主機通訊,能夠選擇直接在A主機上進行操做,但這樣會留下相關日誌,增長了被發現的風險。此時能夠經過ssh隧道直接在本機與B主機進行通訊,既方便又不會留下痕跡。
工做原理:與A主機創建SSH隧道,並在本地偵聽一個空閒端口,並將之映射至B主機指定端口便可。此時訪問本地偵聽的端口,流量實質將導入B主機指定端口,從而實現安全的訪問B主機。安全
隧道創建命令: ssh -fNg -L 7001:172.20.163.135:22 root@172.20.163.136 -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 root@127.0.0.1 -p 7001 ====>此時將直接連到B主機的22端口ssh
2、拿下B主機後如何讓B主機出公網spa
背景:拿下B主機後想讓B和公網主機C通訊,怎麼辦?
方案: ssh遠程端口映射
工做原理:與A主機創建SSH隧道,並在A主機偵聽一個空閒端口,將此端口映射至C主機指定端口便可。此時B主機訪問A主機偵聽的端口,流量實質將導入C主機指定端口,從而實現B主機鏈接公網上任何一臺主機。代理
隧道創建命令: ssh -fNg -R 7001:202.2.20.2:80 root@172.20.163.136 -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 root@127.0.0.1 -p 7001 ====>此時將直接連到C主機的22端口blog
3、以上隧道只能創建點到點的隧道,如何創建點到多的隧道 =====> 亦是最簡單的fanqiang方法(國外網絡當作是遠程內網)接口
背景:想創建一條隧道就能夠訪問遠程內網裏一片設備
方案:ssh動態端口映射
工做原理:與A主機創建SSH隧道,並在本地偵聽一個空閒端口。此時公網主機設置socks代理爲滲透者IP及其偵聽的端口,流量實質將經過此端口流向遠程內網任意地址。A主機將自動判斷過來的流量該去哪。
隧道創建命令: ssh -fNg -D 7001 root@172.20.163.136 -p 22
-D: 動態端口轉發
7001: 本地啓動的socks代理端口
結果驗證: 設置代理後瀏覽器訪問'http://內網主機',便可訪問其內部系統