NeusoftInstituteofInformation2007年8月16日ITEducation&Training第12章常用的网络攻击关键技术•网络攻击是一系列技术的综合运用,攻击者必须掌握各种关键攻击技术,理解个各种攻击技术的局限性和限制条件,才能够在攻击的实战中灵活运用,做到攻无不克。•对防御者要了解攻击技术的内涵,才会涉及有效的安全策略,建立有效的安全机制,构造可靠的安全防御系统,做到坚不可摧。NeusoftInstituteofInformation2007年8月16日ITEducation&Training主要内容•口令破解技术原理•网络嗅探技术原理•网络端口扫描技术原理•缓冲区溢出攻击技术原理•拒绝服务攻击技术原理NeusoftInstituteofInformation2007年8月16日ITEducation&Training口令破解技术原理•口令机制是资源访问控制的第一道屏障。•计算机软件硬件技术的发展,使口令攻击更为有效。–CUP速度有了很大的提高–网络的普及–分段攻击算法的扩展–用户仍然喜欢选用容易记忆的口令NeusoftInstituteofInformation2007年8月16日ITEducation&Training口令攻击的条件和技术防范•条件:–高性能的计算机–大容量的在线字典或其他字符列表–已知的加密算法–可读的口令文件–口令以较高的概率包含于攻击字典中。•口令攻击步骤:–获取口令文件–用各种不同的加密算法对字典或其他字符表中的文字加密,并将结果与口令文件进行对比NeusoftInstituteofInformation2007年8月16日ITEducation&Training常用的口令攻击技术•暴力破解–攻击者通过穷尽口令空间获得用户口令,通常攻击者根据口令字的长度、特征、各种字符组合方式选择某个口令空间进行攻击。•猜测攻击–攻击者根据若干知识编写口令字典,然后根据该字典通过猜测获得用户的口令。NeusoftInstituteofInformation2007年8月16日ITEducation&TrainingUNIX系统口令攻击•UNIX系统用户的口令保存在一个加密后的文本文件中,一般放在/etc目录下,文件名为passwd/shadow•UNIX系统出于安全需要,防止普通用户读取口令文件,将passwd文件一分为二,把与用户口令相关的域提出组成另外一个文件,叫shadow,只有超级用户才能读取。NeusoftInstituteofInformation2007年8月16日ITEducation&Training•口令文件中每行代表一个用户条目:–Logname:passwd:uid:gid:userinfo:home:shell–例如root的条目Root:xydefctrti1.m.y2:0:0:admin:/:/bin/sh•UNIX系统中,口令文件作了shadow变换,在破解的时候,需要做Unshadow变换,将passwd和shadow文件合二为一。•UNIX口令加密算法采用多重DES,理论上破解难度非常大。NeusoftInstituteofInformation2007年8月16日ITEducation&TrainingUNIX口令加密原理•UNIX系统使用函数crypt加密用户的口令,当用户登录时,系统并不是去解密已经加密的口令,而是将输入的口令明文字符串传给加密函数,将加密函数的输出与/etc/passwd文件中该用户条目的passwd域进行比较,若成功则允许登陆•Crypt基于数据加密标准des,将用户输入的口令作为密钥,加密一个64位的0/1串,加密的结果用用户的口令再次加密;重复该过程,一共进行25次。最后输出一个11字节的字符串,存放在passwd的密码域。NeusoftInstituteofInformation2007年8月16日ITEducation&Training口令破解工具crack的工作流程•1、下载或自己生成一个字典文件•2、取出字典文件中的每一条目,对每个单词运用一系列规则:–使用几个单词和数字的组合–大小写交替使用–把单词正反拼写后,接在一起–在每个单词的开头或结尾加上一些数字•3、调用系统的crypt函数对使用规则生成的字符串进行加密变换•4、再用一组子程序打开口令文件,取出密文口令,与crypt的输出进行比较。•循环第二步和第三步,直到口令破解成功。NeusoftInstituteofInformation2007年8月16日ITEducation&Training网络服务口令攻击流程•建立与目标网络服务的网络连接•选取一个用户列表文件及字典文件•在用户列表文件及字典文件中,选取一组用户和口令,按网络服务协议规定,将用户名和口令发送给网络服务端口。•检测远程服务返回信息,确定口令尝试是否成功。•再取另一组用户和口令,重复循环测试,直至口令用户列表文件及字典文件选取完毕。NeusoftInstituteofInformation2007年8月16日ITEducation&Training增强口令安全性的方法•除口令验证程序外,使口令文件完全不可读(包括超级用户)•在用户选择密码时对密码进行过滤•对字典或字符列表进行扫描,提出用户选择的弱口令•通过口令与智能卡相结合的方式登录•采用某种机制动态的生成一次性口令NeusoftInstituteofInformation2007年8月16日ITEducation&Training网络嗅探技术原理•网络嗅探器是一种黑客工具,用于窃听流经网络接口的信息,从而获取用户会话信息。•一般的计算机系统通常只接收目的地址执行自己的网络包,其他的被忽略。但在很多情况下,一台计算机的网络接口可能受到目的地址并非是自身的网络包。•在完全广播子网中,所有涉及局域网中任何一台主机的网络通信内容均可被局域网中所有的主机接收到,这就使得网络窃听特别容易。•目前网络窃听都是基于以太网的,原因就是以太网广泛的用于局域网。NeusoftInstituteofInformation2007年8月16日ITEducation&Training网络嗅探的问题•如何使网络接口卡接受目的地址不是指向自己的网络包•如何从数据链路层获取这些包(普通的网络编程接口不行)•以太网提供了杂模式,在该模式下,逐级的网络接口接听所有经过的网络介质的数据,包括那些目的地址并不指向该主机的网络包•不同的UNIX系统提供了不同的数据链路存取方法。NeusoftInstituteofInformation2007年8月16日ITEducation&Training网络嗅探器工作流程•打开文件描述字,打开网络接口、专用设备或网络套接字。得到一个文件描述字,以后所有的控制和读、写都针对该描述字•设置杂模式,把以太网络接口设置为杂模式,使之接收所有流经网络介质的信息包•设置缓冲区。缓冲区用来存放从内核缓冲区拷贝过来的网络包。•设置过滤器。过滤器使得内核只抓取那些攻击者感兴趣的数据包,而不是所有的流经网络介质的网络包,可以减少不必要的拷贝和处理。•读取包。从文件按描述字中读取数据,一般来说,就是数据链路层的帧。•过滤、分析、解释、输出:主要是分析以太网包头和TCP/IP包头中的信息,选择出用户感兴趣的网络数据包,然后对应用层协议及的数据解释,把原始数据转化成用户可理解的方式输出。NeusoftInstituteofInformation2007年8月16日ITEducation&Training常用的网络嗅探工具•TCPdump:•Sniffit:•Snort:•…………NeusoftInstituteofInformation2007年8月16日ITEducation&Training网络嗅探的防范•网络嗅探对明文传递的网络报具有威胁,但是该攻击要想成功需要一定的条件。•一般用于内部攻击,因为内部人员可以很方便的访问网络。NeusoftInstituteofInformation2007年8月16日ITEducation&Training网络端口扫描技术原理•一个端口就是一个潜在的通信通道,就是一个入侵通道。•端口扫描通过选用远程TCP/IP不同的端口服务,并记录目标给予的回答,就可以搜集到很多关于目标逐级的有用信息。•扫描器不是一个直接攻击网络漏洞的程序,它仅仅能够帮助攻击者发现目标机的内在弱点。NeusoftInstituteofInformation2007年8月16日ITEducation&Training网络端口扫描技术分析•1、完全连接扫描•完全扫描连接利用TCP/IP三次握手连接机制,使源主机和目的逐级的某个端口建立一次完成的连接。如果建立成功,则表明该端口开放,否则表明该端口关闭。•2、半连接扫描•半连接扫描指在源主机和目的逐级的三次握手连接过程中,只完成前两次握手,不建立一次完整的连接。NeusoftInstituteofInformation2007年8月16日ITEducation&Training•3、SYN扫描–首先向目标主机发送连接请求,当目标逐级返回响应后,立即切断连接过程,并察看相应情况。如果目标逐级返回rst信息,表明该端口没有开放。•4、ID头信息扫描–此种扫描方法需要用一台第三方机器配合扫描,并且这台机器的网络通信量要非常的少,即dump主机,首先由源主机A向dump主机B发出连续的ping数据包,并且查看B返回的数据包的ID头信息。一般而言,每个顺序数据包的ID头的值会顺序增加1,然后由源主机A假冒主机B向目的主机C的任意端口发送SYN数据包。–这时主机C向B发送的数据包有两种可能的结果:–1、syn|ack,表示该端口处于监听状态–2、rst|ack,表示该端口处于非监听状态NeusoftInstituteofInformation2007年8月16日ITEducation&Training•5、隐蔽扫描•隐蔽扫描是指能够成功绕过IDS、防火墙和监视系统等安全机制,缺的目标主机端口信息的扫描方式。•6、SYN|ACK扫描•由源主机向目标主机的某个端口直接发送syn|ack数据包,而不是先发送syn数据包。由于这种方法不发送syn数据包,目标主机会认为这是一次错误的连接,从而会报错。•如果目标逐级的该端口没有开放,则会返回rst信息。•如果目标主机的该端口处于开放状态,则不会返回任何信息,而直接将这个数据包抛弃掉。NeusoftInstituteofInformation2007年8月16日ITEducation&Training•7、FIN扫描•源主机向目标逐级发送fin数据报,然后查看反馈信息,如果端口返回rst信息,则说明该端口关闭。•如果没有任何返回信息,则说明该端口开放。•8、ACK扫描•首先由主机A向主机B发送Fin数据包,然后查看反馈数据包的TTL值和WIN值。开放端口所返回的数据包的TTL值一般小于64,而关闭端口的返回值一般大于64。开放端口所返回数据包的Win值一般大于0,而关闭端口的返回值一般等于0。NeusoftInstituteofInformation2007年8月16日ITEducation&Training•9、NULL扫描•将源主机发送的数据包中的ACK、FIN、RST、SYN、URG、PSH等标志为全部置空。如果目标主机没有返回任何信息,则表明该端口是开放的。如果返回RST信息,则端口是关闭的。•10、XMAS扫描•XMAS扫描的原理和NULL扫描相同,只是将要发送的数据包中的ACK、FIN、RST、SYN、URG、PSH等标志为全部置成1,如果目标主机没有返回任何信息,则表明该端口是开放的。如果返回RST信息,则端口是关闭的。NeusoftInstituteofInformation2007年8月16日ITEducation&Trai