Nmap是由Gordon Lyon設計,用來探測計算機網絡上的主機和服務的一種安全掃描器。爲了繪製網絡拓撲圖,Nmap發送特製的數據包到目標主機,而後對返回數據包進行分析。Nmap是一款枚舉和測試網絡的強大工具。咱們俗稱:網絡掃描和嗅探工具。shell
從 https://nmap.org 這裏下載。由於我是ubuntu系統,因此下載了:nmap-6.49BETA4.tar.bz2。編程
安裝
ubuntu
$ tar xvf nmap-6.49BETA4.tar.bz2 $ cd nmap-6.49BETA4 $ ./configure && make $ sudo make install
固然你也能夠直接用安裝包管理器來安裝:安全
$ sudo aptitude -y install nmap
nmap特色服務器
主機探測 :探測網絡上的主機,例如列出響應TCP和ICMP請求,開放特別端口的主機。網絡
端口掃描 :沉測目標主機所開放的端口。編程語言
版本檢測 :探測目標主機的網絡服務,判斷其服務名稱及版本號。工具
系統檢測 :探測目標主機的操做系統及網絡設備的硬件特性。測試
支持探測腳本的編寫 :使用Nmap的腳本引擎(NSE)和 Lua編程語言。spa
掃描
用主機名,域名和IP地址來掃描
用IP地址掃描
Nmap默認發送一個arp的ping數據包,來探測目標主機在1~10000範圍內所開放的端口。示例:
$ nmap 192.168.137.1
用主機名掃描
$ nmap wwos
用域名掃描
$ nmap www.baidu.com
掃描使用"-v"選項
你能夠看到下面的命令使用"-v"選項後給出了遠程機器更詳細的信息:
$ nmap -v www.baidu.com
加上-vv參數得到更加詳細的信息
$ nmap -vv www.baidu.com
掃描多個IP
$ nmap 192.168.1.187 192.168.1.23
掃描整個子網
你可使用*通配符來掃描整個子網或某個範圍的IP地址
$ nmap 192.168.137.*
使用IP地址的最後一個字節掃描多臺服務器
你能夠簡單的指定IP地址的最後一個字節來對多個IP地址進行掃描.例如:
$ nmap 192.168.137.195,196,197
從一個文件中掃描主機列表
若是你有多臺主機須要掃描且全部主機信息都寫在一個文件中,那麼你能夠直接讓nmap讀取該文件來執行掃描。先建立一個有IP地址的文件:
$ cat > ip localhost 192.168.137.195
接下來運行帶「iL」選項的nmap命令來掃描文件中列出的全部IP地址。
$ nmap -iL ip
掃描一個IP地址範圍
你能夠在nmap執行掃描時指定IP範圍
$ nmap 192.168.137.190-200
排除一些遠程主機後再掃描
在執行全網掃描或用通配符掃描時你可使用「-exclude」選項來排除某些你不想掃描的主機:
$ nmap 192.168.3.* -exclude 192.168.3.4
掃描操做系統信息和路由跟蹤
使用nmap,你能夠檢測遠程主機上運行的操做系統和版本。爲了啓用操做系統和版本檢測,腳本掃描和路由跟蹤功能,咱們可使用nmap的「-A」選項。
$ nmap -A www.baidu.com
從上面的輸出你能夠看到,nmap顯示出了遠程主機操做系統的TCP/IP協議指紋,而且更加具體的顯示出遠程主機上的端口和服務。
啓用nmap的操做系統探測功能
使用選項「-O」和「-osscan-guess」也幫助探測操做系統信息。
$ sudo nmap -O www.baidu.com
掃描主機偵測防火牆
下面的命令將掃描遠程主機以探測該主機是否使用了包過濾器或防火牆。使用「-sA」選項:
$ sudo nmap -sA www.baidu.com
掃描主機檢測是否有防火牆保護
掃描主機檢測其是否受到數據包過濾軟件或防火牆的保護。使用-PN選項:
$ nmap -PN 192.168.3.4
找出網絡中的在線主機
使用「-sP」選項,咱們能夠簡單的檢測網絡中有哪些在線主機,該選項會跳過端口掃描其餘一些檢測。
$ nmap -sP 192.168.3.*
執行快速掃描
你可使用「-F」選項執行一次快速掃描,僅掃描列表在nmap-services文件中的端口而避開全部其餘端口。
$ nmap -F www.baidu.com
查看nmap的版本
你可使用「-V」選項來檢測你機子上nmap的版本。
$ nmap -V
順序掃描端口
使用「-r」選項表示不會隨機的選擇端口掃描。
$ nmap -r www.baidu.com
打印主機接口和路由
你可使用nmap的「-iflist」選項檢測主機接口和路由信息。下面的輸出你能夠看到,nmap列舉出了你係統上的接口以及它們各自的路由信息。
$ nmap --iflist
掃描特定端口
使用nmap掃描遠程機器的端口有各類選項,你可使用「-p」選項指定你想要掃描的端口,默認狀況下nmap只掃描TCP端口。
$ nmap -p 80 www.baidu.com
掃描TCP端口
你能夠指定具體的端口類型和端口號來nmap掃描。
$ nmap -p T:8888,80 www.baidu.com
掃描UDP端口
nmap -sU www.baidu.com
掃描多個端口
你可使用選項「-p」來掃描多個端口。
$ nmap -p80,443 192.168.3.4
掃描指定範圍內的端口
你可使用表達式來掃描某個範圍內的端口
$ nmap -p1-160 www.baidu.com
查找主機服務版本號
咱們可使用「-sV」選項找出遠程主機上運行的服務版本。
使用TCP ACK(PA)和TCP Syn(PS)掃描遠程主機
有時候包過濾防火牆會阻斷標準的ICMP ping請求,在這種狀況下,咱們可使用TCP ACK和TCP Syn方法來掃描遠程主機。
$ nmap -PS www.baidu.com
$ nmap -PA www.baidu.com
使用TCP ACK掃描遠程主機上特定的端口
$ nmap -PA -p22,80 www.baidu.com
路由跟蹤
路由追蹤功能,可以幫助你瞭解網絡通行狀況。經過路由追蹤能夠輕鬆的查出從咱們電腦所在地到目標地之間所通過的網絡節點,並能夠看到經過各個節點所花費的時間。
$ sudo nmap --traceroute www.baidu.com
使用TCP Syn掃描最經常使用的端口
$ nmap -sT www.baidu.com