您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > nmap命令使用详细说明
nmap命令使用详解[Ping扫描(PingSweeping)][端口扫描(PortScanning)][隐蔽扫描(StealthScanning)][UDP扫描(UDPScanning)][操作系统识别(OSFingerprinting)][Ident扫描(IdentScanning)][选项(Options)]简介:黑客想要入侵一台电脑,首先要有一套完整的计划。在入侵系统之前,黑客必须先找到一台目标主机,并查出哪些端口在监听之后才能进行入侵。找出网络上的主机,测试哪些端口在监听,这些工作通常是由扫描来实现的。扫描网络是黑客进行入侵的第一步。通过使用扫描器(如Nmap)扫描网络,寻找存在漏洞的目标主机。一旦发现了有漏洞的目标,接下来就是对监听端口的扫描。Nmap通过使用TCP协议栈指纹准确地判断出被扫主机的操作系统类型。本文全方位地介绍Nmap的使用方法,可以让安全管理员了解在黑客眼中的站点。并通过使用它,安全管理员可以发现自己网站的漏洞,并逐步完善自己的系统。Nmap是在免费软件基金会的GNUGeneralPublicLicense(GPL)下发布的,可从站点上免费下载。下载格式可以是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扫描(PingSweeping)入侵者使用Nmap扫描整个网络寻找目标。通过使用-sP命令,进行ping扫描。缺省情况下,Nmap给每个扫描到的主机发送一个ICMPecho和一个TCPACK,主机对任何一种的响应都会被Nmap得到。举例:扫描192.168.7.0网络:#nmap-sP192.168.7.0/24StartingnmapV.2.12byFyodor(fyodor@dhp.com,)Host(192.168.7.11)appearstobeup.Host(192.168.7.12)appearstobeup.Host(192.168.7.76)appearstobeup.Nmapruncompleted--256IPaddresses(3hostsup)scannedin1second如果不发送ICMPecho请求,但要检查系统的可用性,这种扫描可能得不到一些站点的响应。在这种情况下,一个TCPping就可用于扫描目标网络。一个TCPping将发送一个ACK到目标网络上的每个主机。网络上的主机如果在线,则会返回一个TCPRST响应。使用带有ping扫描的TCPping选项,也就是PT选项可以对网络上指定端口进行扫描(本文例子中指的缺省端口是80(http)号端口),它将可能通过目标边界路由器甚至是防火墙。注意,被探测的主机上的目标端口无须打开,关键取决于是否在网络上。#nmap-sP-PT80192.168.7.0/24TCPprobeportis80StartingnmapV.2.12byFyodor(fyodor@dhp.com,)Host(192.168.7.11)appearstobeup.Host(192.168.7.12)appearstobeup.Host(192.168.7.76)appearstobeup.Nmapruncompleted--256IPaddresses(3hostsup)scannedin1second当潜在入侵者发现了在目标网络上运行的主机,下一步是进行端口扫描。Nmap支持不同类别的端口扫描TCP连接,TCPSYN,StealthFIN,XmasTree,Null和UDP扫描。端口扫描(PortScanning)一个攻击者使用TCP连接扫描很容易被发现,因为Nmap将使用connect()系统调用打开目标机上相关端口的连接,并完成三次TCP握手。黑客登录到主机将显示开放的端口。一个tcp连接扫描使用-sT命令如下。#nmap-sT192.168.7.12StartingnmapV.2.12byFyodor(fyodor@dhp.com,)Interestingportson(192.168.7.12):PortStateProtocolService7opentcpecho9opentcpdiscard13opentcpdaytime19opentcpchargen21opentcpftp...Nmapruncompleted--1IPaddress(1hostup)scannedin3seconds隐蔽扫描(StealthScanning)如果一个攻击者不愿在扫描时使其信息被记录在目标系统日志上,TCPSYN扫描可帮你的忙,它很少会在目标机上留下记录,三次握手的过程从来都不会完全实现。通过发送一个SYN包(是TCP协议中的第一个包)开始一次SYN的扫描。任何开放的端口都将有一个SYN|ACK响应。然而,攻击者发送一个RST替代ACK,连接中止。三次握手得不到实现,也就很少有站点能记录这样的探测。如果是关闭的端口,对最初的SYN信号的响应也会是RST,让NMAP知道该端口不在监听。-sS命令将发送一个SYN扫描探测主机或网络:#nmap-sS192.168.7.7StartingnmapV.2.12byFyodor(fyodor@dhp.com,)Interestingportsonsaturnlink.nac.net(192.168.7.7):PortStateProtocolService21opentcpftp25opentcpsmtp53opentcpdomain80opentcphttp...Nmapruncompleted--1IPaddress(1hostup)scannedin1second虽然SYN扫描可能不被注意,但他们仍会被一些入侵检测系统捕捉。StealthFIN,Xmas树和Nullscans可用于躲避包过滤和可检测进入受限制端口的SYN包。这三个扫描器对关闭的端口返回RST,对开放的端口将吸收包。一个FIN-sF扫描将发送一个FIN包到每个端口。然而Xmas扫描-sX打开FIN,URG和PUSH的标志位,一个Nullscans-sN关闭所有的标志位。因为微软不支持TCP标准,所以FIN,XmasTree和Nullscans在非微软公司的操作系统下才有效。UDP扫描(UDPScanning)如果一个攻击者寻找一个流行的UDP漏洞,比如rpcbind漏洞或cDcBackorifice。为了查出哪些端口在监听,则进行UDP扫描,即可知哪些端口对UDP是开放的。Nmap将发送一个O字节的UDP包到每个端口。如果主机返回端口不可达,则表示端口是关闭的。但这种方法受到时间的限制,因为大多数的UNIX主机限制ICMP错误速率。幸运的是,Nmap本身检测这种速率并自身减速,也就不会产生溢出主机的情况。#nmap-sU192.168.7.7WARNING:-sUisnowUDPscan--forTCPFINscanuse-sFStartingnmapV.2.12byFyodor(fyodor@dhp.com,)Interestingportsonsaturnlink.nac.net(192.168.7.7):PortStateProtocolService53openudpdomain111openudpsunrpc123openudpntp137openudpnetbios-ns138openudpnetbios-dgm177openudpxdmcp1024openudpunknownNmapruncompleted--1IPaddress(1hostup)scannedin2seconds操作系统识别(OSFingerprinting)通常一个入侵者可能对某个操作系统的漏洞很熟悉,能很轻易地进入此操作系统的机器。一个常见的选项是TCP/IP上的指纹,带有-O选项决定远程操作系统的类型。这可以和一个端口扫描结合使用,但不能和ping扫描结合使用。Nmap通过向主机发送不同类型的探测信号,缩小查找的操作系统系统的范围。指纹验证TCP包括使用FIN探测技术发现目标机的响应类型。BOGUS的标志探测,发现远程主机对发送的带有SYN包的不明标志的反应,TCP初始序列号(ISN)取样发现ISN数值的样式,也可以用另外的方式决定远程操作系统。有一篇权威的关于指纹(fingertprinting)的文章,作者:Fyodor,也是namp的作者,参见地址:操作系统的检测是很准确也是很有效的,举例:使用系统Solaris2.7带有SYN扫描的指纹验证堆栈。#nmap-sS-O192.168.7.12StartingnmapV.2.12byFyodor(fyodor@dhp.com,)Interestingportsoncomet(192.168.7.12):PortStateProtocolService7opentcpecho9opentcpdiscard13opentcpdaytime19opentcpchargen21opentcpftp...TCPSequencePrediction:Class=randompositiveincrementsDifficulty=17818(Worthychallenge)Remoteoperatingsystemguess:Solaris2.6-2.7Nmapruncompleted--1IPaddress(1hostup)scannedin5secondsIdent扫描(IdentScanning)一个攻击者常常寻找一台对于某些进程存在漏洞的电脑。比如,一个以root运行的WEB服务器。如果目标机运行了identd,一个攻击者使用Nmap通过-I选项的TCP连接,就可以发现哪个用户拥有http守护进程。我们将扫描一个LinuxWEB服务器为例:#nmap-sT-p80-I-O(fyodor@dhp.com,)Interestingportson(xxx.xxx.xxx.xxx):PortStateProtocolServiceOwner80opentcphttprootTCPSequencePrediction:Class=randompositiveincrementsDifficulty=1140492(Goodluck!)Remoteoperatingsystemguess:Linux2.1.122-2.1.132;2.2.0-pre1-2.2.2Nmapruncompl
本文标题:nmap命令使用详细说明
链接地址:https://www.777doc.com/doc-2889724 .html