# 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ī),測試哪些端口在監(jiān)聽,這些事情凡是是由掃描來實現(xiàn)的.掃描網(wǎng)絡(luò)是黑客舉辦入侵的第一步.通過利用掃描器(如Nmap)掃描網(wǎng)絡(luò),尋找存在裂痕的方針主機(jī).一旦發(fā)明白有裂痕的方針,接下來就是對監(jiān)聽端口的掃描.Nmap通過利用TCP協(xié)議棧指紋精確地判定出被掃主機(jī)的操縱系統(tǒng)范例.
本文全方位地先容Nmap的利用要領(lǐng),可以讓安詳打點員相識在黑客眼中的站點.并通過利用它,安詳打點員可以發(fā)明本身網(wǎng)站的裂痕,并慢慢完善本身的系統(tǒng).
Nmap是在免費軟件基金會的GNU General Public License
(GPL)下宣布的,可從www.insecure.org/nmap站點上免費下載.下載名目可以是tgz名目標(biāo)源碼或RPM名目.今朝較不變的版本是2.12.帶有圖形終端,本文會合接頭Nmap呼吁的利用.
Nmap的語法相當(dāng)簡樸.Nmap的差異選項和-s符號構(gòu)成了差異的掃描范例,好比:一個Ping-scan呼吁就是"-sP".在確定了方針主機(jī)和網(wǎng)絡(luò)之后,即可舉辦掃描.假如以root來運行Nmap,Nmap的成果會大大的加強(qiáng),因為超等用戶可以建設(shè)便于Nmap操作的定制數(shù)據(jù)包.
在方針機(jī)上,Nmap運行機(jī)動.利用Nmap舉辦單機(jī)掃描或是整個網(wǎng)絡(luò)的掃描很簡樸,只要將帶有"/mask"的方針地點指定給Nmap即可.地點是"victim/24",
則方針是c類網(wǎng)絡(luò),地點是"victim/16", 則方針是B類網(wǎng)絡(luò).
別的,Nmap答允你利用種種指定的網(wǎng)絡(luò)地點,好比 192.168.7.*,是指192.168.7.0/24, 或
192.168.7.1,4,8-12,對所選子網(wǎng)下的主機(jī)舉辦掃描.
Ping掃描(Ping Sweeping)
入侵者利用Nmap掃描整個網(wǎng)絡(luò)尋找方針.通過利用"
-sP"呼吁,舉辦ping掃描.缺省環(huán)境下,Nmap給每個掃描到的主機(jī)發(fā)送一個ICMP echo和一個TCP ACK,
主機(jī)對任何一種的響應(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請求,但要查抄系統(tǒng)的可用性,這種掃描大概得不到一些站點的響應(yīng).在這種環(huán)境下,一個TCP"ping"就可用于掃描方針網(wǎng)絡(luò).
一個TCP"ping"將發(fā)送一個ACK到方針網(wǎng)絡(luò)上的每個主機(jī).網(wǎng)絡(luò)上的主機(jī)假如在線,則會返回一個TCP
RST響應(yīng).利用帶有ping掃描的TCP
ping選項,也就是"PT"選項可以對網(wǎng)絡(luò)上指定端口舉辦掃描(本文例子中指的缺省端口是80(http)號端口),它將大概通過方針界線路由器甚至是防火墻.留意,被探測的主機(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ò)上運行的主機(jī),下一步是舉辦端口掃描.
Nmap支持差異類此外端口掃描TCP毗連, TCP SYN, Stealth FIN, Xmas
Tree,Null和UDP掃描.
端口掃描(Port Scanning)
一個進(jìn)攻者利用TCP毗連掃描很容易被發(fā)明,因為Nmap將利用connect()系統(tǒng)挪用打開方針機(jī)上相關(guān)端口的毗連,并完成三次TCP握手.黑客登錄到主機(jī)將顯示開放的端口.一個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)
假如一個進(jìn)攻者不肯在掃描時使其信息被記錄在方針系統(tǒng)日志上,TCP
SYN掃描可幫你的忙,它很少會在方針機(jī)上留下記錄,三次握手的進(jìn)程從來都不會完全實現(xiàn).通過發(fā)送一個SYN包(是TCP協(xié)議中的第一個包)開始一次SYN的掃描.任何開放的端口都將有一個SYN|ACK響應(yīng).然而,進(jìn)攻者發(fā)送一個RST替代ACK,毗連中止.三次握手得不到實現(xiàn),也就很少有站點能記錄這樣的探測.假如是封鎖的端口,對最初的SYN信號的響應(yīng)也會是RST,讓NMAP知道該端口不在監(jiān)聽."-sS"呼吁將發(fā)送一個SYN掃描探測主機(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)詴灰恍┤肭謾z測系統(tǒng)捕獲.Stealth FIN,Xmas樹和Null
scans可用于躲避包過濾和可檢測進(jìn)入受限制端口的SYN包.這三個掃描器對封鎖的端口返回RST,對開放的端口將接收包.一個 FIN
"-sF"掃描將發(fā)送一個FIN包到每個端口.
然而Xmas掃描"-sX"打開FIN, URG和PUSH的符號位,一個Null scans
"-sN"封鎖所有的符號位.因為微軟不支持TCP尺度,所以FIN, Xmas Tree和Null
scans在非微軟公司的操縱系統(tǒng)下才有效.
UDP掃描(UDP Scanning)
假如一個進(jìn)攻者尋找一個風(fēng)行的UDP裂痕,好比 rpcbind裂痕或cDc Back
Orifice.為了查出哪些端口在監(jiān)聽,則舉辦UDP掃描,即可知哪些端口對UDP是開放的.Nmap將發(fā)送一個O字節(jié)的UDP包到每個端口.假如主機(jī)返回端口不行達(dá),則暗示端口是封鎖的.但這種要領(lǐng)受到時間的限制,因為大大都的UNIX主機(jī)限制ICMP錯誤速率.幸運的是,Nmap自己檢測這種速率并自身減速,也就不會發(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)識別(OS Fingerprinting)
凡是一個入侵者大概對某個操縱系統(tǒng)的裂痕很熟悉,能很等閑地進(jìn)入此操縱系統(tǒng)的呆板.一個常見的選項是TCP/IP上的指紋,帶有"-O"選項抉擇長途操縱系統(tǒng)的范例.這可以和一個端口掃描團(tuán)結(jié)利用,但不能和ping掃描團(tuán)結(jié)利用.Nmap通過向主機(jī)發(fā)送差異范例的探測信號,縮小查找的操縱系統(tǒng)系統(tǒng)的范疇.指紋驗證TCP包羅利用FIN探測技能發(fā)明方針機(jī)的響應(yīng)范例.BOGUS的符號探測,發(fā)明長途主機(jī)對發(fā)送的帶有SYN包的不明符號的回響,TCP
初始序列號(ISN)取樣發(fā)明ISN數(shù)值的樣式,也可以用別的的方法抉擇長途操縱系統(tǒng).有一篇權(quán)威的關(guān)于指紋(fingertprinting)的文章,作者:Fyodor,也是namp的作者,拜見解點:http://www.insecure.org/nmap/nmap-fingerprinting-article.html
Nmap's操縱系統(tǒng)的檢測是很精確也是很有效的,舉例:利用系統(tǒng)Solaris 2.7帶有SYN掃描的指紋驗證倉庫.
# 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)
一個進(jìn)攻者經(jīng)常尋找一臺對付某些歷程存在裂痕的電腦.好比,一個以root運行的WEB處事器.假如方針機(jī)運行了identd,一個進(jìn)攻者利用Nmap通過"-I"選項的TCP毗連,就可以發(fā)明哪個用戶擁有http守護(hù)歷程.我們將掃描一個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處事器是錯誤的設(shè)置并以root來運行,象上例一樣,它將是黎明前的暗中.
Apache運行在root下,是不安詳?shù)膶嵺`,你可以通過把/etc/indeed.conf中的auth處事注銷來阻止ident請求,并從頭啟動ident.別的也可用利用ipchains或你的最常用的防火墻,在網(wǎng)絡(luò)界線上執(zhí)行防火墻法則來終止ident請求,這可以阻止來路不明的人探測你的網(wǎng)站用戶擁有哪些歷程.
選項(Options)
除了以上這些掃描,Nmap還提供了無數(shù)選項.有一個是"-PT",,我們已經(jīng)先容過了.在方針機(jī)或網(wǎng)絡(luò)上常見的未顛末濾的端口,舉辦TCP
"ping"掃描.
另一個選項是"-P0".在缺省配置下試圖掃描一個端口之前,Nmap將用TCP ping" 和 ICMP
echo呼吁ping一個方針機(jī),假如ICMP
和TCP的探測掃描得不到響應(yīng),方針主機(jī)或網(wǎng)絡(luò)就不會被掃描,縱然他們是運行著的.而"-P0"選項答允在掃描之前不舉辦ping,即可舉辦掃描.
你應(yīng)該習(xí)慣利用"-v"呼吁,它具體列出所有信息,能和所有的掃描選項一起利用.你能重復(fù)地利用這個選項,得到有關(guān)方針機(jī)的更多信息.
利用"-p "選項,可以指定掃描端口.好比 ,進(jìn)攻者想探測你的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)來抵抗一個黑客利用Nmap,這樣的東西是有的,好比 Scanlogd, Courtney, and
Shadow;,然而利用這樣的東西并不能取代網(wǎng)絡(luò)安詳打點員.因為掃描只是進(jìn)攻的前期籌備,站點利用它只可以舉辦嚴(yán)密的監(jiān)督.
利用Nmap監(jiān)督本身的站點,系統(tǒng)和網(wǎng)絡(luò)打點員能發(fā)明潛在入侵者對你的系統(tǒng)的探測.