1. 程式人生 > >Nmap掃描教程之基礎掃描詳解

Nmap掃描教程之基礎掃描詳解

Nmap掃描基礎掃描
當用戶對Nmap工具瞭解後,即可使用該工具實施掃描。通過上一章的介紹,使用者可知Nmap工具可以分別對主機、埠、版本、作業系統等實施掃描。但是,在實施這些掃描工作之前,需要先簡單瞭解下Nmap工具的使用,以方便後面實施掃描。所以,本章將通過使用Nmap工具實施基礎的掃描,來幫助使用者瞭解該工具。

Nmap掃描掃描概述
在實施基本的掃描之前,需要先了解一些Nmap網路掃描的基本知識,及需要考慮的一些法律邊界問題。本節將對網路基本掃描進行一個簡單介紹。

1.網路掃描基礎知識

在使用網路掃描之前,需要先理解以下內容:

q  當目標主機上使用了防火牆、路由器、代理服務或其它安全裝置時,使用Nmap掃描結果可能會存在一些偏差。或者當掃描的遠端目標主機不在本地網路內時,也有可能會出現誤導資訊。
q  在使用Nmap實施掃描時,一些選項需要提升許可權。在Unix和Linux系統中,必須使用root登入或者使用sudo命令執行Nmap命令。


2.法律邊界問題

在實施網路掃描時,需要考慮一些法律邊界問題。如下所示:

q  在掃描網際網路服務提供商網路時(如政府或祕密伺服器網站),如果沒有被允許的話,不要進行掃描。否則,會惹上法律麻煩。
q  全面掃描某些主機時,可能會導致主機崩潰、停機或資料丟失等不良結果。所以,在掃描關鍵任務時要小心謹慎。


Nmap掃描指定掃描目標
當用戶有明確的掃描目標時,可以直接使用Nmap工具實施掃描。根據掃描目標的多少,可以分為掃描單個目標、多個目標及目標列表三種情況。本節將依次講解這三種情況的掃描方式。

Nmap掃描掃描單個目標
通過指定單個目標,使用Nmap工具可以實現一個基本的掃描。指定的目標可以是一個IP地址,也可以是主機名(Nmap會自動解析其主機名)。其中,語法格式如下所示:

nmap [目標]


其中,引數[目標]可以是一個IP地址,也可以是一個主機名。

【示例2-4】掃描區域網中IP地址為192.168.1.105的主機。執行命令如下所示:

[email protected]:~# nmap 192.168.1.105
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-05 18:44 CST
Nmap scan report for localhost (192.168.1.105)
Host is up (0.00010s latency).
Not shown: 995 closed ports
PORT   STATE SERVICE
21/tcp      open  ftp
22/tcp      open  ssh
23/tcp      open  telnet
111/tcp    open  rpcbind
445/tcp    open  microsoft-ds
MAC Address: 00:0C:29:31:02:17 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.87 seconds


從輸出資訊中,可以看到目標主機192.168.1.105上開啟的埠有21、22、23、111、445,及這些埠所對應的服務。而且,還可以看到該目標主機的MAC地址為00:0C:29:31:02:17。從最後一行資訊,可以看出目標主機是活動的(up),並且掃描該目標主機共用了0.87秒。

提示:Nmap工具預設掃描前1000個埠,即1-1000。如果使用者想掃描1000以上埠的話,需要使用-p選項來指定。關於如何使用Nmap的一些選項,將在後面章節介紹。

由於IP地址分為IPv4和IPv6兩類。所以,使用Nmap工具掃描單個目標時,指定的IP地址可以是IPv4,也可以是IPv6。上例中指定掃描的目標是使用IPv4類地址。如果使用者指定掃描目標地址是IPv6類地址時,需要使用-6選項。例如,掃描IP地址為fe80::20c:29ff:fe31:217的目標主機,則執行命令如下所示:

[[email protected] ~]# nmap -6 fe80::20c:29ff:fe31:217


執行以上命令後,將顯示如下所示的資訊:

Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-06 15:07 CST
Nmap scan report for fe80::20c:29ff:fe31:217
Host is up (0.000017s latency).
Not shown: 995 closed ports
PORT  STATE SERVICE
22/tcp  open  ssh
23/tcp  open  telnet
111/tcp open  rpcbind
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds


從以上輸出資訊中,可以看到IPv6地址為fe80::20c:29ff:fe31:217的主機是活動的,並且開放了22、23、111、139、445埠。

提示:如果要使用IPv6類地址作為目標時,則掃描主機和目標主機都必須支援IPv6協議。否則,無法實施掃描。

Nmap掃描掃描多個目標
Nmap可以用來同時掃描多個主機。當用戶需要掃描多個目標時,可以在命令列中同時指定多個目標,每個目標之間使用空格分割。其中,語法格式如下所示:

nmap [目標1 目標2 ...]


【示例2-5】使用Nmap工具同時掃描主機192.168.1.1、192.168.1.101和192.168.1.105。執行命令如下所示:

[email protected]:~# nmap 192.168.1.1 192.168.1.101 192.168.1.105
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-05 19:07 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.00094s latency).
Not shown: 997 closed ports
PORT       STATE SERVICE
80/tcp             open  http
1900/tcp          open  upnp
49152/tcp         open  unknown
MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
Nmap scan report for localhost (192.168.1.101)
Host is up (0.0060s latency).
All 1000 scanned ports on localhost (192.168.1.101) are closed
MAC Address: 14:F6:5A:CE:EE:2A (Xiaomi)
Nmap scan report for localhost (192.168.1.105)
Host is up (0.00038s latency).
Not shown: 995 closed ports
PORT   STATE SERVICE
21/tcp      open  ftp
22/tcp       open  ssh
23/tcp      open  telnet
111/tcp    open  rpcbind
445/tcp    open  microsoft-ds
MAC Address: 00:0C:29:31:02:17 (VMware)
Nmap done: 3 IP addresses (3 hosts up) scanned in 1.00 seconds


從以上輸出資訊,可以看到共掃描了三臺主機,並且依次顯示了每臺主機的掃描結果。在以上資訊中,將掃描的每臺主機地址行已加粗,方便使用者瞭解其掃描結果。下面分別介紹這三臺主機的掃描結果,如下所示:

q  192.168.1.1:從輸出資訊中可以看到該主機開啟了三個埠,MAC地址為14:E6:E4:84:23:7A。根據MAC地址後面括號中的資訊,可以推斷出該主機是一個Tp-link路由器。
q  192.168.1.101:從輸出資訊中,可以看到該主機上前1000個埠是關閉的。但是,可以看到該主機的MAC地址為14:F6:5A:CE:EE:2A,裝置型別為Xiaomi。由此可以判斷出,該主機是一個小米手機裝置。
q  192.168.1.105:從輸出資訊中,可以看到該主機上995個埠是關閉的,五個埠是開啟的。其中,MAC地址為00:0C:29:31:02:17,而且是一臺VMware(虛擬機器)作業系統。


提示:當用戶同時指定掃描的目標太多時,可以使用簡化符號來獲取掃描結果。其中,目標地址之間使用逗號(,)分割。例如,同時掃描以上三臺主機,則可以使用如下命令:

nmap 192.168.1.1,101,105


Nmap掃描掃描一個目標列表
當用戶有大量主機需要掃描時,可以將這些主機的IP地址(或主機名)寫入到一個文字檔案中。然後,使用Nmap工具進行掃描。這樣避免在命令列中手工輸入目標。其中,語法格式如下所示:

nmap -iL [IP地址列表檔案]


以上語法中的-iL選項,就是用來從IP地址列表檔案中提取所有地址的。其中,IP地址列表檔案中包含了一列被掃描的主機IP地址。並且,在IP地址列表檔案中的每個條目必須使用空格、Tab鍵或換行符分割。

【示例2-6】使用Nmap工具掃描list.txt檔案中所有的主機。具體操作步驟如下所示:

(1)建立list.txt文字檔案,並將掃描的主機IP地址寫入到該文字檔案中。如下所示:

[email protected]:~# vi list.txt
192.168.1.1
192.168.1.100
192.168.1.101
192.168.1.102
192.168.1.103
192.168.1.104
192.168.1.105


以上就是在list.txt檔案中,指定將要掃描的目標地址。

(2)掃描list.txt檔案中指定的所有主機。執行命令如下所示:

[email protected]:~# nmap -iL list.txt
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-06 10:53 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.00045s latency).
Not shown: 997 closed ports
PORT       STATE SERVICE
80/tcp             open  http
1900/tcp          open  upnp
49152/tcp         open  unknown
MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
Nmap scan report for localhost (192.168.1.100)
Host is up (0.00023s latency).
Not shown: 986 closed ports
PORT  STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
902/tcp  open  iss-realsecure
912/tcp  open  apex-mesh
1033/tcp open  netinfo
1034/tcp open  zincite-a
1035/tcp open  multidropper
1038/tcp open  mtqp
1040/tcp open  netsaint
1075/tcp open  rdrmshc
2869/tcp open  icslap
5357/tcp open  wsdapi
MAC Address: 00:E0:1C:3C:18:79 (Cradlepoint)
Nmap scan report for localhost (192.168.1.103)
Host is up (0.00028s latency).
Not shown: 977 closed ports
PORT STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
MAC Address: 00:0C:29:F8:2B:38 (VMware)
Nmap scan report for localhost (192.168.1.104)
Host is up (0.00028s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https
MAC Address: 00:0C:29:C3:1F:D7 (VMware)
Nmap scan report for localhost (192.168.1.105)
Host is up (0.00034s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
23/tcp  open  telnet
111/tcp open  rpcbind
445/tcp open  microsoft-ds
MAC Address: 00:0C:29:31:02:17 (VMware)
Nmap scan report for localhost (192.168.1.102)
Host is up (0.0000080s latency).
Not shown: 998 closed ports
PORT  STATE SERVICE
80/tcp   open  http
9876/tcp open  sd
Nmap done: 7 IP addresses (6 hosts up) scanned in 1.05 seconds


從輸出的資訊中,可以看到依次掃描了list.txt檔案中的每臺主機,並且顯示了每臺主機的掃描結果。從最後一行資訊,可以看到共掃描了七個IP地址。其中,六個主機是活動的,並且整個掃描過程共用了1.05秒。

Nmap掃描掃描隨機目標
Nmap工具提供了一個-iR選項,可以用來選擇隨機的網際網路主機來掃描。Nmap工具將會隨機的生成指定數量的目標進行掃描。其中,語法格式如下所示:

nmap -iR [主機數量]


【示例2-7】使用Nmap工具隨機選擇兩個目標主機進行掃描。執行命令如下所示:

[email protected]:~# nmap -iR 2
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-06 11:07 CST
Nmap scan report for suncokret.vguk.hr (161.53.173.3)
Host is up (0.43s latency).
Not shown: 984 closed ports
PORT   STATE  SERVICE
21/tcp   open     ftp
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
81/tcp   open     hosts2-ns
110/tcp  open     pop3
135/tcp  filtered msrpc
139/tcp  filtered netbios-ssn
143/tcp  open     imap
443/tcp  open     https
444/tcp  open     snpp
445/tcp  filtered microsoft-ds
593/tcp  filtered http-rpc-epmap
2002/tcp open     globe
3306/tcp open     mysql
4444/tcp filtered krb524
Nmap done: 3 IP addresses (1 host up) scanned in 29.64 seconds


從輸出資訊中,可以看到Nmap工具隨機生成了三個IP地址。但是,只有主機161.53.137.3是活動的,並且顯示了對該主機的掃描結果。

提示:一般情況下,不建議使用者實施隨機掃描。除非,你是在做一個研究專案。否則,經常實施隨機掃描可能會給自己的網際網路服務提供商帶來麻煩。

Nmap掃描指定掃描範圍
當用戶不確定掃描主機的地址時,可以通過指定一個地址範圍實施掃描。通過指定掃描範圍,從掃描結果中可以獲取到活動的主機及相關資訊。使用者在指定一個掃描範圍時,還可以排除單個或多個掃描目標。本節將介紹使用Nmap工具實施指定地址範圍的掃描方法。

Nmap掃描IP地址範圍掃描
使用者在指定掃描範圍時,可以通過IP地址或子網的方式來實現。下面將介紹使用IP地址指定掃描範圍的方法。其中,語法格式如下所示:

nmap [IP地址範圍]


在以上語法中,IP地址範圍之間使用短連字元(-)。

【示例2-8】使用Nmap工具掃描192.168.1.1到100之間的所有主機。執行命令如下所示:

[email protected]:~# nmap 192.168.1.1-100
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-05 19:40 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.0014s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
80/tcp    open  http
1900/tcp  open  upnp
49152/tcp open  unknown
MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
Nmap scan report for localhost (192.168.1.100)
Host is up (0.00025s latency).
Not shown: 986 closed ports
PORT   STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
902/tcp  open  iss-realsecure
912/tcp  open  apex-mesh
1033/tcp open  netinfo
1034/tcp open  zincite-a
1035/tcp open  multidropper
1037/tcp open  ams
1039/tcp open  sbl
1041/tcp open  danf-ak2
2869/tcp open  icslap
5357/tcp open  wsdapi
MAC Address: 00:E0:1C:3C:18:79 (Cradlepoint)
Nmap done: 100 IP addresses (2 hosts up) scanned in 3.34 seconds


從以上輸出資訊中,可以看到192.168.1-100之間,只有192.168.1.1和192.168.1.100兩臺主機是活動的。

使用者也可以指定掃描多個網路/子網範圍的主機。例如,掃描C類IP網路192.168.1.*到192.168.100.*之間的所有主機。則執行命令如下所示:

nmap 192.168.1-100.*


以上命令中星號(*)是一個萬用字元,表示0-255之間所有有效的主機。

Nmap掃描整個子網掃描
Nmap也可以使用CIDR(無類別域間路由,Classless Inter-Domain Routing)格式來掃描整個子網。CIDR將多個IP網路結合在一起,使用一種無類別的域際路由選擇演算法,可以減少由核心路由器運載的路由選擇資訊的數量。其中,語法格式如下所示:

nmap [CIDR格式的網路地址]


以上語法中的CIDR是由網路地址和子網掩碼兩部分組成,並且中間使用斜槓(/)分割。其中,CIDR和子網掩碼對照表如表2-1所示。

表2-3  CIDR對照表

【示例2-9】使用Nmap掃描192.168.1.1/24整個子網中的所有主機。執行命令如下所示:

[email protected]:~# nmap 192.168.1.1/24
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-05 19:41 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.00064s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
80/tcp    open  http
1900/tcp  open  upnp
49152/tcp open  unknown
MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
Nmap scan report for localhost (192.168.1.100)
Host is up (0.00022s latency).
Not shown: 986 closed ports
PORT   STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
902/tcp  open  iss-realsecure
912/tcp  open  apex-mesh
1033/tcp open  netinfo
2869/tcp open  icslap
5357/tcp open  wsdapi
MAC Address: 00:E0:1C:3C:18:79 (Cradlepoint)
Nmap scan report for localhost (192.168.1.101)
Host is up (0.0041s latency).
All 1000 scanned ports on localhost (192.168.1.101) are closed
MAC Address: 14:F6:5A:CE:EE:2A (Xiaomi)
Nmap scan report for localhost (192.168.1.103)
Host is up (0.00027s latency).
Not shown: 977 closed ports
PORT   STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
......
49157/tcp open  unknown
MAC Address: 00:0C:29:DE:7E:04 (VMware)
Nmap scan report for localhost (192.168.1.102)
Host is up (0.0000040s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
80/tcp   open  http
9876/tcp open  sd
Nmap done: 256 IP addresses (9 hosts up) scanned in 3.39 seconds


從輸出資訊中,可以看到共掃描了256個地址。其中,九臺主機是活動的,並且共用時間為3.39秒。由於章節的原因,以上只列舉了五臺主機的掃描結果。其中,中間部分內容,使用省略號(......)代替了。

Nmap掃描排除掃描目標
當用戶指定一個掃描範圍時(如區域網),在該範圍內可能會包括自己的主機,或者是自己搭建的一些服務等。這時,使用者為了安全及節約時間,可能不希望掃描這些主機。此時,使用者就可以使用--exclude命令將這些主機排除。其中,排除單個目標的語法格式如下所示:

nmap [目標] --exclude [目標]


【示例2-10】掃描192.168.1.1/24網路內除192.168.1.101以外的所有主機。執行命令如下所示:

[email protected]:~# nmap 192.168.1.1/24 --exclude 192.168.1.101
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-05 19:44 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.00068s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
80/tcp    open  http
1900/tcp  open  upnp
49152/tcp open  unknown
MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
Nmap scan report for localhost (192.168.1.100)
Host is up (0.00025s latency).
Not shown: 986 closed ports
PORT   STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
902/tcp  open  iss-realsecure
912/tcp  open  apex-mesh
1033/tcp open  netinfo
1034/tcp open  zincite-a
1035/tcp open  multidropper
1037/tcp open  ams
1039/tcp open  sbl
1041/tcp open  danf-ak2
2869/tcp open  icslap
5357/tcp open  wsdapi
MAC Address: 00:E0:1C:3C:18:79 (Cradlepoint)
Nmap scan report for localhost (192.168.1.103)
Host is up (0.00036s latency).
Not shown: 977 closed ports
PORT   STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
......
Nmap scan report for localhost (192.168.1.105)
Host is up (0.00026s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
23/tcp  open  telnet
111/tcp open  rpcbind
445/tcp open  microsoft-ds
MAC Address: 00:0C:29:31:02:17 (VMware)
 
Nmap scan report for localhost (192.168.1.106)
Host is up (0.00039s latency).
Not shown: 996 closed ports
PORT  STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
1025/tcp open  NFS-or-IIS
MAC Address: 00:0C:29:C7:6A:2A (VMware)
......
Nmap scan report for localhost (192.168.1.102)
Host is up (0.0000030s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
80/tcp   open  http
9876/tcp open  sd
Nmap done: 255 IP addresses (8 hosts up) scanned in 3.05 seconds


從輸出資訊中,可以看到共掃描了255個IP地址。其中,八個主機是活動的。由於章節的原因,中間省略了一部分內容。

使用者使用--exclude選項,可以指定排除單個主機、範圍或者整個網路塊(使用CIDR格式)。例如,掃描192.168.1.1/24網路內,除192.168.1.100-192.168.1.103之外的所有主機。則執行命令如下所示:

[email protected]:~# nmap 192.168.1.1/24 --exclude 192.168.1.100-103
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-05 19:45 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
80/tcp    open  http
1900/tcp  open  upnp
49152/tcp open  unknown
MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
Nmap scan report for localhost (192.168.1.104)
Host is up (0.00028s latency).
Not shown: 997 closed ports
PORT  STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https
MAC Address: 00:0C:29:C3:1F:D7 (VMware)
Nmap scan report for localhost (192.168.1.105)
Host is up (0.00019s latency).
Not shown: 995 closed ports
PORT  STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
23/tcp  open  telnet
111/tcp open  rpcbind
445/tcp open  microsoft-ds
MAC Address: 00:0C:29:31:02:17 (VMware)
Nmap scan report for localhost (192.168.1.106)
Host is up (0.00017s latency).
Not shown: 996 closed ports
PORT   STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
1025/tcp open  NFS-or-IIS
MAC Address: 00:0C:29:C7:6A:2A (VMware)
Nmap scan report for localhost (192.168.1.107)
Host is up (0.0014s latency).
Not shown: 984 closed ports
PORT    STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
443/tcp   open  https
445/tcp   open  microsoft-ds
554/tcp   open  rtsp
902/tcp   open  iss-realsecure
912/tcp   open  apex-mesh
2869/tcp  open  icslap
5357/tcp  open  wsdapi
10243/tcp open  unknown
49152/tcp open  unknown
49153/tcp open  unknown
49154/tcp open  unknown
49155/tcp open  unknown
49156/tcp open  unknown
49157/tcp open  unknown
MAC Address: 00:0C:29:DE:7E:04 (VMware)
Nmap done: 252 IP addresses (5 hosts up) scanned in 2.27 seconds


從以上輸出資訊中,可以看到共掃描了252個主機。其中,有五個主機是活動的,其地址分別是192.168.1.1、192.168.1.104、192.168.1.105、192.168.1.106和192.168.1.107。根據輸出的資訊,可以發現沒有對192.168.1.100-103之間主機進行掃描。

Nmap掃描排除列表中的目標
當用戶排除掃描的目標很多時,也可以將這些目標主機的IP地址寫入到一個文字檔案中。然後,使用--excludefile選項來指定排除掃描的目標。其中,排除掃描列表中目標的語法格式如下所示:

nmap [目標] --excludefile [目標列表]


【示例2-11】使用Nmap掃描192.168.1.0/24網路內主機,但是排除list.txt檔案列表中指定的目標。具體操作步驟如下所示:

(1)建立list.txt檔案,並寫入要排除掃描目標的IP地址。如下所示:

[email protected]:~#vi list.txt
192.168.102
192.168.1.103
192.168.1.104
192.168.1.105


在以上列表檔案中,指定排除掃描以上四個IP地址的主機。

(2)實施掃描。執行命令如下所示:

[email protected]:~# nmap 192.168.1.0/24 --excludefile list.txt
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-05 19:46 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.0014s latency).
Not shown: 997 closed ports
PORT   STATE SERVICE
80/tcp    open  http
1900/tcp  open  upnp
49152/tcp open  unknown
MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
Nmap scan report for localhost (192.168.1.100)
Host is up (0.00021s latency).
Not shown: 986 closed ports
PORT   STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
902/tcp  open  iss-realsecure
912/tcp  open  apex-mesh
1033/tcp open  netinfo
1034/tcp open  zincite-a
MAC Address: 00:E0:1C:3C:18:79 (Cradlepoint)
Nmap scan report for localhost (192.168.1.106)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT  STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
1025/tcp open  NFS-or-IIS
MAC Address: 00:0C:29:C7:6A:2A (VMware)
Nmap scan report for localhost (192.168.1.107)
Host is up (0.0010s latency).
Not shown: 984 closed ports
PORT    STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
443/tcp   open  https
445/tcp   open  microsoft-ds
554/tcp   open  rtsp
902/tcp   open  iss-realsecure
912/tcp   open  apex-mesh
2869/tcp  open  icslap
5357/tcp  open  wsdapi
10243/tcp open  unknown
49152/tcp open  unknown
49153/tcp open  unknown
MAC Address: 00:0C:29:DE:7E:04 (VMware)
Nmap scan report for localhost (192.168.1.102)
Host is up (0.0000030s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
80/tcp   open  http
9876/tcp open  sd
Nmap done: 253 IP addresses (5 hosts up) scanned in 3.31 seconds


從以上輸出資訊中,可以看到掃描的所有目標中,共有五臺主機是活動的。

Nmap掃描實施全面掃描
在使用Nmap工具實施掃描時,使用不同的選項,則掃描結果不同。使用者可以使用不同的選項,單獨掃描目標主機上的埠、應用程式版本或作業系統型別等。但是,大部分人又不太喜歡記這些選項。這時候,使用者只需要記一個選項-A即可。該選項可以對目標主機實施全面掃描,掃描結果中包括各種型別的資訊。其中,實施全面掃描的語法格式如下所示:

nmap -A [目標]


【示例2-12】使用Nmap工具對目標主機192.168.1.105實施全面掃描。則執行命令如下所示:

[email protected]:~# nmap -A 192.168.1.105
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-06 15:20 CST
Nmap scan report for localhost (192.168.1.105)
Host is up (0.00028s latency).
Not shown: 995 closed ports
PORT  STATE SERVICE  VERSION
21/tcp  open  ftp         vsftpd 2.2.2                                                 #FTP服務版本為2.2.2,供應商是Vsftpd
| ftp-anon: Anonymous FTP login allowed (FTP code 230)                           #允許匿名登入
|_drwxr-xr-x    2 14       0            4096 Apr 03 06:10 pub  #FTP服務的根目錄為pub
22/tcp  open  ssh         OpenSSH 5.3 (protocol 2.0)                            #SSH服務版本是5.3,供應商是OpenSSH
| ssh-hostkey:                                                                                                #SSH服務金鑰
|   1024 83:9f:d0:8e:29:3c:7f:d9:11:da:a8:bb:b5:5a:4d:69 (DSA)
|_  2048 2e:ea:ee:63:03:fd:9c:ae:39:9b:4c:e0:49:a9:8f:5d (RSA)
23/tcp  open  telnet      Linux telnetd                                                #Telnet服務
111/tcp open  rpcbind     2-4 (RPC #100000)
| rpcinfo:                                                                                                         #RPC詳細資訊
|   program version     port/proto     service
|   100000  2,3,4        111/tcp             rpcbind
|   100000  2,3,4         111/udp                    rpcbind
|   100024  1            34525/tcp          status
|_  100024  1          51866/udp     status
445/tcp open  netbios-ssn Samba smbd 3.X (workgroup: MYGROUP)#Samba服務版本為3.X,供應商為smbd
MAC Address: 00:0C:29:31:02:17 (VMware)                                          #目標主機的MAC地址
Device type: general purpose                                                                    #裝置型別
Running: Linux 2.6.X|3.X                                                                            #正在執行的系統
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3     #作業系統中央處理單元
OS details: Linux 2.6.32 - 3.10                                                                   #作業系統詳細資訊
Network Distance: 1 hop                                                                             #網路距離
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel           #服務資訊
Host script results:
| smb-os-discovery:                                                                                              #SMB作業系統發現
|   OS: Unix (Samba 3.6.9-151.el6)                                                                  #作業系統為Unix,Samba版本為3.6.9
|   Computer name: router                                                                        #計算機名
|   NetBIOS computer name:                                                                            #NetBIOS計算機名
|   Domain name:                                                                                      #域名
|   FQDN: router                                                                                          #完全合格域名(FQDN)
|_  System time: 2015-05-06T15:20:28+08:00                                              #系統時間
| smb-security-mode:
|   Account that was used for smb scripts: <blank>
|   User-level authentication
|   SMB Security: Challenge/response passwords supported
|_  Message signing disabled (dangerous, but default)
|_smbv2-enabled: Server doesn't support SMBv2 protocol
TRACEROUTE
HOP RTT     ADDRESS
1   0.28 ms localhost (192.168.1.105)
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.51 seconds


從以上輸出的資訊,可以明顯看出比前面例子掃描結果更詳細。在以上輸出資訊中,可以看到目標主機上開啟的埠、伺服器、版本、作業系統版本、核心、系統型別等。根據分析輸出的資訊,可知目標主機上運行了FTP、SSH、Telnet等服務,並且可以看到各服務的版本及許可權資訊。而且,還可以知道目標主機的作業系統是Linux,核心版本為2.6.32等。

 

其他

 nmap localhost    #檢視主機當前開放的埠
 nmap -p 1024-65535 localhost    #檢視主機埠(1024-65535)中開放的埠
 nmap -PS 192.168.21.163        #探測目標主機開放的埠
 nmap -PS22,80,3306  192.168.21.163    #探測所列出的目標主機埠
 nmap -O 192.168.21.163    #探測目標主機作業系統型別
 nmap -A 192.168.21.163    #探測目標主機作業系統型別

 

 

https://www.cnblogs.com/Acewipe/p/7589022.html

 如期而至!

 nmap這個滲透工具一般用在滲透的準備階段,用於收集使用者的資訊,為後面的滲透做情報支援

本教程分為14個小模組,分別為:

1.nmap的安裝和掃描的基本概念

2.如何找到網路上的裝置

3.埠掃描概要

4.埠掃面技術和演算法

5.優化nmap的效能

6.服務和應用程式版本的識別

7.遠端作業系統的識別

8.nmap的指令碼引擎

9.識別並繞過防火牆和IDS

10.防禦nmap掃描

11.nmap的圖形化程式zenmap

12.格式化nmap的輸出內容

13.理解和設定nmap的資料檔案

14.總結

一.nmap的安裝和掃描的基本概念

首先對於nmap的安裝,可以自行百度,當然kali linux是內建了nmap的,只要在命令列下輸入nmap即可使用,引數-version可以檢視當前nmap的版本,如下圖

然後對於掃描簡單的來說其實就是四個動作

1.統一溝通語言  (TCP/IP協議)

2.發出刺激           (ICMP報文頭)

3.受到刺激的反饋  (ICMP的反饋)

4通過比對刺激和反饋完成掃描

二.如何找到網路上的裝置

nmap的基本輸入:

將你要掃描的裝置地址告訴nmap可以通過下面的方法實現

統一格式:nmap  [掃描型別]  [設定]  {裝置地址}

其中裝置地址(主機名,IP地址,網段等)可以通過以下方法

1.-iL <檔名>          通過檔案輸入地址

2.-iR <IP地址數目>

3.--exclude <exclude_file> :排出檔案中的地址

4.直接輸入IP或網段(最常用)

上面是nmap兩個簡單掃描例子,僅反饋了一些簡單的資訊,但是對於其他的資料收集,nmap裡面有詳細的引數可以實現,下面將開始講解一些常用引數的使用:

掃描引數:

1.-sL   不做掃描,僅完成DNS解析和網址的轉換

2.-sP    預設發ICMP echo請求和TCP的ACK請求(80埠)       

3.-PN   不用ping

4.-Ps    <埠號列表>    發TCP協議SYN標記的空包(80埠)

5.-PA    <埠號列表>    發TCP協議ACK標記的空包(80埠)   

6.-PU    <埠號列表>    (31338埠)

7.-PE -PP -PM

8.-PO <協議列表>

9.-PR  (ARP ping)

設定引數:

--traceroute
-n(不要做DNS解析)
-R(DNS解析所有的地址,預設不解析不線上的IP)
-system-dns(使用系統DNS)
--dns-servers <server1>[,<server2>[,…]](使用其他DNS)

三.埠掃描概要

1.埠掃描:

-p <埠號列表>

2.埠狀態:

  1.Open,埠開啟,有程式監聽此埠
  2.Closed,埠關閉,資料能到達主機,但是沒有程式監聽此埠。
  3.Filtered,資料未能到達主機。
  4.Unfiltered,資料能到達主機,但是Nmap無法判斷埠開啟還是關閉。
  5.Open|filtered,埠沒有返回值,主要出現在UDP,IP,FIN,NULL和Xmas掃描
  6.Closed|filtered,只出現在IP ID idle 掃描。

四.埠掃面技術和演算法

1.TCP標誌位掃描

 -sS   TCP SYN掃描(匿名掃描,預設不加型別,需要root許可權,掃描速度快)

-sT   TCP全連線掃描(不需要root許可權,TCP掃描的預設模式,埠狀態和SYN相同,耗時長)

2.UDP掃描

-sU      (使用-sUV能增加掃描的準確性)

沒有UDP埠開放

3.協議掃描

-sO     獲取伺服器支援哪些協議

常用的掃描一般就上面幾種,其他的暫時不講解,需要了解的可以自己去百度或者等我的nmap進階教程整理出來。

五.優化nmap的效能

-F (快速掃描100個常用埠)

其他的打算在nmap進階教程再講解

六.服務和應用程式版本的識別

有時候nmap探測出來的服務和版本資訊並不是非常準確,不過我們可以通過加引數的方式使其精確

1.-sV:探測開放埠的服務和版本資訊
2.--version-intensity<0-9>:設定探測深度
3.--version-light:相當於0-2
4.--version-all:相當於0-9
5.--version-trace:顯示版本掃描詳情(用於除錯)

 

七.遠端作業系統的識別

1.-O:啟動作業系統識別。
2.--osscan-limit:限定只識別有埠開放的主機,提高-O和-A引數時的掃描速度。
3.--osscan-guest<OS>:給NMAP建議的作業系統。類似於sqlmap的引數。
4.--max-os-tries <次數>:設定重試次數(預設為5),提高準確性或者提高速度。

 

八.nmap的指令碼引擎

九.識別並繞過防火牆和IDS

十.防禦nmap掃描

十一.nmap的圖形化程式zenmap

十二.格式化nmap的輸出內容

十三.理解和設定nmap的資料檔案

十四.總結

 基礎簡單的nmap教程,基本使用引數就這些,不要看只有幾個,組合起來其實還是比較多的,本教程暫時到這裡,還有沒有講解的模組打算在下一篇的nmap進階使用教程在講解