在網路安全領域中,資訊收集如同偵察兵般扮演著至關重要的角色。它為後續的滲透測試和漏洞分析提供必要的情報,如同繪製戰略地圖般指引攻擊方向。本文將探討如何利用 Shodan、Recon-ng 等工具進行資訊收集,並解析主動 DNS 探查技術、埠掃描和無線網路分析等核心技術,以提升網路安全測試的效率和準確性。從 Shodan 的進階搜尋語法到 Recon-ng 的模組化應用,我們將逐步揭示如何有效取得目標系統的關鍵資訊。此外,本文還將探討如何運用 host、dnsrecon、dnsenum 等指令進行 DNS 資訊收集,並結合 Nmap 和 Masscan 等工具進行埠掃描,找出潛在的網路漏洞。最後,我們將介紹無線網路資訊收集的技巧,利用 Aircrack-ng 工具套件分析無線網路安全性,並透過實際案例說明如何應用這些技術,強化網路防禦能力。

資訊收集與主動探查

資訊收集(Reconnaissance)是網路安全測試中的一個重要步驟,目的是收集目標系統的基本資訊,以便在後續攻擊中加以利用。這裡我們將介紹兩種常見的資訊收集工具:Shodan 和 Recon-ng,並探討如何進行主動 DNS 探查。

Shodan 進階搜尋與篩選

Shodan 是一個強大的工具,能夠幫助我們搜尋暴露在網路上的裝置。透過使用不同的篩選條件,我們可以精確地找到所需的裝置。以下是一些常見的篩選條件:

  1. 網路篩選(net):用於搜尋特定 IP 或網路範圍內的裝置。例如,net:210.215.0.0/24
  2. 作業系統篩選(os):用於搜尋特定作業系統的裝置。例如,os:"windows 10"
  3. 連線埠篩選(port):用於搜尋特定連線埠開放的裝置。例如,port:23
  4. 產品篩選(product):用於搜尋特定產品的裝置。例如,product:"apache tomcat"

這些篩選條件可以組合使用,以便進行更精確的搜尋。例如,如果我們想要找到某個 IP 範圍內開放了 23 連線埠的 Windows 10 裝置,可以使用 net:210.215.0.0/24 os:"windows 10" port:23

在 Kali Linux 中,我們可以透過終端機使用 Shodan。安裝 Shodan 的方法如下:

$ sudo apt install python python3 python-setuptools python3-setuptools python-pip python3-pip
$ sudo pip install shodan

安裝完成後,我們可以使用 shodan 命令來進行操作。首先需要初始化 API 金鑰:

$ shodan init {API KEY}

初始化 API 金鑰後,我們就可以進行各種搜尋操作了。例如,要搜尋開放了 23 連線埠的裝置,可以使用以下命令:

$ shodan search port:23

Recon-ng:全面資訊收集框架

Recon-ng 是一個強大的資訊收集框架,旨在提供一個靈活且強大的環境來進行各種資訊收集任務。在 Kali Linux 中,Recon-ng 已經預先安裝。如果需要在其他 Linux 發行版中安裝,可以參考 Recon-ng 的 GitHub 頁面

啟動 Recon-ng 的方法如下:

$ recon-ng

啟動後會顯示沒有模組啟用或安裝的提示。我們需要從市場中安裝模組來擴充套件功能。例如,使用以下命令檢視所有可用模組:

marketplace search

安裝模組的命令如下:

marketplace install recon/companies-multi/whois_miner

安裝完成後,我們可以載入模組並檢視其使用方法:

module load whois_miner
info

設定模組選項的方法如下:

options set SOURCE domain

Recon-ng 支援多種 API 金鑰來擴充套件其功能。例如,GitHub 模組可能需要 API 金鑰才能正常執行。

主動 DNS 列舉

主動 DNS 列舉是指直接連線到目標 DNS 伺服器並進行查詢,以取得更多關於目標網路結構的資訊。這類別操作可能會留下痕跡,因此需要謹慎進行。

host 命令

host 命令是 Kali Linux 中的一個強大工具,用於查詢 DNS 記錄。例如:

$ host zonetransfer.me
zonetransfer.me has address 5.196.105.14
zonetransfer.me mail is handled by 10 ALT2.ASPMX.L.GOOGLE.COM.
zonetransfer.me mail is handled by 20 ASPMX5.GOOGLEMAIL.COM.
zonetransfer.me mail is handled by 20 ASPMX3.GOOGLEMAIL.COM.
...

我們可以使用 -t 操作來指定要查詢的特定 DNS 記錄型別。例如:

$ host -t A zonetransfer.me
zonetransfer.me has address 5.196.105.14

主動DNS探查技術分析

主動DNS探查是一種深入瞭解目標網路架構和相關資源狀態的技術手段。它透過直接與目標DNS伺服器進行互動來取得更多詳細資訊。這種技術雖然高效但需謹慎使用,因為它可能會在目標系統日誌中留下痕跡。

此圖示展示了主動DNS探查流程:

graph TD;
    A[開始] --> B[準備目標網域名稱];
    B --> C[使用host命令進行基本DNS查詢];
    C --> D[分析基本DNS查詢結果];
    D --> E{結果符合預期?};
    E -- 不符合 --> F[調整查詢引數];
    F --> C;
    E -- 符合 --> G[進一步詳細DNS記錄查詢];
    G --> H[分析詳細DNS記錄];
    H --> I{取得足夠資料?};
    I -- 不足夠 --> J[考慮其他DNS相關工具或技術];
    J --> G;
    I -- 足夠 --> K[結束探查];

內容解密:

「主動DNS探查」這張圖示描繪了從開始到結束的一系列步驟流程圖。「開始」節點代表整個過程的起點,「準備目標網域名稱」表示確定要探查哪個網域名稱。「使用host命令進行基本DNS查詢」代表利用host命令初步取得基本DNS資訊。「分析基本DNS查詢結果」則是對初步獲得的結果進行分析,「結果符合預期?」是一個決定點。「不符合」則會調整引數繼續進行,「符合」則進一步深入詳細記錄分析,「進一步詳細DNS記錄查詢」則是深入取得更詳細資料。「取得足夠資料?」是另一個決定點,「不足夠」則考慮其他工具或技術再次進行探查,「足夠」則表示探查結束。

DNS 情報收集與埠掃描

從DNS收集情報

在進行網路安全評估時,DNS(網域名稱系統)資訊收集是一個關鍵步驟。許多組織的DNS伺服器組態不當,甚至未將內部和外部DNS區域分開。如果能夠成功執行區域傳輸,就有機會獲得目標的完整佈局。

執行DNS區域傳輸

要進行DNS區域傳輸,可以使用host命令。命令格式為host -l後跟隨網域名稱:

$ host -l zonetransfer.me nsztm1.digi.ninja

這個命令會列出目標網域名稱下的所有資源記錄(RR),例如A記錄、NS記錄和其他相關資訊。這些資訊對於瞭解目標網路結構非常有幫助。

使用DNSRecon和Dnsenum

除了host命令,還有其他強大的工具可以用於DNS資訊收集,例如dnsrecondnsenum。這些工具在Kali Linux中都有內建。

  • Dnsrecon:可以使用-d選項指定目標網域名稱,並且支援多執行緒和字典攻擊來列舉子網域名稱。
$ dnsrecon -d zonetransfer.me
  • Dnsenum:類別似於dnsrecon,可以進行子網域名稱列舉和其他DNS查詢操作。
$ dnsenum zonetransfer.me

這些工具都支援字典攻擊來列舉子網域名稱,可以使用SecLists中的字典來提高列舉效果。

DNS資訊收集的實務案例

在一次測試中,玄貓發現一個目標組織的DNS伺服器組態不當,允許區域傳輸。透過執行以下命令,玄貓成功取得了該組織的所有內部主機名稱和IP地址:

$ host -l example.com ns1.example.com

這些資訊對於後續的測試和攻擊計劃提供了寶貴的依據。

埠掃描技術

埠掃描是網路安全評估中另一個重要步驟。它涉及探測目標系統上的開放埠並連線到這些埠,以發現執行的服務。這些資訊可以幫助識別服務中的潛在漏洞。

常見埠掃描工具

  • Nmap:最著名且強大的埠掃描工具之一。它支援多種掃描模式和選項,可以根據需求進行定製化掃描。
$ nmap -sS -p- example.com

這個命令會對目標系統進行SYN掃描並探測所有65535個埠。

  • Masscan:一個高速埠掃描工具,適合對大規模網路進行快速掃描。
$ masscan -p0-65535 192.168.1.0/24

埠掃描的實務應用

在一個測試案例中,玄貓需要對一個企業網路進行安全評估。首先使用Nmap對目標系統進行全埠掃描:

$ nmap -sS -p- 192.168.1.100

結果顯示目標系統有多個開放埠,其中包括HTTP(80)、SSH(22)和RDP(3389)。透過進一步的漏洞掃描和分析,玄貓發現了多個服務中的潛在漏洞並提出了相應的修補建議。

無線網路情報收集

無線網路情報收集與有線網路類別似,但需要特定的工具和技術來捕捉和分析無線資料包。以下是一些常見的步驟和工具。

Aircrack-NG工具套件

Aircrack-NG是一套用於評估Wi-Fi安全性的工具套件。它支援資料包捕捉、攻擊Wi-Fi網路、驗證無線網路卡功能以及破解WEP/WPA/WPA2加密金鑰等功能。

捕捉無線資料包

首先,將無線網路卡設定為監聽模式:

$ sudo airmon-ng start wlan0

接著使用airodump-ng捕捉資料包:

$ sudo airodump-ng wlan0mon

無線攻擊技術

Aircrack-NG支援多種攻擊技術,例如重放攻擊、去認證攻擊和假AP攻擊等。這些攻擊可以幫助測試者破解Wi-Fi金鑰或篡改資料包。

捕捉WPA手搖操作

在某次測試中,玄貓需要測試一家企業的Wi-Fi網路安全性。首先使用Aircrack-NG捕捉四次握手資料包:

$ sudo airodump-ng --bssid XX:XX:XX:XX:XX:XX -c CHANNEL -w capture wlan0mon

接著使用字典攻擊破解WPA金鑰:

$ sudo aircrack-ng -w /path/to/dictionary.txt capture.cap

透過這些步驟,玄貓成功破解了Wi-Fi金鑰並提供了相應的安全建議。

執行結果

以下為各段落程式碼之內容解密與詳細說明:

檢查DNS設定與記錄取得之host指令應用:

$ host -l zonetransfer.me nsztm1.digi.ninja

此指令可用於檢查目標DNS伺服器之組態狀況及取得所有資源記錄(RR)。命令語法為:「host」+「-l」+「domain name」+「name server」。

內容解密:

此處以範例主機:「zonetransfer.me」及其上層伺服器:「nsztm1.digi.ninja」為例。

  • Name: nsztm1.digi.ninja:為上層伺服器之主機名稱。
  • Address: 81.4.108.41#53:為上層伺服器之IP位址及其埠號。
  • Aliases::表示主機別名。
  • zonetransfer.me has address 5.196.105.14:表示「zonetransfer.me」之IP位址。
  • zonetransfer.me name server nsztm1.digi.ninja.:表示「zonetransfer.me」之伺服器名稱。 其他每行均代表不同子域之相關設定資料。

用於檢查DNS設定與記錄取得之dnsrecon指令應用:

$ dnsrecon -d zonetransfer.me

此指令可用於檢查目標DNS伺服器之組態狀況及取得所有資源記錄(RR)。命令語法為:「dnsrecon」+「-d domain name」。

內容解密:

此處以範例主機:「zonetransfer.me」為例。 透過該指令即可快速得知該主機之設定資料與其他相關資訊。此處僅展示基本語法範例而未包含完整執行結果。

用於檢查DNS設定與記錄取得之dnsenum指令應用:

$ dnsenum zonetransfer.me

此指令可用於檢查目標DNS伺服器之組態狀況及取得所有資源記錄(RR)。命令語法為:「dnsenum」+「domain name」。

內容解密:

此處以範例主機:「zonetransfer.me」為例。 透過該指令即可快速得知該主機之設定資料與其他相關資訊。此處僅展示基本語法範例而未包含完整執行結果。

用於檢查TCP/UP等連通性與服務狀態之nmap指令應用:

$ nmap -sS -p- example.com

此指令可用於檢查TCP/UDP等連通性與服務狀態。命令語法為:「nmap」+「-sS(SYN scan)」+「-p-(all port)」。

內容解密:

此處以範例主機:「example.com」為例。 透過該指令即可快速得知該主機已開啟之所有連通性與開放服務狀態。此處僅展示基本語法範例而未包含完整執行結果。 SYN Scan:是最常用也是最快速最隱蔽的一種Scan方式;能夠偵測開啟及關閉之Port,而不會被紀錄在日誌中,也就是說不管哪一種作業系統都不會有任何反應.

用於大規模快速檢查TCP/UP等連通性與服務狀態之masscan指令應用:

$ masscan -p0-65535 192.168.1.0/24

此指令可用於大規模快速檢查TCP/UDP等連通性與服務狀態。命令語法為:「masscan」+「-port range」+「IP range」。

內容解密:

此處以範例主機IP位址區段:「192.168.1.0/24」為例。 透過該指令即可快速得知該IP位址區段已開啟之所有連通性與開放服務狀態。此處僅展示基本語法範例而未包含完整執行結果。

用於將無線介面轉入監聽模式以便後續資料包收集與分析作業之airmon-ng指令應用:

$ sudo airmon-ng start wlan0mon

此指令可將無線介面轉入監聽模式以便後續資料包收集與分析作業。

內容解密:

通常無線介面會預設啟動為管理模式(managed mode),但若要進行資料包擷取或其他進階功能時需要先轉入監聽模式(monitor mode),才能進行更深層次地工作;其中須搭配「sudo airmon-ng check kill」以避免其他程式幹擾到轉入監聽模式之過程。