第五章常见的网络攻击与防范网络攻击步骤预攻击探测漏洞扫描(综合扫描)木马攻击拒绝服务攻击欺骗攻击蠕虫病毒攻击其他攻击一、网络攻击步骤网络安全威胁国家基础设施因特网信息对抗的威胁在增加电力交通通讯控制广播工业金融医疗一、网络攻击步骤网络中存在的安全威胁网络内部、外部泄密拒绝服务攻击逻辑炸弹特洛伊木马黑客攻击计算机病毒信息丢失、篡改、销毁后门、隐蔽通道蠕虫一、网络攻击步骤典型攻击步骤预攻击探测收集信息,如OS类型,提供的服务端口发现漏洞,采取攻击行为获得攻击目标的控制权系统继续渗透网络,直至获取机密数据消灭踪迹破解口令文件,或利用缓存溢出漏洞以此主机为跳板,寻找其它主机的漏洞获得系统帐号权限,并提升为root权限安装系统后门方便以后使用一、网络攻击步骤防火墙,入侵监测,防病毒,漏洞扫描,安全意识等Ping地址端口扫描口令猜测Mail用户猜测Mail附件BufferOverflowsActiveXControls网络安装压缩信息(文件)后门(Backdoors)创建新文件修改现有文件注册表设置安装新服务注册TrapDoors攻击的Mail拷贝Web连接IRCFTP感染文件共享删除文件修改文件产生安全后门CrashComputerDoS机密信息窃取探测(Probe)渗透(Penetrate)驻留(Persist)传播(Propagate)瘫痪(Paralyze)典型攻击步骤图解一、网络攻击步骤攻击手法vs.入侵者技术高低19801985199019952000密码猜测可自动复制的代码破解密码利用已知的漏洞破坏审计系统后门会话劫持消除痕迹嗅探IP欺骗GUI远程控制自动探测扫描拒绝服务攻击二、预攻击探测预攻击概述端口扫描基础操作系统识别资源扫描与查找用户和用户组查找二、预攻击探测1.预攻击概述Pingsweep寻找存活主机Portscan寻找存活主机的开放服务(端口)OSfingerprint操作系统识别资源和用户信息扫描网络资源,共享资源,用户名和用户组等二、预攻击探测Ping工具操作系统本身的ping工具Ping:PacketInterNetGroper用来判断远程设备可访问性最常用的方法Ping原理:发送ICMPEcho消息,等待EchoReply消息可以确定网络和外部主机的状态可以用来调试网络的软件和硬件每秒发送一个包,显示响应的输出,计算网络来回的时间最后显示统计结果——丢包率二、预攻击探测关于PingPing有许多命令行参数,可以改变缺省的行为可以用来发现一台主机是否active为什么不能ping成功?没有路由,网关设置?网卡没有配置正确增大timeout值被防火墙阻止……“Pingofdeath”发送特大ping数据包(65535字节)导致机器崩溃许多老的操作系统都受影响二、预攻击探测Windows平台Pinger、PingSweep、WS_PingProPack图:Pinger工具二、预攻击探测图:PingSweep二、预攻击探测Ping工具都是通过ICMP协议来发送数据包,那么针对这种扫描的预防措施是:使用可以检测并记录ICMP扫描的工具使用入侵检测系统在防火墙或路由器中设置允许进出自己网络的ICMP分组类型二、预攻击探测2.端口扫描基础开放扫描(OpenScanning)需要扫描方通过三次握手过程与目标主机建立完整的TCP连接可靠性高,产生大量审计数据,容易被发现半开放扫描(Half-OpenScanning)扫描方不需要打开一个完全的TCP连接秘密扫描(StealthScanning)不包含标准的TCP三次握手协议的任何部分隐蔽性好,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息二、预攻击探测基本的TCPconnect()扫描(开放)Reverse-ident扫描(开放)TCPSYN扫描(半开放)IPIDheaderaka“dump”扫描(半开放)TCPFin扫描(秘密)TCPXMAS扫描(秘密)TCPftpproxy扫描(bounceattack)用IP分片进行SYN/FIN扫描(躲开包过滤防火墙)UDPICMP端口不可达扫描UDPrecvfrom扫描二、预攻击探测Portscantype端口扫描分类图openscanTCPconnectreverseidenthalf-openSYNflagIPIDheaderdumbscanstealthFINflagACKflagsNULLflagsALLflags(XMAS)tcpfragmentingSYN|ACKflagssweepsTCPechoUDPechoTCPACKTCPSYNICMPechomisc.UDP/ICMPerrorFTPbounce二、预攻击探测开放扫描TCPconnect()扫描原理扫描器调用socket的connect()函数发起一个正常的连接如果端口是打开的,则连接成功否则,连接失败优点简单,不需要特殊的权限缺点服务器可以记录下客户的连接行为,如果同一个客户轮流对每一个端口发起连接,则一定是在扫描二、预攻击探测Reverse-ident扫描Ident协议(RFC1413)使得可以发现任何一个通过TCP连接的进程的所有者的用户名,即使该进程并没有发起该连接只有在TCP全连接之后才有效TCP端口113例如可以先连接到80端口,然后通过identd来发现服务器是否在root下运行建议关闭ident服务,或者在防火墙上禁止,除非是为了审计的目的二、预攻击探测半开放扫描TCPSYN扫描原理向目标主机的特定端口发送一个SYN包如果应答包为RST包,则说明该端口是关闭的否则,会收到一个SYN|ACK包。于是,发送一个RST,停止建立连接由于连接没有完全建立,所以称为“半开连接扫描”优点很少有系统会记录这样的行为缺点在UNIX平台上,需要root权限才可以建立这样的SYN数据包二、预攻击探测IPIDheaderaka“dump”扫描由Antirez首先使用,并在Bugtraq上公布原理:扫描主机通过伪造第三方主机IP地址向目标主机发起SYN扫描,并通过观察其IP序列号的增长规律获取端口的状态优点不直接扫描目标主机也不直接和它进行连接,隐蔽性较好缺点对第三方主机的要求较高二、预攻击探测秘密扫描TCPFin扫描原理扫描器发送一个FIN数据包如果端口关闭的,则远程主机丢弃该包,并送回一个RST包否则的话,远程主机丢弃该包,不回送变种,组合其他的标记优点不是TCP建立连接的过程,所以比较隐蔽缺点与SYN扫描类似,也需要构造专门的数据包在Windows平台无效,总是发送RST包二、预攻击探测TCPXMAS扫描原理扫描器发送的TCP包包头设置所有标志位关闭的端口会响应一个同样设置所有标志位的包开放的端口则会忽略该包而不作任何响应优点比较隐蔽缺点主要用于UNIX/Linux/BSD的TCP/IP的协议栈不适用于Windows系统二、预攻击探测其他扫描TCPftpproxy扫描原理用PORT命令让ftpserver与目标主机建立连接,而且目标主机的端口可以指定如果端口打开,则可以传输否则,返回425Can'tbuilddataconnection:Connectionrefused.Ftp这个缺陷还可以被用来向目标(邮件,新闻)传送匿名信息优点:这种技术可以用来穿透防火墙缺点:慢,有些ftpserver禁止这种特性二、预攻击探测UDPICMP端口不可达扫描利用UDP协议(主机扫描?)原理开放的UDP端口并不需要送回ACK包,而关闭的端口也不要求送回错误包,所以利用UDP包进行扫描非常困难有些协议栈实现的时候,对于关闭的UDP端口,会送回一个ICMPPortUnreach错误缺点速度慢,而且UDP包和ICMP包都不是可靠的需要root权限,才能读取ICMPPortUnreach消息一个应用例子Solaris的rpcbind端口(UDP)位于32770之上,这时可以通过这种技术来探测二、预攻击探测端口扫描对策设置防火墙过滤规则,阻止对端口的扫描例如可以设置检测SYN扫描而忽略FIN扫描使用入侵检测系统禁止所有不必要的服务,把自己的暴露程度降到最低Unix或linux中,在/etc/inetd.conf中注释掉不必要的服务,并在系统启动脚本中禁止其他不必要的服务Windows中通过Services禁止敏感服务,如IIS二、预攻击探测端口扫描工具图:NetScanTools二、预攻击探测图:WinScan二、预攻击探测图:SuperScan二、预攻击探测图:Nmap二、预攻击探测图:X-scan二、预攻击探测3.操作系统的识别操作系统辨识的动机许多漏洞是系统相关的,而且往往与相应的版本对应从操作系统或者应用系统的具体实现中发掘出来的攻击手段都需要辨识系统操作系统的信息还可以与其他信息结合起来,比如漏洞库,或者社会诈骗(社会工程,socialengineering)如何辨识一个操作系统一些端口服务的提示信息,例如,telnet、http、ftp等服务的提示信息TCP/IP栈指纹DNS泄漏出OS系统二、预攻击探测图:winfingerprint二、预攻击探测4.资源扫描与查找资源扫描用户扫描网络资源和共享资源,如目标网络计算机名、域名和共享文件等等;而用户扫描则用户扫描目标系统上合法用户的用户名和用户组名。这些扫描都是攻击目标系统的很有价值的信息,而Windows系统,特别是WindowsNT/2000在这些方面存在着严重的漏洞,很容易让非法入侵者获取到关于该目标系统的很多有用信息,如共享资源、Netbios名和用户组等。采用协议:NetBIOS协议、CIFS/SMB协议和空会话常用工具:NetViewNbtstat和NbtscanLegion和Shed二、预攻击探测NetView在命令行中输入“netview/domain”命令,可以获取网络上可用的域二、预攻击探测在命令行中输入“netview/domain:domain_name”命令,可以获取某一域中的计算机列表,其中domain_name为要列表计算机的域名。在命令行中输入“netview\\computer_name”命令,可以获取网络某一计算机的共享资源列表,其中computer_name为计算机名。二、预攻击探测nbtstat和nbtscannbtstat(NetBIOSoverTCP/IP)是WindowsNT/2000内置的命令行工具,利用它可以查询涉及到NetBIOS信息的网络机器。另外,它还可以用来消除NetBIOS高速缓存器和预加载LMHOSTS文件等。这个命令在进行安全检查时非常有用。利用nbtstat查看目标系统NetBIOS列表二、预攻击探测Nbtstat本身有一些缺陷,如一次只能扫描一台主机等,nbtscan()却可以对一个网段进行扫描,利用nbtscan对网段进行扫描。二、预攻击探测Legion和Shed在NetBIOS扫描中,很重要的一项就是扫描网络中的共享资源,以窃取资源信息或植入病毒木马。Legion和Shed就是其中的典型。Legion的共享资源扫描可以对一个IP或网段进行扫描,它还包含一个共享密码的蛮力攻击工具,如“ShowBFTool”按钮。主要用于Windows2000以前的操作系统中二、预攻击探测Shed是一个速度很快的共享资源扫描工具,它可以显示所有的共享资源,包含隐藏的共享。二、预攻击