轉載請註明出處:https://www.cnblogs.com/wangyanzhong123/p/12576406.html
nmap下載與安裝
這個沒什麼好說的。很簡單官網上下載就ok了,需要注意的是winPcap可能會和nmap自帶的Npcap有衝突,這裡我下載的版本是Nmap 7.80。它甚至給我們提供了一個GUI介面(雖然bug很多)。
nmap的基本指令
開啟nmap的GUI,發現它會給你一個預設的指令nmap -T4 -A -v
,這也是平時在使用nmap過程中最常使用的幾個指令之一,但是除了這些指令,我們還需要掌握一些更多的東西,下面將會逐漸進行介紹。
-T<0/1/2/3/4/5> :設定時間模板
簡單來說就是調整你的掃描時間等級,數字越大時間越快,但是相應就要犧牲一些別的東西。
-T0:paranoid,可以避免IDS報警,速度最慢,一個時間掃描一個埠,每個探測報文的傳送間隔為5分鐘。
-T1:sneaky,可以避免IDS報警,速度很慢,探測報文傳送間隔為15s。
-T2:polite,降低了掃描速度從而可以使用更少的頻寬和目標主機資源,速度較慢,探測報文傳送間隔為0.4s。
-T3:normal,正常模式,未作任何改變和優化。
-T4:aggressive,假設使用者具有合適及可靠的網路從而加速掃描,針對TCP埠禁止動態掃描延遲超過10ms,一般如果掃描可靠的網路使用這個較好。
-T5:insane,假設使用者擁有特別快的網路或者為了速度可以犧牲準確性等其他因素,可能會使目標主機崩潰。
掃描目標的選擇相關選項
-iL nmap -iL test.txt
來掃描檔案中的目標。
-iR
--exclude <host1[,host2][,host3],...>:排除主機/網路,如果在你掃描過程中有一些網路/主機不是你想掃描的,那麼就使用這個命令進行排除,舉個例子,比如我的test.txt有3個IP地址,現在我不想對其中的192.168.1.121
進行掃描,那麼我就可以輸入nmap命令nmap -iL test.txt --exclude 192.168.1.121
。
--excludefile nmap -iL test.txt --excludefile exclude.txt
。
主機/網路的發現和探測
可以理解為平時我們的ping
命令,但是這裡nmap有更多別的五花八門的方法來實現我們的“ping”。
-sL:列出指定網路上的每臺主機,不傳送任何報文到目標主機,例如nmap -sL 192.168.1.1
,當然很多網路都對這個做了防護措施,或許你並掃不出來什麼。
-sn:無埠掃描,也就是ping掃描,僅僅可以探測出目標是否可達,例如nmap -sn 192.168.1.112
,早一些的版本這個命令叫-sP
,在區域網內,該掃描可能並不會傳送ICMP報文,而是會廣播ARP報文。
--dns-servers:指定DNS伺服器來進行埠掃描,指定一個或者多個dns伺服器可以讓你的掃描更快,例如nmap --dns-servers xxx.xxx.xxx.xxx -sn 192.168.1.112
。
掃描方式
-sT:TCP全連線掃描,主機會與目標埠進行三次握手,建立完整的TCP連線,這種方式掃描速度慢,網路流量大,容易被發現,例如nmap -sT 192.168.1.112
。
-sS:TCP SYN掃描,主機向目標埠傳送SYN報文,如果目標埠返回了[ACK,SYN],主機傳送RST直接斷開,這種掃描方式速度較快,被廣泛使用,例如nmap -sS 192.168.1.112
。
-sU:UDP掃描,通過向埠傳送UDP資料包來判斷開啟了哪些UDP服務,UDP掃描通常比TCP掃描要慢,你可以將UDP掃描與TCP掃描同時進行,例如nmap -sS -sU 192.168.1.112
。
-sN-sF-sX:這是三種祕密掃描方式,分別為NULL掃描,FIN掃描和Xmas掃描掃描,它們相對比較隱蔽,除了探測報文的標誌位不同,這三種掃描在行為上完全一致。如果收到一個RST報文,該埠被認為是關閉的,而沒有響應則意味著埠是開放或者被過濾的,這些掃描可以結合--scanflags
進行使用,它的引數可以是URG,ACK,PSH,RST,SYN等。
掃描埠設定
-p:設定掃描埠範圍,設定掃描埠範圍有多種方式,比如nmap -sS -p 1-65535 192.168.1.112
代表掃描1到65535這些埠。當然你也可以根據不同的協議指定的更細一點,比如nmap -sS -p U:53,111,137,T:21-25,80,139,8080 192.168.1.112
代表掃描UDP的53,111,137埠和TCP的21到25,80。。。等埠,其中T代表TCP, U代表UDP, S代表SCTP, P代表IP協議。\
--exclude-ports nmap -sS -p 1-65535 --exclude-ports 3306 192.168.1.112
。
-F:快速掃描,這裡按照nmap內建的最常用埠表進行掃描,掃描數量比預設的更少,時間也會更短一些,例如nmap -sS -F 192.168.1.112
。
-r:正常情況下,為了掃描效率,埠掃描的順序是隨機的,這個引數可以讓掃描順序按照由低到高的順序進行掃描,例如nmap -sS -r 192.168.1.112
。
--top-ports nmap -sS --top-ports 10 192.168.1.105
。
版本與作業系統探測
-sV:檢測目標執行的服務版本,例如nmap -sV 192.168.1.105
,它會檢測出目標主機埠號所執行的服務或軟體的版本
-O:檢測目標作業系統,例如nmap -O 192.168.1.105
掃描時間設定
--host-timeout
--scan-delay
其他常用設定
-v:提高輸出資訊的詳細程度
-A:啟動強力掃描模式,該模式下會預設啟動作業系統檢測(-O) 和版本掃描(-sV)
-6:啟用IPv6掃描