# 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监督本身的站点,系统和网络打点员能发明潜在入侵者对你的系统的探测.