概念
NMap,也就是Network Mapper,是Linux下的網絡掃描和嗅探工具包。
其基本功能有三個:
(1)是掃描主機端口,嗅探所提供的網絡服務
(2)是探測一組主機是否線上
(3)還可以推斷主機所用的作業系統,到達主機經過的路由,系統已開放端口的軟體版本
nmap端口狀态解析
open : 應用程式在該端口接收 TCP 連接配接或者 UDP 封包。
closed :關閉的端口對于nmap也是可通路的, 它接收nmap探測封包并作出響應。但沒有應用程式在其上監聽。
filtered :由于包過濾阻止探測封包到達端口,nmap無法确定該端口是否開放。過濾可能來自專業的防火牆裝置,路由規則 或者主機上的軟體防火牆。
unfiltered :未被過濾狀态意味着端口可通路,但是nmap無法确定它是開放還是關閉。 隻有用于映射防火牆規則集的 ACK 掃描才會把端口分類到這個狀态。
open | filtered :無法确定端口是開放還是被過濾, 開放的端口不響應就是一個例子。沒有響應也可能意味着封包過濾器丢棄了探測封包或者它引發的任何反應。UDP,IP協定,FIN, Null 等掃描會引起。
closed|filtered:(關閉或者被過濾的):無法确定端口是關閉的還是被過濾的
nmap基本參數及使用
-
TCP connect()掃描,這種方式會在目标主機的日志中記錄大批的連結請求以及錯誤資訊。-sT
-
ping掃描,加上這個參數會使用ping掃描,隻有主機存活,nmap才會繼續掃描,一般最好不加,因為有的主機會禁止ping,卻實際存在。-sP
-
半開掃描,一般不會記入日志,不過需要root權限。-sS
-
udp掃描,但是一般不可靠。-sU
-
用來穿過防火牆的規則集,速度慢。-sA
-
端口服務及版本-sV
-
包含了-sV,-O,全面系統檢測,啟動腳本檢測,掃描等。-A
-
掃描之前不使用ping,适用于防火牆禁止ping,比較有用。-P0
-
顯示掃描程序-v
-
探測目标系統的漏洞,容易誤報-O
-
将報告寫入檔案,格式分别為正常(自定義.txt),XML,grepable.-oN/-oX/-oG
-
掃描主機清單-iL
-
–script=default 預設的腳本掃描,主要是搜集各種應用服務的資訊-sC

namp掃描應用
在網絡上尋找所有線上主機
nmap -sP 18.16.202.0/24
or
nmap -sP 18.16.202.*
在網絡上尋找一定範圍内的主機
nmap -sP 18.16.202.100-255
掃描tcp端口:
指定端口範圍使用-p參數,如果不指定要掃描的端口,Nmap預設掃描從1到1024再加上nmap-services列出的端口
nmap-services是一個包含大約2200個著名的服務的資料庫,Nmap通過查詢該資料庫可以報告那些端口可能對應于什麼伺服器,但不一定正确。
是以正确掃描一個機器開放端口的方法是上面指令。-p1-65535
注意,nmap有自己的庫,存放一些已知的服務和對應端口号,假如有的服務不在nmap-services,可能nmap就不會去掃描,這就是明明一些端口已經是處于監聽狀态,nmap預設沒掃描出來的原因,需要加入-p參數讓其掃描所有端口。
雖然直接使用nmap也可以掃描出開放的端口,但是使用-p1-65535 能顯示出最多的端口
差別在于不加-p 時,顯示的都是已知協定的端口,對于未知協定的端口沒顯示
$ nmap 18.16.202.169 -p 1-65535
Starting Nmap 7.70 ( https://nmap.org ) at 2019-01-12 14:15 ?D1�������?����??
Nmap scan report for 18.16.202.169
Host is up (0.00070s latency).
Not shown: 65510 closed ports
PORT STATE SERVICE
135/tcp open msrpc
137/tcp filtered netbios-ns
139/tcp open netbios-ssn
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
1080/tcp open socks
1536/tcp open ampr-inter
1537/tcp open sdsc-lm
1538/tcp open 3ds-lm
1539/tcp open intellistor-lm
1545/tcp open vistium-share
1551/tcp open hecmtl-db
1552/tcp open pciarray
3306/tcp open mysql
3389/tcp open ms-wbt-server
4537/tcp open wssauthsvc
5040/tcp open unknown
5357/tcp open wsdapi
8118/tcp open privoxy
14264/tcp open unknown
14280/tcp open unknown
18386/tcp open unknown
34642/tcp open unknown
49152/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 17.87 seconds
不指定:
Starting Nmap 7.70 ( https://nmap.org ) at 2019-01-12 14:15 ?D1�������?����??
Nmap scan report for 18.16.202.169
Host is up (0.00051s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
1080/tcp open socks
3306/tcp open mysql
3389/tcp open ms-wbt-server
5357/tcp open wsdapi
49152/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 6.98 seconds
參考:
給Linux系統/網絡管理者的nmap的29個實用例子
Nmap掃描原理與用法
滲透工具用法(三):Nmap 的用法
nmap指令-----基礎用法
Nmap基本使用教程
不老的神器:安全掃描器Nmap滲透使用指南
nmap常用指令
nmap常用指令集合