NMAP學習筆記
- 2021 年 2 月 7 日
- 筆記
nmap(Network Mapper)是一款用於網路掃描和安全審計軟體開源軟體,支援Windows、Mac、Linux等多個平台。同時,很多網路管理員也用它來進行網路設備管理、服務升級和主機監控。NMAP使用原始的IP包來探測網路上存活的主機、服務、作業系統等各種資訊。NMAP被設計用來進行大型網路的掃描,但也可以用來對單個目標進行掃描。Nmap還曾在20部電影大螢幕上出現過。
一、下載安裝。
Windows下有exe安裝包以及圖形介面,我感覺使用起來最方便。Linux和Mac下也都有RPM和DMG安裝包,安裝相對簡單,使用上可能命令行的場景比較多,具體使用哪個版本就看各人喜好了。
二、主機發現
2.1 常規掃描
簡單的在命令後加ip地址,可以進行常規掃描,查看主機是否存活以及開放的埠。
nmap 11.133.171.200
2.2 Ping 掃描
類似於Ping命令,僅執行Ping掃描,可以快速發現主機是否存活。
nmap -sn 11.133.171.1-254
如果想看具體的過程,可以加上 --packet-trace
參數,這樣在返回結果之前,可以看到每一步的交互過程。
2.3 TCP SYN Ping 掃描
通常情況下,Nmap默認Ping掃描是使用TCP ACK和ICMP Echo請求對目標進行是否存活的響應,當目標主機的防火牆阻止這些請求時,可以使用TCP Syn Ping掃描。
TCP協議是TCP/IP協議族中的面向連接的、可靠的傳輸層協議,允許發送和接收位元組流形式的數據。為了使伺服器和客戶端以不同的速度產生和消費數據,TCP提供了發送和接收兩個緩衝區。TCP提供全雙工服務,數據同時能雙向流動。通訊的每一方都有發送和接收兩個緩衝區,可以雙向發送數據。
nmap -PS -v 11.133.171.1-254
2.4 TCP ACK Ping 掃描
nmap -PA -v 11.133.171.1-254
使用 -PA
選項可以進行 TCP ACK Ping 掃描,它與 TCP Syn Ping 是非常類似的,唯一的區別是設置TCP的標誌位是ACK而不是SYN,使用這種方式掃描可以探測組織SYN包或ICMP Echo請求的主機。
2.5 UDP Ping 掃描
nmap -PU -v 11.133.171.1-254
-PU
選項是發送一個空的UDP報文到指定埠,如果目標主機響應則返回一個ICMP埠不可達錯誤,如果目標主機不是存活狀態則會返回各種ICMP報錯資訊。
2.6 ICMP Ping Types 掃描
ICMP (Internet Control Message Protocol)是Internet控制報文協議。它是TCP/IP協議族的一個子協議用於在IP主機、路由器之間傳遞控制消息。控制消息是指網路通不通、主機是否可達、路由是否可用等網路本身的消息。這些消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起著重要作用。
ICMP Echo 方式掃描
nmap -PE -v 11.133.171.1-254
使用ICMP時間戳Ping掃描
nmap -PP -v 163.com
使用ICMP地址掩碼Ping掃描
nmap -PM -v 11.133.171.1-254
2.7 ARP Ping 掃描
nmap -PR 11.133.171.1-254
這個選項通常用在掃描區域網時,在本地區域網中防火牆不會禁止ARP請求,這就使它的掃描更加高效。
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議,其功能:主機將ARP請求廣播到網路上的所有主機,並接收返回消息,確定目標IP地址的物理地址,同時將IP地址和硬體地址存入本機ARP快取中,下次請求時直接查詢ARP快取。
三、埠掃描
埠是指介面電路中的一些暫存器,這些暫存器分別用來存放數據資訊、控制資訊和狀態資訊,相應的埠分別稱為數據埠、控制埠和狀態埠。
埠狀態。NMAP提供了6個埠狀態,分別是Open、Closed、Filtered、Unfiltered、Open|Filtered、Closed|Filtered。
時序選項。NMAP提供了T0-T5幾個時序選項,分別是從慢到快的掃描方式。
3.1 常用掃描方式
nmap -p 445 11.133.171.1-254
-p
用來指定埠或埠範圍。-F
選項可以快速的掃描埠,但並不是所有的埠都掃描。NMAP默認是使用隨機的順序對埠進行掃描,使用 -r
選項則可以使用排序順序進行掃描。
四、服務識別與探測
Nmap通過Nmap-service可以探測主機的埠,以及該埠對應的服務,甚至可以進一步探索版本號、主機名、設備類型等資訊。
4.1 版本探測
使用 nmap -sV 11.133.171.141
可以啟用版本探測,這並不僅僅是埠探測,而是通過相應的埠對應相應的服務,根據服務指紋識別出相應的版本。
使用 nmap -sV -A 11.133.171.141
可以看到更加詳細的資訊和更加直觀的方式。
4.2 作業系統探測
在網路掃描過程中,對作業系統版本的探測非常重要。最常見的作業系統探測方法是利用TTL也就是數據包的存活時間,不同的作業系統的TTL也是不同的,可以根據這些TTL進行作業系統探測。
使用 nmap -O 11.133.171.141
可以啟用作業系統探測。Nmap在掃描過程中,經常會發送一系列報文,--version-intensity
選項可以為每個報文賦予1-9之間的值,表示掃描時的強度,強度越高準確度越高速度相應就慢,強度越低準確度越低速度就快。
五、定時掃描
這裡的定時掃描區別於Linux系統的Crontab定時任務,是一系列Nmap提供的可配置的定時選項,通過這些選項我們可加快或者減慢掃描速度,也可以延時、定時掃描,其提供的這些選項更多的是用來逃逸防火牆、IDS(入侵檢測系統)。
並行掃描組。
放棄緩慢的目標主機。可以通過--host-timeout
參數指定對主機的掃描時間。
nmap --host-timeout 100ms 11.133.171.122
六、防火牆與IDS
網路防火牆就是一個位於電腦和它所連接的網路之間的軟體(或硬體)。防火牆可以關閉不使用的埠,而且還能禁止特定埠的流出通訊。
IDS是英文「Intrusion Detection Systems」的縮寫,意思是入侵檢測系統。主要是依照一定的安全策略,通過軟體、硬體,對網路、系統的運行狀況進行監視,儘可能發現各種攻擊企圖、攻擊行為或攻擊結果,以保證網路系統資源的機密性、完整性和可用性。
6.1 報文分段
選項 | 解釋 |
---|---|
-f | 報文分段 |
–mtu number | 指定偏移大小 |
-D ip,ip,ip | RND:number |
-sI | 源地址欺騙 |
–source-port port-number | 源埠欺騙 |
–data-length number | 指定發包長度 |
–randomize-hosts | 目標主機隨機排序 |
–spoof-mac 0 | MAC地址欺騙 |
七、使用NSE腳本進行資訊收集
NMAP使用--script
參數可以調用NSE腳本。
NMAP的NSE腳本是用Lua程式創作,提供強大的資訊搜集功能。
搜集的資訊主要包括:IP資訊(地理位置、開放埠)、WHOIS資訊、EMAIL資訊、IP反查、DNS資訊搜集(A記錄、CNAME記錄等)、系統資訊、後台印表機服務漏洞、系統漏洞掃描、WEB漏洞掃描等。