埠掃描工具nmap的常用引數講解

hikonaka發表於2020-04-19

轉載請註明出處: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 :從一個檔案中輸入你的掃描目標資訊(IP地址,主機名,CIDR,IPv6,或者八位位元組範圍),檔案中的每一項必須以一個或多個空格,製表符或換行符分開。比如你建立了一個檔案test.txt,裡面輸入了用換行符分開的一些IP地址,那麼你就可以輸入nmap命令nmap -iL test.txt來掃描檔案中的目標。

-iR :隨機生成個的目標進行掃描,如果hostnum是0,則代表永無止盡的隨機掃描,慎用慎用!!

--exclude <host1[,host2][,host3],...>:排除主機/網路,如果在你掃描過程中有一些網路/主機不是你想掃描的,那麼就使用這個命令進行排除,舉個例子,比如我的test.txt有3個IP地址,現在我不想對其中的192.168.1.121進行掃描,那麼我就可以輸入nmap命令nmap -iL test.txt --exclude 192.168.1.121

--excludefile :排除檔案中的主機/網路列表,原理和上面類似,如果我現在在test.txt中有一些IP地址不想掃描,那麼我們可以把它們放在exclude.txt中並用適當的分隔符進行分割,舉個例子就是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的埠表裡最常見的前n個埠,例如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 :由於效能較差或不可靠的網路硬體或軟體、頻寬限制、嚴格的防火牆等原因,一些主機需要很長的時間掃描。這些極少數的主機掃描往往佔據了大部分的掃描時間。因此,最好的辦法是減少時間消耗並且忽略這些主機,使用--host-timeout選項來說明等待的時間(毫秒)。
--scan-delay :調整探測報文的時間間隔,將它設定小可以用來躲避防火牆。

其他常用設定

-v:提高輸出資訊的詳細程度
-A:啟動強力掃描模式,該模式下會預設啟動作業系統檢測(-O) 和版本掃描(-sV)
-6:啟用IPv6掃描

相關文章