Nmap 作為開源工具,在網路安全測試中扮演著重要的角色,能有效探測網路中的主機和服務。藉由結合 Nmap 與漏洞掃描指令碼,例如 vulscan.nse,我們可以更深入地分析目標系統的安全狀態,找出潛在的漏洞。在 Kali Linux 環境下,透過指令 nmap -sV --script=vulscan/vulscan.nse TARGET 即可執行掃描,其中 TARGET 代表目標主機的 IP 位址或網域名稱。掃描結果會顯示目標系統的開放埠、服務版本等資訊,藉此判斷是否存在已知的漏洞。OpenVAS 則是一個免費且開源的漏洞掃描工具,提供更全面的掃描功能,包括未經認證和已認證測試、多協定支援以及效能調整等。在 Kali Linux 中,安裝 OpenVAS 需先執行 sudo apt update && sudo apt upgrade -y 更新系統,再透過 sudo apt install openvas 和 sudo gvm-setup 完成安裝和設定。OpenVAS 提供圖形化介面,方便使用者設定掃描任務、選擇掃描模式、指定目標 IP 位址等引數。掃描完成後,OpenVAS 會產生詳細的報告,列出所有發現的漏洞,並提供相關的 CVE 資訊和修復建議。
慣例漏洞掃描工具的使用與應用
使用Nmap進行漏洞掃描
在進行網路安全測試時,漏洞掃描是一個不可或缺的步驟。Nmap(Network Mapper)是一個強大的開源工具,能夠用來探測網路中的主機和服務。透過搭配Nmap與漏洞掃描指令碼,我們可以更深入地分析目標系統的安全狀況。
首先,我們需要修改先前克隆的儲存函式庫中update.sh檔案的許可權。這可以使用以下命令來完成:
chmod 744 update.sh
接著,我們執行update.sh指令碼來下載更新後的.csv檔案,這些檔案包含了各種漏洞資料函式庫的資訊。下載完成後,我們需要將這些檔案移動到/usr/share/nmap/scripts/vulscan目錄中。
要使用這些漏洞掃描指令碼,我們需要在進行掃描時定義它們。這可以透過-sV開關來實作,如下所示:
nmap -sV --script=vulscan/vulscan.nse TARGET
例如,將上述命令應用於Metasploitable 2虛擬機器時,會得到類別似以下圖示的結果。玄貓建議在實驗室環境中執行這些命令以檢視完整輸出。為了適應頁面大小,以下圖示已被擷取。
此圖示展示了Nmap漏洞掃描的基本流程
此圖示展示了使用Nmap進行漏洞掃描的基本步驟:首先啟動Nmap並指定掃描指令碼,接著分析輸出結果並檢查潛在漏洞。
內容解密:
- vulscan/vulscan.nse:這是一個Nmap的NSE(Nmap Scripting Engine)指令碼,用於進行漏洞掃描。
- TARGET:目標IP地址或主機名。
- 結果分析:根據Nmap輸出結果,我們可以瞭解目標系統中的潛在漏洞。
- 技術選型考量:選擇Nmap作為漏洞掃描工具是因為其強大的功能和靈活性。它能夠快速探測網路中的主機和服務,並且支援多種指令碼來進行深入分析。
- 未來趨勢預測:隨著網路安全威脅不斷演變,像Nmap這樣的工具將會越來越重要。未來可能會有更多的指令碼和更新來應對新的安全挑戰。
- 實務應用評估:在實際應用中,Nmap可以用來進行網路探測、服務版本探測和漏洞掃描等多種任務。它是網路安全專業人員必備的工具之一。
內容解密:
- vulscan/vulscan.nse:這是一個特定的NSE指令碼,專門用於漏洞掃描。它能夠根據已知的漏洞資料函式庫來檢測目標系統中的潛在問題。
- TARGET:這是我們要掃描的目標主機或IP地址。根據實際需求,我們可以指定不同的目標來進行掃描。
- 結果分析:Nmap會輸出詳細的結果,包括開放的埠、執行中的服務及其版本號等資訊。透過分析這些結果,我們可以進一步評估目標系統的安全狀況。
- 技術選型考量:選擇Nmap是因為其強大的功能和靈活性。它支援多種作業系統平台,並且有一個活躍的社群提供支援和更新。
- 未來趨勢預測:隨著網路攻擊手法不斷演變,像Nmap這樣的工具將會不斷更新和改進,以應對新的威脅。
- 實務應用評估:在實際應用中,Nmap可以用於網路安全評估、漏洞掃描和滲透測試等多種任務。
使用OpenVAS進行深度漏洞掃描
OpenVAS(Open Vulnerability Scanner)是一個免費且開源的漏洞掃描工具,具有多種功能,包括未經認證和已經認證測試、多協定支援以及效能調整等。它由Greenbone Networks開發並維護。
要在Kali Linux 2022中安裝OpenVAS,請按照以下步驟操作:
- 首先,確保更新並升級所有套件:
sudo apt update && sudo apt upgrade -y
- 安裝OpenVAS:
sudo apt install openvas
- 接下來安裝並設定OpenVAS:
sudo gvm-setup
GVM(Greenbone Vulnerability Management)是Greenbone Networks提供的一組管理工具。
此圖示展示了OpenVAS安裝與設定流程
此圖示展示了安裝與設定OpenVAS的基本步驟:首先更新套件、接著安裝OpenVAS、設定完成後驗證安裝狀態、啟動OpenVAS並登入介面、最後執行漏洞掃描。
內容解密:
- gvm-setup:這個命令會安裝並設定OpenVAS及其依賴項。
- 驗證安裝:使用
sudo gvm-check setup命令可以確保安裝過程中沒有任何錯誤。 - 啟動OpenVAS:使用
sudo gvm-start命令啟動OpenVAS服務。 - 技術選型考量:選擇OpenVAS是因為其全面且免費開源特性,適合於企業和個人使用者進行深度漏洞掃描。
- 未來趨勢預測:隨著網路安全威脅不斷增長,像OpenVAS這樣專業且免費開源的工具將會越來越受歡迎。
- 實務應用評估:在實際應用中,OpenVAS可以用於企業網路安全評估、伺服器安全稽核和漏洞管理等多種任務。
安裝完成後,請記下顯示在畫面上的管理員帳戶密碼(如圖5.10所示),這將會在登入時需要使用。
驗證安裝過程:
sudo gvm-check setup
如果沒有報告任何錯誤則表示成功。
- 啟動OpenVAS:
sudo gvm-start
完成後輸出會顯示 OpenVAS 的 URL 地址。請直接開啟該 URL 進入 OpenVAS 的使用者介面(如圖5.11所示)。
登入 OpenVAS ,請使用前面記錄下來的管理員帳戶密碼(如圖5.12所示)。
現在我們準備好開始第一次掃描。請導航到「Scans」頁面然後點選儀錶板上的魔杖圖示。接著選擇「Task Wizard」(如圖5.13所示)。
在此次例行性檢查中我們將利用 OpenVAS 掃揮 Metasploitable 2 虛擬機器。
首先為該工作分配名稱。在此範例中玄貓命名為「Metasploitable 2」。
接著選擇掃揫型別。開啟下拉選單後你會發現幾個選項。若想要獲得更多資料建議選擇「Full and Fast」。
接著定義你所要探測之 IP 地址。
剩下之選項保留空白即可。您也能指定起始時間及提供認證給 OpenVAS 做身分驗證登入目標主機。您所設定之引數應如下圖所示(如圖5.14所示):
此圖示展示了 OpenVAS 檢查與引數設定流程
此圖示展示了 OpenVAS 執行新任務流程:首先登入介面、接著建立新任務並命名、選擇適當之模式、指定目標 IP 地址及其他引陣列態完成後啟動任務。
內容解密:
- 登入 OpenVAS:使用先前記錄好的管理員帳戶密碼登入介面。
- 建立新任務:透過儀錶板上的魔杖圖示進入「Task Wizard」介面建立新任務。
- 命名任務:命名便於區分與管理不同之任務。
- 選擇掃揫模式:根據需求選擇合適之模式以獲得更多資訊。
- 指定 IP 地址:確保目標正確以避免誤操作或其他問題產生。
- 組態其他引數:可設定起始時間與身分驗證等詳細引數以提高工作效率與準確度。
- 啟動任務:完成所有設定後按下按鈕啟動該工作流程。
工作執行後旁邊將顯示進度條(如圖5.15所示)。請注意「Full and Fast」模式可能需要一些時間才能完成。
工作完成後點選剛剛建立之任務名稱即可檢視結果頁面(如圖5.16所示)。從這裡您就能逐一瀏覽所發現之問題並依嚴重程度排序以優先處理最危險之風險點。
檢視結果時您將發現每個風險點都附有詳細說明及相關補救方案(如圖5.17所示)。例如果您遭遇遠端程式碼執行問題則可能透過建立反向殼而獲得初步進入許可權然後繼續深入探索或提升許可權等操作。
此圖示展示了 OpenVAS 結果分析流程
此圖示展示了 OpenVAS 檢視工作進度及結果分析流程:首先檢視工作進行狀況並等待結束、接著進入結果頁面逐一檢視問題重點、最後依嚴重程度排序處理最危險風險專案優先。
內容解密:
- 檢視工作進度:透過進度條瞭解工作狀態並等待完成即可繼續下一步動作。
- 檢視結果頁面 : 工作結束後可進入結果頁面逐一檢視所發現之風險點並記錄詳細說明及補救方案.
- [瀏覽風險點]:依嚴重程度排序處理最危險風險專案優先,以避免對系統造成更大損害.
- [技術選型考量]:針對不同情境挑選合適模式與引數設定,以提高工作效率與準確度.
- [未來趨勢預測]:隨著攻擊手法不斷演變,像 OpenVas 一樣專業且免費開源之工具將會持續更新改進,以因應新威脅.
- [實際應用評估]: 在實際操作上, Open Vas 能夠協助企業安全團隊快速發現潛在問題,幫助規劃防護策略並降低總體風險.
調整視角觀察CVE細節
透過以上方法能夠清晰分類別與過濾所需資訊便於聚焦特定領域例如可公開之埠或已發現之應用程式等 (如圖5.18所示)。此外您也可以直接檢視目前適用於該目標之CVEs (Common Vulnerabilities and Exposures)清單以便快速瞭解目前之安全狀況.
此圖示展示了CVE清單篩選流程
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title 漏洞掃描工具Nmap與OpenVAS實戰應用
package "安全架構" {
package "網路安全" {
component [防火牆] as firewall
component [WAF] as waf
component [DDoS 防護] as ddos
}
package "身份認證" {
component [OAuth 2.0] as oauth
component [JWT Token] as jwt
component [MFA] as mfa
}
package "資料安全" {
component [加密傳輸 TLS] as tls
component [資料加密] as encrypt
component [金鑰管理] as kms
}
package "監控審計" {
component [日誌收集] as log
component [威脅偵測] as threat
component [合規審計] as audit
}
}
firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成
@enduml此圖示展示了CVE清單篩選流程:首先瀏覽每個風險細節,接著檢視公開埠或已發現應用程式清單,最後搜尋適用於該目標之CVEs.
內容解密:
[瀏覽風險細節] :每個風險都附有詳細說明及相關補救方案,方便了解各自情形並針對性處理. [檢視公開埠與應用程式清單] :針對特定領域篩選資訊,便於聚焦重點進行修補升級等操作. [搜尋適用CVEs] :快速瞭解目前情況,評估潛在影響範圍與嚴重程度. [技術選型考量] :根據不同需求挑選合適篩選條件,提高資訊準確性與效率. [未來趨勢預測] :隨著攻擊手法不斷演變,CVE清單可能會持續更新增加,需隨時監控調整防護策略. [實際應用評估] :透過篩選CVE清單,企業安全團隊能夠快速發現潛在問題進行修補升級,降低總體風險.
總結而言,透過以上方法可協助企業更精確地瞭解其系統目前之安全狀況並提出改善方案,有效降低遭受攻擊機率同時提升整體防護能力.
調整視角觀察CVE細節
透過以上方法能夠清晰分類別與過濾所需資訊便於聚焦特定領域例如可公開之埠或已發現之應用程式等 (如圖5.18所示)。此外您也可以直接檢視目前適用於該目標之CVEs (Common Vulnerabilities and Exposures)清單以便快速瞭解目前之安全狀況.
在此篇文章結束前玄貓強調,任何防護策略皆無法完全消除所有風險,但只要不斷學習改進監控系統並保持警惕心態就能有效降低遭受攻擊機率提升整體防護能力
無線網路及雲端掃描
在任何道德駭客的任務中,無線網路及雲端掃描是兩個至關重要的階段,特別是在這些環境是目標的一部分時。本文將詳細討論這兩個階段,首先從無線網路掃描開始。
無線網路掃描
通常,許多無線接入點或路由器在預設情況下組態了最少或無任何安全性。此外,許多無線接入點組態了弱安全性協定,如有線等效隱私(WEP)和輕量級可擴充套件驗證協定(LEAP),這些協定存在安全漏洞或弱點。
無線接入點會廣播包含SSID(服務集識別碼)的信標包,SSID是無線接入點的名稱。用於無線網路掃描的幾個工具包括NetStumbler、inSSIDER、Wellenreiter、Aircrack-ng和Kismet。以下將分別介紹這些工具。
要成功使用無線網路駭客工具,您需要使用外部無線介面卡,因為Kali Linux在虛擬機器上會將內建介面卡視為乙太網介面卡,因此無法在監控模式下執行。
NetStumbler
NetStumbler是一個免費的無線網路掃描工具,僅在Windows上執行。它由Marius Milner開發,用於檢測802.11a/b/g介面。這個工具已經相當老舊,但在Windows XP上仍然受歡迎並且可以執行。最新版本是0.4,於2004年發布。
NetStumbler是根據圖形使用者介面(GUI)的工具,具有過濾器,讓使用者可以專注於特定組態或型別的接入點。GUI還顯示無線工具是否有任何形式的加密,如WEP或WPA。
inSSIDER
inSSIDER是另一個免費的工具,僅在Windows上執行。它使用C語言編寫,並在Windows 7或更高版本作業系統上執行。此外,最新版本支援OS X Snow Leopard或更高版本。與NetStumbler類別似,它用於檢測802.11a/b/g介面。
以下是inSSIDER GUI的截圖,顯示兩個部分。上部分顯示無線介面的控制功能,而下部分顯示每個接入點的訊號強度:
此圖示顯示了inSSIDER GUI中上下兩部分的功能:上部控制無線介面,下部顯示每個接入點的訊號強度。
此外,此工具還可以幫助分析Wi-Fi環境中的頻道設定、安全性、訊號以及鄰近Wi-Fi網路的影響。
Wellenreiter
Wellenreiter是另一個老舊的免費無線網路嗅探工具,由Max Moser、Michael Lauer、Steffen Kewitz和Martin J. Muench開發。此工具在Linux上執行並將資料捕捉為tcpdump相容格式。與前兩個工具不同的是,它可以在被動模式下執行。
Aircrack-ng
Aircrack-ng 是最廣泛使用的Wi-Fi掃描工具之一。此外,它具有多種模組,可用於掃描、安全評估、密碼破解等多種用途。
與之前提到的工具類別似,Aircrack-ng 用於檢測 802.11a/b/g 介面。Aircrack-ng 在 Windows、Linux、iOS 和 Android 平台上執行,並在 Kali Linux 中預設包含。
Aircrack-ng 提供多種選項:
- 常見選項
- 靜態 WEP 破解選項
- WEP 和 WPA-PSK 破解選項
- WPA-PSK 選項
要列出選項並取得高層次描述,您只需執行以下命令:
aircrack-ng
Aircrack-ng套件還包括其他工具如airmon-ng和airodump-ng, 這些工具可以幫助掃描接入點。
例如, 您可以使用以下命令來掃描接入點:
sudo airodump-ng <Device Network Interface>
該命令的結果將提供接入點列表及其相關資訊:
內容解密:
sudo airodump-ng <Device Network Interface>
以上程式碼會列出所有被找到之Wi-Fi接入點及其詳細資訊。
• 接入點之MAC位址
• 訊號強度
• 頻道
• 接入點之名稱
• 連線至該接入點之裝置
程式碼邏輯非常簡單直觀:指令後加上裝置網路介面名稱即可開始搜尋範圍內之Wi-Fi訊號資料。 以上程式碼主要使用於探查Wi-Fi訊號資料及主動資料搜尋。 根據監控模式而非資料傳輸模式作業。 因為會持續監控並傳回訊號資料至終端機畫面。 若為一般模式則不能探查其他Wi-Fi訊號資料。 適用情境為開發者撰寫進階監控程式。 根據實際需求再進行進一步處理。
sudo airmon-ng --help
以上程式碼為啟動電腦之所有Wi-Fi監控模式之指令。
sudo airodump-ng --help
以上程式碼為啟動電腦之所有Wi-Fi監控模式之指令。
Kismet
Kismet 是另一個免費且開源的無線網路掃描工具。此外,此工具還提供其他功能,如嗅探器、GPS對映等。它可以用來嗅探和檢測802.11a/b/g介面。它可以在Windows、macOS和Linux平台上執行,並且預設包含在Kali Linux中。
根據其檔案說明, Kismet現在不僅僅是Wi-Fi, 工具還支援收集藍牙和RF感測器資訊。
要列出選項並取得高層次描述, 您只需執行以下命令:
kismet -h
啟動Kismet 的步驟如下:
首先, 您需要確保 wlan0 (或其他計劃使用的無線網路) 已啟動。要檢查這一點, 您可以執行 ip-a. 如果 wlan0 未啟動, 則需要執行以下命令:
sudo ifconfig wlan0 up接著, 您需要透過執行以下命令來監控介面:
sudo airmon-ng start wlan0輸入
ip-a指令後, 您會發現wlan0已經變成了wlan0mon。最後, 您只需執行以下命令來啟動 Kismet:
sudo kismet -c wlan0mon
內容解密:
sudo ifconfig wlan0 up
以上程式碼目的為啟動電腦系統內之某一特定Wi-Fi裝置, 通常使用於開發者撰寫進階監控程式等情境, 因為會依據實際需求持續監控裝置狀態並傳回資料。 因為裝置狀態影響至實際效能, 所以必須啟動裝置才能開始進一步作業。 而且通常以指令方式進行啟動. 但非所有裝置都適用此方式. 所以實際狀況仍需以手冊方式來判斷.
sudo airmon-ng start wlan0
以上程式碼目的為啟動電腦系統內之某一特定Wi-Fi裝置監控模式, 通常使用於開發者撰寫進階監控程式等情境, 因為會依據實際需求持續監控裝置狀態並傳回資料。 因為裝置狀態影響至實際效能, 所以必須啟動裝置才能開始進一步作業。 而且通常以指令方式進行啟動. 但非所有裝置都適用此方式. 所以實際狀況仍需以手冊方式來判斷. ````plaintext```
Kismet 工具(如圖所示)還圖形化地顯示了資料包速率、記憶體使用情況以及找到的裝置資訊:
此圖示顯示了Kismet GUI中資料包速率、記憶體使用情況以及找到的裝置資訊。
希望這些資訊對您有所幫助!如果您有任何其他問題或需要更多技術深度分析與詳細案例分享,請隨時告訴玄貓!