當前位置:
首頁 > 新聞 > 圖解Meterpreter實現網路穿透的方法

圖解Meterpreter實現網路穿透的方法

縱向防禦也被被稱為為「多層防禦」,這樣的概念被運用於「信息安全」上。以多層電腦安全技術去減輕其風險,在其中有些電腦被入侵或是泄密時,風險可大大降低。




舉例說明,防毒軟體被安裝於個人工作站上,電腦中病毒在防火牆與伺服器等其中類似環境中被攔攔下來。在信息技術世界中佔據著舉足輕重的地位。本文我們將通過示例分析怎麼用英語翻譯。是什麼意思進行網路穿透的。


何謂路由

確定設備如何在不同網路之間相互傳輸的過程,也即通過互聯的網路把信息從源地址傳輸到目的地址的活動被稱為為路由。

通常用於執行路由活動的設備被稱為路由器。通過使用路由表,路由器,規劃網路包到各自目的地的線路。路由的功能不只是例如路由器等網路設備能夠完成,在安裝有該功能的任意計算機系統也能夠完成。

根據上圖例所選,為了在192.168.1.0/24與192.168.10.0/24網路之間進行通信是需要一個路由表記錄的。

根據路由器中的規則定義,數據需要從192.168.1.0/24源網路發到192.168.10.0/24目的網路中去。網路數據包大概會經歷如下過程:


何謂Pivoting

基本上可以概括為,在正常情況下僅僅只是通過使用被控制的計算機我們可以依舊無法進行網路訪問。假設一台被控制的計算機連接有多個網路,將其作為我們的跳板,那麼網路隔離的手段對我們來說就形同虛設。

跟著這個思路,攻擊者在被控制的跳板主機上執行路由操作,進而訪問隱藏的網路。對新發現網路發起的每個請求都會通過中間的雙網卡跳板傳輸,形象化一點說來就像是洞子一般。

就如上面所示的拓撲圖,設備有兩張網卡可訪問192.168.1.0/24以及192.168.10.0/24兩個網路。

在正常情況下,這兩個網路之間是不能相互訪問的,除非有定義路由規則。根據該結構,授權用戶(使用兩張網卡的計算機)可訪問DMZ區內的一些服務。


拿下第一層雙網卡中轉跳板及埠轉發

根據我們的攻擊場景,先得下命名為RD的主機然後獲得到的米翻殼,RD能連接到DMZ網路。隨後,在信息收集過程中確定了目標有兩張網卡。注意:環境中的路由器在兩個網路之間並沒有聯通。



在我們設計的這個場景中,獲得RD系統訪問許可權的攻擊者將會使用第二張網卡(7.7.7.0/24)訪問網路。在執行這項操作之前,攻擊者必須先在RD中定義路由規則中。

在Metasploit中可以輕鬆完成這項任務,在當前meterpreter會話下鍵入以下命令可創建路由規則:

根據定義的路由規則,只要Meterpreter就會ID值為2的會話在運行,那麼在Metasploit的框架中就可以訪問7.7.7.0/24網路。

這一步驟之後,使用類似arp_scanner的埠模塊就能檢測到JC系統的IP地址.JC為7.7.7.20內網中的另一台計算機。


在7.7.7.0/24網路中存活系統的IP地址,包括命名為JC的系統主機,都已經檢測到了。


自然而然的,我們想到了以下問題:such such arp_scanner的埠模塊對這些類型的掃描工作可能存在著不足之處,那麼nmap風格的掃描工具是否能登場呢?


通過中轉跳板進行Nmap掃描

對此必須在Metasploit中激活路由配置,並且該配置必須能夠通過socks4代理進行轉發。這裡有一個metasploit模塊剛好滿足以上需求。

使用metasploit的socks4代理模塊:

ProxyChains是為GNU Linux操作系統而開發的工具,任何TCP連接都可以通過TOR或者SOCKS4,SOCKS5,HTTP / HTTPS路由到目的地。

在這個通道技術中可以使用多個代理伺服器。除此之外提供匿名方式,諸如用於中轉跳板的應用程序也可以用於對發現的新網路進行直接通信。

用文本編輯器打開/etc/proxychains.conf,在文件的最後一行添加新創建的socks4代理伺服器。

使用代理鏈執行nmap掃描任務非常簡單,網路數據包將會通過定義的代理髮送到目的地。

根據掃描的結果,目標系統中運行著SSH以及HTTP服務。在進一步利用之前,我們還將涉及另一種被稱為埠轉發的通信路由(traffic routing)技術。


埠轉發

埠轉發是實現中轉跳板的基本步驟,目前還無法直接訪問到隱藏網路中的服務,這是因為沒有建立雙向路由。我們知道如何到達目標系統,所以可以發起請求。但這個請求會失敗,這是因為目標系統不知道如何到達我們這邊。

基於這個原因,我們可以通過定義meterpreter會話在我們的本地開啟一個埠,將本地數據包發送到目的地。只要進程存活,路由就會一直工作。

再次必須記住,運行autoroute命令建立的路由僅在Metasploit框架下有效,我們也可以嘗試使用kali工具實現目的,這裡我們就要藉助類似埠轉發的工具或代理鏈。

使用portfwd模塊(Metasploit中的一個後模塊)可以完成埠轉發。

當我們在瀏覽器中向本地2323埠發送一個鏈接請求時,該連接請求將會轉發到IP地址為7.7.7.20的計算機的80埠。

得益於ProxyChains Nmap的狀語從句,早先我們就已經確定了的Web服務運行在7.7.7.20的80埠。為了訪問這個服務,本地系統的2323埠將被轉發到7.7.7.20的80埠


通過portfwd list命令可以查看當前活躍的埠轉發規則:

檢測到IP地址為7.7.7.20目標系統的80埠上運行著名為

Eash文件共享Web伺服器

的應用


通過中轉跳板進行SSH暴力破解

正在載入...「的翻譯和解釋例句與用法1. SSH_enumusers這個輔助模塊來完成這個工作。

除了Metasploit框架中的輔助模塊外,Kali工具包中的Hydra也可以完成這項任務。通過在ProxyChains下運行Hydra,所有的通信數據將會通過被控制的主機(雙網卡主機)傳送到目標系統中。

使用Hydra執行暴力攻擊,我們獲得代理伺服器的用戶名為admin,密碼為123456.同時使用ProxyChains工具可以連接到遠程的SSH服務


獲得第二層中轉跳板的訪問

如果你還記得,我們之前使用nmap掃描7.7.7.0/24找到了兩個漏洞。一個是MS08-067,另一個是Easy File分享應用中的BOF漏洞,這兩個方向都讓我們訪問到目標主機。

當然還有一個選擇便是繼續使用上面獲取的ssh進行訪問,但這裡我們選擇以上兩個方向。


MS08-067搭配綁定TCP

該模塊的完整路徑為exploit / windows / smb / ms08_067_netapi,在Metasploit框架下利用MS08-067漏洞攻擊目標系統。

由於沒有定義雙向路由,目標系統無法直接到達我們的計算機,為此需要將bind_tcp設置為payload類型。在exploit操作成功之後,就將要對連接到目標系統的埠進行監聽.bind_tcp和reverse_tcp的區別如下圖:

點擊閱讀原文查看

完整設置


Easy File Share應用的BoF漏洞

另一個漏洞就是有關於Easy File Share應用的了,點擊閱讀原文查看設置步驟。

攻擊流程如下圖

由於我們可以訪問7.7.7.20機器,我們需要再次執行信息收集。被命名為JC的機器和RD機器一樣有兩張網卡,這也意味著我們找到了第二個隱藏網路(8.8.8.0/24 )


在第二個隱藏網路下執行Arp掃描繼續收集信息


meterpreter > run post/windows/gather/arp_scanner RHOSTS=8.8.8.0/24[*] Running module against SRV03[*] ARP Scanning 8.8.8.0/24[*] IP: 8.8.8.3 MAC 08:00:27:29:cd:cb (CADMUS COMPUTER SYSTEMS)[*] IP: 8.8.8.1 MAC 0a:00:27:00:00:03 (UNKNOWN)[*] IP: 8.8.8.9 MAC 08:00:27:56:f1:7c (CADMUS COMPUTER SYSTEMS)[*] IP: 8.8.8.13 MAC 08:00:27:13:a3:b1 (CADMUS COMPUTER SYSTEMS)

ARP掃描結果顯示在該網路下存在4台機器


meterpreter > run autoroute -s 8.8.8.0/24[*] Adding a route to 8.8.8.0/255.255.255.0...[+] Added route to 8.8.8.0/255.255.255.0 via 7.7.7.20[*] Use the -p option to list all active routesmsf > route printActive Routing Table====================
Subnet Netmask Gateway
------ ------- -------
7.7.7.0 255.255.255.0 Session 1
8.8.8.0 255.255.255.0 Session 3

之後再次添加路由規則


兩層中中轉跳板

在JC主機上收集信息時發現了8.8.8.0/24網路,另外之前我們就已經建立了172.16.0.0/24到7.7.7.0/24網路的路由規則。

在當前的情況下,網路數據包從172.16 .0.20發送到JC設備(第一層中轉跳板),數據首先要發送到RD設備(第一層中轉跳板),然後RD主機再將數據傳送到JC主機。

如果攻擊者(172.16.0.20)數據發送到8.8.8.0/24網路(發現的第二個隱藏網路)的任何一個主機時,就得建立一個新的路由規則。

為了使用Metasploit框架以外的其他工具,我們必須運行一個socks4代理服務來連接兩個跳板主機,並在proxychains工具的配置文件中重新定義新的代理伺服器。

攻擊者機器(172.16.0.20)嘗試向8.8.8.9發送網路數據包,要經過以下中轉:

RD:我不知道怎麼訪問到8.8.8.9,但我知道哪個系統能訪問到它,我可以把數據發給它。

JC:我知道怎麼將數據從7.7.7.0/24網路發送到8.8.8.0/24網路。

數據流如下圖所示:


神器Proxychains

在最後階段,需要為新發現的8.8.8.0/24網路在本地1081埠設置一個新的socks4代理服務。


msf exploit(ms08_067_netapi) > use auxiliary/server/socks4amsf auxiliary(socks4a) > show optionsModule options (auxiliary/server/socks4a):
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 172.16.0.20 yes The address to listen on
SRVPORT 1080 yes The port to listen on.Auxiliary action:
Name Description
---- -----------
Proxy msf auxiliary(socks4a) > set SRVPORT 1081SRVPORT => 1081msf auxiliary(socks4a) > run[*] Auxiliary module execution completed[*] Starting the socks4a proxy servermsf auxiliary(socks4a) >

在/etc/proxychains.conf配置文件中添加新的代理伺服器。通過激活動態鏈接設置,確保在不同的代理伺服器之間能夠正常切換。


root@kali:~# cat /etc/proxychains.conf | grep -v "#"dynamic_chainproxy_dnstcp_read_time_out 15000tcp_connect_time_out 8000socks4 172.16.0.20 1080 # First Pivotsocks4 172.16.0.20 1081 # Second Pivot

Proxychains工具通過第二層跳板主機,可以對8.8.8.0/24目標網路進行nmap掃描:【點擊閱讀原文查看】

以上,數據包穿透第一層代理伺服器,又經過我們定義的第二層代理伺服器,最終到達目的地。對掃描結果進行分析,發現8.8.8.9上安裝的vsftpd版本存在漏洞。以下步驟Metasploit框架中設置vsftpd利用模塊進行攻擊:【點擊閱讀原文查看】


總結

攻擊者通過以下步驟,發現了2個不同的隱藏網路:

攻擊者控制了RD主機,該主機和攻擊機在同一個網路中

2.得知RD主機有2張網卡

3.通過使用autoroute post模塊,定義一個路由規則

4.攻擊者對7.7.7.0/24網路執行ARP和NMAP掃描,之後發現了命名為JC的主機

5.JC存在兩個不同的漏洞,分別為MS08_067和Easy File共享應用的BOF下漏洞

成功利用MS08_067漏洞,獲取7.7.7.20訪問

7.繼續收集信息,發現JC也有2張網卡

8.在7.7.7.20上添加第二個路由規則

9.對8.8.8.0/24網路執行ARP和NMAP掃描

10.在命名為SK的8.8.8.9機器上發現存在漏洞的vsftp版本

結束


演示視頻


防禦措施

1.從現有網路架構中清除,包含多張網卡並提供DMZ訪問許可權的系統

DMZ架構中的系統最好最好將其限制為僅能訪問DMZ區


參考資料

http://magikh0e.ihtb.org/pubPapers/ssh_gymnastics_tunneling.html

https://www.sans.org/reading-room/whitepapers/testing/post-exploitation-metasploit-pivot-port-33909

https://highon.coffee/blog/ssh-meterpreter-pivoting-techniques/


*參考來源:

Pentest

,FB小編鳶尾編譯,轉載請註明來自FREEBUF(FreeBuf.COM)



您的贊是小編持續努力的最大動力,動動手指贊一下吧!


本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

美國國防部DARPA想要創建安全數據共享技術
法庭文件揭秘:美國聯邦調查局是如何監聽汽車15年的
Android是今年的漏洞之王?CVE Details的數據根本就不靠譜!

TAG:FreeBuf |

您可能感興趣

Nordic Semiconductor 推出其首款Thread網路解決方案
HP Microserver Gen8 使用方案 篇四:網路篇
DeepMind發布Sonnet 幫你用TensorFlow快速搭建神經網路
使用 Linux tracepoints,perf以及eBPF跟蹤網路數據包的流程
Terrpattern用神經網路顛覆地圖搜索領域
Sprint和Verizon網路中斷 Twitter網友發文引關注
Apple Watch Series 3蜂窩網路版拆解:內部與Series 2大致相同
《Christopher Jeffery公布最新bug,可以摧毀比特幣網路》
DCOS中的容器網路與IP-per-container解決方案
Juggernaut:由Rust語言實現的試驗性神經網路
Michael Nielsen《神經網路和深度學習》:智能可以用簡單的演算法表示嗎?
Extreme Networks證實了收購Avaya網路業務的消息
美國欲加強網路廣告監管力度,Facebook、Google和Twitter該如何應對?
MockNet:Android 網路介面開發與測試神器
Crazy Explosive 新版本曝光?adidas 神秘鞋款現身網路
蘋果Apple Watch Series 3存在蜂窩網路連接問題
在Linux安裝GoogleTensorFlow神經網路軟體
思科收購安全雲新貴Observable網路 計劃打造自己的Stealthwatch平台
蘋果承認 Apple Watch Series 3 LTE 版存在網路連線問題