Metasploit是一款強大好用的漏洞檢測工具,理論上可以支持所有主流的操作系統(tǒng),可以有效地列舉出指定系統(tǒng)的漏洞,這樣用戶就可以有針對性的修復了,可以大大地提高個人計算機或者企業(yè)服務器的安全,有從事網(wǎng)絡管理行業(yè)的朋友不要錯過。
軟件說明:
一、搭建metasploit環(huán)境
Windows環(huán)境下安裝
安裝時需要注意要關閉殺毒軟件,如果安裝有殺毒軟件,會提示在metasploit的安裝目錄下檢測到病毒或木馬。
二、metasploit的使用
Metasploit目前提供了三種用戶使用接口,一個是GUI模式,另一個是console模式,第三種是CLI(命令行)模式。原來還提供一種 WEB模式,目前已經(jīng)不再支持。目前這三種模式各有優(yōu)缺點,建議在MSF console模式中使用。在console中幾乎可以使用MSF所提供的所有功能,還可以在console中執(zhí)行一些其它的外部命令,如ping。
三、Metasploit攻擊方法分類
使用的版本共有635種溢出(exploit)模塊,314種輔助(auxiliary)模塊,215種加載(payload)模塊,27種編碼(encoder),8種nops。
攻擊者必須達到如下的兩個目標:
1. 在程序的地址空間里安排適當?shù)拇a。
2. 通過適當?shù)某跏蓟拇嫫骱蛢却?,讓程序跳轉到入侵者安排的地址空間執(zhí)行。
四、Metasploit架構
Metasploit Framework并不止具有exploit(溢出)收集功能,它使你專注于創(chuàng)建自己的溢出模塊或者二次開發(fā)。很少的一部分用匯編和C語言實現(xiàn),其余均由ruby實現(xiàn)。
TOOLS 集成了各種實用工具,多數(shù)為收集的其它軟件
PLUGINS 各種插件,多數(shù)為收集的其它軟件。直接調用其API,但只能在console模式下工作。
MODULES 目前的Metasploit Framework 的各個模塊
MSF core 表示Metasploit Framework core 提供基本的API,并且定義了MSF的框架。并將各個子系統(tǒng)集成在一起。組織比較散亂,不建議更改。
MSF Base 提供了一些擴展的、易用的API以供調用,允許更改
Rex LIBRARIES Metasploit Framework中所包含的各種庫,是類、方法和模塊的集合
CLI 表示命令行界面
GUI 圖形用戶界面
Console 控制臺用戶界面
Web 網(wǎng)頁界面,目前已不再支持
Exploits 定義實現(xiàn)了一些溢出模塊,不含payload的話是一個Aux
Payload 由一些可動態(tài)運行在遠程主機上的代碼組成
Nops 用以產生緩沖區(qū)填充的非操作性指令
Aux 一些輔助模塊,用以實現(xiàn)輔助攻擊,如端口掃描工具
Encoders 重新進行編碼,用以實現(xiàn)反檢測功能等
/msf3/plugins主要包括一些數(shù)據(jù)庫插件、會話插件、線程插件、socket插件等;
/ postgresql/lib/plugins主要是postgresql的調試插件和分析插件。還有一些其它的插件,比如ruby插件等。
/tools主要是一些輔助工具,如vncviewer、7za等。
/msf3/tools主要是一些轉化工具,如memdump、ruby工具等。
MSF core定義了整個軟件的架構方式,提供了一些基本的API,主要由匯編和C語言來實現(xiàn),一般情況下不允許直接調用。共有136個匯編文件,7個.h文件,681個.C文件。MSF core組織的比較散亂,不建議更改。
匯編部分主要完成的是與相應的操作系統(tǒng)(如windows、linux等)有關的功能,主要是shellcode的實現(xiàn)等。
C語言完成的功能比較多,主要是meterpreter的實現(xiàn)和一些工具性的應用,包括ruby相關、內存相關(如memdump.c,屬于 memdump軟件包,用于在DOS和Windows 9x 中dump或copy 4GB以內的地址空間)、網(wǎng)絡相關(pcaprub.c,屬于libpcap軟件包的一部分,是ruby中網(wǎng)絡的一部分)、反檢測相關 (timestomp.c,屬于timestomp軟件,用于修改文件的時間戳)等。其工具性的應用多是直接來自于其它工具軟件。
五、Metasploit二次開發(fā)方法
Metasploit中的類和方法具有很好的可讀性,并且采用了元編程的思想,使得進行二次開發(fā)更加方便快捷。簡單的說一個程序能夠產生另一個程 序,就是元編程。ruby、python等均可方便的采用元編程思想。metasploit中前四個字母正好是meta,猜測其是 Metaprogramming的含義。
Metasploit中所有的模塊都從Msf::Module中繼承,并且所有的模塊有一個共享的API庫。
六、安全軟件常用檢測方法
1、基于事務發(fā)生的時間戳,時間
2、發(fā)現(xiàn)可疑文件時,尋找其它具有類似MAC地址的文件,位置
3、根據(jù)文件擴展名和簽名,文件特征
4、對于系統(tǒng)內文件創(chuàng)建MD5校驗,內容
5、查找相應的關鍵字,關鍵字
6、對文件的內容進行行為分析,行為分析。安全軟件預先知道大量的病毒指令序列,可對文件內容進行檢測,如果發(fā)現(xiàn)匹配的序列就發(fā)出警告。
7、檢查當前的進程、端口、文件系統(tǒng)等,狀態(tài)檢查
8、在文件寫入磁盤時進行檢測。
七、Metasploit反檢測方法
針對安全軟件常用的檢測方法,metasploit當中集成了一些反檢測的方法。還有一些相應的建議。
1、在metasploit中使用了meterpreter方法提供一些實用的API。但是meterpreter整個運行在內存當中;但它并不創(chuàng) 建新的進程;并且使用了加密的通信方法;并且能夠有效的消除入侵證據(jù)。整個過程大約在1秒內完成。避免了一些安全軟件對于進程的檢測。
2、內置了27種encode模塊,可對metasploit中的exploit進行編碼(encode),以避免反病毒軟件檢測。