SSH隧道綜合指南
SSH隧道:隧道的概念是將一種網路協議封裝在了另外一個協議裡面。這裡我們是將這些通訊協議放到了ssh協議裡面,所有的流量都是加密的。由於隧道協議傳輸涉及將流量數據重新打包為其他格式的內容,於是打包前進行加密可以有效的防止數據丟失或竊取,並且通信過程和傳統隧道相比是非常隱蔽的。
SSH隧道的種類:
1. 動態SSH隧道
2. 本地SSH隧道
3. 遠程SSH隧道
讓我們開始今天的內容吧~
目的:建立遠程PC和不同網路的本地系統之間的SSH連接。
我已經搭建好了實驗環境,在以下網路中包含三個系統:
SSH 服務端(兩個網卡):
IP 192.168.1.104 和遠程系統連接
IP 192.168.10.1 和本地網路192.168.10.2進行連接。
SSH 客戶端:
IP 192.168.10.2遠程系統(不在內網當中)
接下來的圖片我會嘗試解釋遠程PC試圖連接到不在同一網路的機器(192.168.10.2)。為了和SSH客戶端建立連接,遠程PC會通過SSH隧道與SSH客戶端進行通信,進而訪問本地網路,和SSH客戶端連接。
需要注意的是:SSH服務是必須得啟動的。
下面的圖片展示了SSH服務端的IP設置,他有兩個網卡,一個IP是192.168.1.104,另外一個是192.168.10.1。
下圖是展示了SSH客戶端的IP設置:
通過windows進行動態SSH隧道建立
遠程PC正在嘗試通過22埠與SSH服務端進行連接,並且成功的登陸進去。這裡我們使用putty建立SSH服務端(ubuntu)和遠程PC(Windows)的通信。
遠程計算機使用相同的方法和SSH客戶機進行連接,結果失敗,原因是他們處在不同的網路當中。
動態SSH隧道建立過程
在左邊框選擇SSH->Tunnel項目,然後在源埠上填寫7000,類型選擇動態連接,然後點擊添加。
現在通過22埠連接192.168.1.104,填寫完之後點擊open:
就像你看到的那樣,首先他會和SSH服務端進行連接:
現在繼續在putty中登陸,這是填寫的就是SSH客戶機的IP,以及22埠,填寫完成之後,點擊open:
打開之前putty運行的窗口,在Proxy(代理模塊)進行如下操作:
選擇代理類型:SOCKS 5
代理主機:127.0.0.1
代理埠:7000
點擊建立連接
這樣我們就可以通過7000埠與SSH客戶機進行連接:
在80埠通過kali linux進行動態SSH隧道建立
接下來我們會解釋下kali linux用戶如何通過SSH隧道與內網客戶機進行連接的。
輸入完這條命令之後會提示你輸入登錄密碼,如下圖:
接下來就是設置網路代理了:
打開瀏覽器中的網路代理板塊,選擇手動設置代理,然後開啟SOCKS v5。
於是我們通過瀏覽器就可以訪問到了內網機器192.168.10.2的80埠。
在22埠上通過kali linux進行動態ssh隧道建立
用下面命令與SSH服務端進行連接:
通過apt安裝tscoks:
apt install tsocks
tsocks是用於攔截傳出網路的連接,並且將所有連接都進行socks服務重定向的庫。
打開tsokcs.conf文件編輯socks伺服器的IP以及埠,在我們這種情況下,我們需要添加下面兩行代碼,然後保存就可以了。
Server = 127.0.0.1Server_port = 7000
現在我們通過代理就可以連接到SSH的客戶機:
輸入密碼就可以好好享受SSH隧道帶來的樂趣了~
在windows下進行本地隧道建立
本地隧道是訪問特定SSH客戶機進行通信的過程。他可以允許你連接到沒有在互聯網上的機器。
遠程隧道和本地隧道的唯一區別就是:動態隧道需要SOCKS代理進行傳輸TCP流量,本地隧道只需要目標的IP地址就可以進行傳輸。
本地SSH轉發過程:
使用putty通過22埠連接到SSH伺服器(192.168.1.104),在左側菜單中選擇SSH轉發。
將源埠填寫為7000,連接種類為本地
目的地址為102.168.10.2:22,點擊添加
當所有步驟都進行完畢之後就可以點擊OPEN
首先他會將遠程PC和SSH服務端進行連接。
再重新打開一個putty界面,進行以下步驟:
主機名填寫localhost,埠填寫7000,連接類型:SSH
點擊OPEN進行連接
我們成功的通過7000埠連接到了SSH客戶機
通過Kali Linux進行本地SSH隧道建立
現在切換到Kali Linux來進行本地SSH轉發,和動態轉發相比,這一過程是非常簡單的。在本地機器上執行以下命令:
再重新打開一個終端,輸入下方命令訪問SSH客戶端:
ssh raj@127.0.0.1 -p 7000
我們可以成功的通過7000埠連接到了SSH客戶機。
通過Putty進行遠程SSH隧道
遠程隧道是用於當客戶機想要訪問不在本地網路的遠程系統時起作用。
首先我們需要在SSH服務端(ignite)安裝putty,然後進行以下步驟:
輸入遠程系統的IP 192.168.1.108
連接埠:22
訪問SSH->轉發模塊
在源埠中填寫7000,連接類型為遠程連接
目的地址為192.168.10.2:22
當所有步驟進行完畢之後點擊open進行連接:
現在我們已經連接到了遠程系統:
繼續回到遠程系統,執行以下命令:
ssh raj@127.0.0.1 -p 7000
從下圖中可以看出,我們已經通過7000埠與SSH客戶機成功通信:
通過ubuntu進行遠程SSH隧道
如果你不喜歡使用putty進行遠程隧道,你可以執行下面命令:
192.168.10.2是我們本地客戶機(raj)的IP,102.168.1.108是遠程系統的IP。
在遠程系統中執行下面命令,就可以與SSH客戶機進行連接:
ssh raj@127.0.0.1 -p 7000
如下圖,就可以看到已經成功建立:
※Volume Shadow 服務在滲透測試中的幾種利用姿勢
※如何解決惡意APK中常見的Native代碼加殼保護
TAG:嘶吼RoarTalk |