网络安全—典型网络攻击手段课件.ppt
参考阅读,反击黑客 (美)Ed Skoudis 王纲译 机械工业出版社 2002年,Ed Skoudis ,是有名的信息安全预测专家、克林顿安全办公室的高级顾问以及网络安全研究会“ The Hack-Counter Hack Training Course ”的创始人,是多年来一直从事计算机安全工作。 Counter Hack: A Step-by-Step Guide to Computer Attacks and Effective Defenses ”(中文版译名为反击黑客),详细介绍防御各种黑客攻击的技术与方法。,典型网络攻击步骤,端口判断,判断系统,选择最简方式入侵,分析可能有漏洞的服务,获取系统一定权限,提升为最高权限,安装多个系统后门,清除入侵脚印,攻击其他系统,获取敏感信息,作为其他用途,网络攻击手段,准备阶段数据传输过程中的窃听IP地址欺骗会话劫持拒绝服务攻击维护访问权 后门和木马,准备阶段,获取目标的一般信息探测目标的薄弱环节 战争拨号 端口扫描 漏洞扫描,Whois数据库查找,IP地址、主机是否运行、到要入侵点的路由、主机操作系统与用户信息等。,获取信息,收集主机信息,Ping命令判断计算机是否开着,或者数据包发送到返回需要多少时间 Tracert/Tracerout命令跟踪从一台计算机到另外一台计算机所走的路径 Finger和Rusers命令收集用户信息 Host或者Nslookup命令,结合Whois和Finger命令获取主机、操作系统和用户等信息,应用的方法:,准备阶段,调查和计划 了解有关攻击目标的信息 我们的目的:一旦发现某些行为特征,就可能在攻击真正开始前阻止 技术手段: 查找目标的基本信息(whois数据库) 战争拨号,网络测绘 端口扫描 针对特定的IP 哪些端口开放提供服务 哪种操作系统(响应特征) 扫描工具 “知道门和窗” 非技术手段: 社会工程学使用社会技巧和人际关系, 获取与安全相关的信息 内部的一些地址“建筑物里面有些什么” 偷听 垃圾搜寻 通过公告牌与聊天室交换信息(漏洞 利用的技术 相关目标的信息) 利用软件开发商的一些文档了解产品的细节,通用目标侦察工具Sam Spade,ing:这个工具将ICMP Echo请求消息发给目标,看是否它是可达的,并判断应答的时间。 Whois:Sam Spade使用默认Whois服务器或通过允许用户指定使用哪个Whois数据库来查询Whois。可使用内建的智能将.com、.net和.org的Whois查询发送到合适的Whois服务器。 IP块Whois:可以使用这个特性判断谁拥有一个特定组的IP地址,它使用的ARIN数据(American Registry for Internet Numbers)。 Nslookup:这个特性允许查询DNS服务器,以找到与IP地址映射的域。 DNS带传输:这个特性传输关于来自合适的名字服务器的一个给定域名的国内的所有信息。 Traceroute:这个特性返回源计算机与选择的目标之间的路由器跳的一个列表。 Finger:这个特性支持查询一个系统,决定它的用户列表。 SMTP VRFY:这个功能用于判断特定邮件地址在一给定电子邮件服务器上是否合法。它基于简单的邮件传输协议(SMTP)鉴别命令,是最广泛使用的电子邮件协议里的选项,用于检查邮件地址的合法性。 Web浏览器:Sam Spade的内建的小型Web浏览器使用户能查看原始HTTP交互,包括所有的HTTP首部。,例:经理在她工作处的 PC 上安装了调制解调器和 pcAnywhere。pcAnywhere 是一种简单的程序,它允许用户通过调制解调器从远程位置拨号到一台 PC 并与之连接。,战争拨号,通过持续地拨入来侵入组织的基于调制解调器的系统。,战争拨号工具,L0pht的 TBA 2000年早期,一个名为 L0pht 的黑客组织发布了一个名为TBA的非常吸引人的战争拨号器。它是一个具有大量标准功能的战争拨号器,例如随机/连续拨号,载波检测。 TBA引起人们注意的功能是它的运行平台:掌上个人数字助理。你用来存储日历和电话号码的工具现在可以用来进行战争拨号攻击了。THC-Scan2.0 THC-Scan由The Hackers Choice团体发布,能自动检测调制解调器的速度、数据位、校验位及停止位。此工具也尝试去判断被发现的计算机所使用的操作系统。而且,THC-Scan有能力确认什么时候能再有拨号音,这样,黑客们便可以不经过你的PBX就可以拨打免费电话。THC-Scan 2.0版于1998年圣诞节推出。,战争拨号的预防措施,审计、监控和记录用于登录的设备以及其它可能受攻击的设备。 安全性策略是一个良好的开端,但缺少了备份和执行就等于浪费时间。 遍历您的安装。好的遍历通常能使您找到连接到机器的调制解调器。还有,保存好的文档和平面图,以便您知道该查看哪儿。 查看您调制解调器上的自动应答配置。这也可以用来保护您的调制解调器。 最后,使用与内部 PBX 号码范围完全不同的电话号码。这是阻止战争拨号攻击的比较有效的方法之一。 例如,如果您的号码是 324-1000,请将象 765-3000 这样的范围用于您的带外管理解决方案。对这些号码进行保密并将访问权限制于重要的专职成员。,获取网络服务的端口作为入侵通道。,端口扫瞄,1.TCP Connect()2.TCP SYN3.TCP FIN4.IP段扫瞄5.TCP反向Ident扫瞄6.FTP代理扫瞄7.UDP ICMP不到达扫瞄,7种扫瞄类型:,端口扫描类型开放扫描(Open Scanning)需要扫描方通过三次握手过程与目标主机建立完整的TCP连接可靠性高,产生大量审计数据,容易被发现半开放扫描(Half-Open Scanning)扫描方不需要打开一个完全的TCP连接秘密扫描(Stealth Scanning)不包含标准的TCP三次握手协议的任何部分 隐蔽性好,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息,开放扫描TCP connect()扫描原理扫描器调用socket的connect()函数发起一个正常的连接如果端口是打开的,则连接成功否则,连接失败优点简单,不需要特殊的权限缺点服务器可以记录下客户的连接行为,如果同一个客户轮流对每一个端口发起连接,则一定是在扫描,Reverse-ident扫描Ident协议(RFC1413)使得可以发现任何一个通过TCP连接的进程的所有者的用户名,即使该进程并没有发起该连接只有在TCP全连接之后才有效Ident 服务在TCP端口113 例如 A 想知道 从B的6191口连入自己TCP23口的用户名 A可以连接B的 ident 服务,发送请求 6191,23 如果连接存在,B回应 6193, 23 : USERID : UNIX : stjohns 如果连接不存在,回应 6195, 23 : ERROR : NO-USER攻击示例可以先连接到80端口,然后通过identd来发现服务器是否在root下运行(可以直接发现Web服务器是否错误的配置成root权限)建议关闭ident服务,或者在防火墙上禁止,除非是为了审计的目的,半开放扫描 TCP SYN扫描原理向目标主机的特定端口发送一个SYN包如果应答包为RST包,则说明该端口是关闭的否则,会收到一个SYN|ACK包。于是,发送一个RST,停止建立连接由于连接没有完全建立,所以称为“半开连接扫描”优点很少有系统会记录这样的行为缺点在UNIX平台上,需要root权限才可以建立这样的SYN数据包,TCP Idlescan由Antirez首先使用,并在Bugtraq上公布 原理:扫描主机通过伪造傀儡主机IP地址向目标主机发起SYN扫描,并通过观察傀儡主机IP序列号的增长规律获取端口的状态 。(开放状态,对ACK包返回RST包,序号增加;关闭状态,直接丢弃RST包,不增加)优点不直接扫描目标主机也不直接和它进行连接,隐蔽性较好 缺点对傀儡主机的要求较高,秘密扫描TCP Fin扫描原理扫描器发送一个FIN数据包如果端口关闭的,则远程主机丢弃该包,并送回一个RST包否则的话,远程主机丢弃该包,不回送变种,组合其他的标记优点不是TCP建立连接的过程,所以比较隐蔽缺点与SYN扫描类似,也需要构造专门的数据包在Windows平台无效,总是发送RST包,TCP XMAS扫描原理扫描器发送的TCP包包头设置所有标志位关闭的端口会响应一个同样设置所有标志位的包 开放的端口则会忽略该包而不作任何响应 优点比较隐蔽缺点主要用于UNIX/Linux/BSD的TCP/IP的协议栈 不适用于Windows系统,其他扫描FTP Bounce Scan原理用PORT命令让ftp server与目标主机建立连接,而且目标主机的端口可以指定如果端口打开,则可以传输否则,返回425 Cant build data connection: Connection refused. Ftp这个缺陷还可以被用来向目标(邮件,新闻)传送匿名信息优点:这种技术可以用来穿透防火墙缺点:慢,有些ftp server禁止这种特性,UDP ICMP port unreachable scanning利用UDP协议原理开放的UDP端口并不需要送回ACK包,而关闭的端口也不要求送回错误包,所以利用UDP包进行扫描非常困难有些协议栈实现的时候,对于关闭的UDP端口,会送回一个ICMP Port Unreach错误缺点速度慢,而且UDP包和ICMP包都不是可靠的需要root权限,才能读取ICMP Port Unreach消息一个应用例子Solaris的rpcbind端口(UDP)位于32770之上,这时可以通过这种技术来探测,端口扫描对策设置防火墙过滤规则,阻止对端口的扫描例如可以设置检测SYN扫描而忽略FIN扫描使用入侵检测系统禁止所有不必要的服务,把自己的暴露程度降到最低Unix或linux中,在/etc/inetd.conf中注释掉不必要的服务,并在系统启动脚本中禁止其他不必要的服务Windows中通过Services禁止敏感服务,如IIS,常见扫描工具,Nmap由Fyodor编写提供TCP、UDP端口扫描、操作系统指纹识别集成了多种扫描技巧,提供的端口扫描功能比较全面,是目前国外最为流行的端口扫描工具之一。没有扫描漏洞的功能,无法对目标主机的脆弱性进行深入挖掘。,SuperScan,在Windows环境下的TCP端口扫描程序。它允许灵活的定义目标IP端口列表图形化的交互界面使得用起来简单方便。具有以下功能:1) 通过Ping来检验IP是否在线;2) IP和域名相互转换;3) 检验目标计算机提供的服务类别;4) 检验一定范围目标计算机的是否在线和端口情况;5) 工具自定义列表检验目标计算机是否在线和端口情况;6) 自定义要检验的端口,并可以保存为端口列表文件;7) 软件自带一个木马端口列表trojans.lst,通过这个列表我们可以检测目标计算机是否有木马;同时,我们也可以自己定义修改这个木马端口列表.,X-Scan由国内“安全焦点”编写Windows环境下的能够扫描漏洞的检测工具。支持插件功能,提供了图形界面和命令行两种操作方式,能够实现扫描远程操作系统类型、标准端口、常见漏洞等功能。只能提供一种端口扫描方式,在目标网络复杂时无法灵活自主的进行选择配置,从而限制了它的适应性。,图: X-scan,操作系统的识别操作系统辨识的动机许多漏洞是系统相关的,而且往往与相应的版本对应从操作系统或者应用系统的具体实现中发掘出来的攻击手段都需要辨识系统操作系统的信息还可以与其他信息结合起来,比如漏洞库,或者社会诈骗(社会工程,social engineering)如何辨识一个操作系统一些端口服务的提示信息,例如,telnet、http、ftp等服务的提示信息TCP/IP栈指纹DNS泄漏出OS系统,图: winfingerprint,跟踪路由技术,跟踪路由的技术来确定组成你的网络基础设施的各种路由器和网关。跟踪路由技术依赖于IP首部中的生存时间(TTL)字段。TTL与时间无关;它与跳有关。利用TTL字段进行网络测绘TTL工作原理-路由器收到IP数据包,将TTL字段的值减去1。如果TTL值是0,则路由器给数据包的源站回送一个ICMP超时的消息。通过发送具有各种TTL值的一系列数据包,能够从已经知道的源站跟踪所有的路由器,一直到所有目的地。攻击者能够再现出你的网络拓扑结构。,Cheops:一个很好的网络测绘工具,Cheops是由Mark Spence编写的,运行在Linux系统下,能够使用ping和跟踪路由功能并自动完成网络目录和拓扑结构的绘制工作。其他的功能允许系统管理员在网络内方便的自动进行FTP和安全界面连接。支持远程操作系统标识功能,使用TCP栈指纹技术。,资源扫描与查找扫描网络资源和共享资源,如目标网络计算机名、域名和共享文件等等;扫描目标系统上合法用户的用户名和用户组名。Windows系统,特别是Windows NT/2000在这些方面存在着严重的漏洞,很容易让非法入侵者获取到关于该目标系统的很多有用信息,如共享资源、Netbios名和用户组等。采用协议:NetBIOS协议、CIFS/SMB协议和空会话常用工具:Net ViewNbtstat和NbtscanLegion和Shed,Net View NET VIEW computername /CACHE | /DOMAIN:domainname或 NET VIEW /NETWORK:NW computername在命令行中输入“net view /domain”命令,可以获取网络上可用的域,/domain:domainname 指定要查看其可用计算机的域或工作组。如果省略 DomainName,/domain 将显示网络上的所有域或工作组名。,在命令行中输入“net view /domain:domain_name”命令,可以获取某一域中的计算机列表,其中domain_name为要列表计算机的域名。,在命令行中输入“net view computer_name”命令,可以获取网络某一计算机的共享资源列表,其中computer_name为计算机名 。,/network:nw 显示 NetWare 网络上所有可用的服务器,nbtstat和nbtscan nbtstat(NetBIOS over TCP/IP)是Windows NT/2000内置的命令行工具,利用它可以查询涉及到NetBIOS信息的网络机器。另外,它还可以用来消除NetBIOS高速缓存器和预加载LMHOSTS文件等。这个命令在进行安全检查时非常有用。利用nbtstat查看目标 系统NetBIOS列表,Nbtstat本身有一些缺陷,如一次只能扫描一台主机等,nbtscan(http:/www.abb.aha.ru/software/nbtscan.html)却可以对一个网段进行扫描,利用nbtscan对网段进行扫描。,Legion和Shed 在NetBIOS扫描中,很重要的一项就是扫描网络中的共享资源,以窃取资源信息或植入病毒木马。Legion和Shed就是其中的典型。Legion的共享资源扫描可以对一个IP或网段进行扫描,它还包含一个共享密码的蛮力攻击工具,如 “Show BF Tool”按钮。 主要用于Windows 2000以前的操作系统中,Shed是一个速度很快的共享资源扫描工具,它可以显示所有的共享资源,包含隐藏的共享。,空会话原理利用Windows NT/2000对NetBIOS的缺省信赖通过TCP端口139返回主机的大量信息实例如果通过端口扫描获知TCP端口139已经打开net use 192.168.102.230IPC$ /USER: 在攻击者和目标主机间建立连接 Windows 2000还有另一个SMB端口445预防资源扫描和查找的方法: 防范NetBIOS扫描的最直接方法就是不允许对TCP/UDP 135到139端口的访问,如通过防火墙或路由器的配置等。另外,对单独的主机,可使用NetBIOS over TCP/IP项失效或注册表配置来实现。Windows 2000 操作系统还要禁止445端口。,用户和用户组查找 利用前面介绍的方法,可以很容易获取远程Windows NT/2000主机的共享资源、NetBIOS名和所处的域信息等。但黑客和非法入侵者更感兴趣的是通过NetBIOS扫描,获取目标主机的用户名列表。如果知道了系统中的用户名(即账号)后,就可以对该账号对应的口令进行猜测攻击(有些口令往往很简单),从而对远程目标主机进行更深入的控制。 在Windows NT/2000的资源工具箱NTRK中提供了众多的工具用于显示远程主机用户名和组信息,如前面介绍的nbtstat和nbtscan,另外还有UsrStat等工具,UsrStat UsrStat是一个命令行工具,用于显示一个给定域中的每一个用户的用户名、全名和最后的登录日期与时间,如图所示,可显示域中计算机上的用户信息。,发现操作系统、系统软件、常见应用软件、数据库存在的漏洞,提供解决方案。双刃剑,漏洞发现与扫描,瞬时攻击,漏洞发展趋势,漏洞发展动态,漏洞发现方式-主机漏洞扫描,主机扫描器(本地扫描器) 与待检查系统运行于同一结点,执行对自身的检查。主要功能 分析各种系统文件内容,查找可能存在的对系统安全造成威胁的配置错误。特点 可以在系统上任意创建进程。为了运行某些程序,检测缓冲区溢出攻击,就要求扫描器做到这一点。 可以检查到安全补丁一级,以确保系统安装了最新的安全补丁。 可以查看本地系统配置文件,检查系统的配置错误。除非能攻入系统并取得超级用户权限,远程扫描器很难实现,漏洞发现方式-网络扫描器,网络扫描器(远程扫描器) 和待检查系统运行于不同结点,通过网络远程探测目标结点,检查安全漏洞。 通过执行一整套综合的渗透测试程序集(扫描方法集),发送精心构造的数据包来检测目标系统是否存在安全隐患。-搜集目标主机上的各种信息,然后与系统的漏洞库进行匹配,如果满足匹配条件,则认为安全漏洞存在;-模拟黑客的攻击手法对目标主机进行攻击,如果模拟攻击成功,则认为安全漏洞存在。,扫描器基本模块,主机扫描内容-unix(1),系统完整性检查 关键系统文件变化检查 用户账户变化检查 黑客入侵标记检查 未知程序版本 不常见文件名 可疑设备文件,未经授权服务 网络数据包截获攻击检测 弱口令选择检测 有安全漏洞程序版本检测 标记可被攻击程序 报告需要安装的安全补丁 检查系统配置安全性 全局信任文件,主机扫描内容-unix (2),crontab文件 rc系统启动文件 文件系统mount权限 打印服务 账户配置 组配置 检查网络服务安全性 是否允许ip转发 标记有风险服务 Ftp 配置 News服务器配置,NFS配置 邮件服务器配置 Web服务器配置 检查用户环境变量安全性 系统文件属主 系统文件权限许可 文件属主及权限许可 shell启动文件 用户信任文件 应用程序配置文件,主机扫描内容-Windows,允许建立guest账户 guest账户无口令 口令构造和过时原则 弱口令选择 登陆失败临界值 注册表权限许可 允许远程注册访问,独立的注册设置 对系统文件和目录不正确的分配许可权 非NT缺省配置的未知服务 运行易遭到攻击的服务,如:运行在Web服务器上的SMB服务等 带有许可访问控制设置的共享,可能给远程用户全部访问权,网络扫描内容(1),后门类 浏览器类 强力攻击类 CGI-Bin类 守护进程类 DCOM类 DNS协议类 NFS 类,电子邮件类 Finger 类 防火墙类 FTP协议类 信息收集类 Instant Messaging LDAP类 NetBIOS 类,NIS 类 NT 关键问题类 NT 组类 NT 网络类 NT 口令检查类 NT 口令策略类 NT 补丁类 NT 策略类 NT 注册表类 NT 服务类,NT 用户类 协议欺骗类 路由器/交换机类 RPC 类 共享类 SNMP 类 TCP 端口扫描 UDP 端口扫描 Web 扫描 X Windows 类,网络扫描内容(2),漏洞扫描系统的性能指标,准确性效率扫描方法的关联性扫描器自身的安全漏洞的描述升级频率,Nessus,目前全世界最多人使用的系统漏洞扫描与分析软件。超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。 1998年, 创办人 Renaud Deraison 展开了一项名为 “Nessus”的计划,其计划目的是希望能为因特网社群提供一个免费、威力强大、更新频繁并简易使用的远端系统安全扫描程序。经过了数年的发展, 包括 CERT 与 SANS 等著名的网络安全相关机构皆认同此工具软件的功能与可用性。2002年时, Renaud 与 Ron Gula, Jack Huffard 创办了一个名为 Tenable Network Security 的机构。在第三版的Nessus 发布之时, 该机构收回了 Nessus 的版权与程序源代码 (原本为开放源代码), 并注册成为该机构的网站。 目前此机构位于美国马里兰州的哥伦比亚。Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的。,Exploit 发现漏洞后利用相应的Exploit获取控制权有漏洞不一定就有Exploit 。有Exploit就肯定有漏洞,Metasploit是一个免费的、可下载的框架,H.D. Moore在2003年发布附带数百个已知软件漏洞的专业级漏洞攻击工具。可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。,漏洞发现和利用-Metasploit,网络攻击手段,准备阶段传输过程中的窃听IP地址欺骗会话劫持拒绝服务攻击维护访问权 后门和木马,传输中的威胁窃听,电缆 嗅探器sniffer 对网卡重新编程 自感应技术(从电缆线读取辐射信号,要求足够近) 搭接电缆 WAN上的信号截取者还必须能将信号从多路复用信号中分离微波和卫星 很容易截获信号 依靠大容量和复杂的多路复用技术,即使获取了信号也无法将某个特定信号分离光纤 安全性: 分接易被发现 没有电磁辐射,无线通信在美国,无线计算机连接 车库开门器 本地无线电 部分无绳电话 短距离无线应用共用频段干扰安全问题: 无线信号强度 100-200英尺(1英尺=0.3048米) 用调谐天线就可接受无线通信的标准 802.11b 802.11a 802.11g 加密标准 WEP 40位或104位经典流式密钥(调查显示,85%无线网络没有使用WEP功能),通过集线器进行嗅探:被动嗅探,典型工具 Snort和Sniffit,通过交换机进行嗅探:主动嗅探,攻击者发明了很多工具,这些工具向交换型LAN发送欺骗性数据,以达到截获流量的目的。,Dsniff,www.monkey.org/-dugsong/dsniff 由Dug Song编写,是个工具集,可在LAN中以多种灵活的方式截取信息。用洪泛对付交换机用ARP欺骗信息对付交换机能够分析大量应用程序的数据包发送假的DNS信息对HTTPS和SSH进行嗅探,ARP欺骗过程,发送假的DNS信息进行流量转向。Dsniff包含一个叫dnsspoof的程序,可让攻击者发送假的DNS回应给受害者,以使攻击者要访问其他机器时却访问攻击者的机器。,Dsniff,对HTTPS和SSH进行嗅探Dsniff利用SSL和SSH对证书以及公钥的信任,如果Web服务器发给浏览器的证书是由一个浏览器不认识的证书机构签发的,浏览器将问用户是否接受此不信任的证书,信任的决定权留在了用户(通常是没经验的,一般用户不在意此)手里,浏览器会警告用户,但它仍允许用户继续建立连接。Dsniff工具集中用于攻击HTTPS和SSH的工具名是:webmitm和sshmitm。,Dsniff,对HTTPS和SSH进行嗅探,嗅探的防御,将传输的数据进行加密。使用交换机。防止ARP欺骗 对包含了重要系统和数据的网络,在交换机上进行端口级安全设置,用链到端口上的机器的MAC地址来配置此端口,以防止MAC地址洪泛和arpspoof。 在极端重要的网络,如DMZ,在每台终端机器上使用静态ARP表,对LAN上的所有系统进行MAC地址的硬编码。,网络攻击手段准备阶段传输过程中的窃听IP地址欺骗会话劫持拒绝服务攻击维护访问权 后门和木马,IP地址欺骗(1),IP地址欺骗 通过改变或伪装系统的IP地址进行攻击。 可帮助攻击者对那些使用IP地址来当作验证方式和过滤方法的应用程序进行破坏。简单欺骗型攻击者很容易改变其IP地址,使用一种工具来产生具有所需IP地址的数据包。典型工具Nmap和dsniff都是利用后一种方法来产生欺骗性数据包的。如果攻击者想不让人知道数据包洪泛或DOS攻击的数据包来向,简单欺骗是个不错的选择。但有很大的限制。,假冒攻击存在的问题例:EVE是攻击者,ALICE是被假装者,BOB是目标受害者。过程:EVE与BOB打开一个连接,假冒A发送3次握手的第一个数据包TCP SYN(A,ISNa);然后是3端握手第二步,BOB发送ACK(A,ISNa)SYN(B,ISNb)给ALICE当ALICE收到此数据包时,因为它本身并没进行3次握手第一步,所以它将发送RESET信息,断开连接,从而使EVE不能假装成ALICE和BOB交互,EVE也就无从截获数据流量。,如果EVE和BOB是在同一个LAN上,简单攻击能够以交互方式进行,因为EVE可以从LAN上面截获BOB发出给ALICE的回应信息,并利用ARP欺骗来防止ALICE的RESET信息将连接终止。,破坏UNIX的r命令型 所谓“UNIX信任”是指当一个UNIX系统信任另一个时,用户可以登录到被信任主机,使用r-命令(如rlogin、rsh、rcp)对信任主机进行访问时无需提供密码。,IP地址欺骗(2),3个终端都使用UNIX系统,而ALICE被BOB系统信任。这样,攻击者只要在欺骗攻击中成功使用了ALICE的地址,他就能在BOB系统上执行命令而无需提供密码。,具体步骤:,EVE打开到BOB的TCP连接,不断的发送TCP SYN数据包 可以帮助EVE猜测出BOB的SYN-ACK中的初始序列号随时间变化的规律,从而猜测出在第5)步中将会使用的初始序列号,当然如果猜错,将前功尽EVE对ALICE发动拒绝服务攻击, 使ALICE在一段时间内变哑,不能发送RESET数据包,于是欺骗性的TCP连接不会断掉了。EVE使用ALICE的地址同BOB建立连接(极可能使用rsh这类命令),完成3次握手第一步。BOB回应数据包给ALICE 由于ALICE受到拒绝服务攻击,不能发送RESET数据包。EVE向BOB发送ACK里面的ISNb(直到猜对)是猜的,而且还是使用ALICE的IP地址来进行欺骗。,BOB认为ALICE与他建立了一个TCP连接,并使用了r-命令。EVE可以假装成ALICE发送命令给BOB,BOB将执行这些命令。BOB的所有回应都将被发送给ALICE,因此,EVE真正并没有同BOB建立交互连接。EVE只是发送命令,BOB将执行命令并发送回应给ALICE(仍然哑着),这就建立了一个单向的命令发送管道,EVE可以重新配置BOB以获得完全的交互访问权。比如EVE可以将其IP地址加进/etc/hosts.equiv文件,使得BOB信任EVE,这样,以后就可以直接使用r-命令登录BOB,而不用使用欺骗手段了。,ISNA的猜测,源路由欺骗型 源路由发送数据包的源机器可以指定此数据包在网络上要经过的途径。EVE产生带有虚假路由的数据包 路由为(ALICEEVEBOB)。任何在EVE和BOB之间的路由器都会读取此路由,并将数据包转发给BOB。BOB将对此数据包作出反应。 回应将会将此源路由翻转过来(BOBEVEALICE)。BOB产生的数据包将会被传到EVE,因为EVE是源路由的一部分,它将截获这些数据包并不再转发(否则会导致ALICE发出RESET)。,IP地址欺骗(3),源路由很少通过Internet进行,因为大多数单位在它们的Internet网关上都封掉了源路由的数据包。然而,在许多单位的内部网里,源路由仍是可行的,因此内部人员仍可能使用这种攻击手段。,源路由欺骗,IP欺骗的防范方法 (1),必须确保你的TCP堆栈所产生的序列号不容易被猜测。 添加操作系统提供商最新提供的安全补丁。 使用Nmap工具对自己的系统进行扫描,以测试其初始序列号的可预测性。对UNIX系统,不要使用脆弱的r-命令,使用安全的方式,如SSH或VPN来代替r-命令。在边界路由器和防火墙上实施“反欺骗”包过滤。,禁止带有源路由的数据包通过网关,对cisco路由器而言,使用no ip sourceroute命令就可以使网关将带有源路由的数据包抛弃了。必须注意整个环境中信任关系。应该杜绝将UNIX和Windows NT的信任关系通过不被保护的网络(如通过Internet防火墙)进行扩展。甚至连商业伙伴之间链路上的信任关系也应该被避免,只有在必要的商业需要时,系统之间的信任关系才应该十分谨慎的在安全的内部网上建立。,IP欺骗的防范方法 (2),网络攻击手段准备阶段传输过程中的窃听IP地址欺骗会话劫持拒绝服务攻击维护访问权 后门和木马,会话劫持,当用户和一台机器建立了一个交互式的登录会话时,攻击者可使用会话劫持工具将此会话从用户那里偷过来。不易被发现。当用户发现会话不见了,大多数人认为是网络故障所致,因此会重新登录,他们并没有意识到会话并没有断掉,而是被偷掉了。,会话劫持举例,ALICE BOB建立了一个telnet会话TCP序列号猜测:EVE处于它们之间的网段上,使用嗅探工具看到此会话。仔细检查数据包的TCP序列号。会话劫持的过程:在ALICE和BOB通信的某一时刻,EVE打算劫持此连接,他开始将源地址为ALICE的假冒流量注入网络中,数据包所使用的TCP序列号是正确的。如果劫持成功,BOB将把EVE当作ALICE而执行收到的EVE发出的命令,EVE巧妙的把ALICE手上的会话给偷掉了。,会话劫持举例,基于主机的会话劫持,在UNIX系统上,如攻击者在ALICE或BOB上有了root权限,基于主机的会话劫持工具可让攻击者与本地终端设备(UNIX系统上的tty,用于telnet和rlogin会话)进行交互。 tty是被多种命令行程序(如telnet和rolgin)用来从用户键盘获得信息和在屏幕上以ASCII方式显示信息的软件工具。 攻击者就可以直接从受害者的tty上读取所有的会话信息,甚至向tty里输入击键符,这样便对会话有了完全的控制权。当攻击者没有ALICE或BOB机器上的账号时,基于网络的会话劫持工具十分有用,相反,截获会话的最简单方法就是使用基于主机的会话劫持。典型的会话劫持的工具有Hunt、Dsniff的sshmitm工具、IP Watcher、TTYSnoop等。,防御会话劫持,必须实施在防御欺骗攻击中所提及的方法使用如SSH这样的加密方法或VPN以提供安全会话。 对非常重要的系统,如防火墙、路由器和安全系统,即使在穿过内部网时也要使用加密会话。注意到Dsniff可用来劫持SSH连接,因此在使用SSH时应使用版本2的协议,并密切注意有关服务器公钥改变的信息,如果服务器公钥不明不白的改变了,不要进行连接,而是要对其做调查。,网络攻击手段准备阶段传输过程中的窃听IP地址欺骗会话劫持拒绝服务攻击维护访问权 后门和木马,拒绝服务攻击DoS,一种通过耗尽CPU、内存、带宽以及磁盘空间等系统资源,来阻止或削弱对网络、系统或应用程序的授权使用的行为。 基于本地的拒绝服务攻击 基于远程的拒绝服务攻击攻击举例:2000年大商业网站 Yahoo!, eBay, A, eTrade 绰号 MafiaBay 15岁加拿大少年,青少年罪犯感化中心服刑8个月2001年,微软旗下的 遭受DoS,在一天上午和下午的部分时间只能响应2%的合法请求。,基于本地的拒绝服务攻击,停止本地服务 杀死进程:一个有足够权限的攻击者(如系统管理员)可以很容易的在 DoS 攻击中杀死本地进程。如服务器进程 重新配置系统:拥有足够权限的攻击者能重新配置系统,使其不再提供服务或者过滤掉特定的用户。例如,在一个 Windows NT 文件服务器上,攻击者可以简单通过网络设置停止文件共享,以阻止合法用户远程访问此文件服务器有价值的数据。 使进程崩溃:如果攻击者没有超级权限,他们也可以利用系统的弱点使进程崩溃。例如:攻击者可以通过向本地机任意输入大量的随机数据使堆栈缓冲区溢出。由于在溢出攻击期间入栈的返回指针是随机的,所以目标继承很容易崩溃,使系统拒绝用户访问,消耗本地资源 填充进程表 一个攻击者可能会写一个程序,使用这种程序,攻击者就能像系统为用户启动进程那样迅速的建立新进程。最后,计算机的进程表被填满了,从而阻止了正常用户开启进程并拒绝任何的访问。 填充文件系统 通过不断的给文件系统发送大量的数据,攻击者能将文件分区表填满,阻止其他用户建立文件,还有可能使系统崩溃。 发送网络数据,阻塞通信链路 攻击者写一个程序,给被攻击的系统发送伪造的网络信息,消耗处理器和连接线路带宽。如果攻击者的程序能生成足够多的数据包,合法用户就不能与系统交换数据。,基于远程的拒绝服务攻击(1),远程终止服务 Land 型数据包: 发送一个假的数据包,它的源 IP 地址和端口号均与目标主机相同。目标主机就会收到这样的数据包,来自本主机同一端口且同时到达。旧的 TCP/IP 栈在这种未知的情况下就会造成混乱,甚至崩溃。 Latierra 型数据包 :与 Land 型数据包类似,但会同时给多个端口发送多种类型的 Land 数据包。 Ping of Death 型数据包: 发送一个超长的数据包,当主机收到时,由于旧的 TCP/IP 栈不能有效处理一个大于 64K 的 Ping 包而崩溃。,Jolt2 型数据包 :发送一些数据包碎片,长度为零。因此这些空的数据包碎片看起来像一串数据包的第一个。只要这种数据包碎片发送出去,目标主机会耗尽处理器全部能力来重新组装这些数据包碎片。 Teardrop 、 Newtear 、 Bonk 、 Syndrop 等类型的数据包 :发送重叠的数据包碎片,在数据包头内碎片的长度被设置为不正确的值,所以主机对这些数据包碎片组装时不能对其正确排队。一些 TCP/IP 栈就会崩溃。 Winnuke 型数据包: 向一个 Windows 主机的开放文件共享系统端口(如 TCP 端口 139 )发送垃圾数据,当端口收到这种数据时,由于不能用合法的服务器信息块( SMB )协议对其进行格式化,导致系统瘫痪。,消耗远程资源 远程占用目标主机的资源,特别是通信链路的带宽。在这种方式的攻击中,攻击者会利用数据包洪来消耗你所有的网络处理能力。 SYN FLOOD 攻击 Smurf 攻击 UDP泛洪,基于远程的拒绝服务攻击(2),正常的三段握手图例,SYN FLOOD 攻击利用服务器的连接缓冲区( Backlog Queue ),利用特殊的程序,设置 TCP 的 Header ,向服务器端不断地成倍发送只有 SYN 标志的 TCP 连接请求。当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。 SYN 请求超过了服务器能容纳的限度,缓冲区队列满,服务器就不再接收新的请求了。,Smurf 攻击,Smurf 是一种简单但有效的 拒绝服务攻击技术,它利用了 ICMP (Internet 控制信息协议 ) 。 Smurf 是用一个偷来的帐号安装到一个计算机上的,然后用一个伪造的源地址连续 ping 一个或多个计算机网络,这个伪造的源地址,实际上就是攻击的目标,它将被极大数量的响应信息量所淹没。,attacker,