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