网络攻击技术_第1页
网络攻击技术_第2页
网络攻击技术_第3页
网络攻击技术_第4页
网络攻击技术_第5页
已阅读5页,还剩151页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络攻击技术第1页,共156页,2023年,2月20日,星期六为什么要研究攻击技术知己知彼,百战不殆中国《孙子》Payattentiontoyourenemies,fortheyarethefirsttodiscoveryourmistakes.Antistthenes,440BC了解网络安全的重要手段黑客攻击技术网络防护的一部分研究网络攻击,是为了更加有效地对网络进行防护技术繁多,没有明显的理论指导一些技术,既是黑客技术,也是网络管理技术,或者是网络防护技术第2页,共156页,2023年,2月20日,星期六EmailWebISP门户网站E-Commerce电子交易复杂程度时间Internet变得越来越重要第3页,共156页,2023年,2月20日,星期六网络安全问题日益突出混合型威胁(RedCode,Nimda)拒绝服务攻击(Yahoo!,eBay)发送大量邮件的病毒(LoveLetter/Melissa)多变形病毒(Tequila)特洛伊木马病毒网络入侵70,00060,00050,00040,00030,00020,00010,000已知威胁的数量第4页,共156页,2023年,2月20日,星期六攻击的基本步骤窥探设施踩点扫描查点列出用户账号列出共享文件确定应用攻击系统扫尾工作安装后门清除入侵痕迹第5页,共156页,2023年,2月20日,星期六攻击技术一览攻击系统中常用的攻击技术网络探测欺骗会话劫持拒绝服务攻击(DoS)缓冲区溢出口令探测社交工程物理攻击木马隐藏踪迹第6页,共156页,2023年,2月20日,星期六网络攻击技术-欺骗欺骗技术IP欺骗假冒他人的IP地址发送信息邮件欺骗假冒他人的邮件地址发送信息Web欺骗你连到的网站是真的吗?其他欺骗DNS欺骗非技术性欺骗第7页,共156页,2023年,2月20日,星期六IP欺骗IP欺骗的动机隐藏自己的IP地址,防止被追踪以IP为授权依据穿越防火墙IP欺骗的形式单向IP欺骗双向IP欺骗更高级的形式:TCP会话劫持IP欺骗成功的要诀IP数据包路由原则:根据目标地址进行路由第8页,共156页,2023年,2月20日,星期六IP欺骗(一)简单欺骗改变自己的IP地址问题只能发送数据包无法收到回送的数据包防火墙可能阻挡实现手段发送IP包,包头填写上虚假的源IP地址在Unix平台上,直接用socket就可以需要root权限在Windows平台上,需要不能使用winsock可以使用winpcap等工具第9页,共156页,2023年,2月20日,星期六IP欺骗(二)双向欺骗关键技术-让回应包通过HH和A在同一个子网内部使用源路由选项被假冒者A目标机器B攻击者H假冒包:A->B回应包:B->AH能看到这个包吗?第10页,共156页,2023年,2月20日,星期六IP欺骗(三)如何避免IP欺骗主机保护保护自己的机器不被用来实施IP欺骗物理防护、保护口令权限控制,防止其他人随意修改配置信息注意其他的安全措施保护自己的机器不被成为假冒的对象无能为力网络防护路由器上设置过滤器入口:外来包带有内部IP地址出口:内部包带有外部IP地址防止源路由攻击路由器上禁止这样的包第11页,共156页,2023年,2月20日,星期六电子邮件欺骗为什么要进行电子邮件欺骗隐藏发件人的身份,例如匿名信挑拨离间,唯恐世界不乱骗取敏感信息欺骗的形式使用类似的电子邮件地址修改邮件客户端软件的账号配置直接连到SMTP服务器上发信电子邮件欺骗的方法与现实邮局进行比较基本邮件协议没有认证机制发信可以要求认证第12页,共156页,2023年,2月20日,星期六电子邮件欺骗(一)使用类似的邮件地址发信人使用被假冒者的名字注册一个账号,然后给目标发送一封正常的信他(她)能识别吗?我是你的上司XX,请把XXX发送给我我在外面度假,请送到我的个人信箱第13页,共156页,2023年,2月20日,星期六电子邮件欺骗(二)对于类似邮件地址的解决使用数字签名修改邮件客户端软件的账号设置姓名(Name)属性,会出现在“From”和“Reply-To”字段中,然后显示在“发件人”信息中电子邮件地址,会出现在“From”字段中回复地址,会出现在“Reply-To”字段中,可以不填保护用户免受修改邮件客户的攻击查看完整的电子邮件头部信息多数邮件系统允许用户查看邮件从源地址到目的地址经过的所有主机第14页,共156页,2023年,2月20日,星期六电子邮件欺骗(三)直接连到SMTP服务器上发信telnet连到SMTP服务器的25端口,然后发送命令,常用的命令为:Helo、Mailfrom、Rcptto、Data、Quit保护措施邮件服务器的验证Smtp服务器验证发送者的身份,以及发送的邮件地址是否与邮件服务器属于相同的域验证接收方的域名与邮件服务器的域名是否相同有的也验证发送者的域名是否有效,通过反向DNS解析攻击者可以运行自己的smtp邮件服务器不能防止一个内部用户冒充另一个内部用户发送邮件第15页,共156页,2023年,2月20日,星期六Web欺骗Web是建立在应用层上的服务,直接面向Internet用户Web欺骗的根源由于Internet的开放性,任何人都可以建立自己的Web站点Web站点名字(DNS域名)可以自由注册,按先后顺序并不是每个用户都清楚Web的运行规则Web欺骗的动机商业利益,商业竞争政治目的Web欺骗的形式使用相似的域名Cross-SiteScripting第16页,共156页,2023年,2月20日,星期六Web欺骗(一)使用相似的域名注册一个与目标公司或者组织相似的域名,然后建立一个欺骗网站,骗取该公司用户的信任,以得到这些用户的信息例如:使用来混淆如果客户提供了敏感信息,那么这种欺骗可能会带来更大的危害用户在假冒的网站上订购了一些商品,然后出示支付信息。假冒的网站把这些信息记录下来并分配一个cookie,然后提示:现在网站出现故障,请重试一次。当用户重试的时候,假冒网站发现这个用户带有cookie,就把它的请求转到真正的网站上。对于从事商业活动的用户,应对这种欺骗提高警惕第17页,共156页,2023年,2月20日,星期六Web欺骗(二)Cross-SiteScripting(跨站脚本攻击)现在流行的一种攻击方式绝大多数交互网站或者服务提供网站可能存在这种漏洞攻击产生的根源网站提供交互时可使用HTML代码,用户可上传恶意脚本代码攻击方式(以一个论坛网站为例)AntiBoardSQL注入及跨站脚本攻击漏洞AntiBoard是一款基于PHP的论坛程序。

AntiBoard对用户提交的参数缺少充分过滤,远程攻击者可以利用这个漏洞获得敏感信息或更改数据库。

第18页,共156页,2023年,2月20日,星期六Web欺骗(三)防止Web欺骗-使用相似的域名注意观察URL地址栏的变化不要信任不可靠的URL信息你是不是相信自己?许多人根据自己的猜测去在浏览器地址栏中写下要访问的网址防止Web欺骗-Cross-SiteScripting网站不允许使用HTML语言过于严格,没有必要网站不允许使用脚本程序对特殊字符的过滤黑客们的对策采用另一种字符表达方式来逃避过滤,例如:改用ASCII码替换<>如<>第19页,共156页,2023年,2月20日,星期六欺骗技术总结我们从上述欺骗技术可以认识到IP协议本身的缺陷性应用层上也缺乏有效的安全措施在攻击技术里,欺骗技术是比较低级的,基本上是针对Internet上不完全的机制发展起来的技术含量不高非技术的欺骗社交工程最有效的攻击方法避免欺骗的最好办法增强用户的安全意识,尤其是网络管理人员和软件开发人员的安全意识第20页,共156页,2023年,2月20日,星期六网络攻击技术-会话劫持在现实生活中,例如银行的一笔交易如果营业员检查了顾客的身份证和帐户卡,抬起头来,发现不再是刚才的顾客他会把钱交给外面的顾客吗?网络中的问题在网络上,没有人知道你是一条狗第21页,共156页,2023年,2月20日,星期六TCP会话劫持欺骗和劫持欺骗是伪装成合法用户,以获得一定的利益劫持是积极主动地使一个在线的用户下线,或者冒充这个用户发送消息,以便达到自己的目的动机Sniffer对于一次性密钥并没有用认证协议使得口令不在网络上传输会话劫持分两种被动劫持监听网络流量,发现密码或者其他敏感信息主动劫持找到当前会话并接管过来,迫使一方下线,由劫持者取而代之攻击者接管了一个合法会话后,可以做更多危害性更大的事情第22页,共156页,2023年,2月20日,星期六TCP会话劫持被劫持者A服务器B1A远程登录,建立会话,完成认证过程攻击者H2监听流量3劫持会话4迫使A下线第23页,共156页,2023年,2月20日,星期六会话劫持原理TCP协议三次握手建立TCP连接(一个

TCP会话)终止一个会话,正常情况需要4条消息如何标识一个会话状态:源IP:端口+SN<>目标IP:端口+SN从TCP会话状态入手要了解每一个方向上的SN(数据序列号)两个方向上的序列号是相互独立的TCP数据包,除了第一个

SYN包以外,都有一个ack

标志,给出了期待对方发送数据的序列号猜测序列号是成功劫持TCP会话的关键第24页,共156页,2023年,2月20日,星期六TCP协议中的序列号(一)在每一个ACK包中,有两个序列号第一个(SEG_SEQ)是当前包中数据第一个字节的序号第二个(SEG_ACK)是期望收到对方数据包中第一个字节的序号假设客户(CLT)向服务器(SVR)发起一个连接SVR_SEQ:服务器将要发送的下一个字节的序号SVR_ACK:服务器将要接收的下一个字节的序号(已经收到的最后一个字节的序号加1)SVR_WIND:服务器的接收窗口CLT_SEQ:客户将要发送的下一个字节的序号CLT_ACK:客户将要接收的下一个字节的序号(已经收到的最后一个字节的序号加1)CLT_WIND:客户的接收窗口第25页,共156页,2023年,2月20日,星期六TCP协议中的序列号(二)关系CLT_ACK<=SVR_SEQ<=CLT_ACK+CLT_WINDSVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WIND只有满足这样条件的包,对方才能接收否则,抛弃该数据包,并且送回一个ACK包(含有期望的序列号)同步状态SVR_SEQ=CLT_ACKCLT_SEQ=SVR_ACK不同步状态SVR_SEQ<>CLT_ACKCLT_SEQ<>SVR_ACK第26页,共156页,2023年,2月20日,星期六TCP协议中的序列号(三)如果TCP进入不同步状态客户发送一个包SEG_SEQ=CLT_SEQSEG_ACK=CLT_ACK这个包不会被接收,因为CLT_SEQ<>SVR_ACK相反,如果第三方(攻击者)发送一个包SEG_SEQ=SVR_ACKSEG_ACK=SVR_SEQ这个包可以被服务器接收如果攻击者能够伪造两边的包的话,还可以恢复客户和服务器之间的会话,使得回到同步状态第27页,共156页,2023年,2月20日,星期六TCPACKStorm当一个主机接收到一个不期望的数据包时,它会用自己的序列号发送ACK,而这个包本身也是不可被接受的。于是,两边不停地发送ACK包,形成ACK包的循环,称为ACK风暴(ACKStorm)如果有一个ACK包丢掉,则风暴停止第28页,共156页,2023年,2月20日,星期六在建立连接的时候劫持会话当攻击者听到握手过程第二步的时候,它给服务器发送一个RST包,然后发送用同样的TCP和端口号构造的一个SYN包,但是序列号与前面的SYN包不同服务器关闭第一个连接,打开第二个连接,并且送回第二个SYN/ACK给客户,攻击者听到这个包之后,给服务器送出一个ACK包至此,客户、服务器、攻击者都进入到TCPESTABLISHED状态,但是攻击者和服务器之间是同步的,而客户和服务器之间是不同步的注意,攻击者选择的序列号与客户的序列号一定要不同,否则不能成功第29页,共156页,2023年,2月20日,星期六给一方发送空数据攻击者首先观察会话然后,给服务器发送一些无关紧要的数据,这些数据会导致服务器的序列号发生变化攻击者给客户也可以发送数据这种手段成功的要点在于可以发送一些无关紧要的数据,并且能够把握发送的时机第30页,共156页,2023年,2月20日,星期六不在一个子网中的劫持手法有时候也称作“Blindspoofing”攻击者发送一个SYN包然后猜测服务器的ISN只要能够猜得到,就可以建立连接但是攻击者收不到服务器给客户的包使用源路由技术条件真正的客户不能发送RST包攻击者能够猜测服务器每个包的大小第31页,共156页,2023年,2月20日,星期六实施会话劫持的一般性过程发现目标找到什么样的目标,以及可以有什么样的探查手段,取决于劫持的动机和环境探查远程机器的ISN(初始序列号)规律可以使用扫描软件,或者手工发起多个连接等待或者监听对话最好在流量高峰期间进行,不容易被发现,而且可以有比较多可供选择的会话猜测序列号最关键的一步,如果不在一个子网中,难度就非常大使被劫持者下线ACK风暴,拒绝服务接管对话如果在同一子网中,则可以收到响应,否则要猜测服务器的动作第32页,共156页,2023年,2月20日,星期六KillaConnection攻击者发送一个RST包给B,并且假冒A的IP地址观察A和B之间的数据往来,算出A和B的序列号,在适当的时机插入一个RST包,只要在插入点上,序列号正确,则RST包就会被接受,从而达到目的攻击者发送一个FIN包给B,并且假冒A的IP地址同样,在适当的时机给B发送一个FIN包这时候,A怎么办?AB攻击者第33页,共156页,2023年,2月20日,星期六会话劫持过程详解(一)A向B发送一个数据包

SEQ(hex):XACK(hex):Y

FLAGS:-APWindow:ZZZZ,包大小为:60

B回应A一个数据包

SEQ(hex):YACK(hex):X+60

FLAGS:-APWindow:ZZZZ,包大小为:50

AB攻击者第34页,共156页,2023年,2月20日,星期六会话劫持过程详解(二)

A向B回应一个数据包

SEQ(hex):X+60ACK(hex):Y+50

FLAGS:-APWindow:ZZZZ,包大小为:40

B向A回应一个数据包

SEQ(hex):Y+50ACK(hex):X+100

FLAGS:-APWindow:ZZZZ,包大小为:30

攻击者BA第35页,共156页,2023年,2月20日,星期六会话劫持过程详解(三)

攻击者C冒充主机A给主机B发送一个数据包

SEQ(hex):X+100ACK(hex):Y+80

FLAGS:-APWindow:ZZZZ,包大小为:20

B向A回应一个数据包

SEQ(hex):Y+80ACK(hex):X+120

FLAGS:-APWindow:ZZZZ,包大小为:10

A攻击者B第36页,共156页,2023年,2月20日,星期六会话劫持过程详解(四)主机B执行了攻击者C冒充主机A发送过来的命令,并且返回给主机A一个数据包;但是,主机A并不能识别主机B发送过来的数据包,所以主机A会以期望的序列号返回给主机B一个数据包,随即形成ACK风暴。如果成功的解决了ACK风暴(例如ARP欺骗),就可以成功进行会话劫持了。

A攻击者B第37页,共156页,2023年,2月20日,星期六如何防止会话劫持部署共享式网络,用交换机代替集线器无法进行监听TCP会话加密防火墙配置限制尽可能少量的外部许可连接的IP地址检测ACK包的数量明显增加第38页,共156页,2023年,2月20日,星期六网络攻击技术-拒绝服务攻击(DoS)DoS(DenialofService)信息安全的三个概念保密性、完整性、可用性针对可用性进行攻击定义:通过某些手段使得目标系统或者网络不能提供正常的服务特点:技术原理简单,工具化难以防范,有限DoS可以通过管理的手段防止DoS的动机无法攻入系统的报复强行重启对方机器恶意破坏或者报复网络恐怖主义第39页,共156页,2023年,2月20日,星期六DoS的危害使得正常的服务不能提供案例:1996年9月,一家ISP(PublicAccessNetworks)公司遭受拒绝服务达一周一上,拒绝对约6000多人和1000家公司提供Internet服务政府网站美国白宫的网站曾经遭受拒绝服务攻击分布式拒绝服务-DDoS2000年2月,一批商业性质的Web站点收到了DDoS的攻击Yahoo、eBuy、CNN等著名网站都受到过分布式拒绝服务攻击第40页,共156页,2023年,2月20日,星期六DoS的形式粗略来看,分为三种形式消耗有限的物理资源网络资源带宽资源其他资源衰竭,如磁盘空间、进程数合法用户可登录尝试的次数有限,攻击者可以用掉这些尝试次数修改配置信息造成DoS比如,修改路由器信息,造成不能访问网络;修改NT注册表,也可以关掉某些功能物理部件的移除,或破坏第41页,共156页,2023年,2月20日,星期六DoS的技术分类从表现形式来看带宽消耗用足够的资源消耗掉有限的资源利用网络上的其他资源(恶意利用Internet共享资源),达到消耗目标系统或网络的目的系统资源消耗,针对操作系统中有限的资源,如进程数、磁盘、CPU、内存、文件句柄,等等程序实现上的缺陷,异常行为处理不正确,比如PingofDeath修改(篡改)系统策略,使得它不能提供正常的服务从攻击原理来看通用类型的DoS攻击,这类攻击往往是与具体系统无关的,比如针对协议设计上的缺陷的攻击系统相关的攻击,这类攻击往往与具体的实现有关说明:最终,所有的攻击都是系统相关的,因为有些系统可以针对协议的缺陷提供一些补救措施,从而免受此类攻击第42页,共156页,2023年,2月20日,星期六DoS的技术历史早期的Internet蠕虫病毒RobertMorris的RTM蠕虫消耗网络资源分片装配,非法的TCP标志,SYNFlood,等利用系统实现上的缺陷,点对点形式PingofDeath,IP分片重叠分布式DoS(DDoS)攻击最著名的smurf攻击第43页,共156页,2023年,2月20日,星期六一些典型的DoS攻击(一)PingOfDeath原理:直接利用ping包,即ICMPEcho包,有些系统在收到大量比最大包还要长的数据包,会挂起或者死机受影响的系统:许多操作系统受影响著名的windows蓝屏工具攻击做法直接利用ping工具,发送超大的ping数据包利用特制的工具,例如:IPHacker防止措施打补丁防火墙阻止这样的ping包第44页,共156页,2023年,2月20日,星期六一些典型的DoS攻击(二)TearDrop原理:利用IP包的分片装配过程中,由于分片重叠,计算过程中出现长度为负值,在执行memcpy的时候导致系统崩溃受影响的系统:Linux/WindowsNT/95,97年发现攻击特征攻击非常简单,发送一些IP分片异常的数据包防止措施加入条件判断,对这种异常的包特殊处理打补丁SSPing碎片ICMP数据包产生DoS影响Windows95和NT系统以及老版本的MAC系统第45页,共156页,2023年,2月20日,星期六一些典型的DoS攻击(三)SYNFlood原理:每个机器都需要为半开连接分配一定的资源这种半开连接的数量是有限制共计方利用TCP连接三次握手过程,打开大量的半开TCP连接目标机器不能进一步接受TCP连接。机器就不再接受进来的连接请求。受影响的系统:大多数操作系统攻击细节连接请求是正常的,但是,源IP地址往往是伪造的,并且是一台不可达的机器的IP地址,否则,被伪造地址的机器会重置这些半开连接一般,半开连接超时之后,会自动被清除,所以,攻击者的系统发出SYN包的速度要比目标机器清除半开连接的速度要快任何连接到Internet上并提供基于TCP的网络服务,都有可能成为攻击的目标这样的攻击很难跟踪,因为源地址往往不可信,而且不在线第46页,共156页,2023年,2月20日,星期六一些典型的DoS攻击(四)SYNFlood攻击特征目标主机的网络上出现大量的SYN包,而没有相应的应答包SYN包的源地址可能是伪造的,甚至无规律可循防止措施针对网络防火墙或者路由器可以在给定时间内只允许有限数量的半开连接入侵检测,可以发现这样的DoS攻击行为打补丁Linux和Solaris使用了一种被称为SYNcookie的技术来解决SYNFlood攻击:在半开连接队列之外另设置了一套机制,使得合法连接得以正常继续第47页,共156页,2023年,2月20日,星期六一些典型的DoS攻击(五)Smurf原理:攻击者向一个广播地址发送ICMPEcho请求,并且用受害者的IP地址作为源地址广播地址网络上的每台机器响应这些Echo请求,同时向受害者主机发送ICMPEcho-Reply应答受害者主机会被这些大量的应答包淹没受影响的系统:大多数操作系统和路由器变种:fraggle,使用UDP包,或称为udpsmurf比如,7号端口(echo),如果目标机器的端口开着,则送回应答UDP数据包,否则,产生ICMP端口不可达消息技术细节两个主要的特点:使用伪造的数据包,使用广播地址。不仅被伪造地址的机器受害,目标网络本身也是受害者,它们要发送大量的应答数据包第48页,共156页,2023年,2月20日,星期六一些典型的DoS攻击(六)第49页,共156页,2023年,2月20日,星期六一些典型的DoS攻击(七)攻击特征涉及到三方:攻击者,中间目标网络,受害者以较小的网络带宽资源,通过放大作用,吃掉较大带宽的受害者系统Smurf放大器Smurf放大器网络:不仅允许ICMPEcho请求发给网络的广播地址,并且允许ICMPEcho-Reply发送回去这样的公司越多,对Internet的危害就越大实施Smurf攻击需要长期的准备,首先找到足够多的中间网络集中向这些中间网络发出ICMPEcho包第50页,共156页,2023年,2月20日,星期六一些典型的DoS攻击(八)Smurf攻击的防护针对最终受害者没有直接的方法可以阻止自己接收ICMPEchoReply消息在路由器上阻止这样的应答消息,但是,结果是,路由器本身遭受了DoS攻击与中间目标网络联系针对中间网络关闭外来的IP广播消息,但是,如果攻击者从内部机器发起攻击,仍然不能阻止smurf攻击配置操作系统,对于广播地址的ICMP包不响应在每个路由节点上都记录log,以备查流量大的路由节点上能够记录所有的流量吗第51页,共156页,2023年,2月20日,星期六DDoS的一般模型第52页,共156页,2023年,2月20日,星期六DoS的防护措施对于网络路由器和防火墙配置得当,可以减少受DoS攻击的危险比如,禁止IP欺骗可以避免许多DoS攻击入侵检测系统,检测异常行为对于系统升级系统内核,打上必要的补丁,特别是一些简单的DoS攻击,例如SYNFlooding关掉不必要的服务和网络组件如果有配额功能的话,正确地设置这些配额监视系统的运行,避免降低到基线以下检测系统配置信息的变化情况保证物理安全建立备份和恢复机制第53页,共156页,2023年,2月20日,星期六网络攻击技术-缓冲区溢出缓存区溢出历史1988年的Morris蠕虫病毒,成功攻击了6000多台机器:利用UNIX服务finger中的缓冲区溢出漏洞来获得访问权限,得到一个shell1996年前后,开始出现大量的BufferOverflow攻击,因此引起人们的广泛关注源码开放的操作系统首当其冲随后,Windows系统下的BufferOverflows也相继被发掘出来已经有一些非常经典细致的文章来介绍与Bufferoverflows有关的技术第54页,共156页,2023年,2月20日,星期六缓冲区溢出的基本介绍基本的思想通过修改某些内存区域,把一段恶意代码存储到一个buffer中,并且使这个buffer被溢出,以便当前进程被非法利用(执行这段恶意的代码)危害性在UNIX平台上,通过发掘BufferOverflow,可以获得一个交互式的shell在Windows平台上,可以上载并执行任何的代码溢出漏洞发掘起来需要较高的技巧和知识背景,但是,一旦有人编写出溢出代码,则用起来非常简单与其他的攻击类型相比,缓冲区溢出攻击不需要太多的先决条件杀伤力很强技术性强在BufferOverflows攻击面前,防火墙往往显得很无奈第55页,共156页,2023年,2月20日,星期六读取或写入超过缓冲区的末尾时,会导致许多不同(并且通常是不可预料的)行为:1)程序的执行很奇怪2)程序完全失败3)程序可以继续,而且在执行中没有任何明显不同存在缓冲区溢出的程序的不确定行为使得对它们的调试非常困难。程序可能正发生缓冲区溢出,但根本没有任何副作用的迹象。因此,缓冲区溢出问题常常在标准测试期间是发现不了的。认识缓冲区溢出的重要一点是:在发生溢出时,会潜在地修改碰巧分配在缓冲区附近的任何数据。第56页,共156页,2023年,2月20日,星期六“SQLSlammer”蠕虫王的发作原理,就是利用未及时更新补丁的MSSQLServer数据库缓冲溢出漏洞。采用不正确的方式将数据发到MSSqlServer的监听端口,这个错误可以引起缓冲溢出攻击。目前新出现的MSBLAST病毒正是利用了微软关于RPC接口中远程任意可执行代码漏洞,“中招”的机器会反复重启,或者拷贝、粘贴功能不工作等现象。仅去年缓冲区溢出就占使CERT/CC提出建议的所有重大安全性错误的百分之五十以上。并且数据显示这一问题正在扩大,而不是在缩减。第57页,共156页,2023年,2月20日,星期六缓冲区溢出的保护方法编写正确的代码最简单的方法就是用grep来搜索源代码中容易产生漏洞的库的调用为了对付这些问题,人们已经开发了一些高级的查错工具,如faultinjection等。这些工具的目的在于通过人为随机地产生一些缓冲区溢出来寻找代码的安全漏洞。非执行的缓冲区通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行被植入被攻击程序输入缓冲区的代码,这种技术被称为非执行的缓冲区技术。事实上,很多老的Unix系统都是这样设计的,但是近来的Unix和MSWindows系统为实现更好的性能和功能,往往在数据段中动态地放人可执行的代码。所以为了保持程序的兼容性不可能使得所有程序的数据段不可执行。但是我们可以设定堆栈数据段不可执行,这样就可以最大限度地保证了程序的兼容性。第58页,共156页,2023年,2月20日,星期六缓冲区溢出的保护方法数组边界检查程序指针完整性检查第59页,共156页,2023年,2月20日,星期六缓冲区溢出技术基础(一)进程的内存空间示意图StackHeapBssDataText第60页,共156页,2023年,2月20日,星期六缓冲区溢出技术基础(二)相关的汇编知识段式结构从段式结构->线性结构内存区域的访问控制段描述符指令流的控制ECS:EIPJmp指令(及其他跳转指令)Call指令/ret栈段ESS两个指针:ESP(动态),EBP(静态)Call/ret指令Push/pop/pusha/popa第61页,共156页,2023年,2月20日,星期六缓冲区溢出技术基础(三)函数调用函数:intfunc(inta,intb){intretVal=a+b;returnretVal;}intmain(intargc,char*argv[]){ intresult=func(1,2); printf("HelloWorld!\n"); return0;}EIP、EBP、ESP指针21Ret-addebpretVal……Stackframe第62页,共156页,2023年,2月20日,星期六缓冲区溢出技术基础(四)产生缓冲区溢出的原因在C语言中,指针和数组越界不保护是Bufferoverflow的根源,而且,在C语言标准库中就有许多能提供溢出的函数,如strcat(),strcpy(),sprintf(),vsprintf(),bcopy(),gets()和scanf()通过指针填充数据不好的编程习惯溢出类型栈溢出堆溢出第63页,共156页,2023年,2月20日,星期六栈溢出#include<stdio.h>#include<string.h>charshellcode[]="\xeb\x1f\x……";charlarge_string[128];intmain(intargc,char**argv){charbuffer[96];inti;long*long_ptr=(long*)large_string;

for(i=0;i<32;i++)*(long_ptr+i)=(int)buffer;for(i=0;i<(int)strlen(shellcode);i++)large_string[i]=shellcode[i];

strcpy(buffer,large_string);return0;}para1para2ReturnaddBuffer(96bytes)ilong_ptr高地址低地址shellcode第64页,共156页,2023年,2月20日,星期六堆溢出(一)内存中的一些数据区.text包含进程的代码.data包含已经初始化的数据(全局的,或者static的、并且已经初始化的数据).bss包含未经初始化的数据(全局的,或者static的、并且未经初始化的数据)heap运行时刻动态分配的数据区还有一些其他的数据区在.data、.bss和heap中溢出的情形,都称为heapoverflow,这些数据区的特点是:

数据的增长由低地址向高地址第65页,共156页,2023年,2月20日,星期六堆溢出(二)比较少引起人们的关注,原因在于比栈溢出难度更大需要结合其他的技术,比如函数指针改写Vtable改写Malloc库本身的漏洞对于内存中变量的组织方式有一定的要求第66页,共156页,2023年,2月20日,星期六堆溢出(三)指针改写要求:先定义一个buffer,再定义一个指针溢出情形当对buffer填充数据的时候,如果不进行边界判断和控制的话,自然就会溢出到指针的内存区,从而改变指针的值第67页,共156页,2023年,2月20日,星期六堆溢出(四)vtable函数指针改写函数指针与函数体的绑定Earlybinding,在编译过程中绑定Latebinding,在运行过程中绑定C++的虚函数机制编译器为每一个包含虚函数的class建立起vtable,vtable中存放的是虚函数的地址编译器也在每个class对象的内存区放入一个指向vtable的指针(称为vptr),vptr的位置随编译器的不同而不同,VC放在对象的起始处,gcc放在对象的末尾Overflow设法改写vptr,让它指向另一段代码第68页,共156页,2023年,2月20日,星期六缓冲区溢出成功后的行为溢出之后,让程序执行我们指定的代码我们自己提供的一段代码系统现有的调用由于这段代码往往不能太长,所以需要精心设计,并且充分利用系统中现有的函数和指令对于不同的操作系统Linux/Unix,尽可能地得到一个shell(最好是rootshell)Windows,一个可以远程建立连接的telnet会话通用的模式找到具有漏洞的程序(vulnerableprogram)编写出shellcode,然后编写把shellcode送到漏洞程序的程序(称为exploit)第69页,共156页,2023年,2月20日,星期六Windows系统的缓冲区溢出过程发现目标找到有漏洞的程序,如果在输入非正常字符串的时候,出现右图的情形或者从程序中找漏洞,用好的反汇编工具,加上耐心以一个特定的字符串作为线索,跟踪到strcpy这样的函数,看是否有边界检查编写shellcode编写exploit程序,并试验,直到成功第70页,共156页,2023年,2月20日,星期六ShellCode代码的特点本地shellcode:最简单的做法是调用CreateProcess创建一个进程,执行cmd.exe远程shellcode:在远程机器上执行一个网络服务程序,打开一个socket端口,等待客户程序来连接。当客户程序连接上之后,为客户建立一个cmd.exe进程,并且把客户的输入输出与cmd.exe的输入输出联系起来,于是客户就有了一个远程shell如何把输入输出联系起来呢?可以通过管道(pipe)来实现。第71页,共156页,2023年,2月20日,星期六避免缓冲区溢出(一)很难写出完全不会受到缓冲区溢出攻击的安全代码编程的问题都可以在开发阶段防止,事实上,并没有这么简单有些开发人员没有意识到问题的存在有些开发人员不愿意使用边界检查,因为会影响效率和性能另一方面,许多遗留下来的代码还很多在开发过程中,尽量使用带有边界检查的函数版本,或者自己进行越界检查第72页,共156页,2023年,2月20日,星期六避免缓冲区溢出(二)保护自己的代码不可执行的缓冲区适用于堆栈(stack)中的buffer,基本上不影响兼容性数组越界保护每一次引用一个数组元素的时候,都执行检查缺点:效率低,并且用指针也可以引用数组元素指针保护在指针被引用之前,检测到它的变化最根本的解决办法编写正确的代码第73页,共156页,2023年,2月20日,星期六避免缓冲区溢出(三)作为用户,应该怎么做来避免缓冲区溢出?关闭端口或服务。管理员应该知道自己的系统上安装了什么,并且哪些服务正在运行安装软件厂商的补丁漏洞一公布,大的厂商就会及时提供补丁在防火墙上过滤特殊的流量无法阻止内部人员的溢出攻击自己检查关键的服务程序,看看是否有可怕的漏洞以所需要的最小权限运行软件第74页,共156页,2023年,2月20日,星期六著名的缓冲区溢出介绍(一)NetMeeting缓冲区溢出攻击者的代码可以在客户端执行恶意的网页作者连接到NetMeeting的SpeedDial入口,导致NeetMeeting停止响应或者挂起停止响应后,攻击者的代码将在受害者的计算机中执行Outlook缓冲区溢出Outlook处理电子邮件的方法有一个漏洞攻击者发送一个带有畸形头信息的电子邮件使受害计算机瘫痪或者在上面运行任意代码,建立后门攻击使在邮件头信息里放入过量信息很难被检测第75页,共156页,2023年,2月20日,星期六著名的缓冲区溢出介绍(二)Linuxconf缓冲区溢出带有GUI界面的管理员工具运行在98端口,允许通过Web远程访问意味着程序必须处理头信息来获得需要的信息在HTTP头信息中插入过量的信息,导致计算机缓冲区溢出不允许远程访问98端口IIS缓冲区溢出IIS:windows系统上最不安全的服务ISAPI提供对管理脚本(.ida文件)和Inernet数据(.idq)查询的支持向idq.dll发送一个过量的变量GET/null.ida?[buffer]=XHTTP/1.1Host:[任意值]一些具体的攻击方法没有公开CodeRed蠕虫利用了这一漏洞第76页,共156页,2023年,2月20日,星期六著名的缓冲区溢出介绍(三)WindowsXPUPNP缓冲区溢出通用即插即用功能,打开5000端口,HTTP格式缓冲区溢出有两种形式DoS取得一个系统级ShellSSL-Too-Open影响现存大多数未升级的Linux系统当系统打开HTTP服务和SSL服务时通过SSL溢出一个和启动HTTP服务器帐号权限相等的Shell用户可能使用root帐号启动WEB服务攻击者取得root权限或者使用其他本地溢出来获得最高权限第77页,共156页,2023年,2月20日,星期六网络攻击技术-口令探测如果别人知道了口令,那么有什么安全可言?口令是一些系统中验证用户身份的唯一标识建议:如果我们使用物理设备验证…口令探测广泛应用的攻击手段入门者也能使用的技术涉及方面广泛操作系统普通软件、加密信息口令探测的内容网络监听暴力破解在其他攻击得手后得到密码利用用户的疏忽第78页,共156页,2023年,2月20日,星期六网络监听登录电子信箱或者其他Telnet、FTP服务密码通过明文传输如果黑客在网络上监听,就可以得到用户的密码使用监听工具L0phtcrack监听windows帐户密码可以捕获win2000服务器与其低版本客户机之间发送的消息如果连接一端不支持Kerberos,认证自动降到NTLML0phtcrack可以破解NTLM密码WindowsXP的远程登录桌面在用户登录时帐号和密码用明文传输现在已经修复这个错误第79页,共156页,2023年,2月20日,星期六网络监听的对策使用安全的连接方式使用SecureShell来取代TelnetHTTP的安全连接现有一些论文也在讨论其他一些协议安全认证部分的添加不允许用户使用最高权限帐户远程登录系统UNIX系统下不能使用root帐户远程登录登录后使用su命令切换用户使用SSL加密连接可以直接root登录对L0phtcrack的防范使用交换网络升级系统,使用Kerberos认证第80页,共156页,2023年,2月20日,星期六暴力破解两种方式的破解在线破解在线登录目标主机,通过程序循环输入密码尝试正确的密码输入可能会在日志里留下记录,很容易被探测出来离线破解取得目标主机的密码文件,然后在本地破解花费时间较长,一般时攻击系统取得一定权限后使用暴力破解的手段字典攻击强行攻击组合攻击第81页,共156页,2023年,2月20日,星期六在线破解Windows系统使用NAT(NetBIOSAuditingTool)进行探测在NetBIOS开放138,139端口提供SMB服务,允许用户远程访问文件系统Windows2000缺省共享所有驱动器和admin$访问文件系统时需要用户身份验证NAT可以猜测用户口令,从而取得目标机器的控制权NAT用法:nat[-ofilename][-uuserlist][-ppasslist]addressLinux系统一般在telnet三次错误后,系统会断开连接在线破解的软件较少其他应用系统上的在线破解第82页,共156页,2023年,2月20日,星期六离线破解得到用户的密码文件,然后在本地破解Windows系统用户密码存放在%systemroot%\system32\config\和%systemroot%\repair\中得到这个文件后可以使用L0phtcrack进行本地破解Linux系统用户名和密码存储在/etc/passwd中会被很多用户看到该文件为了加强安全性,将密码存储在etc/shadow中只能由root存取著名的破解工具:JohntheRipper因为Linux在线破解困难,所以离线破解比较常见很多管理员现在没有使用shadow文件第83页,共156页,2023年,2月20日,星期六字典攻击字典:一些单词或者字母和数字的组合使用字典的好处比较快速的得到用户密码,只需要在字典中进行查找前提条件绝大多数用户选择密码总是有一定规律的姓名:自己、父母、爱人、孩子生日电话号码,身份证号码,学号英文单词上述组合打开钱包,我就能知道你的密码设计一个好的字典是非常有必要的防止字典攻击的方法使用带有特殊字符的密码密码不是有规律的英语单词第84页,共156页,2023年,2月20日,星期六强行攻击在选定的字母或者数字序列里生成所有包含这些字母的口令密码生成器,只要用户指定字母和数字和密码的位数,就能生成字典特点密码较多,所需时间较长分布式攻击多台计算机共同运算适用于对用户信息不够了解的情况对策使用长的密码攻击者需要构造出很大的字典,加大攻击难度经常更换密码需要在方便和安全中作出抉择第85页,共156页,2023年,2月20日,星期六组合攻击综合前两种攻击的优点字典攻击:速度较快强行攻击:发现所有的口令根据掌握的用户的不同信息,进行口令组合姓名缩写和生日的组合在字母组合后面加上一些数字攻击速度破解口令数量字典攻击快所有字典单词强行攻击慢所有口令组合攻击中等以字典为基础的单词第86页,共156页,2023年,2月20日,星期六其他攻击方式社会工程非常有用的方法,比技术更加快速给系统管理员打电话提高用户的安全意识偷窥输入密码的时候,是不是有人在背后?当你把密码写在电脑桌边,别人也可以看到…搜索垃圾箱用户会把带有密码的废纸扔到垃圾桶即使没有密码,也许会有提示密码的重要信息使用碎纸机第87页,共156页,2023年,2月20日,星期六网络攻击技术-社交工程黑客们最常用的一种攻击手段能得到使用技术手段不能得到的好处防火墙和IDS对这种攻击不起作用需要高超的人际交往技术常用方式电话电子商务社交工程种类假冒权威假扮同情个人利益改善自我感觉不引人注意的职业奖赏第88页,共156页,2023年,2月20日,星期六社交工程(SocialEngineering)假冒权威黑客冒充公司的领导人员在大公司中,不认识所有上司的情况非常普通在Internet上,黑客可以通过邮件列表发出入侵的安全警告,并提供解决问题的指令,指令被设计成能使黑客访问系统。足够显眼的标题和时髦的行话假扮电话、电子邮件、聊天室和短消息里假扮你的熟人如果你是新来的职员,冒充你的同事同情如果一个人打电话来,讲述他的困难,你不帮助他吗?个人利益假冒来自财务部门的员工,访问系统管理员第89页,共156页,2023年,2月20日,星期六社交工程(续)改善自我感觉自我感觉良好的人易于被欺骗黑客进入热情的经理房间,表明自己是来自市场部的新员工,会得到详细的介绍不引人注意的职业来自天然气、电力公司或者电话公司的员工请求拨号等上机操作人们会单独把黑客放在房间里奖赏提供某种形式的奖赏会引诱人泄露信息口令比赛-赢大奖、展示创造性,请列出密码第90页,共156页,2023年,2月20日,星期六避免受到社交工程攻击极度警惕Donottrustanystranger即使是很友好的人怀疑一切声称并不代表他有权这样做询问他们的权限绝大多数社交工程在高度警惕下破产验证出处当某人电子邮件要求时,要求来电话确证对于电话里的请求,要求回电号码并确证员工号码或者身份证第91页,共156页,2023年,2月20日,星期六避免受到社交工程攻击(续)说不对于逾越日常行为准则的要求,要拒绝要求按照正常程序和规定书面报告和授权信息用户培训培训员工,提高安全意识第92页,共156页,2023年,2月20日,星期六网络攻击技术-物理攻击例子:MissionImpossibleI多种保护措施未联网的CIA中央电脑如果你希望一台计算机安全,最好把它锁起来物理接触到计算机,这台计算机就没有任何安全可言甚至是其他资源,也可能会影响到安全写有口令的提示条网络组织结构图软盘、光盘、笔记本公司的物理结构、组织图标、安全策略告示、内部专用手册信纸和备忘录常常和社交工程共同使用第93页,共156页,2023年,2月20日,星期六物理攻击(一)计算机的安全密码将失去效用开机密码BIOS放电、DEBUG程序、通用密码Windows系统密码软盘启动,删除SAM将硬盘挂到其他机器上Linux系统密码使用单用户模式启动系统如果使用LILO,输入Linuxsingle对于GRUB密码启动,使用软盘启动或者拆卸硬盘第94页,共156页,2023年,2月20日,星期六物理攻击(二)计算机安全用户离开时黑客会在用户的机器上安装木马解决方法:使用带密码的屏保程序道高一尺,魔高一丈使用一张放入光驱后自动运行的光盘,自动运行杀掉屏保程序进程的程序得到用户的IP,并把另一台机器设置为这个目标机器的IP更好的解决办法-锁定计算机第95页,共156页,2023年,2月20日,星期六物理攻击(三)其他方面的防御措施禁止非特权用户接触到网络信息机房应该不是人人都能进入的地方对于机密文件和手册,一定要彻底粉碎,使其不可恢复1980年伊朗曾经把美国粉碎的文件重新编织起来不要把口令或者ID记录在其他人可以看到的地方笔记本电脑的安全措施注意笔记本电脑的防盗措施一旦笔记本电脑被盗,盗窃者最终必定能够访问其中的文件备份不要留在笔记本上,保存在安全的地方旅行中注意笔记本的安全办公场所要求任何人离开都要进行笔记本电脑检查,电脑对应标签第96页,共156页,2023年,2月20日,星期六物理攻击(四)防止用户修改机器设置保护BIOS机器放到安全房间摄像头机箱上加锁设置启动顺序为硬盘优先如果是软盘或者光盘的话,黑客很容易使用自己的设备启动保护启动设备去掉光驱或者软驱对光驱和软驱加锁,不能随便使用对于Linux系统,使用GRUB启动并且加密对于Windows系统,设置安全的密码第97页,共156页,2023年,2月20日,星期六安装后门攻击者在攻击成功后,为了能够下次进入系统,需要留下后门-迅速重新获取访问权的机制后门种类创建帐号不易被人察觉的帐号启动文件在系统启动的时候运行程序利用设备驱动程序创建后门受调度的作业将后门放到调度作业队列中远程控制安装木马第98页,共156页,2023年,2月20日,星期六网络攻击技术-木马既是攻击系统得到系统权限的方法,又是攻击得手后留下后门的手段曾在网络上成为主要的攻击手段尤其在Windows系统下极为流行在校园网,有50%以上的机器带有木马木马的原理两个部分:外壳程序和内核程序内核程序启动后在后台运行,打开端口,开启后门黑客连接到木马打开的端口,向木马下达命令一种C/S结构随着反木马技术的发展,木马也越来越隐蔽第99页,共156页,2023年,2月20日,星期六特洛伊木马(一)Windows系统下的木马一般将木马写到注册表中或者启动组中注册表位置:HKLM\Software\Microsoft\Windows\CurrentVersion\Run或者HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices容易被查杀木马的对策设计成一个DLL,将自己写到其他程序的运行空间中但是还是要打开端口用户对策防火墙,切断木马的对外连接查看打开端口的程序名称,从而查找木马第100页,共156页,2023年,2月20日,星期六特洛伊木马(二)特洛伊木马技术的发展反向端口技术不需要打开端口,而是监听端口防火墙一般不会阻塞掉内部访问外部80端口的数据包木马定期向黑客指定的机器80端口发送数据包,机器接收后,就可以知道哪台机器中了木马,从而对它进行控制木马更加隐蔽,难以发现GINA木马攻击得手后使用或者物理接触到机器GINA是用户和Windows认证系统间的中间人,允许用户自己编写黑客将自己写的GINAdll程序加入到注册表中,可以捕获用户和密码第101页,共156页,2023年,2月20日,星期六特洛伊木马(三)用户对木马的对策不要运行不明的EXE程序即便是熟人的邮件附件,也许是邮件欺骗使用可升级的反病毒软件现在一般的反病毒软件都可以查杀木马只能针对已经被知道的木马加强系统管理注意系统中用户的合理权限注册表的安全性堡垒总是从内部攻破防火墙软件至少在木马已经种植成功后无法和黑客进行通信第102页,共156页,2023年,2月20日,星期六特洛伊木马(四)Linux下的木马简介在登录界面做文章在自己的帐号下面做一个程序,运行后显示登录界面其他用户在登录时输入密码和帐号记录密码和帐号,然后提示用户输入错误,请重试退出自己程序,进入到真正的登录界面在PATH中包含“.”的坏习惯多数用户习惯于在路径中包含“.”在/tmp下建立ls文件如果root在环境变量中包含了“.”,并且位置先于ls所在的系统命令,root在/tmp下执行ls就会执行黑客设置的程序将“.”放在路径最后也会出现某些问题第103页,共156页,2023年,2月20日,星期六特洛伊木马(五)Linux下的木马替换一些可执行文件(文件级Rootkit)LoginLsPsWho防范对文件进行Hash编码,比较新文件和保存的编码将Rootkit挂在内核上执行不修改文件,很难被发现工作效率高防范系统运行在最小权限运行单内核系统,其他任何可加载模块都省去第104页,共156页,2023年,2月20日,星期六木马的发展趋势跨平台性主要是针对Windows系统而言,木马可以在Windows98/Me下使用,也可以在WindowsNT/2000/Xp下使用。在Windows9x系统中,木马程序很容易隐藏,也很容易控制计算机。但WindowsNT和Windows2000/Xp都具有了权限的概念,这和Windows9x不同,需要木马程序采用更高级的手段,如控制进程等,现在的一些木马程序也的确做到了这点。模块化设计模块化设计是软件开发的一种潮流,现在的木马程序也有了模块化设计的概念。例如,BO,NetBus,Sub7等经典木马都有一些优秀的插件在纷纷问世,就是一个很好的说明。木马程序在开始运行时可以只有基本的功能,但在控制过程中,可以从控制端传送某些复杂模块库到被控制端,达到自我升级的目的。第105页,共156页,2023年,2月20日,星期六即时通知木马的控制端如何知道被控端在哪里运行了呢?如果被控主机使用固定IP地址,还比较容易检查,但如果是动态IP,就比较麻烦。现在的木马程序已经有了通过IRC、ICQ通知等,但仍需进一步完善。第106页,共156页,2023年,2月20日,星期六网络攻击技术-隐藏踪迹隐藏踪迹的动机不需要再进入为了使建立的后门不易被发现防止系统管理员发现攻击者从另一方面讲,用户如果对攻击者隐藏攻击踪迹的方法很了解,可以准确地确定自己的系统是否遭到过攻击隐藏攻击踪迹的方法日志文件文件信息修改系统文件另外的信息上传或者安装一些文件网络通信流量需要在网络上留下的痕迹去掉抹去IDS的记录是困难的第107页,共156页,2023年,2月20日,星期六日志文件(一)日志详细记录系统中任何人所作的任何事情管理员需要将系统日志功能打开对日志文件内容详细阅读攻击者的做法将全部日志删除数量很大的日志被删除时会通知管理员对日志进行修改,仅删除有关攻击的日志需要对不同系统的日志格式很熟悉难度较高第108页,共156页,2023年,2月20日,星期六日志文件(二)Linux日志文件五个最重要的日志文件/var/run/utmp-关于用户登录系统的记录只记录在线用户/var/log/wtmp-关于用户登录和离开系统的记录所有曾经登录和正在系统上用户的消息/var/log/btmp-失败的登录系统记录/var/log/messages-从syslog工具中获得的信息标准日志记录工具存放很多记录,包括程序启动、用户执行的动作等/var/log/secure-存取和授权信息的记录所有本系统进行连接和从何处到达的记录第109页,共156页,2023年,2月20日,星期六日志文件(三)Windows日志产生的日志有缓冲区文件和evt文件缓冲区文件定时写入evt文件中System.logSecurity.logApplication.logSysevent.evtSeceventv.evtAppevent.evt系统允许删除log文件,但是无法删除evt文件如果黑客具有物理访问设备的能力,可以通过其他系统删除日志第110页,共156页,2023年,2月20日,星期六日志文件(四)保护日志文件设置正确权限只有root才能读写使用单独的服务器对日志文件经常进行备份使用一次性可写设备黑客手段:进入后马上关掉日志功能加密日志文件关键:保护密钥安全定时查看日志以查看不正常情况最主要的问题第111页,共156页,2023年,2月20日,星期六文件信息黑客需要把后门程序植入系统修改一些系统文件隐藏修改的痕迹修改文件修改日期用户对策对重点文件计算Hash序列并保存使用其他工具Windows下的sysdiff,系统快照,报告修改消息Linux下的diff,对两个文件进行字节的比较第112页,共156页,2023年,2月20日,星期六另外的文件信息攻击者入侵的目的获取计算机资源大量的磁盘空间快速的网络和高性能工作站为攻击其他系统而用上传大量文件攻击者的手段设置隐藏属性一般用户总是显示不隐藏的文件重命名伪装文件为系统文件建立隐藏目录改变磁盘空间的工具上传木马在管理员查看硬盘空间时进行欺骗第113页,共156页,2023年,2月20日,星期六另外的文件信息(续)用户的防范办法了解系统里的文件定期检查磁盘空间定期查看日志隐藏网络上的踪迹将自己的通信信息隐藏到其他信息里一般是放到通信协议头部的未用到部分中攻击者发送的包使用常用端口攻击者本地是高端端口被攻击者使用80端口没有太好的预防措施第114页,共156页,2023年,2月20日,星期六蠕虫-另一种攻击方式蠕虫-不得不说的故事每一种“成功”的蠕虫都引起了全网络的恐慌1988年Morris蠕虫是始作俑者2001年全球安全报告里排名前三的都是蠕虫惹的祸NimdaRedCodeRedCodeII2003年一月的蠕虫再次席卷全球蠕虫特点编写不简单技术难度较高关键是好的构思和创意通常利用一些系统漏洞传播非常迅速具有病毒的某些特征感染文件可能带有破坏系统的代码第115页,共156页,2023年,2月20日,星期六Morris蠕虫(一)1988年11月2日出现影响到当时的Arpanet大部分计算机和上千万的经济损失第一个广泛传播的蠕虫第一个成功使用缓冲区溢出引出的攻击引起系统的过度负载,尤其是邮件提交的延迟促进了CERT的诞生代码短小,仅99行由于程序中的一个错误,引发了大规模的蠕虫侵袭第116页,共156页,2023年,2月20日,星期六Morris蠕虫(二)通过三种方式感染系统SendmailFingerdRsh/RexecSendmail攻击连接目标机器的sendmail的25端口,启用debug模式发送RCPTTO来传递数据一个shell脚本和一个40行的c文件会在目标机器上建立编译C文件,攻击者机器上的机器上取得两个目标文件,分析系统类型,并链接正确的目标文件创建一个可执行文件/usr/tmp/sh,类似Bourneshell第117页,共156页,2023年,2月20日,星期六Morris蠕虫(三)Fingerd攻击通过fingred的一个漏洞进行攻击最容易成功的方式缓冲区溢出不检查输入的字符数如果超出512个字节,出现溢出内存中栈下是可执行命令/usr/ucb/finger在VAX系统上,知道内存中/usr/ucb/finger的位置,替换为/bin/sh溢出后,一个shell开始执行Shell运行在finger的deamon上下文中,标准输入和输出都是连接socket蠕虫需要的文件通过shell传送第118页,共156页,2023年,2月20日,星期六Morris蠕虫(四)Rsh/Rexec攻击检查.rhosts和/etc/hosts.equiv查找信任的主机地址需要得到用户的帐号和密码才能访问这些文件检查/etc/passwd文件,尝试破译密码组合用户名、姓、名、昵称等解决:使用/etc/shadow密码列表-420多个常用密码RTM从他父亲得到的常用密码使用/usr/dict/words中的每一个单词得到单词后,查找rhost文件,传递蠕虫文件,开始新一轮攻击使用rsh和rexec命令执行第119页,共156页,2023年,2月20日,星期六Morris蠕虫(五)蠕虫的自我保护因为sh是蠕虫,在用户输入ps时过滤蠕虫进程唯一目的:复制自身在使用文件之后,删除它们为了获取地址,蠕虫读取系统文件并调用工具程序如netstat来提供关于网络接口的信息。系统重启或者当机后,/tmp和/usr/tmp下面的文件被清空,消灭蠕虫入侵证据Sendmail日志会保存信息1/15的概率向某端口发送消息,可能是某种监控机制第120页,共156页,2023年,2月20日,星期六Nimda蠕虫(一)2001年9月18日发现之后,迅速传播开来受影响的操作系统Windows9x/Me/Nt/2000感染途径:文件感染、电子邮件附件、Web服务器攻击,以及局域网上的共享文件功能服务器:没打补丁的IISWebServer客户:没打补丁的IE5.01/5.5,以及使用到IE功能的邮件客户软件,包括Outlook,OutlookExpress等危害性受到感染的一台机器会影响到其他的机器系统文件和文档文件会受损网络资源会被拥塞住解决方案为所用的软件及时地打上补丁第121页,共156页,2023年,2月20日,星期六Nimda蠕虫(二)第122页,共156页,2023年,2月20日,星期六Nimda蠕虫(三)文件感染感染EXE文件,不是把自己插入到EXE文件的头或者尾部,而是把原来的EXE文件插进来,再改名为EXE的文件名运行的时候,先运行病毒,再提取出EXE并运行Email感染病毒从你的地址簿、收件箱以及Webcache页面中抽取出email地址,然后构造一封邮件,内含一个附件readme.exe,送出去。一旦收到邮件的人打开附件,则马上被感染。有些邮件客户会自动浏览附件,则自动被感染。WebServer攻击扫描并攻击WebServer,一旦成功,则把病毒代码附到Web页面的最后,未打补丁的IE浏览到这样的页面的时候,也会自动被感染LAN共享攻击打开一个共享系统,在administrators加入一帐户,并打开C盘共享把一个受感染的email和一个受感染的riched20.dll写到每一个共享可写目录中,如果共享目录的系统打开这个email或者目录中的Word、Wordpad或Outlook文档,则此系统也会被感染第123页,共156页,2023年,2月20日,星期六Nimda蠕虫(四)为什么邮件附件被自动执行?页面会自动浏览?利用了IE5(或者说OE5)的一个漏洞html格式的邮件中图片和多媒体文件都是自动打开的,而可执行文件不是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论