[推薦] 網絡偵查工具 NMAP 簡單入門
# 前言
作為一只運維開發,總是避不開要和網絡打交道的。尤其是當自身能力到達瓶頸,開始從事雲計算以求突破。會有搭建多台虛擬機的需要,這時候如果在手工的查詢 IP 實在有些麻煩。當然我還是可以給你們舉更多例子,上篇文我們寫到 無人值守安裝Linux操作系統 這是在大型項目中最經常遇到的技術之一。在文章中我說可以通過生成的 ks.cfg 文件進行批量處理,這樣我們就可以設置相同的密碼,網絡使用靜態或動態。這樣我們就有了很多服務器,或者說你是一名黑客需要爆破服務器密碼。可是,連 TCP/IP 的網絡層,IP地址都拿不到又如何能登錄操作系統呢?
# nmap
Nmap(網絡映射器)是一款用於網絡發現和安全審計的網絡安全工具,它是自由軟件。軟件名字 Nmap 是 Network Mapper 的簡稱。
通常情況下,Nmap 用於:
- 列舉網絡主機清單
- 管理服務升級調度
- 監控主機
- 服務運行狀況
Nmap可以檢測目標主機是否在線、端口開放情況、偵測運行的服務類型及版本信息、偵測操作系統與設備類型等信息。
它是網絡管理員必用的軟件之一,用以評估網絡系統安全。
Nmap 是不少黑客及腳本小孩愛用的工具 。
系統管理員可以利用 Nmap 來探測工作環境中未經批准使用的服務器,黑客通常會利用 Nmap 來搜集目標電腦的網絡設定,從而計划攻擊的方法。
Nmap 通常用在信息搜集階段,用於搜集目標機主機的基本狀態信息。掃描結果可以作為漏洞掃描、漏洞利用和權限提升階段的輸入。例如,業界流行的漏洞掃描工具Nessus與漏洞利用工具 Metasploit 都支持導入 Nmap 的 XML 格式結果,而 Metasploit 框架內也集成了 Nmap 工具(支持 Metasploit 直接掃描)。
Nmap 不僅可以用於掃描單個主機,也可以適用於掃描大規模的計算機網絡(例如,掃描英特網上數萬台計算機,從中找出感興趣的主機和服務)。
# 正文開始
介紹完 NMAP 有哪些用處以及簡介,正好作者博客園沒有 NMAP 文章。本文會結合作者學習工作中的需要寫一些常用操作
零、工具與過程
I、工具:
NMAP 共有 GUI 與 CLI 倆種模式對應倆款工具:Zenmap 與 nmap
II、過程:

因為該工具特別有名,故所有操作系統都是支持的。我們的環境在 CentOS 6.5 的公網下進行掃描測試。
- 安裝程序
- 簡單掃描
- 完整掃描
- 網段掃描(三種表達方法)
- IP 端
- 子網
- 通配符
- 掃描方式
- NOT PING
- TCP SYN
- UDP
- 版本掃描
- 操作系統
- 軟件版本
- 端口掃描
- 多端口
- 端口段
因為不能教大家做壞事,所有還是以系統管理員常用的為主。(重點已加粗)
一、安裝程序
I、系統信息

II、安裝命令
# yum install nmap -y

注意:我的操作系統該工具包是由atomic倉庫提供,如果您不可以安裝。請完成以下操作。
# curl -o /etc/yum.repos.d/atomic.repo https://raw.githubusercontent.com/erlinux/LinuxDotFiles/master/yum.repos.d/atomic.repo
# yum clean all
# yum makecache
# yum install nmap -y
二、簡單掃描
# nmap 1.2.3.4
# nmap localhost
# nmap 192.168.1.1
您大致可得到如下結果:

其實您會發現缺少很多信息,比如:版本號、系統信息等。
三、完整掃描
# namp -v -A example.com
參數:
-v:顯示版本信息
-A:近可能可能完整信息
輸出結果:
因過輸出過於冗長,並非本次重點。
結果放置GITHUB,有興趣可點擊瀏覽:https://gist.github.com/2cdae9102f7f4be81a5ed3c2ed70019c
四:網段掃描
I、快速列表
# nmap -sL 1.1.1.0/24


參數:
-sL:簡單的列表掃描
II、IP 段
# nmap -sL 1.2.4.2-12

III、子網
上述已經有展示了,不多演示。
V、通配符
經過測試在 Nmap6.47 中沒有成功。但這個方法是我當時參加信息安全比賽時在訓練機上展示的。
大家可以留個心眼,歡迎交流。
五、掃描方式
掃描方式有很多種,但這需要對TCP/IP非常的了解。作者懂得也不是很多,不在此誤導大家。介紹常用的三種~
I、TCP SYN
該掃描在三次握手為完成的情況下進行探測,好處是不會被對方日志系統記錄(因為為完成三次握手)
# nmap -sS example.com

通過TCP SYN的方式,我們已經了准確的探測(代價也很大)。端口將在后續探討~
II、UDP
# nmap -sU example.com

UDP的方式較快。有些時候掃描不出結果可嘗試該權限,或許有所收獲。
III、NOT PING
# nmap -nP example.com
與之相反的是nmap -sP告訴 Nmap 僅僅進行 ping 掃描。

嗯,大家可以看到。內網使用-sLARP方式、外網使用-sP、特殊情況特殊對待。希望了解更多信息最好帶-sSTCP隱蔽掃描與-v參數得到版本信息
六、版本掃描
I、探測系統
nmap -O example.com
II、探測網絡
nmap -vv -sS example.com
七、端口探測
I、探測協議
# nmap -sO example.com

II、端口探測
1、指定端口
# nmap -p 80,25,443,110 127.0.0.1

nmap已經非常成熟了,很多方式都是支持的。比如端口、IP之間逗號和空格就是可以識別的。
2、端口范圍
# nmap -p 1024-2048 127.0.0.1
III、解決問題
還記得文章開始提出的問題嗎?我們如何對正在開機的服務器探測呢?
# nmap -sP <server_ip_range> -p 22 --open
Perfect~ 寫了一個下午...
# 整理歸納
本來想寫一篇美文的,寫完了發現有些偶聯。
一方面是NMAP太過於龐大,我的邏輯上沒有歸納的很好。另外一方面,其實NMAP本身定位就是網絡發現和服務探測,所以模塊間有必然的聯系。
# 彩蛋(完整的一次掃描)
TCP/IP:
數據鏈路層:ARP,RARP
網絡層: IP,ICMP,IGMP
傳輸層:TCP ,UDP,UGP
應用層:Telnet,FTP,SMTP,SNMP.
OSI:
物理層:EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3, 802.5, FDDI, NRZI, NRZ, B8ZS
數據鏈路層:Frame Relay, HDLC, PPP, IEEE 802.3/802.2, FDDI, ATM, IEEE 802.5/802.2
網絡層:IP,IPX,AppleTalk DDP
傳輸層:TCP,UDP,SPX
會話層:RPC,SQL,NFS,NetBIOS,names,AppleTalk,ASP,DECnet,SCP
表示層:TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML
應用層:FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP
物理層
電源插了么
數據鏈路層
網卡工作嗎
網絡層
arping / nmap -PR / -sP
傳輸層
nmap -sO / -sS / -sU / -vv
會話層
nbtstat -> NetBIOS
nslookup -> Names
表示層
hydra -> encryption/decode
HTML
應用層
tcping / nmap -O / nmap --script=all
這么展示出來,其實nmap主要還是工作在網絡層到應用層。很強大~
