Kali Linux Web滲透測試手冊(第二版) - 2.3 - 使用Nmap進行掃描和識別應用服務
標記紅色的部分為今日更新內容。
第二章:偵察
介紹
2.1、被動資訊收集
2.2、使用Recon-ng收集資訊
2.3、使用Nmap掃描和識別應用服務
2.4、標識web應用程式防火牆
2.5、確定HTTPS加密引數
2.6、使用瀏覽器的開發工具分析和更改基本行為
2.7、獲取和修改cookie
2.8、利用robots.txt
2.3、使用Nmap進行掃描和識別應用服務
Nmap是世界上使用最多的埠掃描器,它可以用於識別活動主機、掃描TCP和UDP開放埠、檢測防火牆、獲取在遠端主機上執行的服務版本,甚至使用指令碼發現和利用漏洞。
在此小節中,我們將使用Nmap來識別在目標應用伺服器上執行的所有服務及版本,為了方便學習,我們將在對Nmap的幾次演示中進行此操作,也可以使用一條命令完成。
準備
我們需要讓我們的靶機 vm_1 執行起來
怎麼做…
本小節的所有任務都可以通過一個命令來完成,為了更好的說明它們的功能和結果,這裡分別展示了它們:
首先,我們想要知道伺服器是否響應ping,或者主機是否是啟動狀態:
# nmap -sn 192.168.56.11
現在,我們可以知道這個主機是在啟動的狀態,讓我們看看它的哪些埠是開啟的:
# nmap 192.168.56.11
現在我們將告訴Nmap向伺服器詢問它正在執行的服務版本,並且據此來猜測作業系統:
# namp -sV -o 192.168.56.11
我們可以看到,我們的 vm_1 很可能是一個Linux作業系統(Nmap無法準確的確定它)。它使用Apache 2.2.14 web伺服器、PHP 5.3p1、Jetty 6.1.25等等。
它是如何工作的…
Nmap是一個埠掃描器;這代表著它將資料包傳送到指定IP地址上的一些TCP或UDP埠,並且檢查是否有響應。如果有,則表示埠是開放的;即服務在該埠上執行。
在第一條命令中,對於-sn引數,我們指示Nmap只檢查該伺服器是否響應ICMP請求(或者是ping)。我們的伺服器給出了響應,所以該主機是在存活狀態的。
第二個命令是呼叫Nmap最簡單的方法;它只指定目標IP地址。它所做的是ping伺服器;如果它做出響應,那麼Nmap將向1000個TCP埠的列表傳送探測器,以檢視哪個埠響應以及如何響應,然後它報告結果,顯示哪些埠是開啟的。
第三條命令在第二條命令的基礎上添加了以下兩個引數:
-
-sV:請求找到每個開放埠banner-header或自我標識,也就是每個埠執行服務的版本
-
-o:告訴Nmap嘗試使用從開放埠和版本資訊的資訊來猜測目標上執行的作業系統。
更多…
使用Nmap時的其他有用引數如下所示:
-
-sT:預設情況下,當它作為root使用者執行時,Nmap使用一種稱為SYN掃描的掃描型別。使用這個引數,我們強制掃描器執行完全連線掃描,它速度較慢,並且會在伺服器日誌中留下一條記錄,但不太可能被入侵檢測系統檢測到或被防火牆阻止。
-
-Pn:如果我們已經知道主機時存活的但是沒有響應ping,我們可以使用這個引數告訴Nmap跳過ping測試並掃描所有指定的目標(假設它們已經啟動)
-
-v:這是冗長模式。Nmap將展示更多關於它正在掃描中的資訊。這個引數可以在同一個命令中多次使用,使用的越多,得到的反饋就越多(-vv或-v –v –v –v )
-
-p N1,N2,…N3:如果要測試特定埠或一些非標準埠,我們可能需要使用這個引數,其中N1到Nn時我們希望Nmap掃描的埠號。例如,要掃描21、80到90和137,引數獎是-p 21,80-90,137。另外,使用-p- Nmap將掃描0到65之間的所有埠和536埠
-
--script=script_name:Nmap包含許多有用的指令碼,用於漏洞檢查,掃描或者識別,登入測試,命令執行,使用者列舉等等。使用此引數告訴Nmap在目標的開放埠上執行指令碼。您可能想了解以下Nmap使用的一些指令碼:https://nmap.org/nsedoc/scripts/。
另請參閱
儘管Nmap是最流行的,但它並不是唯一可用的埠掃描器,根據不同的環境,它可能不是最好的選擇。Kali Linux中還有其他的一些替代方案,例如:
-
Unicornscan
-
Hping3
-
Masscan
-
Amap
-
Metasploit’s scanning modules