摘要:
NMap是Linux下的網絡掃描和嗅探工具包。可以幫助網管人員深 入探測UDP或者TCP端口,直至主機所使用的操作系統;還可以將所有 探測結果記錄到各種格式的日志中,為系統安全服務。
正文:
NMap,也就是Network Mapper,是Linux下的網絡掃描和嗅探工 具包,其基本功能有三個,一是探測一組主機是否在線;其次是掃描 主機端口,嗅探所提供的網絡服務;還可以推斷主機所用的操作系統 。Nmap可用於掃描僅有兩個節點的LAN,直至500個節點以上的網絡。Nmap 還允許用戶定制掃描技巧。通常,一個簡單的使用ICMP協議的ping操 作可以滿足一般需求;也可以深入探測UDP或者TCP端口,直至主機所 使用的操作系統;還可以將所有探測結果記錄到各種格式的日志中, 供進一步分析操作。
一、如何獲得並安裝Nmap
一些Linux的發行版本提供對nmap的安裝支持。如果沒有,你可 以獲取並安裝其最新版本。這裡我們介紹源碼的tgz安裝,當然也可 以選擇rpm格式或者rpm源碼格式。例如,在Red Hat 6.1下從 http://www.insecure.org/nmap 下載nmap-latest.tgz到/home目錄,執行tar -zxvf nmap-latest.tgz, 將源碼解壓到/home目錄下的nmap-latest子目錄,然後執行configure, make和make install命令,將nmap二進制碼安裝到/usr/local/bin 目錄。這樣就可以執行nmap。
二、Nmap的使用
1、各種掃描模式與參數
首先你需要輸入要探測的主機的IP地址作為參數。假如一個LAN 中有兩個節點:192.168.0.1和192.168.0.2如果在命令行中輸入:nmap 192.168.0.2結果可能是:
Starting nmap V. 2.53 by
[email protected] (www.insecure.org/nmap)
Interesting ports on LOVE (192.168.0.2):
(The 1511 ports scanned but not shown below are in state:closed)
Port State Service
21/tcp open FTP
23/tcp open telnet
25/tcp open smtp
79/tcp open finger
80/tcp open http
98/tcp open linuxconf
111/tcp open sunrpc
113/tcp open auth
513/tcp open login
514/tcp open shell
515/tcp open printer
6000/tcp open X11
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
? 是對目標主機的進行全面TCP掃描後的結果。顯示了監聽端口的 服務情況。這一基本操作不需要任何參數,缺點是運行了日志服務的 主機可以很容易地監測到這類掃描。該命令是參數開關-sT的缺省, 即監聽TCP,結果完全一樣。
如果不是在本地的LAN,而是使用撥號上網主機,可以運行ifconfig 命令,或者從/var/log/messages文件中檢測出你目前的IP地址,假 如是202.96.1.1,那麼你不妨探測一下你的網上鄰居,比如202.96.1.2 。可以輸入:nmap -sT 202.96.1.2以上是一些入門的基本操作。假 如一些命令選項開關,就可以實現較高級的功能。
-sS選項可以進行更加隱蔽的掃描,並防止被目標主機檢測到。 但此方式需要用戶擁有root權限-sF -sX -sN則可以進行一些超常的 掃描。假如目標主機安裝了過濾和日志軟件來檢測同步空閒字符SYN, 那麼-sS的隱蔽作用就失效了,此時可以采用-sF(隱蔽FIN), -sX(Xmas Tree)以及-sN(Null)方式的掃描。這裡需要注意的是由於微軟的堅 持和獨特,對於運行Windows 95/98或者NT的機器FIN,Xmas或者Null 的掃描結果將都是端口關閉,由此也是推斷目標主機可能運行Windows 操作系統的一種方法。以上命令都需要有root權限。
-sU選項是監聽目標主機的UDP而不是默認的TCP端口。盡管在Linux 機器上有時慢一些,但比Window系統快得多。比如,我們輸入上面的 例子:
nmap -sU 192.168.0.2 結果可能是:
Starting nmap V. 2.53 by
[email protected] (www.insecure.org/nmap)
Interesting ports on LOVE (192.168.0.2):
(The 1445 ports scanned but not shown below are in state: closed)
Port State Service
111/udp open sunrpc
517/udp open talk
518/udp open ntalk
Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds
2、操作系統探測
-O選項用來推斷目標主機的操作系統,可以與上述的命令參數聯 合使用或者單獨調用。Nmap利用TCP/IP“指紋”技術來推測目標主機 的操作系統。還使用前面的例子,我們輸入:
nmap -O 192.168.0.2 結果可能是:
Starting nmap V. 2.53 by
[email protected] (www.insecure.org/nmap)
Interesting ports on LOVE (192.168.0.2):
(The 1511 ports scanned but not shown below are in state:closed)
.....
.....
TCP Sequence prediction: Class=random positive increments
Difficulty=1772042 (Good lUCk!)
Remote operating system guess: Linux 2.1.122 - 2.2.14
nmap提供了一個OS數據庫,上例中檢測到了Linux以及內核的版本號。
3、更進一步的應用
除了一次只掃描一個目標主機,你也可以同時掃描一個主機群,比如
下例:
nmap -sT -O 202.96.1.1-50就可以同時掃描並探測IP地址在202.96.1.1 到202.96.1.50之間的每一台主機。當然這需要更多的時間,耗費更多的系統資源和網絡帶寬。輸出結果也可能很長。所以,可以使用下面命令將結果重定向輸送到一個文件中:
nmap -sT -O -oN test.txt 202.96.1.1-50
另外的一些命令參數選項包括:
-I 進行TCP反向用戶認證掃描,可以透露掃描用戶信息
-iR 進行隨機主機掃描
-p 掃描特定的端口范圍
-v 長數據顯示,-v -v 是最長數據顯示
-h 當然是快捷幫助了
綜合了上述參數的例子 比如:
nmap -sS -p 23,80 -oN ftphttpscan.txt 209.212.53.50-100
4、nmap的圖形用戶界面GUI
nmap有一些圖形用戶前端,比如:
NmapFE: GTK界面,網址:http://codebox.net/nmapfe.Html
Kmap: Qt/KDE前端,網址:http://www.edotorg.org/kde/kmap/
KNmap: KDE前端,網址:http://pages.infinit.net/rewind/
附錄:nmap資料:
nmap - 網絡嗅測器(the Network MAPper)
作者: Fyodor
需要運行: flex, bison
主頁: http://www.insecure.org/nmap
當前版本: 2.53
許可: GPL
支持的平台: Linux, FreeBSD, NetBSD, OpenBSD, Solaris, IRIX,
BSDI, SunOS, HP-UX, AIX, Digital UNIX, Cray UNICOS 以及 Windows NT.
NmapFE: GTK界面,網址:http://codebox.net/nmapfe.html
Kmap: Qt/KDE前端,網址:http://www.edotorg.org/kde/kmap/
KNmap: KDE前端,網址:http://pages.infinit.net/rewind/
附錄:nmap資料:
nmap - 網絡嗅測器(the Network MAPper)
作者: Fyodor
需要運行: flex, bison
主頁: http://www.insecure.org/nmap
當前版本: 2.53
許可: GPL
支持的平台: Linux, FreeBSD, NetBSD, OpenBSD, Solaris, IRIX,
BSDI, SunOS, HP-UX, AIX, Digital UNIX, Cray UNICOS 以及 Windows NT.