网络攻击技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

网络攻击技术WuYong北京大学信息学院软件研究所-信息安全研究室网络安全基础知识系列培训之二为什么要研究攻击技术•知己知彼,百战不殆–中国《孙子》•Payattentiontoyourenemies,fortheyarethefirsttodiscoveryourmistakes.–Antistthenes,440BC•了解网络安全的重要手段•黑客攻击技术–网络防护的一部分•研究网络攻击,是为了更加有效地对网络进行防护–技术繁多,没有明显的理论指导–一些技术,既是黑客技术,也是网络管理技术,或者是网络防护技术EmailWebISP门户网站E-Commerce电子交易复杂程度时间Internet变得越来越重要网络安全问题日益突出混合型威胁(RedCode,Nimda)拒绝服务攻击(Yahoo!,eBay)发送大量邮件的病毒(LoveLetter/Melissa)多变形病毒(Tequila)特洛伊木马病毒网络入侵70,00060,00050,00040,00030,00020,00010,000已知威胁的数量攻击的基本步骤•窥探设施–踩点–扫描•查点–列出用户账号–列出共享文件–确定应用•攻击系统•扫尾工作–安装后门–清除入侵痕迹攻击技术一览•攻击系统中常用的攻击技术–网络探测–欺骗–会话劫持–拒绝服务攻击(DoS)–缓冲区溢出–口令探测–社交工程–物理攻击–木马–隐藏踪迹网络攻击技术-欺骗•欺骗技术–IP欺骗•假冒他人的IP地址发送信息–邮件欺骗•假冒他人的邮件地址发送信息–Web欺骗•你连到的网站是真的吗?–其他欺骗•DNS欺骗•非技术性欺骗IP欺骗•IP欺骗的动机–隐藏自己的IP地址,防止被追踪–以IP为授权依据–穿越防火墙•IP欺骗的形式–单向IP欺骗–双向IP欺骗–更高级的形式:TCP会话劫持•IP欺骗成功的要诀–IP数据包路由原则:根据目标地址进行路由IP欺骗(一)•简单欺骗–改变自己的IP地址•问题–只能发送数据包–无法收到回送的数据包–防火墙可能阻挡•实现手段–发送IP包,包头填写上虚假的源IP地址–在Unix平台上,直接用socket就可以•需要root权限–在Windows平台上,需要不能使用winsock•可以使用winpcap等工具IP欺骗(二)•双向欺骗•关键技术-让回应包通过H–H和A在同一个子网内部–使用源路由选项被假冒者A目标机器B攻击者H假冒包:A-B回应包:B-AH能看到这个包吗?IP欺骗(三)•如何避免IP欺骗•主机保护–保护自己的机器不被用来实施IP欺骗•物理防护、保护口令•权限控制,防止其他人随意修改配置信息•注意其他的安全措施–保护自己的机器不被成为假冒的对象•无能为力•网络防护–路由器上设置过滤器•入口:外来包带有内部IP地址•出口:内部包带有外部IP地址•防止源路由攻击–路由器上禁止这样的包电子邮件欺骗•为什么要进行电子邮件欺骗–隐藏发件人的身份,例如匿名信–挑拨离间,唯恐世界不乱–骗取敏感信息•欺骗的形式–使用类似的电子邮件地址–修改邮件客户端软件的账号配置–直接连到SMTP服务器上发信•电子邮件欺骗的方法–与现实邮局进行比较–基本邮件协议没有认证机制–发信可以要求认证电子邮件欺骗(一)•使用类似的邮件地址–发信人使用被假冒者的名字注册一个账号,然后给目标发送一封正常的信他(她)能识别吗?电子邮件欺骗(二)•对于类似邮件地址的解决–使用数字签名•修改邮件客户端软件的账号设置–姓名(Name)属性,会出现在“From”和“Reply-To”字段中,然后显示在“发件人”信息中–电子邮件地址,会出现在“From”字段中–回复地址,会出现在“Reply-To”字段中,可以不填•保护用户免受修改邮件客户的攻击–查看完整的电子邮件头部信息•多数邮件系统允许用户查看邮件从源地址到目的地址经过的所有主机电子邮件欺骗(三)•直接连到SMTP服务器上发信–telnet连到SMTP服务器的25端口,然后发送命令,常用的命令为:•Helo、Mailfrom、Rcptto、Data、Quit–保护措施•邮件服务器的验证–Smtp服务器验证发送者的身份,以及发送的邮件地址是否与邮件服务器属于相同的域–验证接收方的域名与邮件服务器的域名是否相同–有的也验证发送者的域名是否有效,通过反向DNS解析–攻击者可以运行自己的smtp邮件服务器•不能防止一个内部用户冒充另一个内部用户发送邮件Web欺骗•Web是建立在应用层上的服务,直接面向Internet用户•Web欺骗的根源–由于Internet的开放性,任何人都可以建立自己的Web站点–Web站点名字(DNS域名)可以自由注册,按先后顺序–并不是每个用户都清楚Web的运行规则•Web欺骗的动机–商业利益,商业竞争–政治目的•Web欺骗的形式–使用相似的域名–Cross-SiteScriptingWeb欺骗(一)•使用相似的域名–注册一个与目标公司或者组织相似的域名,然后建立一个欺骗网站,骗取该公司用户的信任,以得到这些用户的信息–例如:使用–如果客户提供了敏感信息,那么这种欺骗可能会带来更大的危害•用户在假冒的网站上订购了一些商品,然后出示支付信息。•假冒的网站把这些信息记录下来并分配一个cookie,然后提示:现在网站出现故障,请重试一次。•当用户重试的时候,假冒网站发现这个用户带有cookie,就把它的请求转到真正的网站上。–对于从事商业活动的用户,应对这种欺骗提高警惕Web欺骗(二)•Cross-SiteScripting(跨站脚本攻击)–现在流行的一种攻击方式–绝大多数交互网站或者服务提供网站可能存在这种漏洞–攻击产生的根源•网站提供交互时可使用HTML代码,用户可上传恶意脚本代码–攻击方式(以一个论坛网站为例)•AntiBoardSQL注入及跨站脚本攻击漏洞•AntiBoard是一款基于PHP的论坛程序。AntiBoard对用户提交的参数缺少充分过滤,远程攻击者可以利用这个漏洞获得敏感信息或更改数据库。Web欺骗(三)•防止Web欺骗-使用相似的域名–注意观察URL地址栏的变化–不要信任不可靠的URL信息–你是不是相信自己?•许多人根据自己的猜测去在浏览器地址栏中写下要访问的网址•防止Web欺骗-Cross-SiteScripting–网站不允许使用HTML语言•过于严格,没有必要–网站不允许使用脚本程序•对特殊字符的过滤•黑客们的对策–采用另一种字符表达方式来逃避过滤,例如:改用ASCII码替换如<>欺骗技术总结•我们从上述欺骗技术可以认识到–IP协议本身的缺陷性–应用层上也缺乏有效的安全措施–在攻击技术里,欺骗技术是比较低级的,基本上是针对Internet上不完全的机制发展起来的–技术含量不高•非技术的欺骗–社交工程–最有效的攻击方法•避免欺骗的最好办法–增强用户的安全意识,尤其是网络管理人员和软件开发人员的安全意识网络攻击技术-会话劫持•在现实生活中,例如银行的一笔交易–如果营业员检查了顾客的身份证和帐户卡,–抬起头来,发现不再是刚才的顾客–他会把钱交给外面的顾客吗?•网络中的问题–在网络上,没有人知道你是一条狗TCP会话劫持•欺骗和劫持–欺骗是伪装成合法用户,以获得一定的利益–劫持是积极主动地使一个在线的用户下线,或者冒充这个用户发送消息,以便达到自己的目的•动机–Sniffer对于一次性密钥并没有用–认证协议使得口令不在网络上传输•会话劫持分两种–被动劫持•监听网络流量,发现密码或者其他敏感信息–主动劫持•找到当前会话并接管过来,迫使一方下线,由劫持者取而代之•攻击者接管了一个合法会话后,可以做更多危害性更大的事情TCP会话劫持被劫持者A服务器B1A远程登录,建立会话,完成认证过程攻击者H2监听流量会话劫持原理•TCP协议–三次握手建立TCP连接(一个TCP会话)–终止一个会话,正常情况需要4条消息–如何标识一个会话状态:源IP:端口+SN目标IP:端口+SN•从TCP会话状态入手–要了解每一个方向上的SN(数据序列号)•两个方向上的序列号是相互独立的•TCP数据包,除了第一个SYN包以外,都有一个ack标志,给出了期待对方发送数据的序列号–猜测序列号是成功劫持TCP会话的关键TCP协议中的序列号(一)•在每一个ACK包中,有两个序列号–第一个(SEG_SEQ)是当前包中数据第一个字节的序号–第二个(SEG_ACK)是期望收到对方数据包中第一个字节的序号•假设客户(CLT)向服务器(SVR)发起一个连接–SVR_SEQ:服务器将要发送的下一个字节的序号–SVR_ACK:服务器将要接收的下一个字节的序号(已经收到的最后一个字节的序号加1)–SVR_WIND:服务器的接收窗口–CLT_SEQ:客户将要发送的下一个字节的序号–CLT_ACK:客户将要接收的下一个字节的序号(已经收到的最后一个字节的序号加1)–CLT_WIND:客户的接收窗口TCP协议中的序列号(二)•关系–CLT_ACK=SVR_SEQ=CLT_ACK+CLT_WIND–SVR_ACK=CLT_SEQ=SVR_ACK+SVR_WIND–只有满足这样条件的包,对方才能接收–否则,抛弃该数据包,并且送回一个ACK包(含有期望的序列号)•同步状态–SVR_SEQ=CLT_ACK–CLT_SEQ=SVR_ACK•不同步状态–SVR_SEQCLT_ACK–CLT_SEQSVR_ACKTCP协议中的序列号(三)•如果TCP进入不同步状态–客户发送一个包•SEG_SEQ=CLT_SEQ•SEG_ACK=CLT_ACK•这个包不会被接收,因为CLT_SEQSVR_ACK–相反,如果第三方(攻击者)发送一个包•SEG_SEQ=SVR_ACK•SEG_ACK=SVR_SEQ•这个包可以被服务器接收–如果攻击者能够伪造两边的包的话,还可以恢复客户和服务器之间的会话,使得回到同步状态TCPACKStorm•当一个主机接收到一个不期望的数据包时,它会用自己的序列号发送ACK,而这个包本身也是不可被接受的。于是,两边不停地发送ACK包,形成ACK包的循环,称为ACK风暴(ACKStorm)•如果有一个ACK包丢掉,则风暴停止•在建立连接的时候劫持会话–当攻击者听到握手过程第二步的时候,它给服务器发送一个RST包,然后发送用同样的TCP和端口号构造的一个SYN包,但是序列号与前面的SYN包不同–服务器关闭第一个连接,打开第二个连接,并且送回第二个SYN/ACK给客户,攻击者听到这个包之后,给服务器送出一个ACK包–至此,客户、服务器、攻击者都进入到TCPESTABLISHED状态,但是攻击者和服务器之间是同步的,而客户和服务器之间是不同步的–注意,攻击者选择的序列号与客户的序列号一定要不同,否则不能成功•给一方发送空数据–攻击者首先观察会话–然后,给服务器发送一些无关紧要的数据,这些数据会导致服务器的序列号发生变化–攻击者给客户也可以发送数据•这种手段成功的要点在于–可以发送一些无关紧要的数据,并且能够把握发送的时机不在一个子网中的劫持手法•有时候也称作“Blindspoofing”•攻击者发送一个SYN包•然后猜测服务器的ISN•只要能够猜得到,就可以建立连接•但是攻击者收不到服务器给客户的包–使用源路由技术•条件–真正的客户不能发送RST包–攻击者能够猜测服务器每个包的大小实施会话劫持的一般性过程•发现目标–找到什么样的目标,以及可以有什么样的探查手段,取决于劫持的动机和环境•探查远程机器的ISN(初始序列号)规律–可以使用扫描软件,或者手工发起多个连接•等待或者监听对话–最好在流量高峰期间进行,不容易被发现,而且可以有比较多可供选择的会话•猜测序列号–最关键的一步,如果不在一个子网中,难度就非常大•使被劫持者下线–ACK风暴,拒绝服务•接管对话–如果在同一子网中,则可以收到响应,否则要猜测服务器的动作KillaConnection•攻击者发送一个RST包给B,并且假

1 / 156
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功