# nmap -sP 192.168.7.123
# nmap -sP 192.168.7.0/24
# nmap -sP 192.168.7.8-24
# nmap -sP 192.168.7.*
# nmap -sP -PT80 192.168.7.0/24
# nmap -sT 192.168.7.12
# nmap -sU 192.168.7.7
# nmap -sS 192.168.7.7
# nmap -sS -O 192.168.7.12
# nmap -sT -p 80 -I -O www.yourserver.com
# nmap -sS -p 21,23,53,80 -O -v www.yourserver.com
找出網(wǎng)絡(luò)上的主機(jī),測(cè)試哪些端口在監(jiān)聽,這些事情凡是是由掃描來實(shí)現(xiàn)的.掃描網(wǎng)絡(luò)是黑客舉辦入侵的第一步.通過利用掃描器(如Nmap)掃描網(wǎng)絡(luò),尋找存在裂痕的方針主機(jī).一旦發(fā)明白有裂痕的方針,接下來就是對(duì)監(jiān)聽端口的掃描.Nmap通過利用TCP協(xié)議棧指紋精確地判定出被掃主機(jī)的操縱系統(tǒng)范例.
本文全方位地先容Nmap的利用要領(lǐng),可以讓安詳打點(diǎn)員相識(shí)在黑客眼中的站點(diǎn).并通過利用它,安詳打點(diǎn)員可以發(fā)明本身網(wǎng)站的裂痕,并慢慢完善本身的系統(tǒng).
Nmap是在免費(fèi)軟件基金會(huì)的GNU General Public License
(GPL)下宣布的,可從www.insecure.org/nmap站點(diǎn)上免費(fèi)下載.下載名目可以是tgz名目標(biāo)源碼或RPM名目.今朝較不變的版本是2.12.帶有圖形終端,本文會(huì)合接頭Nmap呼吁的利用.
Nmap的語法相當(dāng)簡樸.Nmap的差異選項(xiàng)和-s符號(hào)構(gòu)成了差異的掃描范例,好比:一個(gè)Ping-scan呼吁就是"-sP".在確定了方針主機(jī)和網(wǎng)絡(luò)之后,即可舉辦掃描.假如以root來運(yùn)行Nmap,Nmap的成果會(huì)大大的加強(qiáng),因?yàn)槌扔脩艨梢越ㄔO(shè)便于Nmap操作的定制數(shù)據(jù)包.
在方針機(jī)上,Nmap運(yùn)行機(jī)動(dòng).利用Nmap舉辦單機(jī)掃描或是整個(gè)網(wǎng)絡(luò)的掃描很簡樸,只要將帶有"/mask"的方針地點(diǎn)指定給Nmap即可.地點(diǎn)是"victim/24",
則方針是c類網(wǎng)絡(luò),地點(diǎn)是"victim/16", 則方針是B類網(wǎng)絡(luò).
別的,Nmap答允你利用種種指定的網(wǎng)絡(luò)地點(diǎn),好比 192.168.7.*,是指192.168.7.0/24, 或
192.168.7.1,4,8-12,對(duì)所選子網(wǎng)下的主機(jī)舉辦掃描.
Ping掃描(Ping Sweeping)
入侵者利用Nmap掃描整個(gè)網(wǎng)絡(luò)尋找方針.通過利用"
-sP"呼吁,舉辦ping掃描.缺省環(huán)境下,Nmap給每個(gè)掃描到的主機(jī)發(fā)送一個(gè)ICMP echo和一個(gè)TCP ACK,
主機(jī)對(duì)任何一種的響應(yīng)城市被Nmap獲得.
舉例:掃描192.168.7.0網(wǎng)絡(luò):
# nmap -sP 192.168.7.0/24
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Host (192.168.7.11) appears to be up.
Host (192.168.7.12) appears to be up.
Host (192.168.7.76) appears to be up.
Nmap run completed -- 256 IP addresses (3 hosts up) scanned in 1
second
假如不發(fā)送ICMP
echo請(qǐng)求,但要查抄系統(tǒng)的可用性,這種掃描大概得不到一些站點(diǎn)的響應(yīng).在這種環(huán)境下,一個(gè)TCP"ping"就可用于掃描方針網(wǎng)絡(luò).
一個(gè)TCP"ping"將發(fā)送一個(gè)ACK到方針網(wǎng)絡(luò)上的每個(gè)主機(jī).網(wǎng)絡(luò)上的主機(jī)假如在線,則會(huì)返回一個(gè)TCP
RST響應(yīng).利用帶有ping掃描的TCP
ping選項(xiàng),也就是"PT"選項(xiàng)可以對(duì)網(wǎng)絡(luò)上指定端口舉辦掃描(本文例子中指的缺省端口是80(http)號(hào)端口),它將大概通過方針界線路由器甚至是防火墻.留意,被探測(cè)的主機(jī)上的方針端口無須打開,要害取決于是否在網(wǎng)絡(luò)上.
# nmap -sP -PT80 192.168.7.0/24
TCP probe port is 80
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Host (192.168.7.11) appears to be up.
Host (192.168.7.12) appears to be up.
Host (192.168.7.76) appears to be up.
Nmap run completed -- 256 IP addresses (3 hosts up) scanned in 1
second
當(dāng)潛在入侵者發(fā)明白在方針網(wǎng)絡(luò)上運(yùn)行的主機(jī),下一步是舉辦端口掃描.
Nmap支持差異類此外端口掃描TCP毗連, TCP SYN, Stealth FIN, Xmas
Tree,Null和UDP掃描.
端口掃描(Port Scanning)
一個(gè)進(jìn)攻者利用TCP毗連掃描很容易被發(fā)明,因?yàn)镹map將利用connect()系統(tǒng)挪用打開方針機(jī)上相關(guān)端口的毗連,并完成三次TCP握手.黑客登錄到主機(jī)將顯示開放的端口.一個(gè)tcp毗連掃描利用"-sT"呼吁如下.
# nmap -sT 192.168.7.12
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on (192.168.7.12):
Port State Protocol Service
7 open tcp echo
9 open tcp discard
13 open tcp daytime
19 open tcp chargen
21 open tcp ftp
...
Nmap run completed -- 1 IP address (1 host up) scanned in 3
seconds
隱蔽掃描(Stealth Scanning)
假如一個(gè)進(jìn)攻者不肯在掃描時(shí)使其信息被記錄在方針系統(tǒng)日志上,TCP
SYN掃描可幫你的忙,它很少會(huì)在方針機(jī)上留下記錄,三次握手的進(jìn)程從來都不會(huì)完全實(shí)現(xiàn).通過發(fā)送一個(gè)SYN包(是TCP協(xié)議中的第一個(gè)包)開始一次SYN的掃描.任何開放的端口都將有一個(gè)SYN|ACK響應(yīng).然而,進(jìn)攻者發(fā)送一個(gè)RST替代ACK,毗連中止.三次握手得不到實(shí)現(xiàn),也就很少有站點(diǎn)能記錄這樣的探測(cè).假如是封鎖的端口,對(duì)最初的SYN信號(hào)的響應(yīng)也會(huì)是RST,讓NMAP知道該端口不在監(jiān)聽."-sS"呼吁將發(fā)送一個(gè)SYN掃描探測(cè)主機(jī)或網(wǎng)絡(luò):
# nmap -sS 192.168.7.7
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on saturnlink.nac.net (192.168.7.7):
Port State Protocol Service
21 open tcp ftp
25 open tcp smtp
53 open tcp domain
80 open tcp http
...
Nmap run completed -- 1 IP address (1 host up) scanned in 1
second
固然SYN掃描大概不被留意,但他們?nèi)詴?huì)被一些入侵檢測(cè)系統(tǒng)捕獲.Stealth FIN,Xmas樹和Null
scans可用于躲避包過濾和可檢測(cè)進(jìn)入受限制端口的SYN包.這三個(gè)掃描器對(duì)封鎖的端口返回RST,對(duì)開放的端口將接收包.一個(gè) FIN
"-sF"掃描將發(fā)送一個(gè)FIN包到每個(gè)端口.
然而Xmas掃描"-sX"打開FIN, URG和PUSH的符號(hào)位,一個(gè)Null scans
"-sN"封鎖所有的符號(hào)位.因?yàn)槲④洸恢С諸CP尺度,所以FIN, Xmas Tree和Null
scans在非微軟公司的操縱系統(tǒng)下才有效.
UDP掃描(UDP Scanning)
假如一個(gè)進(jìn)攻者尋找一個(gè)風(fēng)行的UDP裂痕,好比 rpcbind裂痕或cDc Back
Orifice.為了查出哪些端口在監(jiān)聽,則舉辦UDP掃描,即可知哪些端口對(duì)UDP是開放的.Nmap將發(fā)送一個(gè)O字節(jié)的UDP包到每個(gè)端口.假如主機(jī)返回端口不行達(dá),則暗示端口是封鎖的.但這種要領(lǐng)受到時(shí)間的限制,因?yàn)榇蟠蠖嫉腢NIX主機(jī)限制ICMP錯(cuò)誤速率.幸運(yùn)的是,Nmap自己檢測(cè)這種速率并自身減速,也就不會(huì)發(fā)生溢出主機(jī)的環(huán)境.
# nmap -sU 192.168.7.7
WARNING: -sU is now UDP scan -- for TCP FIN scan use -sF
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on saturnlink.nac.net (192.168.7.7):
Port State Protocol Service
53 open udp domain
111 open udp sunrpc
123 open udp ntp
137 open udp netbios-ns
138 open udp netbios-dgm
177 open udp xdmcp
1024 open udp unknown
Nmap run completed -- 1 IP address (1 host up) scanned in 2
seconds
操縱系統(tǒng)識(shí)別(OS Fingerprinting)
凡是一個(gè)入侵者大概對(duì)某個(gè)操縱系統(tǒng)的裂痕很熟悉,能很等閑地進(jìn)入此操縱系統(tǒng)的呆板.一個(gè)常見的選項(xiàng)是TCP/IP上的指紋,帶有"-O"選項(xiàng)抉擇長途操縱系統(tǒng)的范例.這可以和一個(gè)端口掃描團(tuán)結(jié)利用,但不能和ping掃描團(tuán)結(jié)利用.Nmap通過向主機(jī)發(fā)送差異范例的探測(cè)信號(hào),縮小查找的操縱系統(tǒng)系統(tǒng)的范疇.指紋驗(yàn)證TCP包羅利用FIN探測(cè)技能發(fā)明方針機(jī)的響應(yīng)范例.BOGUS的符號(hào)探測(cè),發(fā)明長途主機(jī)對(duì)發(fā)送的帶有SYN包的不明符號(hào)的回響,TCP
初始序列號(hào)(ISN)取樣發(fā)明ISN數(shù)值的樣式,也可以用別的的方法抉擇長途操縱系統(tǒng).有一篇權(quán)威的關(guān)于指紋(fingertprinting)的文章,作者:Fyodor,也是namp的作者,拜見解點(diǎn):http://www.insecure.org/nmap/nmap-fingerprinting-article.html
Nmap's操縱系統(tǒng)的檢測(cè)是很精確也是很有效的,舉例:利用系統(tǒng)Solaris 2.7帶有SYN掃描的指紋驗(yàn)證倉庫.
# nmap -sS -O 192.168.7.12
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on comet (192.168.7.12):
Port State Protocol Service
7 open tcp echo
9 open tcp discard
13 open tcp daytime
19 open tcp chargen
21 open tcp ftp
...
TCP Sequence Prediction: Class=random positive increments
Difficulty=17818 (Worthy challenge)
Remote operating system guess: Solaris 2.6 - 2.7
Nmap run completed -- 1 IP address (1 host up) scanned in 5
seconds
Ident掃描(Ident Scanning)
一個(gè)進(jìn)攻者經(jīng)常尋找一臺(tái)對(duì)付某些歷程存在裂痕的電腦.好比,一個(gè)以root運(yùn)行的WEB處事器.假如方針機(jī)運(yùn)行了identd,一個(gè)進(jìn)攻者利用Nmap通過"-I"選項(xiàng)的TCP毗連,就可以發(fā)明哪個(gè)用戶擁有http守護(hù)歷程.我們將掃描一個(gè)Linux
WEB處事器為例:
# nmap -sT -p 80 -I -O www.yourserver.com
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on www.yourserver.com (xxx.xxx.xxx.xxx):
Port State Protocol Service Owner
80 open tcp http root
TCP Sequence Prediction: Class=random positive increments
Difficulty=1140492 (Good luck!)
Remote operating system guess: Linux 2.1.122 - 2.1.132; 2.2.0-pre1
- 2.2.2
Nmap run completed -- 1 IP address (1 host up) scanned in 1
second
假如你的WEB處事器是錯(cuò)誤的設(shè)置并以root來運(yùn)行,象上例一樣,它將是黎明前的暗中.
Apache運(yùn)行在root下,是不安詳?shù)膶?shí)踐,你可以通過把/etc/indeed.conf中的auth處事注銷來阻止ident請(qǐng)求,并從頭啟動(dòng)ident.別的也可用利用ipchains或你的最常用的防火墻,在網(wǎng)絡(luò)界線上執(zhí)行防火墻法則來終止ident請(qǐng)求,這可以阻止來路不明的人探測(cè)你的網(wǎng)站用戶擁有哪些歷程.
選項(xiàng)(Options)
除了以上這些掃描,Nmap還提供了無數(shù)選項(xiàng).有一個(gè)是"-PT",,我們已經(jīng)先容過了.在方針機(jī)或網(wǎng)絡(luò)上常見的未顛末濾的端口,舉辦TCP
"ping"掃描.
另一個(gè)選項(xiàng)是"-P0".在缺省配置下試圖掃描一個(gè)端口之前,Nmap將用TCP ping" 和 ICMP
echo呼吁ping一個(gè)方針機(jī),假如ICMP
和TCP的探測(cè)掃描得不到響應(yīng),方針主機(jī)或網(wǎng)絡(luò)就不會(huì)被掃描,縱然他們是運(yùn)行著的.而"-P0"選項(xiàng)答允在掃描之前不舉辦ping,即可舉辦掃描.
你應(yīng)該習(xí)慣利用"-v"呼吁,它具體列出所有信息,能和所有的掃描選項(xiàng)一起利用.你能重復(fù)地利用這個(gè)選項(xiàng),得到有關(guān)方針機(jī)的更多信息.
利用"-p "選項(xiàng),可以指定掃描端口.好比 ,進(jìn)攻者想探測(cè)你的web處事器的ftp(port 21),telnet (port
23), dns (port 53), http (port 80),想知道你所利用的操縱系統(tǒng),它將利用SYN掃描.
# nmap -sS -p 21,23,53,80 -O -v www.yourserver.com
小結(jié):
利用什么樣的要領(lǐng)來抵抗一個(gè)黑客利用Nmap,這樣的東西是有的,好比 Scanlogd, Courtney, and
Shadow;,然而利用這樣的東西并不能取代網(wǎng)絡(luò)安詳打點(diǎn)員.因?yàn)閽呙柚皇沁M(jìn)攻的前期籌備,站點(diǎn)利用它只可以舉辦嚴(yán)密的監(jiān)督.
利用Nmap監(jiān)督本身的站點(diǎn),系統(tǒng)和網(wǎng)絡(luò)打點(diǎn)員能發(fā)明潛在入侵者對(duì)你的系統(tǒng)的探測(cè).