网络安全刘敏贤副教授西南科技大学计算机科学与技术学院第2章回顾攻击事件攻击的目的攻击的步骤第3章网络侦察技术本章介绍常见的网络侦察技术,包括网络扫描、网络监听和口令破解三个部分。网络扫描重点介绍三种扫描类型以及常用的扫描器;网络监听重点介绍对以太网的监听和嗅探器;口令破解重点介绍口令破解器、字典文件以及Windows2000和Unix口令破解所涉及的问题。第3章网络侦察技术3.1网络扫描3.2网络监听3.3口令破解网络扫描扫描器扫描的类型常用的网络扫描器第3章第1节扫描的目标主机发现目标主机上运行的可访问的TCP及UDP网络服务目标主机的操作平台及其配置目标主机漏洞(包括系统漏洞和协议栈漏洞)过滤机制与安全系统的配置(包括防火墙、边界路由器、交换机以及IDS探测器等)网络扫描器的主要功能扫描目标主机识别其工作状态(开/关机)识别目标主机端口的状态(监听/关闭)识别目标主机系统及服务程序的类型和版本根据已知漏洞信息,分析系统脆弱点生成扫描结果报告扫描技术主机扫描:确定在目标网络上的主机是否可达,同时尽可能多映射目标网络的拓扑结构,主要利用ICMP数据包端口扫描:发现远程主机开放的端口以及服务操作系统指纹扫描:根据协议栈判别操作系统扫描器分类主机型安全扫描器网络型漏洞扫描器数据库漏洞扫描器1、主机型安全扫描器主机型漏洞扫描器一般采用C/S的架构,通过在主机系统本地运行代理程序,针对操作系统内部问题进行深入的系统漏洞扫描。2、网络型漏洞扫描器网络型漏洞扫描器是通过模拟黑客经由网络端发出数据包,以主机接受到数据包时的回应作为判断标准,进而了解网络上各种网络设备、主机系统等开放的端口、服务以及各种应用程序的漏洞的安全扫描工具。3、数据库漏洞扫描器数据库漏洞扫描器,是专门针对数据库进行安全漏洞扫描的扫描工具,以发现数据库在系统软件、应用程序、系统管理以及安全配置等方面的存在的安全漏洞测。扫描器的工作原理扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器可以发现远程服务器是否存活和各种端口的分配及提供的服务和它们的软件版本。例如:操作系统识别,是否能用匿名登陆,是否有可写的FTP目录,是否能用TELNET。扫描器工作原理图:扫描器的基本工作原理TCP协议TCP是一种面向连接的,可靠的传输层协议。一次正常的TCP传输需要通过在客户端和服务器之间建立特定的虚电路连接来完成,该过程通常被称为“三次握手”。TCP通过数据分段中的序列号保证所有传输的数据可以在远端按照正常的次序进行重组,而且通过确认保证数据传输的完整性。TCP协议TCP数据包格式TCP协议TCP标志位ACK:确认标志RST:复位标志URG:紧急标志SYN:建立连接标志PSH:推标志FIN:结束标志TCP协议TCP连接建立示意图主机扫描技术-传统技术主机扫描的目的是确定在目标网络上的主机是否可达。这是信息收集的初级阶段,其效果直接影响到后续的扫描。常用的传统扫描手段有:ICMPEcho扫描ICMPSweep扫描BroadcastICMP扫描Non-EchoICMP扫描地址扫描目的:检查目标主机是否处于活动状态(active)扫描方式:ICMPPing扫描ACKPing扫描SYNPing扫描UDPPing扫描:到关闭端口arp扫描(局域网)DestinationSourceICMPEchoRequestICMPEchoReplyDestinationSourceTCPACK+PortXXRSTDestinationSourceTCPSYN+PortXXSYN/ACKRSTDestinationSourceUDP+PortXXICMP:PortUnreachableICMPecho扫描实现原理:Ping的实现机制,在判断在一个网络上主机是否开机时非常有用。向目标主机发送ICMPEchoRequest(type8)数据包,等待回复的ICMPEchoReply包(type0)。如果能收到,则表明目标系统可达,否则表明目标系统已经不可达或发送的包被对方的设备过滤掉。优点:简单,系统支持缺点:很容易被防火墙限制可以通过并行发送,同时探测多个目标主机,以提高探测效率(ICMPSweep扫描)。网络扫描地址扫描ping扫描(ICMP)C:\ping[202.108.42.91]with32bytesofdata:Replyfrom202.108.42.91:bytes=32time=33lmsTTL=46Replyfrom202.108.42.91:bytes=32time=320msTTL=46Replyfrom202.108.42.91:bytes=32time=370msTTL=46Replyfrom202.108.42.91:bytes=32time=36lmsTTL=46Pingstatisticsfor202.108.42.91:Packets:Sent=4,Received=4,Lost=0(0%loss),ApproximateroundtrIPtimesinmilli-seconds:Minimum=320ms,Maximum=370ms,Average=345ms第3章第1节地址扫描主机扫描程序:PingNmap:-sP选项,缺省执行,集合了ICMP/SYN/ACK/UDPPing功能(SYN/ACK针对80端口)SING(SendICMPNastyGarbage):发送完全定制的ICMP数据包的命令行工具地址扫描Ping扫射同时扫描大量的IP地址段,以发现某个IP地址是否绑定活跃主机的扫描Ping扫射工具软件UNIX:Nmap,fping,hping2Win32:SuperscanBroadcastICMP扫描实现原理:将ICMP请求包的目标地址设为广播地址或网络地址,则可以探测广播域或整个网络范围内的主机。缺点:只适合于UNIX/Linux系统,Windows会忽略这种请求包;这种扫描方式容易引起广播风暴主机扫描技术-高级技术防火墙和网络过滤设备常常导致传统的探测手段变得无效。为了突破这种限制,必须采用一些非常规的手段,利用ICMP协议提供网络间传送错误信息的手段,往往可以更有效的达到目的:异常的IP包头在IP头中设置无效的字段值错误的数据分片通过超长包探测内部路由器反向映射探测端口扫描扫描的类型端口扫描(端口就是一个潜在的通信通道,也就是一个入侵通道)熟知端口(0~1023)注册端口(1024~49151)专用端口(49152~65535)方法基本扫描Connect,SYN,FIN,Xmas树,空扫描,ACK,Windows,RPC,UDP高级扫描Ident,FTPBounce第3章第1节端口扫描技术当确定了目标主机可达后,就可以使用端口扫描技术,发现目标主机的开放端口,包括网络协议和各种应用监听的端口。端口扫描技术主要包括以下三类:开放扫描会产生大量的审计数据,容易被对方发现,但其可靠性高;隐蔽扫描能有效的避免对方入侵检测系统和防火墙的检测,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息;半开放扫描隐蔽性和可靠性介于前两者之间。开放式扫描——TCPConnect扫描会产生大量的审计数据,容易被对方发现,但其可靠性高。三次握手示意图:实现原理:通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程。如果端口处于侦听状态,那么connect()就能成功返回。否则,这个端口不可用,即没有提供服务。优点:稳定可靠,不需要特殊的权限。缺点:扫描方式不隐蔽,服务器日志会记录下大量密集的连接和错误记录,并容易被防火墙发现和屏蔽。TCP反向ident扫描实现原理:ident协议允许看到通过TCP连接的任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。比如,连接到http端口,然后用identd来发现服务器是否正在以root权限运行。缺点:这种方法只能在和目标端口建立了一个完整的TCP连接后才能看到。半开放扫描技术TCPSYN扫描TCP间接扫描半开放扫描———TCPSYN扫描隐蔽性和可靠性介于开发式扫描和隐蔽式扫描之间。半连接示意图:实现原理:扫描器向目标主机端口发送SYN包。如果应答是RST包,那么说明端口是关闭的;如果应答中包含SYN和ACK包,说明目标端口处于监听状态,再传送一个RST包给目标机从而停止建立连接。由于在SYN扫描时,全连接尚未建立,所以这种技术通常被称为半连接扫描。优点:隐蔽性较全连接扫描好,一般系统对这种半扫描很少记录。缺点:通常构造SYN数据包需要授权用户。隐蔽扫描技术TCPFIN扫描TCPXmas扫描TCPNull扫描TCPftpproxy扫描分段扫描隐蔽性扫描——TCPFIN扫描能有效的避免对方入侵检测系统和防火墙的检测,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息。隐蔽性扫描示意图:实现原理:扫描器向目标主机端口发送FIN包。当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,并且返回一个RST数据包。否则,若是打开的端口,数据包只是简单的丢掉(不返回RST)。优点:由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而比SYN扫描隐蔽得多,FIN数据包能够通过只监测SYN包的包过滤器。缺点:跟SYN扫描类似,需要自己构造数据包,要求授权用户访问;通常适用于UNIX目标主机,除过少量的应当丢弃数据包却发送RST包的操作系统(包括CISCO等)。但在Windows95/NT环境下,该方法无效,因为不论目标端口是否打开,操作系统都返回RST包。TCPXmas和TCPNull扫描实现原理:TCPXmas和Null扫描是FIN扫描的两个变种。Xmas扫描打开FIN,URG和PUSH标记,而Null扫描关闭所有标记。这些组合的目的是为了通过对FIN标记数据包的过滤。当一个这种数据包到达一个关闭的端口,数据包会被丢掉,并且返回一个RST数据包。否则,若是打开的端口,数据包只是简单的丢掉(不返回RST)。优点:隐蔽性好;缺点:需要自己构造数据包,要求由超级用户或者授权用户权限;通常适用于UNIX目标主机,而Windows系统不支持。TCPftpproxy扫描实现原理:FTP代理连接选项,其目的是允许一个客户端同时跟两个FTP服务器建立连接,然后在服务器之间直接传输数据。然而,在大部分实现中,实际上能够使得FTP服务器发送文件到Internet的任何地方。该方法正是利用了这个缺陷,其扫描步骤如下:1:假定S是扫描机,T是扫描目标,F是一个ftp服务器,这个服务器支持代理选项,能够跟S和T建立连接。2:S与F建立一个ftp会话,使用PORT命令声明一个选择的端口(称之为p-T)作为代理传输所需要的被动端口。3:然后S使用一个LIST命令尝试启动一个到p-T的数据传输。4:如果端口p-T确实在监听,传输就会成功(返回码150和226被发送回给S),否则S回收到425无法打开数据连接的应答。5:S持续使用PORT和LIST命令,直到T上所有的选择端口扫描完毕。优点:FTP代理扫描不但难以跟踪,而且可以穿越防火墙缺点:一些ftpserver禁止这种特性分段扫描实现原理:并不直接发送TCP探测数据包,是将数据包分成两个较小的IP段。这样就将一个TCP头分成好几个数据包,从而包过滤器就很难探测到。优点:隐蔽性好,可穿越防火墙缺点:可能被丢弃;某些程序在处理这些小数据包时会出现异常。TCP端口扫描TCP端口扫描工具:UNIX:Nmap,Unicornscan,nast,Knockerwin:SuperScan,vscan,Xscan...网络扫描扫描的类型