3、SSL隧道

FLy_鵬程萬里發表於2018-06-08

0x00 原理解釋

關於隧道技術的定義請參考前一篇文章:https://blog.csdn.net/Fly_hps/article/details/80625377,其實不同的隧道技術,利用原理都一樣,分為3個版本:

  • Client(攻擊者or客戶端)
  • Server(隧道技術的服務端,提供埠轉發也就是資料包重新封裝)
  • Content-Server(目標伺服器,這裡一般是內網其它機器)
Server端提供一個服務用來封裝資料並轉發出來,客戶端進行連線,就能訪問Content-Server的技術。

0x01 BackTrack實驗

先來看看實驗之前的情況

客戶端訪問目標機:


服務端訪問目標機:


所以本次實驗的環境大致如下:


如果我們在繞過一些安全裝置,如IDS、IPS、防火牆等時,就可以採用如下的做法利用

SSL Stunnel 服務端配置:

mkdir /etc/stunnel               #建立配置檔案目錄

touch /etc/stunnel/stunnel.conf  #建立配置檔案

openssl req -new -x509 -days 365 -nodes -config /etc/ssl/openssl.cnf -out stunnel.pem -keyout stunnel.pem #生成證照

vim stunnel.conf #編輯配置檔案

cert = /etc/stunnel/stunnel.pem

chroot = /var/log/stunnel/

pid = /stunnel.pid

[telnets]

accept = 2323

connect = 192.168.11.128:23

mkdir /var/log/stunnel/           #生成快取目錄

stunnel /etc/stunnel/stunnel.conf #啟動服務端

netstat -tulnp | grep 2323        #檢視埠開放情況

SSL Stunnel 客戶端:

mkdir /etc/stunnel              #建立配置檔案目錄

touch /etc/stunnel/stunnel.conf #建立配置檔案

vim stunnel.conf                #編輯配置檔案

chroot = /var/log/stunnel/

pid = /stunnel.pid

client = yes

[telnets]

accept = 2323

connect = 192.168.11.135:2323

mkdir /var/log/stunnel/           #生成快取目錄

stunnel /etc/stunnel/stunnel.conf #啟動客戶端

成果圖:

我這裡說明一下,大家可能覺得我的攻擊端與服務端都是一個,其實不是,攻擊端使用的是kali克隆機;

0x02 Kali下的實驗

與Bt5下面是一致的,這裡就不再重複了。其實很多人會發現在kali2.0中,/usr/share/doc/stunnel4/examples/目錄中有一個配置檔案的樣本,不過這個配置檔案過於複雜,但是在一些複雜的環境中可能會用到,如:要求配置pem與ca證照等;所以這裡我個人建議在學習的過程中,還是可以自己嘗試著去寫,或者刪除樣本中不需要的冗餘項。

這裡推薦一篇不需要使用工具,就可以建立起ssl隧道技術的文章:http://my.oschina.net/leejun2005/blog/94401

0x03 原理與思考

其實隧道技術就是一個資料包的封裝過程,我們通過前期的資訊收集發現,IPS/IDS/防火牆允許哪種資料包通過時,我們就可以利用隧道技術進行繞過,將我們的一些攻擊程式碼封裝在特定的資料包中,這樣就可以各種666了;

思考1:是否可以利用隧道技術進行內網滲透呢?

事實證明是可以的,我在伺服器端新增了一塊網路卡,設定為10.0.0.13,然後把目標機的IP設定為10.0.0.12;修改相應的ssl隧道配置檔案,其實只是將伺服器端的配置檔案中connect那一行修改為10.0.0.12:23就可以了;在客戶端進行telnet連結同樣是可以的;

其實內網滲透時,我們常用的技術是埠轉發,不過埠轉發需要滿足一個條件就是需要我們的伺服器可以訪問外網。當然很多的伺服器是可以訪問外網的,但是如果遇到不能訪問外網的伺服器,就可以使用代理技術或者隧道技術。

思考2:隧道技術與傳統的代理技術有什麼區別?

其實代理技術就是隧道技術的一種體現。代理就是通過proxy(隧道伺服器)、client(隧道攻擊端)、Content Server(目標機)之間建立了隧道,這種隧道使得客戶端感覺不到代理的存在,在客戶端看來,它是直接跟要請求資源伺服器在通訊。而在本文講述的這種隧道技術,客戶端的感覺就是跟自己再通訊,這種隧道技術利用了資料轉發的過程;http://www.tuicool.com/articles/rq2I7zE


相關文章