Venom Academy/Ethical Hacking/掃描與列舉
在本章中,我們將討論掃描和列舉。列舉的目的是收集儘可能多的關於活動系統的資訊。這是為了識別活動目標並可能找到埠等。
滲透測試人員最重要的是第一步,他們需要知道如何識別哪個目標是活動的,哪個目標不是。我們可以使用各種方法和程式來發現活動目標。其中最常用的方法是 ping,它是透過向系統傳送 ICMP 回聲來工作的,並檢查它是否響應。讓我們在谷歌上執行一個 ping 掃描
Ping www.google.com
Pinging [74.125.232.145] with 32 bytes of data:
Reply from 74.125.232.145 time=253ms TTL=51
Reply from 74.125.232.145 time=192ms TTL=51
Reply from 74.125.232.145 time=165ms TTL=51
一個名為 nmap(網路對映器)的優秀程式可以使我們的列舉工作更容易,它允許我們掃描系統範圍。以下是我們可以使用它的方法。
nmap -sP "ip address"
在上面的示例中,我們使用了 -sP 命令來啟用 nmap 只識別活動系統。以下是一個示例
root@venom [$]~ nmap -sP 192.168.15.1/24
Starting nmap 7.1 (https://nmap.org) at 2019-12-27 18:9 CAT
Nmap scan report for WinMaxCPE (192.168.15.1)
Host is up (0.0021s latency).
Mac Address: 20:21:7B:65:12:2A (Intel Corporate)
Nmap scan report for root (192.168.15.23)
Host is up.
埠掃描主要分為兩類,TCP 掃描和 UDP 掃描。埠掃描可以作為識別執行在埠上的服務或埠是否開啟的一種方式。Nmap 支援多種掃描方法,例如 TCP 連線掃描和 TCP SYN 掃描
Nmap 使用以下語法
nmap <scan type> <option arguments> <specified target>
對於初學者來說,以下語法適用。
nmap <target>
上面的示例應該能夠返回關於目標主機上開放埠的詳細資訊。我們也可以使用 * 符號掃描埠。以下示例展示了語法
root@venom [$]~ 192.168.15.*
Starting nmap 7.1 (https://nmap.org) at 2019-12-27 18:9 CAT
Nmap scan report for WinMaxCPE (192.168.15.1)
Host is up (0.0021s latency).
PORT STATE SERVICE
53/TCP Open domain
80/TCP Open http
21/TCP Open ftp
此 nmap 掃描將掃描整個 IP 範圍 192.168.15-255,然後返回有關開放埠的詳細資訊。結果將只基於活動的系統。
我們已經知道 Nmap 可以掃描主機,但它會返回掃描埠在當前時刻所處的埠狀態/狀態。Nmap 的埠狀態如下所示
- 開放 - 意味著埠可以訪問,目標主機上的應用程式正在透過它監聽
- 關閉 - 意味著埠無法訪問,目標主機上沒有應用程式正在透過該埠監聽
- 過濾 - 意味著 nmap 無法確定埠是開啟還是關閉,這可能意味著目標位於防火牆之後
- 未過濾 - 埠是可訪問的,但無法區分它們是開啟還是關閉
現在讓我們看看如何掃描易受攻擊的主機。為此階段,我們使用hping3。這個工具最初用於測試防火牆,直到它被引入 IDLE 掃描。hping3 的主要語法如下所示
hping3 -S -r <target host>
如上所示,-S 規範用於傳送 SYN 標誌,-R 用於啟用檢查相對 ID
現在讓我們對主機 192.168.15.211 執行一個示例
root@venom [$]~ hping3 -S -r 192.167.15.211
HPING 192.168.15.211 (eth0 192.168.15.211): S set , 40 headers + 0 data bytes
len=46 IP=192.168.15.211 ttl=128 id=+1 sport=0 flags=RA seq=1 win=0 rtt=0.8 ms
如你所見,ID 正在逐個遞增。這表明目標主機足夠脆弱,可以成為我們的殭屍主機,我們可以將其用於 IDLE 掃描。或者,我們將使用 metasploit 輔助模組來檢查主機是否可以成為殭屍主機。因此,讓我們透過呼叫以下命令來啟動 metasploit
msfconsole
在那裡,你將等待 metasploit 控制檯開啟,然後你將看到類似於以下內容的文字
msd >
現在,你必須選擇要使用的模組,在本例中,我們使用的是 ipidseq 模組,現在輸入以下內容
msf > use auxiliary/scanner/ip/ipidseq
現在,你需要使用以下內容指定目標主機,在我的示例中,目標主機是 192.168.15.1
msf auxiliary(ipidseq) > set rhost 192.168.15.211
為了啟動攻擊,我們使用 run 命令
msf auxiliary (ipidseq) > run
TCP SYN 掃描是針對指定目標機器執行的預設掃描型別。這是執行速度最快的掃描。掃描的工作原理如下
- 主機向目標主機上的埠 80 傳送 SYN 資料包
- 如果目標主機以 SYN/ACK 資料包響應,那麼 nmap 將知道目標主機上的特定埠是開啟的
- 如果在傳送資料包後目標主機沒有響應,那麼 nmap 將知道該埠被過濾了。
TCP 掃描使用以下命令執行
nmap -sS <target host>
空掃描透過在 TCP 標頭中傳送一個無標誌位來執行。如果沒有返回響應,則意味著埠是開啟的。收到 RST 資料包表示埠已關閉。空掃描使用以下語法執行
nmap -sN <target host>
預設情況下,FIN 標誌用於關閉當前開啟的連線。在 FIN 掃描中,傳送方向目標主機發送 FIN 標誌。如果沒有返回響應,則表示埠是開啟的。如果目標機器以 RST 響應,則表示埠已關閉。FIN 掃描的語法命令是
nmap -sF <target host>
- 偏執 (0) - 無並行掃描。傳送資料包之間間隔 5 分鐘。
- 隱蔽 (1) - 無並行掃描。傳送資料包之間間隔 15 秒。
- 禮貌 (2) - 無並行掃描。傳送資料包之間間隔 0.4 秒。
- 正常 (3) - 預設掃描。嘗試在不超載網路的情況下快速完成。
- 激進 (4) - 比正常更快,但會載入網路。
- 瘋狂 (5) - 並行掃描,在 15 分鐘內超時主機,不會等待超過 0.3 秒來進行單個探測。丟失大量資訊。
nmap 還提供選項來控制掃描超時。將這些選項與上述選項結合使用,可以提供更精細的掃描,例如每分鐘執行 100 個數據包的掃描。自己嘗試以下掃描。
root@venom [$]~ nmap -T sneaky --scan_delay 600