首頁  >  文章  >  運維  >  網路掃描工具nmap的使用說明

網路掃描工具nmap的使用說明

零下一度
零下一度原創
2017-06-23 11:15:463165瀏覽

本文目錄:

#1.1 選項說明

1.2 嘗試一次掃描

#1.3 掃描目標說明

1.4 連接埠狀態說明

1.5 時間參數最佳化

1.6 掃描作業系統類型

1.7 快速掃描存活的主機

##1.8 快速掃描連接埠


nmap一般就用來掃描主機是否在線(特別是掃描區域網路內存活的機器)、開放了哪些連接埠。其他的功能用的比較少,做滲透的人可能要了解的多些。


1.1 選項說明

nmap需要自行安裝。

shell> yum -y install nmap

使用nmap -h可以查看選項和用法。選項非常多,這是功能強大的工具帶來的必然結果,但簡單使用並用不到幾個選項。

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

TARGET SPECIFICATION:

  Can pass hostnames, IP addresses, networks, etc.

  Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254

  -iL : Infilename> from list of hosts/networks

  -iR : Choose random targets

##  -iR : Choose random targets

  --exclude : Exclude hosts/networks

  --excludefile : Exclude list from file

HOST DISCOVERY:

#  -sL: List Scan - simply list targets to scan  -sn: Ping Scan - disable port scan

  -sn: Ping Scan - disable port scan

  -Pn: Treat all hosts as online -- skip host#  -Pn: Treat all hosts as online -- skip host discoveryskip

  -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports

  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes  -PO[protocol list]: IP Protocol Ping

  -PR: ARP ping - does not need HW address -> ; IP translation

  -n/-R: Never do DNS resolution/Always resolve [default: sometimes]

  --dns-servers : Specify custom DNS servers  --system-dns: Use OS's DNS resolver  --traceroute: Trace hop path to each host

SCAN TECHNIQUES:  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans

  -sU: UDP Scan

#  -sN/sF/sX: TCP Null, FIN, and Xmas scans  --scanflags : Customize TCP scan flags  -sI : Idle scan

  -sY/sZ: SCTP INIT/COOKIE- ECHO scans

  -sO: IP protocol scan  -b : FTP bounce scan

PORT SPECIFICATION AND SCAN ORDER:  -p : Only scan specified ports

    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9

  -F: Fast mode - Scan fewer ports

##  -F: Fast mode - Scan fewer ports

##  -F: Fast mode - Scan fewer ports

##  -F: Fast mode - Scanthan the default scan

  -r: Scan ports consecutively - don't randomize

  --top-ports : Scan most common ports

##  - -port-ratio : Scan ports more common than ######SERVICE/VERSION DETECTION:######  -sV: Probe open ports to determine service/version info###  -sV: Probe open ports to determine service/version info###  -sV: Probe open ports to determine service/## ###  -sR: Check what service uses opened ports using RPC scan######  --version-intensity : Set from 0 (light) to 9 (try all probes)###### --version-light: Limit to most likely probes (intensity 2)######  --version-all: Try every single probe (intensity 9)###

  --version-trace:顯示詳細的版本掃描活動(用於偵錯)

SCRIPT SCAN:

  -sC:相當於--script=default

  - -script=: ;是逗號分隔的目錄、腳本檔案或腳本類別清單

  --script-args=: 為腳本提供參數# --script-trace:顯示發送和接收的所有資料

  --script-updatedb:更新腳本資料庫。系統偵測

--osscan-limit:將作業系統偵測限制在有希望的目標#osscan-guess:更積極地猜測作業系統

#也和效能:

 需要的選項以秒為單位,或在數值後面附加「ms」(毫秒)、

 「s」(秒)、「m」(分鐘)或「h」(小時)(例如 30m)。

#  -T:設定計時範本(越高越快)

#  --min-hostgroup/max-hostgroup :並行主機掃描群組大小

  --min-parallelism/max-parallelism :探針並行化

  -- min -rtt-timeout/max-rtt-timeout/initial-rtt-timeout

      偵測往返時間。探測重傳次數。 :調整探測之間的延遲  --min-rate :傳送封包不慢於每秒  --max-rate :傳送封包的速度不超過 每秒

防火牆/IDS 規避與欺騙:

### -f; --mtu :片段資料包(可選地帶有給定的 MTU)###### -D :用誘餌掩蓋掃描#### ######## -S :欺騙來源位址############# -e :使用指定介面###### -g/- -source -port : 使用給定的連接埠號碼######  --data-length : 將隨機資料附加到傳送的封包######  --ip-options ; : 發送帶有指定ip 選項的封包######  --ttl : 設定IP 生存時間欄位######  --spoof-mac ; :欺騙您的MAC 位址######  --badsum:傳送帶有偽造TCP/UDP/SCTP 校驗和的封包######OUTPUT:########### ##  -oN/- oX/-oS/-oG :分別以正常、XML、s|  --reason:顯示連接埠處於特定狀態的原因

  --open:僅顯示開放(或可能開放)的連接埠

  --packet-trace:顯示全部傳送和接收的資料包

--iflist:列印主機介面與路由(用於偵錯)

--log-errors:將錯誤/警告記錄到正常格式的輸出檔案

  --append-output:附加到而不是破壞指定的輸出檔案

  --resume :恢復中止的掃描

  --stylesheet :用於將XML 輸出轉換為HTML 的XSL 樣式表

--webxml:參考來自Nmap.Org 的樣式表以獲得更可移植的XML

--no-stylesheet:防止XSL 樣式表與XML 輸出關聯

MISC:

-6: 啟用IPv6 掃描

-A: 啟用作業系統偵測、版本偵測、腳本掃描與追蹤路由

  --datadir < ;dirname>:指定自訂Nmap 資料檔案位置

  --send-eth/--send-ip:使用原始乙太網路封包或IP 封包傳送

  --privileged:假設使用者俱有完全特權

  --unprivileged:假設使用者缺乏原始套接字權限

  -V:列印版本號

-h:列印此說明摘要頁面。 .0.0/8

nmap - v -iR 10000 -Pn -p 80

常用的就上面標紅的幾個。

#1.2 嘗試一次掃描

nmap掃描一般會比較慢,特別是掃描非本機的時候。

#只掃描生長端口,但是不代表真的只開了兩個端口,這樣不加任何參數的nmap將自動決定掃描1000個高危險端口,但哪些是高危險端口由nmap決定。常見的連接埠能掃描出來。 #可以指定"-p [1-65535] "來掃描所有端口,或者使用"-p-"選項也是全面掃描。預設總是會掃描端口,可以使用-sn選項禁止掃描端口,以加速掃描主機是否最多。風格的位址,Nmap將掃描所有和

該參考IP位址
#具有相同cidr安裝的所有IP位址或主機。 .10.255之間的256台主機,192.168 .10.40/24會做同樣的事情。 255.255之間的65536個IP位址。

#CIDR位元標誌很簡潔但有時不夠靈活。位址或廣播位址可以用逗號分隔的數字或範圍清單為IP位址指定其範圍。不必結束的位址僅限最後的8位元:「0-255.0-255.13.37」將在整個網際網路範圍內掃描所有以「13.37」結束的位址。 ,它們不一定是相同的型別。

虽然目标通常在命令行指定,下列选项也可用来控制目标的选择:

  • -iL (从列表中输入)

中读取目标说明。在命令行输入一堆主机名显得很笨拙,然而经常需要这样。例如DHCP服务器可能导出10000个当前租约列表。列表中的项可以是Nmap在命令行上接受的任何格式(IP地址,主机名,CIDR,IPv6,或者八位字节范围)。每一项必须以一个或多个空格、制表符或换行符分开。如果希望Nmap从标准输入读取列表,则使用"-"作为表示/dev/stdin。

  • --exclude (排除主机/网络)

  • --excludefile (排除文件中的列表),这和--exclude的功能一样,只是所排除的目标是用提供的。

1.3.1 范围扫描示例

指定一个IP地址然后加一个CIDR的掩码位,如192.168.100.22/24,当然写成192.168.100.0/24也是一样的,因为nmap需要的是参考IP。如果扫描的是范围地址,可以192.168.100.1-254这样的书写方式。

[root@xuexi ~]# nmap 192.168.100.1/24
 Starting Nmap 6.40 ( http://nmap.org ) at 2017-06-20 13:22 CSTNmap scan report for 192.168.100.1Host is up (0.00053s latency).
Not shown: 992 filtered ports
PORT     STATE SERVICE21/tcp   open  ftp135/tcp  open  msrpc139/tcp  open  netbios-ssn443/tcp  open  https445/tcp  open  microsoft-ds902/tcp  open  iss-realsecure912/tcp  open  apex-mesh5357/tcp open  wsdapi
MAC Address: 00:50:56:C0:00:08 (VMware)
 
Nmap scan report for 192.168.100.2Host is up (0.000018s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE53/tcp open  domain
MAC Address: 00:50:56:E2:16:04 (VMware)

Nmap scan report for 192.168.100.70Host is up (0.00014s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE22/tcp open  sshMAC Address: 00:0C:29:71:81:64 (VMware)

Nmap scan report for 192.168.100.254Host is up (0.000095s latency).
All 1000 scanned ports on 192.168.100.254 are filtered
MAC Address: 00:50:56:ED:A1:04 (VMware)

Nmap scan report for 192.168.100.62Host is up (0.0000030s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE22/tcp open  sshNmap done: 256 IP addresses (5 hosts up) scanned in 7.96 seconds

一般來說,連接埠全部關閉的很可能不是計算機,而可能是路由器、虛擬網路卡等設備。


1.4 連接埠狀態說明

Nmap功能越來越多,但它賴以成名的是它的核心功能-連接埠掃描。

Nmap把連接埠分成六個狀態:open(開放的),closed(關閉的),filtered(被過濾的),unfiltered(未被過濾的),open|filtered(開放或被過濾的),或closed|filtered(關閉或被過濾的)。

這些狀態並非連接埠本身的性質,而是描述Nmap怎麼看待它們。例如,對於相同的目標機器的135/tcp端口,從同網絡掃描顯示它是開放的,而跨網絡做完全相同的掃描則可能顯示它是filtered(被過濾的)。

  • 1.open:(開放的)用程式正在該連接埠接收TCP或UDP封包。它常常是連接埠掃描的主要目標。

  • 2.closed:(關閉的)關閉的連接埠對於Nmap也是可存取的(它接受Nmap的探測封包並作出回應),但沒有應用程式在其上監聽。

  • 3.filtered:(被過濾的)由於目標上設定了包過濾(如防火牆設備),使得探測報文被阻止到達端口,Nmap無法確定該端口是否開放。過濾可能來自專業的防火牆設備,路由器規則或主機上的軟體防火牆。

  • 4.unfiltered:(未被過濾的)未被過濾狀態意味著連接埠可訪問,但Nmap不能確定它是開放還是關閉。用其它類型的掃描如視窗掃描、SYN掃描、FIN掃描來掃描這些未被過濾的連接埠可以幫助確定連接埠是否開放。

  • 5.open|filtered:(開放或被過濾的):當無法確定連接埠是開放還是被過濾的,Nmap就把該連接埠分割成這種狀態。開放的連接埠不響應就是一個例子。沒有回應也可能意味著目標主機上報文過濾器丟棄了偵測封包或它引發的任何回應。因此Nmap無法確定該連接埠是開放的還是被過濾的。

  • 6.closed|filtered:(關閉或被過濾的)該狀態用於Nmap無法確定連接埠是關閉的還是被過濾的。它只可能出現在IPID Idle掃描中。


1.5 時間參數最佳化

改善掃描時間的技術有:忽略非關鍵的偵測、升級最新版本的Nmap(文檔中說nmap版本越高效能越好)等。此外,最佳化時間參數也會帶來實質的最佳化,這些參數如下:

TIMING AND PERFORMANCE:

  -T<0-5>: Set timing template (higher is faster)

  --min-hostgroup/max-hostgroup : Parallel host scan group sizes

  --min-parallelism/max-parallelism : Probe parallelization

  --min-rtt-timeout/max-rtt -timeout/initial-rtt-timeout

  --max-retries : Caps number of port scan probe retransmissions.

##  - -host-timeout

以上是網路掃描工具nmap的使用說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn