Nessus號稱是世界上最流行的漏洞掃描程序,全世界有超過75000個組織在使用它。該工具提供完整的電腦漏洞掃描服務,並隨時更新其漏洞數據庫。Nessus不同於傳統的漏洞掃描軟件,Nessus可同時在本機或遠端上遙控,進行系統的漏洞分析掃描。Nessus也是滲透測試重要工具之一。所以,本章將介紹安裝、配置並啟動Nessus。
5.1.1 安裝和配置Nessus
為了定位在目標系統上的漏洞,Nessus依賴feeds的格式實現漏洞檢查。Nessus官網提供了兩種版本:家庭版和專業版。
- 家庭版:家庭版是供非商業性或個人使用。家庭版比較適合個人使用,可以用於非專業的環境。
- 專業版:專業版是供商業性使用。它包括支持或附加功能,如無線並發連接等。
本小節使用Nessus的家庭版來介紹它的安裝。具體操作步驟如下所示。
(1)下載Nessus軟件包。Nessus的官方下載地址是http://www.tenable.com/products/ nessus/select-your-operating-system。在瀏覽器中輸入該地址,將顯示如圖5.1所示的界面。
圖5.1 Nessus下載界面
(2)在該界面左側的Download Nessus下,單擊Linux,並選擇下載Nessus-5.2.6- debian6_i386.deb包,如圖5.2所示。
圖5.2 下載Linux系統的Nessus
(3)單擊Nessus-5.2.6-debian6_i386.deb包后,將顯示如圖5.3所示的界面。
圖5.3 接收許可證
(4)在該界面單擊Agree按鈕,將開始下載。然后將下載的包,保存到自己想要保存的位置。
(5)下載完Nessus軟件包,現在就可以來安裝該工具。執行命令如下所示:
root@kali:~# dpkg -i Nessus-5.2.6-debian6_i386.deb
Selecting previously unselected package nessus.
(正在讀取數據庫 … 系統當前共安裝有 276380 個文件和目錄。)
正在解壓縮 nessus (從 Nessus-5.2.6-debian6_i386.deb) …
正在設置 nessus (5.2.6) …
nessusd (Nessus) 5.2.6 [build N25116] for Linux
Copyright (C) 1998 - 2014 Tenable Network Security, Inc
Processing the Nessus plugins…
[##################################################]
All plugins loaded
- You can start nessusd by typing /etc/init.d/nessusd start
- Then go to https://kali:8834/ to configure your scanner
看到以上類似的輸出信息,表示Nessus軟件包安裝成功。Nessus默認將被安裝在/opt/nessus目錄中。
(6)啟動Nessus。執行命令如下所示:
root@kali:~# /etc/init.d/nessusd start
$Starting Nessus : .
從輸出的信息中可以看到Nessus服務已經啟動。
注意:使用Nessus之前,必須有一個注冊碼。關於獲取激活碼的方法在第2章已經介紹過,這里就不再贅述。
(7)激活Nessus。執行命令如下所示:
root@Kali:~# /opt/nessus/bin/nessus-fetch --register 9CC8-19A0-01A7-D4C1- 4521
(8)為Nessus創建一個用戶。執行命令如下所示:
root@Kali:~# /opt/nessus/sbin/nessus-adduser
(9)登錄Nessus。在瀏覽器中輸入地址https://主機IP:8834或https://主機名:8834。
通過以上步驟的詳細介紹,Nessus就配置好了,現在就可以使用Nessus掃描各種的漏洞。使用Nessus掃描漏洞之前需要新建掃描策略和掃描任務,為了后面能順利的掃描各種漏洞,接下來將介紹新建策略和掃描任務的方法。
1. 添加策略
添加策略的具體操作步驟如下所示。
(1)登錄Nessus。Nessus是一個安全鏈接,所以需要添加信任后才允許登錄。在瀏覽器地址欄中輸入https://192.168.41.234:8834/,將顯示如圖5.4所示的界面。
圖5.4 連接不被信任
(2)在該界面單擊I Understand the Risks按鈕,將顯示如圖5.5所示的界面。
圖5.5 了解風險
(3)該界面顯示了所存在的風險,單擊Add Exception按鈕,將顯示如圖5.6所示的界面。
圖5.6 添加安全例外
(4)在該界面單擊Confirm Security Exception按鈕,將顯示如圖5.7所示的界面。
圖5.7 Nessus登錄界面
(5)在該界面輸入前面創建的用戶名和密碼,然后單擊Sign In按鈕,將顯示如圖5.8所示的界面。
圖5.8 Nessus主界面
(6)在該界面使用鼠標切換到Policies選項卡上,將顯示如圖5.9所示的界面。
圖5.9 策略界面
(7)在該界面單擊New Policy按鈕,將顯示如圖5.10所示的界面。
圖5.10 策略向導
(8)該界面選擇創建策略類型。Nessus默認支持10種策略類型,在策略類型上有綠色條的表示訂閱。這里選擇Advanced Policy類型,單擊該圖標后,將顯示如圖5.11所示的界面。
圖5.11 新建策略
(9)在該界面設置策略名、可見性和描述信息(可選項)。這里設置策略名為Local VulnerabilityAssessment、可見性為private。然后單擊左側的Plugins標簽,將顯示如圖5.12所示的界面。在圖5.11中Visibility有兩個選項。
圖5.12 插件程序
- private:僅自己能使用該策略掃描。
- shared:其他用戶也能使用該策略掃描。
(10)該界面顯示了所有插件程序,默認全部是啟動的。在該界面可以單擊Disable All按鈕,禁用所有啟動的插件程序。然后指定需要啟動的插件程序,如啟動Debian Local Security Checks和Default Unix Accounts插件程序,啟動后如圖5.13所示。
圖5.13 啟動的插件程序
(11)在該界面單擊Save按鈕,將顯示如圖5.14所示的界面。
圖5.14 新建的策略
(12)從該界面可以看到新建的策略Local Vulnerability Assessment,表示該策略已創建成功。
2. 新建掃描任務
策略創建成功后,必須要新建掃描任務才能實現漏洞掃描。下面將介紹新建掃描任務的具體操作步驟。
(1)在圖5.14中,將鼠標切換到Scans選項卡上,將顯示如圖5.15所示的界面。
圖5.15 掃描任務界面
(2)從該界面可以看到當前沒有任何掃描任務,所以需要添加掃描任務后才能掃描。在該界面單擊New Scan按鈕,將顯示如圖5.16所示。
圖5.16 新建掃描任務
(3)在該界面設置掃描任務名稱、使用策略、文件夾和掃描的目標。這里分別設置為Sample Scan、Local Vulnerability Assessment(前面新建的策略)、My Scans和192.168.41.0/24。然后單擊Launch按鈕,將顯示如圖5.17所示的界面。
圖5.17 運行掃描任務
(4)從該界面可以看到掃描任務的狀態為Running(正在運行),表示Sample Scan掃描任務添加成功。如果想要停止掃描,可以單擊(停止一下)按鈕。如果暫停掃描任務,單擊
按鈕。
5.1.2 掃描本地漏洞
在前面介紹了Nessus的安裝、配置、登錄及新建策略和掃描任務,現在可以開始第一次測試組的安全漏洞。對於新建策略和掃描任務這里就不再贅述,本小節中只列出掃描本地漏洞所需添加的插件程序及分析掃描信息。
【實例5-1】掃描本地漏洞具體操作步驟如下所示。
(1)新建名為Local Vulnerability Assessment策略。
(2)添加所需的插件程序。
- Ubuntu Local Security Checks:掃描本地Ubuntu安全檢查。
- Default Unix Accounts:掃描默認Unix賬戶。
(3)新建名為Sample Scan掃描任務。
(4)掃描漏洞。掃描任務執行完成后,將顯示如圖5.18所示的界面。
圖5.18 掃描完成
(5)在該界面雙擊掃描任務名稱Sample Scan,將顯示掃描的詳細信息,如圖5.19所示。
圖5.19 掃描的詳細信息
(6)從該界面可以看到總共掃描了三台主機。掃描主機的漏洞情況,可以查看Vulnerability列,該列中的數字表示掃描到的信息數。右側顯示了掃描的詳細信息,如掃描任務名稱、狀態、策略、目標主機和時間等。右下角以圓形圖顯示了漏洞的危險情況,分別使用不同顏色顯示漏洞的嚴重性。本機幾乎沒任何漏洞,所以顯示是藍色(Info)。關於漏洞的信息使用在該界面可以單擊Host列中的任何一個地址,顯示該主機的詳細信息,包括IP地址、操作系統類型、掃描的起始時間和結束時間等。本例中選擇192.168.41.234地址,如圖5.20所示。
圖5.20 漏洞信息
(7)在該界面單擊INFO按鈕,將顯示具體的漏洞信息,如圖5.21所示。
圖5.21 漏洞詳細信息
(8)該界面顯示了漏洞的描述信息及掃描到的信息。例如,該主機上開啟了68、8834和15774等端口。使用Nessus還可以通過導出文件的方式查看漏洞信息,導出的文件格式包括Nessus、PDF、HTML、CSV和Nessus DB。導出文件的方式如下所示:
在圖5.20中單擊Export按鈕,選擇導出文件的格式。這里選擇PDF格式,單擊PDF命令,將顯示如圖5.22所示的界面。
圖5.22 可用的內容
(9)該界面分為兩部分,包括Available Content(可用的內容)和Report Content(報告內容)。該界面顯示了導出的PDF文件中可包括的內容有主機摘要信息、主機漏洞和插件漏洞。在圖5.22中將要導出的內容用鼠標拖到Report Content框中,拖入內容后將顯示如圖5.23所示的界面。
圖5.23 導出的內容
(10)在該界面顯示了將要導出的內容。此時單擊Export按鈕,將顯示如圖5.24所示的界面。
圖5.24 下載界面
(11)在該界面單擊Save File按鈕,指定該文件的保存位置,即PDF文件導出成功。
5.1.3 掃描網絡漏洞
如果用戶想要使用Nessus攻擊一個大范圍的漏洞,需要配置評估漏洞列表並指定獲取信息的評估列表。本小節將介紹配置Nessus在目標主機尋找網絡漏洞,這些漏洞指目標主機或其他網絡協議。
【實例5-2】掃描網絡漏洞的具體操作步驟如下所示。
(1)新建名為Internal Network Scan策略。
(2)添加所需的插件程序,如表5-1所示。
表5-1 所需插件程序
CISCO | 掃描CISCO系統 |
---|---|
DNS | 掃描DNS服務器 |
Default Unix Accounts | 掃描本地默認用戶賬戶和密碼 |
FTP | 掃描FTP服務器 |
Firewalls | 掃描代理防火牆 |
Gain a shell remotely | 掃描遠程獲取的Shell |
Geeral | 掃描常用的服務 |
Netware | 掃描網絡操作系統 |
Peer-To-Peer File Sharing | 掃描共享文件檢測 |
Policy Compliance | 掃描PCI DSS和SCAP信息 |
SCADA | 掃描設置管理工具 |
SMTP Problems | 掃描SMTP問題 |
SNMP | 掃描SNMP相關信息 |
Service Detection | 掃描服務偵察 |
Settings | 掃描基本設置 |
(3)新建名為Network Scan掃描任務。
(4)掃描結果如圖5.25所示。
圖5.25 網絡掃描結果
(5)從該界面可以看到有兩個比較嚴重的漏洞。如果想要詳細地分析該漏洞,建議將該信息使用文件的形式導出。
5.1.4 掃描指定Linux的系統漏洞
本小節將介紹使用Nessus掃描指定Linux系統上的漏洞。
【實例5-3】掃描指定Linux系統漏洞的具體操作步驟如下所示。
(1)使用Metasploitable 2.0作為目標主機。用戶也可以使用其他版本的Linux系統。
(2)新建名為Linux Vulnerability Scan策略。
(3)添加所需的插件程序,如表5-2所示。
表5-2 所需插件程序
Backdoors | 掃描秘密信息 |
---|---|
Brute Force Attacks | 暴力攻擊 |
CentOSo Local Security Checks | 掃描CentOS系統的本地安全漏洞 |
DNS | 掃描DNS服務器 |
Debian Local Security Checks | 掃描Debian系統的本地安全漏洞 |
Default Unix Accounts | 掃描默認Unix用戶賬號 |
Denial of Service | 掃描拒絕的服務 |
FTP | 掃描FTP服務器 |
Fedora Local Security Checks | 掃描Fedora系統的本地安全漏洞 |
Firewalls | 掃描防火牆 |
FreeBSD Local Security Checks | 掃描FreeBSD系統的本地安全漏洞 |
Gain a shell remotely | 掃描遠程獲得的Shell |
General | 掃描漏洞 |
Gentoo Local Security Checks | 掃描Gentoo系統的本地安全漏洞 |
HP-UX Local Security Checks | 掃描HP-UX系統的本地安全漏洞 |
Mandriva Local Security Checks | 掃描Mandriva系統的本地安全漏洞 |
Misc | 掃描復雜的漏洞 |
Red Hat Local Security Checks | 掃描Red Hat系統的本地安全漏洞 |
SMTP Porblems | 掃描SMTP問題 |
SNMP | 掃描SNMP漏洞 |
Scientific Linux Local Security Checks | 掃描Scientific Linux系統的本地安全漏洞 |
Slackware Local Security Checks | 掃描Slackware系統的本地安全漏洞 |
Solaris Local Security Checks | 掃描Solaris系統的本地安全漏洞 |
SuSE Local Security Checks | 掃描SuSE系統的本地安全漏洞 |
Ubuntu Local Security Checks | 掃描Ubuntu系統的本地安全漏洞 |
Web Servers | 掃描Web服務器 |
(4)新建名為Linux Vulnerability Scan掃描任務。
(5)掃描漏洞,掃描結果如圖5.26所示。
圖5.26 指定Linux系統掃描結果
(6)從該界面可以看到總共掃描了6台主機上的漏洞信息。其中,主機192.168.41.142上存在7個比較嚴重的漏洞。關於漏洞的百分比情況,可以從右下角的扇形圖中了解到。同樣,用戶可以使用前面介紹過的兩種方法,查看漏洞的詳細信息。
5.1.5 掃描指定Windows的系統漏洞
本節將介紹使用Nessus掃描指定Windows系統上的漏洞。
【實例5-4】使用Nessus掃描指定Windows系統漏洞。本例中使用Windows 7系統作為目標主機。具體掃描步驟如下所示。
(1)新建名為Windows Vulnerability Scan策略。
(2)添加所需的插件程序,如表5-3所示。
表5-3 所需插件程序
DNS | 掃描DNS服務器 |
---|---|
Databases | 掃描數據庫 |
Denial of Service | 掃描拒絕的服務 |
FTP | 掃描FTP服務器 |
SMTP Problems | 掃描SMTP問題 |
SNMP | 掃描SNMP |
Settings | 掃描設置信息 |
Web Servers | 掃描Web Servers |
Windows | 掃描Windows |
Windows:Microsoft Bulletins | 掃描Windows中微軟公告 |
Windows:User management | 掃描Windows用戶管理 |
(3)開始掃描漏洞。掃描結果如圖5.27所示。
圖5.27 掃描Windows系統的結果
(4)從該界面可以看到主機192.168.41.1的漏洞情況,該主機中存在一個比較嚴重的漏洞。同樣用戶可以使用前面介紹過的兩種方法查看漏洞的詳細信息,進而修改主機中存在的漏洞。