一、 前置說明
官方:漏洞掃描中最常用和強大的是某個”N“開頭的漏洞掃描器(nessus),但由於許可證限制,kali中並未安裝該漏洞掃描器。取而代之安裝了nessus收費之后發起的開源版本openvas。(nessus有免費的的個人許可證,但也不適合kali預裝)
官方:但由於openvas占用空間太大,2016.2版本后kali就不再預裝openvas了,需要我們自己手動安裝。
說明:msfconsole中可以load openvas,但那個只相當一個C/S架構中的客戶端,要真能掃描還是得安裝openvas作為服務端的。
二、openvas安裝
2.1 安裝openvas
官方和很多教程都推薦先升級系統再安裝openvas,但實際發現安裝openvas哪些包要更新的都會自己更新所以不用管直接安裝即可,在網速可以的情況下大約要十來分鍾
可考慮使用阿里源:deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
apt-get install -y openvas
2.2 初始化openvas
初始化工作包括主要是創建ca證書(控制台https使用)、下載最新的掃描規則(NVT)、創建控制台admin用戶、啟動openvas等。
一個命令即可,不過沒有vpn對於天朝的網絡,在下載規則一步可能要一整天。
openvas-setup
如果網絡、關機、ctrl+c造成中斷,再次運行即可,有類似游戲存檔功能不會全都重新下載。
2.3 確認openvas初始化無誤
openvas-check-setup
openvas-check-setup會檢測openvas-setup各步執行結果是否都正常。
2.4 修改admin密碼
openvas-setup會創建admin用戶,並在打印的終端中打印其密碼;但該密碼是隨機生成的過於難記,推薦不用管他直接修改admin用戶的密碼。
比如這里將admin用戶的密碼修改為abcd1234,隨便修改為自己想要的即可,由於修改並不需要認證之前的密碼所以不用管原密碼是什么。忘記密碼時也可以這么改。
openvasmd --user=admin --new-password=abcd1234
2.5 啟動openvas並查看端口正確監聽
openvas-start
按官方說法和之前的版本的經驗,應該是openvasmd監聽9390端口,openvassd監聽9031端口,gsad監聽9392端口。
但實際操作就是如圖所示,openvasmd監聽9390,gsad監聽80(http)和9392(https);openvassd在openvas 9中改走unix domain socket。
2.6 登錄openvas
瀏覽器訪問https://127.0.0.1:9392/,將證書添加信任,然后用1.5中修改的用戶名密碼登錄即可
2.7 使用openvas進行掃描
點下Scans菜單下的Tasks菜單,點擊左上角的掃描任務創建向導進行創建即可。基本就是輸入要掃描的ip即可。
漏洞掃描器基本都是直接掃出機器存在哪些cve漏洞,然后我們只要去找cve相對應的exp就可以利用了。
對攻擊者而言這是相當舒服的攻擊(最舒服的是掃描漏洞后,掃描器還自帶exp進行攻出)。
但就如《Metasploit滲透測試魔鬼訓練營》所說的那樣,由於掃描過程會發送大量數據包很容易被發現,甚至有可能掃死機器,所這只能是一種白盒掃描方式。
三、修改openvas監聽地址【可選】
在2.5中我們看到openvas只是監聽了127.0.0.1地址,這也許是安於安全考慮,但這意味着只能登錄到openvas主機才訪問openvas,這對個人使用來講是不太方便的,我們需要讓其監聽外部ip。
在2.5中我們使用openvas-start命令啟動的,我們從其入手:
使用which定位openvas-start所在位置,可以看到是/usr/bin/openvas-start。
然后查看/usr/bin/openvas-start的具體內容,可以看到是用service啟動了三個服務。
service啟動服務,那對應的腳本應該就是/etc/init.d目錄下的greenbone-security-assistant、openvas-scanner、openvas-manager三個文件。
查看這三個文件,發現其中並沒有直接配置的監聽地址,但看到三個文件中都有類似的代碼片段:
查看/etc/default/greenbone-security-assistant、/etc/default/openvas-scanner、/etc/default/openvas-manager三個文件確實在其中配置的地址。
但是很可惜,kali中修改這些文件中的地址並不起作用。
然后又看到上邊有“This file is not used if you are using systemd. The options are hardcoded in the openvas-manager.service file.”的說明。
嗯,kali現在還是systemd,然后當前這個文件也不叫openvas-manager.service(反之,如果不是systemd那修改這三個文件應該是可以的)。
我們用locate看一下openvas-manager.service是什么
結合上下文看來意思就比較明白了,就是新建一個/etc/systemd/system/openvas-manager.service.d/local.conf文件,覆蓋/lib/systemd/system/openvas-manager.service文件中的[Service]節區。
實驗確認,不能簡單地將/lib/systemd/system/openvas-manager.service等文件復制過去就完事,這樣無法啟動。
新的local.conf文件只認[Service]節區,而且格式只能是/etc/default/openvas-manager等文件在NOTE中所說的格式。
當然最簡單地是直接修改/lib/systemd/system/openvas-manager.service等文件就完事,但這里就按官方的建議來。
3.1 修改gsa監聽地址
注意--mlisten=127.0.0.1指的是gsa要連接到的manager的地址(is listening on),所以保持127.0.0.1不變
mkdir -p /etc/systemd/system/greenbone-security-assistant.service.d/ #創建配置文件存放目錄
cat > /etc/systemd/system/greenbone-security-assistant.service.d/local.conf << EOF
[Service]
ExecStart=
ExecStart=/usr/sbin/gsad --foreground --listen=0.0.0.0 --port=9392 --mlisten=127.0.0.1 --mport=9390
EOF
3.2 修改Manager監聽地址
mkdir -p /etc/systemd/system/openvas-manager.service.d/ #創建配置文件存放目錄 cat > /etc/systemd/system/openvas-manager.service.d/local.conf << EOF
[Service]
ExecStart=
ExecStart=/usr/sbin/openvasmd --listen=0.0.0.0 --port=9390 --database=/var/lib/openvas/mgr/tasks.db
EOF
3.3 修改Scanner監聽地址
這東西還真不太懂怎么改,也沒必要改,只是為了證明2.5中所說的Scanner改走unix socket。
3.4 重啟openvas完成監聽地址修改
按3.1和3.2修改完后,重啟openvas即可。
openvas-stop #停止openvas openvas-start #啟動vas netstat -anp | head #查看端口監聽
可以看到gsa和manager都成功監聽0.0.0.0地址。在外部以對外IP進行訪問,如下圖所示可以成功訪問
參考:
https://www.kali.org/tutorials/configuring-and-tuning-openvas-in-kali-linux/
https://www.kali.org/penetration-testing/openvas-vulnerability-scanning/
https://www.kali.org/news/kali-linux-20171-release/