nmap命令詳解

 

基礎命令學習目錄html

 

原文連接:http://www.cnblogs.com/hongfei/p/3801357.htmlmysql

Nmap即網絡映射器對Linux系統/網絡管理員來講是一個開源且很是通用的工具。Nmap用於在遠程機器上探測網絡,執行安全掃描,網絡審計和搜尋開放端口。它會掃描遠程在線主機,該主機的操做系統,包過濾器和開放的端口。linux

我將用兩個不一樣的部分來涵蓋大部分NMAP的使用方法,這是nmap關鍵的第一部分。在下面的設置中,我使用兩臺已關閉防火牆的服務器來測試Nmap命令的工做狀況。git

  • 192.168.0.100 – server1.tecmint.com
  • 192.168.0.101 – server2.tecmint.com

NMAP命令用法sql

# nmap [Scan Type(s)] [Options] {target specification}

如何在Linux下安裝NMAP數據庫

如今大部分Linux的發行版本像Red Hat,CentOS,Fedoro,Debian和Ubuntu在其默認的軟件包管理庫(即Yum 和 APT)中都自帶了Nmap,這兩種工具都用於安裝和管理軟件包和更新。在發行版上安裝Nmap具體使用以下命令。windows

# yum install nmap      [on Red Hat based systems]
$ sudo apt-get install nmap [on Debian based systems]

一旦你安裝了最新的nmap應用程序,你就能夠按照本文中提供的示例說明來操做。安全

1. 用主機名和IP地址掃描系統

Nmap工具提供各類方法來掃描系統。在這個例子中,我使用server2.tecmint.com主機名來掃描系統找出該系統上全部開放的端口,服務和MAC地址。服務器

使用主機名掃描網絡

複製代碼
[root@server1 ~]# nmap server2.tecmint.com
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 15:42 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.415 seconds
You have new mail in /var/spool/mail/root
複製代碼

使用IP地址掃描

複製代碼
[root@server1 ~]# nmap 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 11:04 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.465 seconds
You have new mail in /var/spool/mail/root
複製代碼

 2.掃描使用「-v」選項

你能夠看到下面的命令使用「 -「選項後給出了遠程機器更詳細的信息。

複製代碼
[root@server1 ~]# nmap -v server2.tecmint.com
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 15:43 EST
Initiating ARP Ping Scan against 192.168.0.101 [1 port] at 15:43
The ARP Ping Scan took 0.01s to scan 1 total hosts.
Initiating SYN Stealth Scan against server2.tecmint.com (192.168.0.101) [1680 ports] at 15:43
Discovered open port 22/tcp on 192.168.0.101
Discovered open port 80/tcp on 192.168.0.101
Discovered open port 8888/tcp on 192.168.0.101
Discovered open port 111/tcp on 192.168.0.101
Discovered open port 3306/tcp on 192.168.0.101
Discovered open port 957/tcp on 192.168.0.101
The SYN Stealth Scan took 0.30s to scan 1680 total ports.
Host server2.tecmint.com (192.168.0.101) appears to be up ... good.
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.485 seconds
               Raw packets sent: 1681 (73.962KB) | Rcvd: 1681 (77.322KB)
複製代碼

3.掃描多臺主機

你能夠簡單的在Nmap命令後加上多個IP地址或主機名來掃描多臺主機。

複製代碼
[root@server1 ~]# nmap 192.168.0.101 192.168.0.102 192.168.0.103 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:06 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 3 IP addresses (1 host up) scanned in 0.580 seconds
複製代碼

4.掃描整個子網

你可使用*通配符來掃描整個子網或某個範圍的IP地址。

複製代碼
[root@server1 ~]# nmap 192.168.0.*
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:11 EST
Interesting ports on server1.tecmint.com (192.168.0.100):
Not shown: 1677 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind
851/tcp open  unknown
 
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.550 seconds
You have new mail in /var/spool/mail/root
複製代碼

從上面的輸出能夠看到,nmap掃描了整個子網,給出了網絡中當前網絡中在線主機的信息。

5.使用IP地址的最後一個字節掃描多臺服務器

你能夠簡單的指定IP地址的最後一個字節來對多個IP地址進行掃描。例如,我在下面執行中掃描了IP地址192.168.0.101,192.168.0.102和192.168.0.103。

複製代碼
[root@server1 ~]# nmap 192.168.0.101,102,103 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:09 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 3 IP addresses (1 host up) scanned in 0.552 seconds
You have new mail in /var/spool/mail/root
複製代碼

6. 從一個文件中掃描主機列表

若是你有多臺主機須要掃描且全部主機信息都寫在一個文件中,那麼你能夠直接讓nmap讀取該文件來執行掃描,讓咱們來看看如何作到這一點。

建立一個名爲「nmaptest.txt 」的文本文件,並定義全部你想要掃描的服務器IP地址或主機名。

[root@server1 ~]# cat > nmaptest.txt 
localhost
server2.tecmint.com
192.168.0.101

接下來運行帶「iL」 選項的nmap命令來掃描文件中列出的全部IP地址

複製代碼
[root@server1 ~]# nmap -iL nmaptest.txt 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 10:58 EST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1675 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp
857/tcp open  unknown
 
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
Nmap finished: 3 IP addresses (3 hosts up) scanned in 2.047 seconds
複製代碼

7.掃描一個IP地址範圍

你能夠在nmap執行掃描時指定IP範圍。

複製代碼
[root@server1 ~]# nmap 192.168.0.101-110 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:09 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems) 
Nmap finished: 10 IP addresses (1 host up) scanned in 0.542 seconds
複製代碼

8.排除一些遠程主機後再掃描

在執行全網掃描或用通配符掃描時你可使用「-exclude」選項來排除某些你不想要掃描的主機。

複製代碼
[root@server1 ~]# nmap 192.168.0.* --exclude 192.168.0.100
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:16 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 255 IP addresses (1 host up) scanned in 5.313 seconds
You have new mail in /var/spool/mail/root
複製代碼

9.掃描操做系統信息和路由跟蹤

使用Nmap,你能夠檢測遠程主機上運行的操做系統和版本。爲了啓用操做系統和版本檢測,腳本掃描和路由跟蹤功能,咱們可使用NMAP的「-A「選項。

複製代碼
[root@server1 ~]# nmap -A 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:25 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.2.3 ((CentOS))
111/tcp  open  rpcbind  2 (rpc #100000)
957/tcp  open  status   1 (rpc #100024)
3306/tcp open  mysql   MySQL (unauthorized)
8888/tcp open  http    lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52814B66%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
 
Uptime 0.169 days (since Mon Nov 11 12:22:15 2013)
 
Nmap finished: 1 IP address (1 host up) scanned in 22.271 seconds
複製代碼

從上面的輸出你能夠看到,Nmap顯示出了遠程主機操做系統的TCP / IP協議指紋,而且更加具體的顯示出遠程主機上的端口和服務。

10.啓用Nmap的操做系統探測功能

使用選項「-O」和「-osscan-guess」也幫助探測操做系統信息。

複製代碼
[root@server1 ~]# nmap -O server2.tecmint.com
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:40 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52815CF4%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=Option -O and -osscan-guess also helps to discover OS
R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
 
Uptime 0.221 days (since Mon Nov 11 12:22:16 2013)
 
Nmap finished: 1 IP address (1 host up) scanned in 11.064 seconds
You have new mail in /var/spool/mail/root
複製代碼

11.掃描主機偵測防火牆

下面的命令將掃描遠程主機以探測該主機是否使用了包過濾器或防火牆。

複製代碼
[root@server1 ~]# nmap -sA 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:27 EST
All 1680 scanned ports on server2.tecmint.com (192.168.0.101) are UNfiltered
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.382 seconds
You have new mail in /var/spool/mail/root
複製代碼

12.掃描主機檢測是否有防火牆保護

掃描主機檢測其是否受到數據包過濾軟件或防火牆的保護。

複製代碼
[root@server1 ~]# nmap -PN 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:30 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.399 seconds
複製代碼

13.找出網絡中的在線主機

使用「-sP」選項,咱們能夠簡單的檢測網絡中有哪些在線主機,該選項會跳過端口掃描和其餘一些檢測。

複製代碼
[root@server1 ~]# nmap -sP 192.168.0.*
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 11:01 EST
Host server1.tecmint.com (192.168.0.100) appears to be up.
Host server2.tecmint.com (192.168.0.101) appears to be up.
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.109 seconds
複製代碼

14.執行快速掃描

你可使用「-F」選項執行一次快速掃描,僅掃描列在nmap-services文件中的端口而避開全部其它的端口。

複製代碼
[root@server1 ~]# nmap -F 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:47 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1234 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.322 seconds
複製代碼

15.查看Nmap的版本

你可使用「-V」選項來檢測你機子上Nmap的版本。

[root@server1 ~]# nmap -V
 
Nmap version 4.11 ( http://www.insecure.org/nmap/ )
You have new mail in /var/spool/mail/root

16.順序掃描端口

使用「-r」選項表示不會隨機的選擇端口掃描。

複製代碼
[root@server1 ~]# nmap -r 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:52 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.363 seconds
複製代碼

17.打印主機接口和路由

你可使用nmap的「–iflist」選項檢測主機接口和路由信息。

複製代碼
[root@server1 ~]# nmap --iflist
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:07 EST
************************INTERFACES************************
DEV  (SHORT) IP/MASK          TYPE     UP MAC
lo   (lo)    127.0.0.1/8      loopback up
eth0 (eth0)  192.168.0.100/24 ethernet up 08:00:27:11:C7:89
 
**************************ROUTES**************************
DST/MASK      DEV  GATEWAY
192.168.0.0/0 eth0
169.254.0.0/0 eth0
複製代碼

從上面的輸出你能夠看到,nmap列舉出了你係統上的接口以及它們各自的路由信息。

18.掃描特定的端口

使用Nmap掃描遠程機器的端口有各類選項,你可使用「-P」選項指定你想要掃描的端口,默認狀況下nmap只掃描TCP端口。

複製代碼
[root@server1 ~]# nmap -p 80 server2.tecmint.com
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:12 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) sca
複製代碼

19.掃描TCP端口

你能夠指定具體的端口類型和端口號來讓nmap掃描。

複製代碼
[root@server1 ~]# nmap -p T:8888,80 server2.tecmint.com
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:15 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT     STATE SERVICE
80/tcp   open  http
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.157 seconds
複製代碼

20.掃描UDP端口

複製代碼
[root@server1 ~]# nmap -sU 53 server2.tecmint.com
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:15 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT     STATE SERVICE
53/udp   open  http
8888/udp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.157 seconds
複製代碼

21.掃描多個端口

你還可使用選項「-P」來掃描多個端口。

複製代碼
[root@server1 ~]# nmap -p 80,443 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 10:56 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT    STATE  SERVICE
80/tcp  open   http
443/tcp closed https
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.190 seconds
複製代碼

22.掃描指定範圍內的端口

您可使用表達式來掃描某個範圍內的端口。

[root@server1 ~]#  nmap -p 80-160 192.168.0.101

23.查找主機服務版本號

複製代碼
[root@server1 ~]# nmap -sV 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:48 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.2.3 ((CentOS))
111/tcp  open  rpcbind  2 (rpc #100000)
957/tcp  open  status   1 (rpc #100024)
3306/tcp open  mysql   MySQL (unauthorized)
8888/tcp open  http    lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 12.624 seconds
複製代碼

24.使用TCP ACK (PA)和TCP Syn (PS)掃描遠程主機

有時候包過濾防火牆會阻斷標準ICMP ping請求,在這種狀況下,咱們可使用TCP ACKTCP Syn方法來掃描遠程主機。

複製代碼
[root@server1 ~]# nmap -PS 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:51 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.360 seconds
You have new mail in /var/spool/mail/root
複製代碼

25.使用TCP ACK掃描遠程主機上特定的端口

複製代碼
[root@server1 ~]# nmap -PA -p 22,80 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:02 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.166 seconds
You have new mail in /var/spool/mail/root
複製代碼

26. 使用TCP Syn掃描遠程主機上特定的端口

複製代碼
[root@server1 ~]# nmap -PS -p 22,80 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:08 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.165 seconds
You have new mail in /var/spool/mail/root
複製代碼

27.執行一次隱蔽的掃描

複製代碼
[root@server1 ~]# nmap -sS 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:10 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.383 seconds
You have new mail in /var/spool/mail/root
複製代碼

28.使用TCP Syn掃描最經常使用的端口

複製代碼
[root@server1 ~]# nmap -sT 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:12 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.406 seconds
You have new mail in /var/spool/mail/root
複製代碼

29.執行TCP空掃描以騙過防火牆

複製代碼
[root@server1 ~]# nmap -sN 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 19:01 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE         SERVICE
22/tcp   open|filtered ssh
80/tcp   open|filtered http
111/tcp  open|filtered rpcbind
957/tcp  open|filtered unknown
3306/tcp open|filtered mysql
8888/tcp open|filtered sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 1.584 seconds
You have new mail in /var/spool/mail/root
複製代碼

以上就是NMAP的基本使用,我會在第二部分帶來NMAP更多的創意選項。

英文原版:http://www.tecmint.com/nmap-command-examples/

 

nmap是一個網絡探測和安全掃描程序,系統管理者和我的可使用這個軟件掃描大型的網絡,獲取那臺主機正在運行以及提供什麼服務等信息。nmap支持不少掃描技術,例如:UDP、TCP
 connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標誌、ICMP、FIN、ACK掃描、聖誕樹(Xmas
 Tree)、SYN掃描和null掃描。從掃描類型一節能夠獲得細節。nmap還提供了一些高級的特徵,例如:經過TCP/IP協議棧特徵探測操做系統類型,祕密掃描,動態延時和重傳計算,並行掃描,經過並行ping掃描探測關閉的主機,誘餌掃描,避開端口過濾檢測,直接RPC掃描(無須端口影射),碎片掃描,以及靈活的目標和端口設定.
--------------------------------------------------------------------------------
1.名稱

nmap-網絡探測和安全掃描工具
2.語法
nmap [Scan Type(s)][Options]
3.描述
nmap是一個網絡探測和安全掃描程序,系統管理者和我的可使用這個軟件掃描大型的網絡,獲取那臺主機正在運行以及提供什麼服務等信息。nmap支持不少掃描技術,例如:UDP、TCP
 connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標誌、ICMP、FIN、ACK掃描、聖誕樹(Xmas
 Tree)、SYN掃描和null掃描。從掃描類型一節能夠獲得細節。nmap還提供了一些高級的特徵,例如:經過TCP/IP協議棧特徵探測操做系統類型,祕密掃描,動態延時和重傳計算,並行掃描,經過並行ping掃描探測關閉的主機,誘餌掃描,避開端口過濾檢測,直接RPC掃描(無須端口影射),碎片掃描,以及靈活的目標和端口設定。
  爲了提升nmap在non-root狀態下的性能,軟件的設計者付出了很大的努力。很不幸,一些內核界面(例如raw
 socket)須要在root狀態下使用。因此應該儘量在root使用nmap。
nmap運行一般會獲得被掃描主機端口的列表。nmap總會給出well known端口的服務名(若是可能)、端口號、狀態和協議等信息。每一個端口的狀態有:open、filtered、unfiltered。open狀態意味着目標主機可以在這個端口使用accept()系統調用接受鏈接。filtered狀態表示:防火牆、包過濾和其它的網絡安全軟件掩蓋了這個端口,禁止
 nmap探測其是否打開。unfiltered表示:這個端口關閉,而且沒有防火牆/包過濾軟件來隔離nmap的探測企圖。一般狀況下,端口的狀態基本都是unfiltered狀態,只有在大多數被掃描的端口處於filtered狀態下,纔會顯示處於unfiltered狀態的端口。
  根據使用的功能選項,nmap也能夠報告遠程主機的下列特徵:使用的操做系統、TCP序列、運行綁定到每一個端口上的應用程序的用戶名、DNS名、主機地址是不是欺騙地址、以及其它一些東西。
4.功能選項
  功能選項能夠組合使用。一些功能選項只可以在某種掃描模式下使用。nmap會自動識別無效或者不支持的功能選項組合,並向用戶發出警告信息。
  若是你是有經驗的用戶,能夠略過結尾的示例一節。可使用nmap -h快速列出功能選項的列表。
4.1 掃描類型
-sTTCP connect()掃描:這是最基本的TCP掃描方式。connect()是一種系統調用,由操做系統提供,用來打開一個鏈接。若是目標端口有程序監聽,
 connect()就會成功返回,不然這個端口是不可達的。這項技術最大的優勢是,你勿需root權限。任何UNIX用戶均可以自由使用這個系統調用。這種掃描很容易被檢測到,在目標主機的日誌中會記錄大批的鏈接請求以及錯誤信息。-sSTCP同步掃描(TCP SYN):由於沒必要所有打開一個TCP鏈接,因此這項技術一般稱爲半開掃描(half-open)。你能夠發出一個TCP同步包(SYN),而後等待迴應。若是對方返回SYN|ACK(響應)包就表示目標端口正在監聽;若是返回RST數據包,就表示目標端口沒有監聽程序;若是收到一個SYN|ACK包,源主機就會立刻發出一個RST(復位)數據包斷開和目標主機的鏈接,這實際上有咱們的操做系統內核自動完成的。這項技術最大的好處是,不多有系統可以把這記入系統日誌。不過,你須要root權限來定製SYN數據包。-sF -sX -sN  祕密FIN數據包掃描、聖誕樹(Xmas Tree)、空(Null)掃描模式:即便SYN掃描都沒法肯定的狀況下使用。一些防火牆和包過濾軟件可以對發送到被限制端口的SYN數據包進行監視,並且有些程序好比synlogger和courtney可以檢測那些掃描。這些高級的掃描方式能夠逃過這些干擾。這些掃描方式的理論依據是:關閉的端口須要對你的探測包迴應RST包,而打開的端口必需忽略有問題的包(參考RFC
 793第64頁)。FIN掃描使用暴露的FIN數據包來探測,而聖誕樹掃描打開數據包的FIN、URG和PUSH標誌。不幸的是,微軟決定徹底忽略這個標準,另起爐竈。因此這種掃描方式對Windows95/NT無效。不過,從另外的角度講,可使用這種方式來分別兩種不一樣的平臺。若是使用這種掃描方式能夠發現打開的端口,你就能夠肯定目標主機運行的不是Windows系統。若是使用-sF、-sX或者-sN掃描顯示全部的端口都是關閉的,而使用SYN掃描顯示有打開的端口,你能夠肯定目標主機可能運行的是Windwos系統。如今這種方式沒有什麼太大的用處,由於nmap有內嵌的操做系統檢測功能。還有其它幾個系統使用和windows一樣的處理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。在應該拋棄數據包時,以上這些系統都會從打開的端口發出復位數據包。-sPping掃描:有時你只是想知道此時網絡上哪些主機正在運行。經過向你指定的網絡內的每一個IP地址發送ICMP echo請求數據包,nmap就能夠完成這項任務。若是主機正在運行就會做出響應。不幸的是,一些站點例如:microsoft.com阻塞ICMP
 echo請求數據包。然而,在默認的狀況下nmap也可以向80端口發送TCP ack包,若是你收到一個RST包,就表示主機正在運行。nmap使用的第三種技術是:發送一個SYN包,而後等待一個RST或者SYN/ACK包。對於非root用戶,nmap使用connect()方法。  在默認的狀況下(root用戶),nmap並行使用ICMP和ACK技術。  注意,nmap在任何狀況下都會進行ping掃描,只有目標主機處於運行狀態,纔會進行後續的掃描。若是你只是想知道目標主機是否運行,而不想進行其它掃描,纔會用到這個選項。-sUUDP掃描:若是你想知道在某臺主機上提供哪些UDP(用戶數據報協議,RFC768)服務,可使用這種掃描方法。nmap首先向目標主機的每一個端口發出一個0字節的UDP包,若是咱們收到端口不可達的ICMP消息,端口就是關閉的,不然咱們就假設它是打開的。  有些人可能會想UDP掃描是沒有什麼意思的。可是,我常常會想到最近出現的solaris rpcbind缺陷。rpcbind隱藏在一個未公開的UDP端口上,這個端口號大於32770。因此即便端口111(portmap的衆所周知端口號)
被防火牆阻塞有關係。可是你能發現大於30000的哪一個端口上有程序正在監聽嗎?使用UDP掃描就能!cDc
 Back Orifice的後門程序就隱藏在Windows主機的一個可配置的UDP端口中。不考慮一些一般的安全缺陷,一些服務例如:snmp、tftp、NFS
使用UDP協議。不幸的是,UDP掃描有時很是緩慢,由於大多數主機限制ICMP錯誤信息的比例(在RFC1812中的建議)。例如,在Linux內核中
 (在net/ipv4/icmp.h文件中)限制每4秒鐘只能出現80條目標不可達的ICMP消息,若是超過這個比例,就會給1/4秒鐘的處罰。solaris的限制更加嚴格,每秒鐘只容許出現大約2條ICMP不可達消息,這樣,使掃描更加緩慢。nmap會檢測這個限制的比例,減緩發送速度,而不是發送大量的將被目標主機丟棄的無用數據包。  不過Micro$oft忽略了RFC1812的這個建議,不對這個比例作任何的限制。因此咱們能夠可以快速掃描運行Win95/NT的主機上的全部65K個端口。-sAACK掃描:這項高級的掃描方法一般用來穿過防火牆的規則集。一般狀況下,這有助於肯定一個防火牆是功能比較完善的或者是一個簡單的包過濾程序,只是阻塞進入的SYN包。這種掃描是向特定的端口發送ACK包(使用隨機的應答/序列號)。若是返回一個RST包,這個端口就標記爲unfiltered狀態。若是什麼都沒有返回,或者返回一個不可達ICMP消息,這個端口就納入filtered類。注意,nmap一般不輸出unfiltered的端口,因此在輸出中一般不顯示全部被探測的端口。顯然,這種掃描方式不能找出處於打開狀態的端口。-sW  對滑動窗口的掃描:這項高級掃描技術很是相似於ACK掃描,除了它有時能夠檢測處處於打開狀態的端口,由於滑動窗口的大小是不規則的,有些操做系統能夠報告其大小。這些系統至少包括:某些版本的AIX、Amiga、BeOS、BSDI、Cray、Tru64
 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS
 4.x、Ultrix、VAX、VXWORKS。從nmap-hackers郵件3列表的文檔中能夠獲得完整的列表。-sRRPC掃描。這種方法和nmap的其它不一樣的端口掃描方法結合使用。選擇全部處於打開狀態的端口向它們發出SunRPC程序的NULL命令,以肯定它們是不是RPC端口,若是是,就肯定是哪一種軟件及其版本號。所以你可以得到防火牆的一些信息。誘餌掃描如今還不能和RPC掃描結合使用。-bFTP反彈攻擊(bounce attack):FTP協議(RFC 959)有一個頗有意思的特徵,它支持代理FTP鏈接。也就是說,我可以從evil.com鏈接到FTP服務器target.com,而且能夠要求這臺FTP服務器爲本身發送Internet上任何地方的文件!1985年,RFC959完成時,這個特徵就能很好地工做了。然而,在今天的Internet
中,咱們不能讓人們劫持FTP服務器,讓它向Internet上的任意節點發送數據。如同Hobbit在1995年寫的文章中所說的,這個協議"可以用來作投遞虛擬的不可達郵件和新聞,進入各類站點的服務器,填滿硬盤,跳過防火牆,以及其它的騷擾活動,並且很難進行追蹤"。咱們可使用這個特徵,在一臺代理FTP服務器掃描TCP端口。所以,你須要鏈接到防火牆後面的一臺FTP服務器,接着進行端口掃描。若是在這臺FTP服務器中有可讀寫的目錄,你還能夠向目標端口任意發送數據(不過nmap不能爲你作這些)。  傳遞給-b功能選項的參數是你要做爲代理的FTP服務器。語法格式爲:-b username:password@server:port。  除了server之外,其他都是可選的。若是你想知道什麼服務器有這種缺陷,能夠參考我在Phrack 51發表的文章。還能夠在nmap的站點獲得這篇文章的最新版本。
4.2 通用選項
  這些內容不是必需的,可是頗有用。
-P0  在掃描以前,沒必要ping主機。有些網絡的防火牆不容許ICMP echo請求穿過,使用這個選項能夠對這些網絡進行掃描。microsoft.com就是一個例子,所以在掃描這個站點時,你應該一直使用-P0或者-PT
 80選項。-PT  掃描以前,使用TCP ping肯定哪些主機正在運行。nmap不是經過發送ICMP echo請求包而後等待響應來實現這種功能,而是向目標網絡(或者單一主機)發出TCP
 ACK包而後等待迴應。若是主機正在運行就會返回RST包。只有在目標網絡/主機阻塞了ping包,而仍舊容許你對其進行掃描時,這個選項纔有效。對於非
 root用戶,咱們使用connect()系統調用來實現這項功能。使用-PT <端口號>來設定目標端口。默認的端口號是80,由於這個端口一般不會被過濾。-PS  對於root用戶,這個選項讓nmap使用SYN包而不是ACK包來對目標主機進行掃描。若是主機正在運行就返回一個RST包(或者一個SYN/ACK包)。-PI  設置這個選項,讓nmap使用真正的ping(ICMP echo請求)來掃描目標主機是否正在運行。使用這個選項讓nmap發現正在運行的主機的同時,nmap也會對你的直接子網廣播地址進行觀察。直接子網廣播地址一些外部可達的IP地址,把外部的包轉換爲一個內向的IP廣播包,向一個計算機子網發送。這些IP廣播包應該刪除,由於會形成拒絕服務攻擊(例如
 smurf)。-PB  這是默認的ping掃描選項。它使用ACK(-PT)和ICMP(-PI)兩種掃描類型並行掃描。若是防火牆可以過濾其中一種包,使用這種方法,你就可以穿過防火牆。-O  這個選項激活對TCP/IP指紋特徵(fingerprinting)的掃描,得到遠程主機的標誌。換句話說,nmap使用一些技術檢測目標主機操做系統網絡協議棧的特徵。nmap使用這些信息創建遠程主機的指紋特徵,把它和已知的操做系統指紋特徵數據庫作比較,就能夠知道目標主機操做系統的類型。-I  這個選項打開nmap的反向標誌掃描功能。Dave Goldsmith 1996年向bugtap發出的郵件注意到這個協議,ident協議(rfc
 1413)容許使用TCP鏈接給出任何進程擁有者的用戶名,即便這個進程並無初始化鏈接。例如,你能夠鏈接到HTTP端口,接着使用identd肯定這個服務器是否由root用戶運行。這種掃描只能在同目標端口創建徹底的TCP鏈接時(例如:-sT掃描選項)才能成功。使用-I選項是,遠程主機的
 identd精靈進程就會查詢在每一個打開的端口上監聽的進程的擁有者。顯然,若是遠程主機沒有運行identd程序,這種掃描方法無效。-f  這個選項使nmap使用碎片IP數據包發送SYN、FIN、XMAS、NULL。使用碎片數據包增長包過濾、入侵檢測系統的難度,使其沒法知道你的企圖。不過,要慎重使用這個選項!有些程序在處理這些碎片包時會有麻煩,我最喜歡的嗅探器在接受到碎片包的頭36個字節時,就會發生
 segmentation faulted。所以,在nmap中使用了24個字節的碎片數據包。雖然包過濾器和防火牆不能防這種方法,可是有不少網絡出於性能上的考慮,禁止數據包的分片。  注意這個選項不能在全部的平臺上使用。它在Linux、FreeBSD、OpenBSD以及其它一些UNIX系統可以很好工做。-v  冗餘模式。強烈推薦使用這個選項,它會給出掃描過程當中的詳細信息。使用這個選項,你能夠獲得事半功倍的效果。使用-d選項能夠獲得更加詳細的信息。-h  快速參考選項。-oN  把掃描結果重定向到一個可讀的文件logfilename中。-oM  把掃描結果重定向到logfilename文件中,這個文件使用主機能夠解析的語法。你可使用-oM -來代替logfilename,這樣輸出就被重定向到標準輸出stdout。在這種狀況下,正常的輸出將被覆蓋,錯誤信息荏苒能夠輸出到標準錯誤
 stderr。要注意,若是同時使用了-v選項,在屏幕上會打印出其它的信息。-oS thIs l0gz th3 r3suLtS ofYouR ScanZ iN a s|
THe fiL3 U sPecfy 4s anarGuMEnT! U kAn gIv3 the 4rgument -(wItHOUt qUOteZ) to sh00t output iNT0stDouT!@!!
莫名其妙,下面是我猜着翻譯的,相形字?  把掃描結果重定向到一個文件logfilename中,這個文件使用一種"黑客方言"的語法形式(做者開的玩笑?)。一樣,使用-oS
 -就會把結果重定向到標準輸出上。-resume  某個網絡掃描可能因爲control-C或者網絡損失等緣由被中斷,使用這個選項可使掃描接着之前的掃描進行。logfilename是被取消掃描的日誌文件,它必須是可讀形式或者機器能夠解析的形式。並且接着進行的掃描不能增長新的選項,只能使用與被中斷的掃描相同的選項。nmap會接着日誌文件中的最後一次成功掃描進行新的掃描。-iL  從inputfilename文件中讀取掃描的目標。在這個文件中要有一個主機或者網絡的列表,由空格鍵、製表鍵或者回車鍵做爲分割符。若是使用-iL -,nmap就會從標準輸入stdin讀取主機名字。你能夠從指定目標一節獲得更加詳細的信息。-iR  讓nmap本身隨機挑選主機進行掃描。-p <端口範圍>  這個選項讓你選擇要進行掃描的端口號的範圍。例如,-p 23表示:只掃描目標主機的23號端口。-p
 20-30,139,60000-表示:掃描20到30號端口,139號端口以及全部大於60000的端口。在默認狀況下,nmap掃描從1到1024號以及nmap-services文件(若是使用RPM軟件包,通常在/usr/share/nmap/目錄中)中定義的端口列表。-F  快速掃描模式,只掃描在nmap-services文件中列出的端口。顯然比掃描全部65535個端口要快。-D  使用誘餌掃描方法對目標網絡/主機進行掃描。若是nmap使用這種方法對目標網絡進行掃描,那麼從目標主機/網絡的角度來看,掃描就象從其它主機
 (decoy1,等)發出的。從而,即便目標主機的IDS(入侵檢測系統)對端口掃描發出報警,它們也不可能知道哪一個是真正發起掃描的地址,哪一個是無辜的。這種掃描方法能夠有效地對付例如路由跟蹤、response-dropping等積極的防護機制,可以很好地隱藏你的IP地址。  每一個誘餌主機名使用逗號分割開,你也可使用ME選項,它表明你本身的主機,和誘餌主機名混雜在一塊兒。若是你把ME放在第六或者更靠後的位置,一些端口掃描檢測軟件幾乎根本不會顯示你的IP地址。若是你不使用ME選項,nmap會把你的IP地址隨機夾雜在誘餌主機之中。  注意:你用來做爲誘餌的主機應該正在運行或者你只是偶爾向目標發送SYN數據包。很顯然,若是在網絡上只有一臺主機運行,目標將很輕鬆就會肯定是哪臺主機進行的掃描。或許,你還要直接使用誘餌的IP地址而不是其域名,這樣誘餌網絡的域名服務器的日誌上就不會留下關於你的記錄。  還要注意:一些愚蠢的端口掃描檢測軟件會拒絕路由試圖進行端口掃描的主機。於是,你須要讓目標主機和一些誘餌斷開鏈接。若是誘餌是目標主機的網關或者就是其本身時,會給目標主機形成很大問題。因此你須要慎重使用這個選項。  誘餌掃描既能夠在起始的ping掃描也能夠在真正的掃描狀態下使用。它也能夠和-O選項組合使用。  使用太多的誘餌掃描可以減緩你的掃描速度甚至可能形成掃描結果不正確。同時,有些ISP會把你的欺騙包過濾掉。雖然如今大多數的ISP不會對此進行限制。-S <IP_Address>  在一些狀況下,nmap可能沒法肯定你的源地址(nmap會告訴你)。在這種狀況使用這個選項給出你的IP地址。  在欺騙掃描時,也使用這個選項。使用這個選項可讓目標認爲是其它的主機對本身進行掃描。-e  告訴nmap使用哪一個接口發送和接受數據包。nmap可以自動對此接口進行檢測,若是無效就會告訴你。-g  設置掃描的源端口。一些天真的防火牆和包過濾器的規則集容許源端口爲DNS(53)或者FTP-DATA(20)的包經過和實現鏈接。顯然,若是攻擊者把源端口修改成20或者53,就能夠摧毀防火牆的防禦。在使用UDP掃描時,先使用53號端口;使用TCP掃描時,先使用20號端口。注意只有在可以使用這個端口進行掃描時,nmap纔會使用這個端口。例如,若是你沒法進行TCP掃描,nmap會自動改變源端口,即便你使用了-g選項。  對於一些掃描,使用這個選項會形成性能上的微小損失,由於我有時會保存關於特定源端口的一些有用的信息。-r  告訴nmap不要打亂被掃描端口的順序。--randomize_hosts  使nmap在掃描以前,打亂每組掃描中的主機順序,nmap每組能夠掃描最多2048臺主機。這樣,可使掃描更不容易被網絡監視器發現,尤爲和--scan_delay
選項組合使用,更能有效避免被發現。-M  設置進行TCP connect()掃描時,最多使用多少個套接字進行並行的掃描。使用這個選項能夠下降掃描速度,避免遠程目標宕機。
4.3 適時選項
  一般,nmap在運行時,可以很好地根據網絡特色進行調整。掃描時,nmap會盡可能減小被目標檢測到的機會,同時儘量加快掃描速度。然而,nmap默認的適時策略有時候不太適合你的目標。使用下面這些選項,能夠控制nmap的掃描timing:
-T  設置nmap的適時策略。Paranoid:爲了避開IDS的檢測使掃描速度極慢,nmap串行全部的掃描,每隔至少5分鐘發送一個包;
 Sneaky:也差很少,只是數據包的發送間隔是15秒;Polite:不增長太大的網絡負載,避免宕掉目標主機,串行每一個探測,而且使每一個探測有0.4
秒種的間隔;Normal:nmap默認的選項,在不是網絡過載或者主機/端口丟失的狀況下儘量快速地掃描;Aggressive:設置5分鐘的超時限制,使對每臺主機的掃描時間不超過5分鐘,而且使對每次探測迴應的等待時間不超過1.5秒鐘;b>Insane:只適合快速的網絡或者你不在乎丟失某些信息,每臺主機的超時限制是75秒,對每次探測只等待0.3秒鐘。你也但是使用數字來代替這些模式,例如:-T
 0等於-T Paranoid,-T 5等於-T Insane。  這些適時模式不能下面的適時選項組合使用。
--host_timeout  設置掃描一臺主機的時間,以毫秒爲單位。默認的狀況下,沒有超時限制。
--max_rtt_timeout  設置對每次探測的等待時間,以毫秒爲單位。若是超過這個時間限制就重傳或者超時。默認值是大約9000毫秒。
--min_rtt_timeout  當目標主機的響應很快時,nmap就縮短每次探測的超時時間。這樣會提升掃描的速度,可是可能丟失某些響應時間比較長的包。使用這個選項,可讓nmap對每次探測至少等待你指定的時間,以毫秒爲單位。
--initial_rtt_timeout  設置初始探測的超時值。通常這個選項只在使用-P0選項掃描有防火牆保護的主機纔有用。默認值是6000毫秒。
--max_parallelism  設置最大的並行掃描數量。--max_parallelism 1表示同時只掃描一個端口。這個選項對其它的並行掃描也有效,例如ping sweep, RPC scan。
--scan_delay  設置在兩次探測之間,nmap必須等待的時間。這個選項主要用於下降網絡的負載。
4.4 目標設定
  在nmap的全部參數中,只有目標參數是必須給出的。其最簡單的形式是在命令行直接輸入一個主機名或者一個IP地址。若是你但願掃描某個IP地址的一個子網,你能夠在主機名或者IP地址的後面加上/掩碼。掩碼在0(掃描整個網絡)到32(只掃描這個主機)。使用/24掃描C類地址,/16掃描B類地址。
  除此以外,nmap還有更增強大的表示方式讓你更加靈活地指定IP地址。例如,若是要掃描這個B類網絡128.210.*.*,你可使用下面三種方式來指定這些地址:128.210.*.*、128.21-.0-255.0-255或者128.210.0.0/16這三種形式是等價的。
5.例子
  本節將由淺入深地舉例說明如何使用nmap。
nmap -vtarget.example.com掃描主機target.example.com的全部TCP端口。-v打開冗餘模式。
nmap -sS -Otarget.example.com/24發起對target.example.com所在網絡上的全部255個IP地址的祕密SYN掃描。同時還探測每臺主機操做系統的指紋特徵。須要root權限。
nmap -sX -p22,53,110,143,4564 128.210.*.1-127對B類IP地址128.210中255個可能的8位子網的前半部分發起聖誕樹掃描。肯定這些系統是否打開了sshd、DNS、pop3d、imapd和4564端口。注意聖誕樹掃描對Micro$oft的系統無效,由於其協議棧的TCP層有缺陷。
nmap -v --randomize_hosts-p 80 *.*.2.3-5只掃描指定的IP範圍,有時用於對這個Internet進行取樣分析。nmap將尋找Internet上全部後兩個字節是.2.三、.2.四、.2.5的
 IP地址上的WEB服務器。若是你想發現更多有意思的主機,你可使用127-222,由於在這個範圍內有意思的主機密度更大。
host -l company.com | cut-d -f 4 | ./nmap -v -iL -列出company.com網絡的全部主機,讓nmap進行掃描。注意:這項命令在GNU/Linux下使用。若是在其它平臺,你可能要使用其它的命令/選項
 
nmap是一個網絡探測和安全掃描程序,系統管理者和我的可使用這個軟件掃描大型的網絡,獲取那臺主機正在運行以及提供什麼服務等信息。nmap支持不少掃描技術,例如:UDP、TCP
 connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標誌、ICMP、FIN、ACK掃描、聖誕樹(Xmas
 Tree)、SYN掃描和null掃描。從掃描類型一節能夠獲得細節。nmap還提供了一些高級的特徵,例如:經過TCP/IP協議棧特徵探測操做系統類型,祕密掃描,動態延時和重傳計算,並行掃描,經過並行ping掃描探測關閉的主機,誘餌掃描,避開端口過濾檢測,直接RPC掃描(無須端口影射),碎片掃描,以及靈活的目標和端口設定.
--------------------------------------------------------------------------------
1.名稱

nmap-網絡探測和安全掃描工具
2.語法
nmap [Scan Type(s)][Options]
3.描述
nmap是一個網絡探測和安全掃描程序,系統管理者和我的可使用這個軟件掃描大型的網絡,獲取那臺主機正在運行以及提供什麼服務等信息。nmap支持不少掃描技術,例如:UDP、TCP
 connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標誌、ICMP、FIN、ACK掃描、聖誕樹(Xmas
 Tree)、SYN掃描和null掃描。從掃描類型一節能夠獲得細節。nmap還提供了一些高級的特徵,例如:經過TCP/IP協議棧特徵探測操做系統類型,祕密掃描,動態延時和重傳計算,並行掃描,經過並行ping掃描探測關閉的主機,誘餌掃描,避開端口過濾檢測,直接RPC掃描(無須端口影射),碎片掃描,以及靈活的目標和端口設定。
  爲了提升nmap在non-root狀態下的性能,軟件的設計者付出了很大的努力。很不幸,一些內核界面(例如raw
 socket)須要在root狀態下使用。因此應該儘量在root使用nmap。
nmap運行一般會獲得被掃描主機端口的列表。nmap總會給出well known端口的服務名(若是可能)、端口號、狀態和協議等信息。每一個端口的狀態有:open、filtered、unfiltered。open狀態意味着目標主機可以在這個端口使用accept()系統調用接受鏈接。filtered狀態表示:防火牆、包過濾和其它的網絡安全軟件掩蓋了這個端口,禁止
 nmap探測其是否打開。unfiltered表示:這個端口關閉,而且沒有防火牆/包過濾軟件來隔離nmap的探測企圖。一般狀況下,端口的狀態基本都是unfiltered狀態,只有在大多數被掃描的端口處於filtered狀態下,纔會顯示處於unfiltered狀態的端口。
  根據使用的功能選項,nmap也能夠報告遠程主機的下列特徵:使用的操做系統、TCP序列、運行綁定到每一個端口上的應用程序的用戶名、DNS名、主機地址是不是欺騙地址、以及其它一些東西。
4.功能選項
  功能選項能夠組合使用。一些功能選項只可以在某種掃描模式下使用。nmap會自動識別無效或者不支持的功能選項組合,並向用戶發出警告信息。
  若是你是有經驗的用戶,能夠略過結尾的示例一節。可使用nmap -h快速列出功能選項的列表。
4.1 掃描類型
-sTTCP connect()掃描:這是最基本的TCP掃描方式。connect()是一種系統調用,由操做系統提供,用來打開一個鏈接。若是目標端口有程序監聽,
 connect()就會成功返回,不然這個端口是不可達的。這項技術最大的優勢是,你勿需root權限。任何UNIX用戶均可以自由使用這個系統調用。這種掃描很容易被檢測到,在目標主機的日誌中會記錄大批的鏈接請求以及錯誤信息。-sSTCP同步掃描(TCP SYN):由於沒必要所有打開一個TCP鏈接,因此這項技術一般稱爲半開掃描(half-open)。你能夠發出一個TCP同步包(SYN),而後等待迴應。若是對方返回SYN|ACK(響應)包就表示目標端口正在監聽;若是返回RST數據包,就表示目標端口沒有監聽程序;若是收到一個SYN|ACK包,源主機就會立刻發出一個RST(復位)數據包斷開和目標主機的鏈接,這實際上有咱們的操做系統內核自動完成的。這項技術最大的好處是,不多有系統可以把這記入系統日誌。不過,你須要root權限來定製SYN數據包。-sF -sX -sN  祕密FIN數據包掃描、聖誕樹(Xmas Tree)、空(Null)掃描模式:即便SYN掃描都沒法肯定的狀況下使用。一些防火牆和包過濾軟件可以對發送到被限制端口的SYN數據包進行監視,並且有些程序好比synlogger和courtney可以檢測那些掃描。這些高級的掃描方式能夠逃過這些干擾。這些掃描方式的理論依據是:關閉的端口須要對你的探測包迴應RST包,而打開的端口必需忽略有問題的包(參考RFC
 793第64頁)。FIN掃描使用暴露的FIN數據包來探測,而聖誕樹掃描打開數據包的FIN、URG和PUSH標誌。不幸的是,微軟決定徹底忽略這個標準,另起爐竈。因此這種掃描方式對Windows95/NT無效。不過,從另外的角度講,可使用這種方式來分別兩種不一樣的平臺。若是使用這種掃描方式能夠發現打開的端口,你就能夠肯定目標主機運行的不是Windows系統。若是使用-sF、-sX或者-sN掃描顯示全部的端口都是關閉的,而使用SYN掃描顯示有打開的端口,你能夠肯定目標主機可能運行的是Windwos系統。如今這種方式沒有什麼太大的用處,由於nmap有內嵌的操做系統檢測功能。還有其它幾個系統使用和windows一樣的處理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。在應該拋棄數據包時,以上這些系統都會從打開的端口發出復位數據包。-sPping掃描:有時你只是想知道此時網絡上哪些主機正在運行。經過向你指定的網絡內的每一個IP地址發送ICMP echo請求數據包,nmap就能夠完成這項任務。若是主機正在運行就會做出響應。不幸的是,一些站點例如:microsoft.com阻塞ICMP
 echo請求數據包。然而,在默認的狀況下nmap也可以向80端口發送TCP ack包,若是你收到一個RST包,就表示主機正在運行。nmap使用的第三種技術是:發送一個SYN包,而後等待一個RST或者SYN/ACK包。對於非root用戶,nmap使用connect()方法。  在默認的狀況下(root用戶),nmap並行使用ICMP和ACK技術。  注意,nmap在任何狀況下都會進行ping掃描,只有目標主機處於運行狀態,纔會進行後續的掃描。若是你只是想知道目標主機是否運行,而不想進行其它掃描,纔會用到這個選項。-sUUDP掃描:若是你想知道在某臺主機上提供哪些UDP(用戶數據報協議,RFC768)服務,可使用這種掃描方法。nmap首先向目標主機的每一個端口發出一個0字節的UDP包,若是咱們收到端口不可達的ICMP消息,端口就是關閉的,不然咱們就假設它是打開的。  有些人可能會想UDP掃描是沒有什麼意思的。可是,我常常會想到最近出現的solaris rpcbind缺陷。rpcbind隱藏在一個未公開的UDP端口上,這個端口號大於32770。因此即便端口111(portmap的衆所周知端口號)
被防火牆阻塞有關係。可是你能發現大於30000的哪一個端口上有程序正在監聽嗎?使用UDP掃描就能!cDc
 Back Orifice的後門程序就隱藏在Windows主機的一個可配置的UDP端口中。不考慮一些一般的安全缺陷,一些服務例如:snmp、tftp、NFS
使用UDP協議。不幸的是,UDP掃描有時很是緩慢,由於大多數主機限制ICMP錯誤信息的比例(在RFC1812中的建議)。例如,在Linux內核中
 (在net/ipv4/icmp.h文件中)限制每4秒鐘只能出現80條目標不可達的ICMP消息,若是超過這個比例,就會給1/4秒鐘的處罰。solaris的限制更加嚴格,每秒鐘只容許出現大約2條ICMP不可達消息,這樣,使掃描更加緩慢。nmap會檢測這個限制的比例,減緩發送速度,而不是發送大量的將被目標主機丟棄的無用數據包。  不過Micro$oft忽略了RFC1812的這個建議,不對這個比例作任何的限制。因此咱們能夠可以快速掃描運行Win95/NT的主機上的全部65K個端口。-sAACK掃描:這項高級的掃描方法一般用來穿過防火牆的規則集。一般狀況下,這有助於肯定一個防火牆是功能比較完善的或者是一個簡單的包過濾程序,只是阻塞進入的SYN包。這種掃描是向特定的端口發送ACK包(使用隨機的應答/序列號)。若是返回一個RST包,這個端口就標記爲unfiltered狀態。若是什麼都沒有返回,或者返回一個不可達ICMP消息,這個端口就納入filtered類。注意,nmap一般不輸出unfiltered的端口,因此在輸出中一般不顯示全部被探測的端口。顯然,這種掃描方式不能找出處於打開狀態的端口。-sW  對滑動窗口的掃描:這項高級掃描技術很是相似於ACK掃描,除了它有時能夠檢測處處於打開狀態的端口,由於滑動窗口的大小是不規則的,有些操做系統能夠報告其大小。這些系統至少包括:某些版本的AIX、Amiga、BeOS、BSDI、Cray、Tru64
 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS
 4.x、Ultrix、VAX、VXWORKS。從nmap-hackers郵件3列表的文檔中能夠獲得完整的列表。-sRRPC掃描。這種方法和nmap的其它不一樣的端口掃描方法結合使用。選擇全部處於打開狀態的端口向它們發出SunRPC程序的NULL命令,以肯定它們是不是RPC端口,若是是,就肯定是哪一種軟件及其版本號。所以你可以得到防火牆的一些信息。誘餌掃描如今還不能和RPC掃描結合使用。-bFTP反彈攻擊(bounce attack):FTP協議(RFC 959)有一個頗有意思的特徵,它支持代理FTP鏈接。也就是說,我可以從evil.com鏈接到FTP服務器target.com,而且能夠要求這臺FTP服務器爲本身發送Internet上任何地方的文件!1985年,RFC959完成時,這個特徵就能很好地工做了。然而,在今天的Internet
中,咱們不能讓人們劫持FTP服務器,讓它向Internet上的任意節點發送數據。如同Hobbit在1995年寫的文章中所說的,這個協議"可以用來作投遞虛擬的不可達郵件和新聞,進入各類站點的服務器,填滿硬盤,跳過防火牆,以及其它的騷擾活動,並且很難進行追蹤"。咱們可使用這個特徵,在一臺代理FTP服務器掃描TCP端口。所以,你須要鏈接到防火牆後面的一臺FTP服務器,接着進行端口掃描。若是在這臺FTP服務器中有可讀寫的目錄,你還能夠向目標端口任意發送數據(不過nmap不能爲你作這些)。  傳遞給-b功能選項的參數是你要做爲代理的FTP服務器。語法格式爲:-b username:password@server:port。  除了server之外,其他都是可選的。若是你想知道什麼服務器有這種缺陷,能夠參考我在Phrack 51發表的文章。還能夠在nmap的站點獲得這篇文章的最新版本。
4.2 通用選項
  這些內容不是必需的,可是頗有用。
-P0  在掃描以前,沒必要ping主機。有些網絡的防火牆不容許ICMP echo請求穿過,使用這個選項能夠對這些網絡進行掃描。microsoft.com就是一個例子,所以在掃描這個站點時,你應該一直使用-P0或者-PT
 80選項。-PT  掃描以前,使用TCP ping肯定哪些主機正在運行。nmap不是經過發送ICMP echo請求包而後等待響應來實現這種功能,而是向目標網絡(或者單一主機)發出TCP
 ACK包而後等待迴應。若是主機正在運行就會返回RST包。只有在目標網絡/主機阻塞了ping包,而仍舊容許你對其進行掃描時,這個選項纔有效。對於非
 root用戶,咱們使用connect()系統調用來實現這項功能。使用-PT <端口號>來設定目標端口。默認的端口號是80,由於這個端口一般不會被過濾。-PS  對於root用戶,這個選項讓nmap使用SYN包而不是ACK包來對目標主機進行掃描。若是主機正在運行就返回一個RST包(或者一個SYN/ACK包)。-PI  設置這個選項,讓nmap使用真正的ping(ICMP echo請求)來掃描目標主機是否正在運行。使用這個選項讓nmap發現正在運行的主機的同時,nmap也會對你的直接子網廣播地址進行觀察。直接子網廣播地址一些外部可達的IP地址,把外部的包轉換爲一個內向的IP廣播包,向一個計算機子網發送。這些IP廣播包應該刪除,由於會形成拒絕服務攻擊(例如
 smurf)。-PB  這是默認的ping掃描選項。它使用ACK(-PT)和ICMP(-PI)兩種掃描類型並行掃描。若是防火牆可以過濾其中一種包,使用這種方法,你就可以穿過防火牆。-O  這個選項激活對TCP/IP指紋特徵(fingerprinting)的掃描,得到遠程主機的標誌。換句話說,nmap使用一些技術檢測目標主機操做系統網絡協議棧的特徵。nmap使用這些信息創建遠程主機的指紋特徵,把它和已知的操做系統指紋特徵數據庫作比較,就能夠知道目標主機操做系統的類型。-I  這個選項打開nmap的反向標誌掃描功能。Dave Goldsmith 1996年向bugtap發出的郵件注意到這個協議,ident協議(rfc
 1413)容許使用TCP鏈接給出任何進程擁有者的用戶名,即便這個進程並無初始化鏈接。例如,你能夠鏈接到HTTP端口,接着使用identd肯定這個服務器是否由root用戶運行。這種掃描只能在同目標端口創建徹底的TCP鏈接時(例如:-sT掃描選項)才能成功。使用-I選項是,遠程主機的
 identd精靈進程就會查詢在每一個打開的端口上監聽的進程的擁有者。顯然,若是遠程主機沒有運行identd程序,這種掃描方法無效。-f  這個選項使nmap使用碎片IP數據包發送SYN、FIN、XMAS、NULL。使用碎片數據包增長包過濾、入侵檢測系統的難度,使其沒法知道你的企圖。不過,要慎重使用這個選項!有些程序在處理這些碎片包時會有麻煩,我最喜歡的嗅探器在接受到碎片包的頭36個字節時,就會發生
 segmentation faulted。所以,在nmap中使用了24個字節的碎片數據包。雖然包過濾器和防火牆不能防這種方法,可是有不少網絡出於性能上的考慮,禁止數據包的分片。  注意這個選項不能在全部的平臺上使用。它在Linux、FreeBSD、OpenBSD以及其它一些UNIX系統可以很好工做。-v  冗餘模式。強烈推薦使用這個選項,它會給出掃描過程當中的詳細信息。使用這個選項,你能夠獲得事半功倍的效果。使用-d選項能夠獲得更加詳細的信息。-h  快速參考選項。-oN  把掃描結果重定向到一個可讀的文件logfilename中。-oM  把掃描結果重定向到logfilename文件中,這個文件使用主機能夠解析的語法。你可使用-oM -來代替logfilename,這樣輸出就被重定向到標準輸出stdout。在這種狀況下,正常的輸出將被覆蓋,錯誤信息荏苒能夠輸出到標準錯誤
 stderr。要注意,若是同時使用了-v選項,在屏幕上會打印出其它的信息。-oS thIs l0gz th3 r3suLtS ofYouR ScanZ iN a s|
THe fiL3 U sPecfy 4s anarGuMEnT! U kAn gIv3 the 4rgument -(wItHOUt qUOteZ) to sh00t output iNT0stDouT!@!!
莫名其妙,下面是我猜着翻譯的,相形字?  把掃描結果重定向到一個文件logfilename中,這個文件使用一種"黑客方言"的語法形式(做者開的玩笑?)。一樣,使用-oS
 -就會把結果重定向到標準輸出上。-resume  某個網絡掃描可能因爲control-C或者網絡損失等緣由被中斷,使用這個選項可使掃描接着之前的掃描進行。logfilename是被取消掃描的日誌文件,它必須是可讀形式或者機器能夠解析的形式。並且接着進行的掃描不能增長新的選項,只能使用與被中斷的掃描相同的選項。nmap會接着日誌文件中的最後一次成功掃描進行新的掃描。-iL  從inputfilename文件中讀取掃描的目標。在這個文件中要有一個主機或者網絡的列表,由空格鍵、製表鍵或者回車鍵做爲分割符。若是使用-iL -,nmap就會從標準輸入stdin讀取主機名字。你能夠從指定目標一節獲得更加詳細的信息。-iR  讓nmap本身隨機挑選主機進行掃描。-p <端口範圍>  這個選項讓你選擇要進行掃描的端口號的範圍。例如,-p 23表示:只掃描目標主機的23號端口。-p
 20-30,139,60000-表示:掃描20到30號端口,139號端口以及全部大於60000的端口。在默認狀況下,nmap掃描從1到1024號以及nmap-services文件(若是使用RPM軟件包,通常在/usr/share/nmap/目錄中)中定義的端口列表。-F  快速掃描模式,只掃描在nmap-services文件中列出的端口。顯然比掃描全部65535個端口要快。-D  使用誘餌掃描方法對目標網絡/主機進行掃描。若是nmap使用這種方法對目標網絡進行掃描,那麼從目標主機/網絡的角度來看,掃描就象從其它主機
 (decoy1,等)發出的。從而,即便目標主機的IDS(入侵檢測系統)對端口掃描發出報警,它們也不可能知道哪一個是真正發起掃描的地址,哪一個是無辜的。這種掃描方法能夠有效地對付例如路由跟蹤、response-dropping等積極的防護機制,可以很好地隱藏你的IP地址。  每一個誘餌主機名使用逗號分割開,你也可使用ME選項,它表明你本身的主機,和誘餌主機名混雜在一塊兒。若是你把ME放在第六或者更靠後的位置,一些端口掃描檢測軟件幾乎根本不會顯示你的IP地址。若是你不使用ME選項,nmap會把你的IP地址隨機夾雜在誘餌主機之中。  注意:你用來做爲誘餌的主機應該正在運行或者你只是偶爾向目標發送SYN數據包。很顯然,若是在網絡上只有一臺主機運行,目標將很輕鬆就會肯定是哪臺主機進行的掃描。或許,你還要直接使用誘餌的IP地址而不是其域名,這樣誘餌網絡的域名服務器的日誌上就不會留下關於你的記錄。  還要注意:一些愚蠢的端口掃描檢測軟件會拒絕路由試圖進行端口掃描的主機。於是,你須要讓目標主機和一些誘餌斷開鏈接。若是誘餌是目標主機的網關或者就是其本身時,會給目標主機形成很大問題。因此你須要慎重使用這個選項。  誘餌掃描既能夠在起始的ping掃描也能夠在真正的掃描狀態下使用。它也能夠和-O選項組合使用。  使用太多的誘餌掃描可以減緩你的掃描速度甚至可能形成掃描結果不正確。同時,有些ISP會把你的欺騙包過濾掉。雖然如今大多數的ISP不會對此進行限制。-S <IP_Address>  在一些狀況下,nmap可能沒法肯定你的源地址(nmap會告訴你)。在這種狀況使用這個選項給出你的IP地址。  在欺騙掃描時,也使用這個選項。使用這個選項可讓目標認爲是其它的主機對本身進行掃描。-e  告訴nmap使用哪一個接口發送和接受數據包。nmap可以自動對此接口進行檢測,若是無效就會告訴你。-g  設置掃描的源端口。一些天真的防火牆和包過濾器的規則集容許源端口爲DNS(53)或者FTP-DATA(20)的包經過和實現鏈接。顯然,若是攻擊者把源端口修改成20或者53,就能夠摧毀防火牆的防禦。在使用UDP掃描時,先使用53號端口;使用TCP掃描時,先使用20號端口。注意只有在可以使用這個端口進行掃描時,nmap纔會使用這個端口。例如,若是你沒法進行TCP掃描,nmap會自動改變源端口,即便你使用了-g選項。  對於一些掃描,使用這個選項會形成性能上的微小損失,由於我有時會保存關於特定源端口的一些有用的信息。-r  告訴nmap不要打亂被掃描端口的順序。--randomize_hosts  使nmap在掃描以前,打亂每組掃描中的主機順序,nmap每組能夠掃描最多2048臺主機。這樣,可使掃描更不容易被網絡監視器發現,尤爲和--scan_delay
選項組合使用,更能有效避免被發現。-M  設置進行TCP connect()掃描時,最多使用多少個套接字進行並行的掃描。使用這個選項能夠下降掃描速度,避免遠程目標宕機。
4.3 適時選項
  一般,nmap在運行時,可以很好地根據網絡特色進行調整。掃描時,nmap會盡可能減小被目標檢測到的機會,同時儘量加快掃描速度。然而,nmap默認的適時策略有時候不太適合你的目標。使用下面這些選項,能夠控制nmap的掃描timing:
-T  設置nmap的適時策略。Paranoid:爲了避開IDS的檢測使掃描速度極慢,nmap串行全部的掃描,每隔至少5分鐘發送一個包;
 Sneaky:也差很少,只是數據包的發送間隔是15秒;Polite:不增長太大的網絡負載,避免宕掉目標主機,串行每一個探測,而且使每一個探測有0.4
秒種的間隔;Normal:nmap默認的選項,在不是網絡過載或者主機/端口丟失的狀況下儘量快速地掃描;Aggressive:設置5分鐘的超時限制,使對每臺主機的掃描時間不超過5分鐘,而且使對每次探測迴應的等待時間不超過1.5秒鐘;b>Insane:只適合快速的網絡或者你不在乎丟失某些信息,每臺主機的超時限制是75秒,對每次探測只等待0.3秒鐘。你也但是使用數字來代替這些模式,例如:-T
 0等於-T Paranoid,-T 5等於-T Insane。  這些適時模式不能下面的適時選項組合使用。
--host_timeout  設置掃描一臺主機的時間,以毫秒爲單位。默認的狀況下,沒有超時限制。
--max_rtt_timeout  設置對每次探測的等待時間,以毫秒爲單位。若是超過這個時間限制就重傳或者超時。默認值是大約9000毫秒。
--min_rtt_timeout  當目標主機的響應很快時,nmap就縮短每次探測的超時時間。這樣會提升掃描的速度,可是可能丟失某些響應時間比較長的包。使用這個選項,可讓nmap對每次探測至少等待你指定的時間,以毫秒爲單位。
--initial_rtt_timeout  設置初始探測的超時值。通常這個選項只在使用-P0選項掃描有防火牆保護的主機纔有用。默認值是6000毫秒。
--max_parallelism  設置最大的並行掃描數量。--max_parallelism 1表示同時只掃描一個端口。這個選項對其它的並行掃描也有效,例如ping sweep, RPC scan。
--scan_delay  設置在兩次探測之間,nmap必須等待的時間。這個選項主要用於下降網絡的負載。
4.4 目標設定
  在nmap的全部參數中,只有目標參數是必須給出的。其最簡單的形式是在命令行直接輸入一個主機名或者一個IP地址。若是你但願掃描某個IP地址的一個子網,你能夠在主機名或者IP地址的後面加上/掩碼。掩碼在0(掃描整個網絡)到32(只掃描這個主機)。使用/24掃描C類地址,/16掃描B類地址。
  除此以外,nmap還有更增強大的表示方式讓你更加靈活地指定IP地址。例如,若是要掃描這個B類網絡128.210.*.*,你可使用下面三種方式來指定這些地址:128.210.*.*、128.21-.0-255.0-255或者128.210.0.0/16這三種形式是等價的。
5.例子
  本節將由淺入深地舉例說明如何使用nmap。
nmap -vtarget.example.com掃描主機target.example.com的全部TCP端口。-v打開冗餘模式。
nmap -sS -Otarget.example.com/24發起對target.example.com所在網絡上的全部255個IP地址的祕密SYN掃描。同時還探測每臺主機操做系統的指紋特徵。須要root權限。
nmap -sX -p22,53,110,143,4564 128.210.*.1-127對B類IP地址128.210中255個可能的8位子網的前半部分發起聖誕樹掃描。肯定這些系統是否打開了sshd、DNS、pop3d、imapd和4564端口。注意聖誕樹掃描對Micro$oft的系統無效,由於其協議棧的TCP層有缺陷。
nmap -v --randomize_hosts-p 80 *.*.2.3-5只掃描指定的IP範圍,有時用於對這個Internet進行取樣分析。nmap將尋找Internet上全部後兩個字節是.2.三、.2.四、.2.5的
 IP地址上的WEB服務器。若是你想發現更多有意思的主機,你可使用127-222,由於在這個範圍內有意思的主機密度更大。
host -l company.com | cut-d -f 4 | ./nmap -v -iL -列出company.com網絡的全部主機,讓nmap進行掃描。注意:這項命令在GNU/Linux下使用。若是在其它平臺,你可能要使用其它的命令/選項
---------------------
做者:Neil-Yale
來源:CSDN
原文:https://blog.csdn.net/yalecaltech/article/details/70943898
版權聲明:本文爲博主原創文章,轉載請附上博文連接!
 
 

NMap也就是Network Mapper,nmap是在網絡安全滲透測試中常常會用到的強大的掃描器,功能之強大,不言而喻。下面介紹一下它的幾種掃描命令。具體的仍是得靠你們本身學習,由於實在太強大了。

1) 獲取遠程主機的系統類型及開放端口
nmap -sS -P0 -sV -O <target>

這裏的 < target > 能夠是單一 IP, 或主機名,或域名,或子網

-sS TCP SYN 掃描 (又稱半開放,或隱身掃描)
-P0 容許你關閉 ICMP pings.
-sV 打開系統版本檢測
-O 嘗試識別遠程操做系統

其它選項:

-A 同時打開操做系統指紋和版本檢測
-v 詳細輸出掃描狀況.

2) 列出開放了指定端口的主機列表
nmap -sT -p 80 -oG – 192.168.1.* | grep open
3) 在網絡尋找全部在線主機
nmap -sP 192.168.0.*

或者也可用如下命令:

nmap -sP 192.168.0.0/24

指定 subnet

4) Ping 指定範圍內的 IP 地址
nmap -sP 192.168.1.100-254
5) 在某段子網上查找未佔用的 IP
nmap -T4 -sP 192.168.2.0/24 && egrep 「00:00:00:00:00:00″ /proc/net/arp
6) 在局域網上掃找 Conficker 蠕蟲病毒
nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254
7) 掃描網絡上的惡意接入點 (rogue APs).
nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout
2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m
–max-scan-delay 1000 -oA wapscan 10.0.0.0/8
8 ) 使用誘餌掃描方法來掃描主機端口
sudo nmap -sS 192.168.0.10 -D 192.168.0.2
9) 爲一個子網列出反向DNS記錄
nmap -R -sL 209.85.229.99/27 | awk ‘{if($3==」not」)print」(「$2″) no PTR」;else print$3″ is 「$2}’ | grep ‘(‘
10) 顯示網絡上共有多少臺 Linux 及 Win 設備?
sudo nmap -F -O 192.168.0.1-255 | grep 「Running: 」 > /tmp/os; echo 「$(cat /tmp/os | grep Linux \
| wc -l) Linux device(s)」; echo 「$(cat /tmp/os | grep Windows | wc -l) Window(s) device」

相關文章
相關標籤/搜索