[Ping掃描(Ping Sweeping)]
[端口掃描(Port Scanning)]
[隱蔽掃描(Stealth Scanning)]
[UDP掃描(UDP Scanning)]
[操作系統(tǒng)識(shí)別(OS Fingerprinting)]
[Ident掃描(Ident Scanning)]
[選項(xiàng)(Options)]
[小結(jié)]
簡(jiǎn)介:
最近媒體報(bào)道了許多關(guān)于入侵網(wǎng)絡(luò)的新聞,使人們總以為入侵者只需通過(guò)簡(jiǎn)單工具就可獲得電腦的訪問(wèn)權(quán)限。但實(shí)際上,事情并不是想象中的這么簡(jiǎn)單。黑客想要入侵一臺(tái)電腦,首先要有一套完整的計(jì)劃。在入侵系統(tǒng)之前,黑客必須先找到一臺(tái)目標(biāo)主機(jī),并查出哪些端口在監(jiān)聽(tīng)之后才能進(jìn)行入侵。
找出網(wǎng)絡(luò)上的主機(jī),測(cè)試哪些端口在監(jiān)聽(tīng),這些工作通常是由掃描來(lái)實(shí)現(xiàn)的。掃描網(wǎng)絡(luò)是黑客進(jìn)行入侵的第一步。通過(guò)使用掃描器(如Nmap)掃描網(wǎng)絡(luò),尋找存在漏洞的目標(biāo)主機(jī)。一旦發(fā)現(xiàn)了有漏洞的目標(biāo),接下來(lái)就是對(duì)監(jiān)聽(tīng)端口的掃描。Nmap通過(guò)使用TCP協(xié)議棧指紋準(zhǔn)確地判斷出被掃主機(jī)的操作系統(tǒng)類型。
本文全方位地介紹Nmap的使用方法,可以讓安全管理員了解在黑客眼中的站點(diǎn)。并通過(guò)使用它,安全管理員可以發(fā)現(xiàn)自己網(wǎng)站的漏洞,并逐步完善自己的系統(tǒng)。
Nmap是在免費(fèi)軟件基金會(huì)的GNU General Public License (GPL)下發(fā)布的,可從www.insecure.org/nmap站點(diǎn)上免費(fèi)下載。下載格式可以是tgz格式的源碼或RPM格式。目前較穩(wěn)定的版本是2.12。帶有圖形終端,本文集中討論Nmap命令的使用。 Nmap的語(yǔ)法相當(dāng)簡(jiǎn)單。Nmap的不同選項(xiàng)和-s標(biāo)志組成了不同的掃描類型,比如:一個(gè)Ping-scan命令就是"-sP"。在確定了目標(biāo)主機(jī)和網(wǎng)絡(luò)之后,即可進(jìn)行掃描。如果以root來(lái)運(yùn)行Nmap,Nmap的功能會(huì)大大的增強(qiáng),因?yàn)槌?jí)用戶可以創(chuàng)建便于Nmap利用的定制數(shù)據(jù)包。
在目標(biāo)機(jī)上,Nmap運(yùn)行靈活。使用Nmap進(jìn)行單機(jī)掃描或是整個(gè)網(wǎng)絡(luò)的掃描很簡(jiǎn)單,只要將帶有"/mask"的目標(biāo)地址指定給Nmap即可。地址是"victim/24", 則目標(biāo)是c類網(wǎng)絡(luò),地址是"victim/16", 則目標(biāo)是B類網(wǎng)絡(luò)。
另外,Nmap允許你使用各類指定的網(wǎng)絡(luò)地址,比如 192.168.7.*,是指192.168.7.0/24, 或 192.168.7.1,4,8-12,對(duì)所選子網(wǎng)下的主機(jī)進(jìn)行掃描。
Ping掃描(Ping Sweeping)
入侵者使用Nmap掃描整個(gè)網(wǎng)絡(luò)尋找目標(biāo)。通過(guò)使用" -sP"命令,進(jìn)行ping掃描。缺省情況下,Nmap給每個(gè)掃描到的主機(jī)發(fā)送一個(gè)ICMP echo和一個(gè)TCP ACK, 主機(jī)對(duì)任何一種的響應(yīng)都會(huì)被Nmap得到。
舉例:掃描192.168.7.0網(wǎng)絡(luò):
# nmap -sP 192.168.7.0/24
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, 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)。在這種情況下,一個(gè)TCP"ping"就可用于掃描目標(biāo)網(wǎng)絡(luò)。
一個(gè)TCP"ping"將發(fā)送一個(gè)ACK到目標(biāo)網(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ò)上指定端口進(jìn)行掃描(本文例子中指的缺省端口是80(http)號(hào)端口),它將可能通過(guò)目標(biāo)邊界路由器甚至是防火墻。注意,被探測(cè)的主機(jī)上的目標(biāo)端口無(wú)須打開(kāi),關(guān)鍵取決于是否在網(wǎng)絡(luò)上。
# nmap -sP -PT80 192.168.7.0/24
TCP probe port is 80
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, 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ā)現(xiàn)了在目標(biāo)網(wǎng)絡(luò)上運(yùn)行的主機(jī),下一步是進(jìn)行端口掃描。
Nmap支持不同類別的端口掃描TCP連接, TCP SYN, Stealth FIN, Xmas Tree,Null和UDP掃描。
端口掃描(Port Scanning)
一個(gè)攻擊者使用TCP連接掃描很容易被發(fā)現(xiàn),因?yàn)镹map將使用connect()系統(tǒng)調(diào)用打開(kāi)目標(biāo)機(jī)上相關(guān)端口的連接,并完成三次TCP握手。黑客登錄到主機(jī)將顯示開(kāi)放的端口。一個(gè)tcp連接掃描使用"-sT"命令如下。
# nmap -sT 192.168.7.12
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, 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è)攻擊者不愿在掃描時(shí)使其信息被記錄在目標(biāo)系統(tǒng)日志上,TCP SYN掃描可幫你的忙,它很少會(huì)在目標(biāo)機(jī)上留下記錄,三次握手的過(guò)程從來(lái)都不會(huì)完全實(shí)現(xiàn)。通過(guò)發(fā)送一個(gè)SYN包(是TCP協(xié)議中的第一個(gè)包)開(kāi)始一次SYN的掃描。任何開(kāi)放的端口都將有一個(gè)SYN|ACK響應(yīng)。然而,攻擊者發(fā)送一個(gè)RST替代ACK,連接中止。三次握手得不到實(shí)現(xiàn),也就很少有站點(diǎn)能記錄這樣的探測(cè)。如果是關(guān)閉的端口,對(duì)最初的SYN信號(hào)的響應(yīng)也會(huì)是RST,讓NMAP知道該端口不在監(jiān)聽(tīng)。"-sS"命令將發(fā)送一個(gè)SYN掃描探測(cè)主機(jī)或網(wǎng)絡(luò):
# nmap -sS 192.168.7.7
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, 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樹(shù)和Null scans可用于躲避包過(guò)濾和可檢測(cè)進(jìn)入受限制端口的SYN包。這三個(gè)掃描器對(duì)關(guān)閉的端口返回RST,對(duì)開(kāi)放的端口將吸收包。一個(gè) FIN "-sF"掃描將發(fā)送一個(gè)FIN包到每個(gè)端口。
然而Xmas掃描"-sX"打開(kāi)FIN, URG和PUSH的標(biāo)志位,一個(gè)Null scans "-sN"關(guān)閉所有的標(biāo)志位。因?yàn)槲④洸恢С諸CP標(biāo)準(zhǔn),所以FIN, Xmas Tree和Null scans在非微軟公司的操作系統(tǒng)下才有效。
UDP掃描(UDP Scanning)
如果一個(gè)攻擊者尋找一個(gè)流行的UDP漏洞,比如 rpcbind漏洞或cDc Back orifice。為了查出哪些端口在監(jiān)聽(tīng),則進(jìn)行UDP掃描,即可知哪些端口對(duì)UDP是開(kāi)放的。Nmap將發(fā)送一個(gè)O字節(jié)的UDP包到每個(gè)端口。如果主機(jī)返回端口不可達(dá),則表示端口是關(guān)閉的。但這種方法受到時(shí)間的限制,因?yàn)榇蠖鄶?shù)的UNIX主機(jī)限制ICMP錯(cuò)誤速率。幸運(yùn)的是,Nmap本身檢測(cè)這種速率并自身減速,也就不會(huì)產(chǎn)生溢出主機(jī)的情況。
# 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 (fyodor@dhp.com, 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)的機(jī)器。一個(gè)常見(jiàn)的選項(xiàng)是TCP/IP上的指紋,帶有"-O"選項(xiàng)決定遠(yuǎn)程操作系統(tǒng)的類型。這可以和一個(gè)端口掃描結(jié)合使用,但不能和ping掃描結(jié)合使用。Nmap通過(guò)向主機(jī)發(fā)送不同類型的探測(cè)信號(hào),縮小查找的操作系統(tǒng)系統(tǒng)的范圍。指紋驗(yàn)證TCP包括使用FIN探測(cè)技術(shù)發(fā)現(xiàn)目標(biāo)機(jī)的響應(yīng)類型。BOGUS的標(biāo)志探測(cè),發(fā)現(xiàn)遠(yuǎn)程主機(jī)對(duì)發(fā)送的帶有SYN包的不明標(biāo)志的反應(yīng),TCP 初始序列號(hào)(ISN)取樣發(fā)現(xiàn)ISN數(shù)值的樣式,也可以用另外的方式?jīng)Q定遠(yuǎn)程操作系統(tǒng)。有一篇權(quán)威的關(guān)于指紋(fingertprinting)的文章,作者:Fyodor,也是namp的作者,參見(jiàn)地址:http://www.insecure.org/nmap/nmap-fingerprinting-article.html
Nmap's操作系統(tǒng)的檢測(cè)是很準(zhǔn)確也是很有效的,舉例:使用系統(tǒng)Solaris 2.7帶有SYN掃描的指紋驗(yàn)證堆棧。
# nmap -sS -O 192.168.7.12
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, 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è)攻擊者常常尋找一臺(tái)對(duì)于某些進(jìn)程存在漏洞的電腦。比如,一個(gè)以root運(yùn)行的WEB服務(wù)器。如果目標(biāo)機(jī)運(yùn)行了identd,一個(gè)攻擊者使用Nmap通過(guò)"-I"選項(xiàng)的TCP連接,就可以發(fā)現(xiàn)哪個(gè)用戶擁有http守護(hù)進(jìn)程。我們將掃描一個(gè)Linux WEB服務(wù)器為例:
# nmap -sT -p 80 -I -O www.yourserver.com
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, 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服務(wù)器是錯(cuò)誤的配置并以root來(lái)運(yùn)行,象上例一樣,它將是黎明前的黑暗。
Apache運(yùn)行在root下,是不安全的實(shí)踐,你可以通過(guò)把/etc/indeed.conf中的auth服務(wù)注銷(xiāo)來(lái)阻止ident請(qǐng)求,并重新啟動(dòng)ident。另外也可用使用ipchains或你的最常用的防火墻,在網(wǎng)絡(luò)邊界上執(zhí)行防火墻規(guī)則來(lái)終止ident請(qǐng)求,這可以阻止來(lái)路不明的人探測(cè)你的網(wǎng)站用戶擁有哪些進(jìn)程。
選項(xiàng)(Options)
除了以上這些掃描,Nmap還提供了無(wú)數(shù)選項(xiàng)。有一個(gè)是"-PT",,我們已經(jīng)介紹過(guò)了。在目標(biāo)機(jī)或網(wǎng)絡(luò)上常見(jiàn)的未經(jīng)過(guò)濾的端口,進(jìn)行TCP "ping"掃描。
另一個(gè)選項(xiàng)是"-P0"。在缺省設(shè)置下試圖掃描一個(gè)端口之前,Nmap將用TCP ping" 和 ICMP echo命令ping一個(gè)目標(biāo)機(jī),如果ICMP 和TCP的探測(cè)掃描得不到響應(yīng),目標(biāo)主機(jī)或網(wǎng)絡(luò)就不會(huì)被掃描,即使他們是運(yùn)行著的。而"-P0"選項(xiàng)允許在掃描之前不進(jìn)行ping,即可進(jìn)行掃描。
你應(yīng)該習(xí)慣使用"-v"命令,它詳細(xì)列出所有信息,能和所有的掃描選項(xiàng)一起使用。你能反復(fù)地使用這個(gè)選項(xiàng),獲得有關(guān)目標(biāo)機(jī)的更多信息。
使用"-p "選項(xiàng),可以指定掃描端口。比如 ,攻擊者想探測(cè)你的web服務(wù)器的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ái)抵制一個(gè)黑客使用Nmap,這樣的工具是有的,比如 Scanlogd, Courtney, and Shadow;,然而使用這樣的工具并不能代替網(wǎng)絡(luò)安全管理員。因?yàn)閽呙柚皇枪舻那捌跍?zhǔn)備,站點(diǎn)使用它只可以進(jìn)行嚴(yán)密的監(jiān)視。
使用Nmap監(jiān)視自己的站點(diǎn),系統(tǒng)和網(wǎng)絡(luò)管理員能發(fā)現(xiàn)潛在入侵者對(duì)你的系統(tǒng)的探測(cè)。
來(lái)源:http://www.cmuch.com/article.asp?id=94