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