時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(1)
nmap是一個網(wǎng)絡(luò)探測和安全掃描程序,系統(tǒng)管理者和個人可以使用這個軟件掃描大型的網(wǎng)絡(luò),獲取被掃描主機(jī)正在運(yùn)行以及提供什么服務(wù)等信息。nmap支持很多掃描技術(shù),例如:UDP、TCP connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標(biāo)志、ICMP、FIN、ACK掃描、圣誕樹(Xmas Tree)、SYN掃描和null掃描。從掃描類型一節(jié)可以得到細(xì)節(jié)。nmap還提供了一些高級的特征,例如:通過TCP/IP協(xié)議棧特征探測操作系統(tǒng)類 型,秘密掃描,動態(tài)延時和重傳計(jì)算,并行掃描,通過并行ping掃描探測關(guān)閉的主機(jī),誘餌掃描,避開端口過濾檢測,直接RPC掃描(無須端口影射),碎片 掃描,以及靈活的目標(biāo)和端口設(shè)定。本文詳細(xì)介紹了NMap的詳細(xì)使用選項(xiàng),并給出了幾個實(shí)用實(shí)例,nmap是入侵和網(wǎng)絡(luò)安全檢測的必備工具。
(一)選擇程序安裝包
首先到官方網(wǎng)站上去下載nmap,下載地址為http://nmap.org/download.html,下載相關(guān)操作系統(tǒng)下的nmap軟件,比如我的是FC10_64的操作系統(tǒng),我就下載軟件包.
(二)安裝Gcc編譯器
當(dāng)然,我們也可以選擇源碼安裝,源碼安裝的前提是首先安裝了Gcc編譯器,我們可以使用 yum -y install Gcc來網(wǎng)絡(luò)安裝Gcc編譯器.
在確保安裝了Gcc的情況下,進(jìn)入源碼存放的文件夾,解壓縮源碼文件
(三)測試運(yùn)行環(huán)境和安裝nmap
解壓完畢后,進(jìn)入解壓縮后的文件夾,使用./confgure 、 make來測試運(yùn)行環(huán)境。
之后以管理員身份登錄安裝nmap,并測試可用性。
nmap的安裝到此結(jié)束,下面將著重介紹一下nmap的使用方法。
(四)Nmap的用法
可以使用 man nmap 來查看一下nmap是使用方法。為了提高nmap在non-root狀態(tài)下的性能,軟件的設(shè)計(jì)者付出了很大的努力。很不幸,一些內(nèi)核界面(例如raw socket)需要在root狀態(tài)下使用。所以應(yīng)該盡可能在root使用nmap。
nmap運(yùn)行通常會得到被掃描主機(jī)端口的列表。nmap總會給出well known(知名)端口的服務(wù)名(如果可能)、端口號、狀態(tài)和協(xié)議等信息。每個端口的狀態(tài)有:open、filtered、unfiltered。open狀態(tài)意味著目標(biāo)主機(jī)能夠在這個端口使用accept()系統(tǒng)調(diào)用接受連接。filtered狀態(tài)表示:防火墻、包過濾和其它的網(wǎng)絡(luò)安全軟件掩蓋了這個端口,禁止 nmap探測其是否打開。unfiltered表示:這個端口關(guān)閉,并且沒有防火墻/包過濾軟件來隔離nmap的探測企圖。通常情況下,端口的狀態(tài)基本都 是unfiltered狀態(tài),只有在大多數(shù)被掃描的端口處于filtered狀態(tài)下,才會顯示處于unfiltered狀態(tài)的端口。根據(jù)使用的功能選項(xiàng),nmap也可以報(bào)告遠(yuǎn)程主機(jī)的下列特征:使用的操作系統(tǒng)、TCP序列、運(yùn)行綁定到每個端口上的應(yīng)用程序的用戶名、DNS名、主機(jī)地址是否是欺騙地址、以及其它一些東西。
1.功能選項(xiàng)
功能選項(xiàng)可以組合使用。一些功能選項(xiàng)只能夠在某種掃描模式下使用。nmap會自動識別無效或者不支持的功能選項(xiàng)組合,并向用戶發(fā)出警告信息。
如果你是有經(jīng)驗(yàn)的用戶,可以略過結(jié)尾的示例一節(jié)??梢允褂胣map -h快速列出功能選項(xiàng)列表。
2.掃描類型
-sT
TCP connect()掃描:這是最基本的TCP掃描方式。connect()是一種系統(tǒng)調(diào)用,由操作系統(tǒng)提供,用來打開一個連接。如果目標(biāo)端口有程序監(jiān)聽, connect()就會成功返回,否則這個端口是不可達(dá)的。這項(xiàng)技術(shù)最大的優(yōu)點(diǎn)是,你勿需root權(quán)限。任何UNIX用戶都可以自由使用這個系統(tǒng)調(diào)用。這 種掃描很容易被檢測到,在目標(biāo)主機(jī)的日志中會記錄大批的連接請求以及錯誤信息。
-sS
TCP同步掃描(TCP SYN):因?yàn)椴槐厝看蜷_一個TCP連接,所以這項(xiàng)技術(shù)通常稱為半開掃描(half-open)。你可以發(fā)出一個TCP同步包(SYN),然后等待回 應(yīng)。如果對方返回SYN|ACK(響應(yīng))包就表示目標(biāo)端口正在監(jiān)聽;如果返回RST數(shù)據(jù)包,就表示目標(biāo)端口沒有監(jiān)聽程序;如果收到一個SYN|ACK包, 源主機(jī)就會馬上發(fā)出一個RST(復(fù)位)數(shù)據(jù)包斷開和目標(biāo)主機(jī)的連接,這實(shí)際上有我們的操作系統(tǒng)內(nèi)核自動完成的。這項(xiàng)技術(shù)最大的好處是,很少有系統(tǒng)能夠把這 記入系統(tǒng)日志。不過,你需要root權(quán)限來定制SYN數(shù)據(jù)包。
-sF -sF -sN
秘密FIN數(shù)據(jù)包掃描、圣誕樹(Xmas Tree)、空(Null)掃描模式:即使SYN掃描都無法確定的情況下使用。一些防火墻和包過濾軟件能夠?qū)Πl(fā)送到被限制端口的SYN數(shù)據(jù)包進(jìn)行監(jiān)視,而 且有些程序比如synlogger和courtney能夠檢測那些掃描。這些高級的掃描方式可以逃過這些干擾。這些掃描方式的理論依據(jù)是:關(guān)閉的端口需要 對你的探測包回應(yīng)RST包,而打開的端口必需忽略有問題的包(參考RFC 793第64頁)。FIN掃描使用暴露的FIN數(shù)據(jù)包來探測,而圣誕樹掃描打開數(shù)據(jù)包的FIN、URG和PUSH標(biāo)志。不幸的是,微軟決定完全忽略這個標(biāo) 準(zhǔn),另起爐灶。所以這種掃描方式對Windows95/NT無效。不過,從另外的角度講,可以使用這種方式來分別兩種不同的平臺。如果使用這種掃描方式可 以發(fā)現(xiàn)打開的端口,你就可以確定目標(biāo)注意運(yùn)行的不是Windows系統(tǒng)。如果使用-sF、-sX或者-sN掃描顯示所有的端口都是關(guān)閉的,而使用SYN掃 描顯示有打開的端口,你可以確定目標(biāo)主機(jī)可能運(yùn)行的是Windwos系統(tǒng)?,F(xiàn)在這種方式?jīng)]有什么太大的用處,因?yàn)閚map有內(nèi)嵌的操作系統(tǒng)檢測功能。還有 其它幾個系統(tǒng)使用和windows同樣的處理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。在應(yīng)該拋棄數(shù)據(jù)包時,以上這些系統(tǒng)都會從打 開的端口發(fā)出復(fù)位數(shù)據(jù)包。
-sP
ping掃描:有時你只是想知道此時網(wǎng)絡(luò)上哪些主機(jī)正在運(yùn)行。通過向你指定的網(wǎng)絡(luò)內(nèi)的每個IP地 址發(fā)送ICMP echo請求數(shù)據(jù)包,nmap就可以完成這項(xiàng)任務(wù)。如果主機(jī)正在運(yùn)行就會作出響應(yīng)。不幸的是,一些站點(diǎn)例如:microsoft.com阻塞ICMP echo請求數(shù)據(jù)包。然而,在默認(rèn)的情況下nmap也能夠向80端口發(fā)送TCP ack包,如果你收到一個RST包,就表示主機(jī)正在運(yùn)行。nmap使用的第三種技術(shù)是:發(fā)送一個SYN包,然后等待一個RST或者SYN/ACK包。對于 非root用戶,nmap使用connect()方法。
在默認(rèn)的情況下(root用戶),nmap并行使用ICMP和ACK技術(shù)。
注意,nmap在任何情況下都會進(jìn)行ping掃描,只有目標(biāo)主機(jī)處于運(yùn)行狀態(tài),才會進(jìn)行后續(xù)的掃描。如果你只是想知道目標(biāo)主機(jī)是否運(yùn)行,而不想進(jìn)行其它掃描,才會用到這個選項(xiàng)。
-sU
UDP掃描:如果你想知道在某臺主機(jī)上提供哪些UDP(用戶數(shù)據(jù)報(bào)協(xié)議,RFC768)服務(wù),可以使用這種掃描方法。nmap首先向目標(biāo)主機(jī)的每個端口發(fā)出一個0字節(jié)的UDP包,如果我們收到端口不可達(dá)的ICMP消息,端口就是關(guān)閉的,否則我們就假設(shè)它是打開的。
有些人可能會想U(xiǎn)DP掃描是沒有什么意思的。但是,我經(jīng)常會想到以前出現(xiàn)的solaris rpcbind缺陷。rpcbind隱藏在一個未公開的UDP端口上,這個端口號大于32770。所以即使端口111(portmap的眾所周知端口號) 被防火墻阻塞有關(guān)系。但是你能發(fā)現(xiàn)大于30000的哪個端口上有程序正在監(jiān)聽嗎?使用UDP掃描就能!cDc Back Orifice的后門程序就隱藏在Windows主機(jī)的一個可配置的UDP端口中。不考慮一些通常的安全缺陷,一些服務(wù)例如:snmp、tftp、NFS 使用UDP協(xié)議。不幸的是,UDP掃描有時非常緩慢,因?yàn)榇蠖鄶?shù)主機(jī)限制ICMP錯誤信息的比例(在RFC1812中的建議)。例如,在Linux內(nèi)核中 (在net/ipv4/icmp.h文件中)限制每4秒鐘只能出現(xiàn)80條目標(biāo)不可達(dá)的ICMP消息,如果超過這個比例,就會給1/4秒鐘的處罰。 solaris的限制更加嚴(yán)格,每秒鐘只允許出現(xiàn)大約2條ICMP不可達(dá)消息,這樣,使掃描更加緩慢。nmap會檢測這個限制的比例,減緩發(fā)送速度,而不 是發(fā)送大量的將被目標(biāo)主機(jī)丟棄的無用數(shù)據(jù)包。
不過Microsoft忽略了RFC1812的這個建議,不對這個比例做任何的限制。所以我們可以能夠快速掃描運(yùn)行Win95/NT的主機(jī)上的所有65K個端口。
-sA
ACK掃描:這項(xiàng)高級的掃描方法通常用來穿過防火墻的規(guī)則集。通常情況下,這有助于確定一個防火墻是功能比較完善的或者是一個簡單的包過濾程序,只是阻塞進(jìn)入的SYN包。
這種掃描是向特定的端口發(fā)送ACK包(使用隨機(jī)的應(yīng)答/序列號)。如果返回一個RST包,這個端口就標(biāo)記為unfiltered狀態(tài)。如果什么都沒有返 回,或者返回一個不可達(dá)ICMP消息,這個端口就歸入filtered類。注意,nmap通常不輸出unfiltered的端口,所以在輸出中通常不顯示 所有被探測的端口。顯然,這種掃描方式不能找出處于打開狀態(tài)的端口。
-sW
對滑動窗口的掃描:這項(xiàng)高級掃描技術(shù)非常類似于ACK 掃描,除了它有時可以檢測到處于打開狀態(tài)的端口,因?yàn)榛瑒哟翱诘拇笮∈遣灰?guī)則的,有些操作系統(tǒng)可以報(bào)告其大小。這些系統(tǒng)至少包括:某些版本的AIX、 Amiga、BeOS、BSDI、Cray、Tru64 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS 4.x、Ultrix、VAX、VXWORKS。從nmap-hackers郵件3列表的文檔中可以得到完整的列表。
-sR
RPC掃描。這種方法和nmap的其它不同的端口掃描方法結(jié)合使用。選擇所有處于打開狀態(tài)的端口向它們發(fā)出SunRPC程序的NULL命令,以確定它們是 否是RPC端口,如果是,就確定是哪種軟件及其版本號。因此你能夠獲得防火墻的一些信息。誘餌掃描現(xiàn)在還不能和RPC掃描結(jié)合使用。
-b
FTP反彈攻擊(bounce attack):FTP協(xié)議(RFC 959)有一個很有意思的特征,它支持代理FTP連接。也就是說,我能夠從evil.com連接到FTP服務(wù)器target.com,并且可以要求這臺 FTP服務(wù)器為自己發(fā)送Internet上任何地方的文件!1985年,RFC959完成時,這個特征就能很好地工作了。然而,在今天的Internet 中,我們不能讓人們劫持FTP服務(wù)器,讓它向Internet上的任意節(jié)點(diǎn)發(fā)送數(shù)據(jù)。如同Hobbit在1995年寫的文章中所說的,這個協(xié)議"能夠用來 做投遞虛擬的不可達(dá)郵件和新聞,進(jìn)入各種站點(diǎn)的服務(wù)器,填滿硬盤,跳過防火墻,
關(guān)鍵詞標(biāo)簽:Linux
相關(guān)閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP
人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內(nèi)存型號 linux tc實(shí)現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令 查看linux服務(wù)器硬盤IO讀寫負(fù)載