常见的信息窃取以及攻击方式

注:本文内容主要来自《网络窃密、监听以及防泄密技术》和平时学习。

一、“中间欺骗”式网络基础设施攻击

1. VLAN跳跃攻击

  虚拟局域网(VLAN)是对广播域(数据包所能达到的范围)分段的方法,还经常用于为网络提供额外的安全,一个VLAN上的计算机无法与没有授予访问权的另一个VLAN上的用户进行对话。而VLAN跳跃攻击依靠动态中继协议(DTP:此协议可以让Cisco交换机自动协商指定交换机之间的链路是否形成Trunk)从一个VLAN跳到另一个未经授权的VLAN。

  在VLAN跳跃攻击中,攻击者欺骗计算机,冒充另一个交换机发送虚假的DTP协商信息,宣布自己想成为中继。真实的交换机收到这个DTP信息后,以为它应当启用802.1Q中继功能,当中继功能启动后,通过所有VLAN的信息流都会发送到攻击者的计算机上。中继建立后,攻击者可以继续探测信息流,也可以修改数据报中的802.1Q信息,指定攻击流量到哪一个VLAN。

2. VTP攻击

  VLAN中继协议(VTP)是一种管理协议,设置一个VTP Server 后一个新的VTP Client可以自动的获取VTP配置,减少交换环境中的配置数量。

  攻击者只要连接到交换机,并在自己的计算机和交换机之间建立一个中继,然后发送VTP消息到配置版本高于目前版本号的VTP服务器,这会导致所有交换机都与攻击者的计算机进行同步,从而把所有非默认的VLAN从VLAN数据库中删除,这样攻击者就可以进入其他用户的VLAN上,但VLAN只是逻辑上同一个局域网,物理上仍可能不在一个局域网内。

3. 生成树攻击

  生成树协议(STP)可以防止冗余的交换环境出现回路。使用STP的交换机都使用网桥协议数据单元(BPDU)来共享信息,其中包含网桥ID的标号(基于网桥的优先级和MAC地址),根据网桥ID(最小)作为根网桥,其他每个交换机根据成本来确定返回根网桥的最佳路线,这种成本基于带宽的值。

  如果攻击者把一台计算机连接到多台交换机上,然后发送网桥ID值较低的BPDU,就可以修改交换机与网桥的属性值,使STP重新收敛,从而引起回路使网络崩溃。

4. 洪水攻击交换机MAC表

  交换机的工作方式是:交换机在帧进入时记录下MAC源地址和端口,以后通往该MAC地址的信息流将只通过此端口发送,提高带宽利用率。MAC地址存储在内容可寻址存储器(CAM)中,专门存储MAC地址,以便快速查询。

  攻击者向交换机发送伪造过的数据包,其中源MAC地址为被攻击计算机的MAC地址,现在交换机就把该被攻击计算机和攻击者的计算机端口对应了起来,这形成了一个错误的映射关系。攻击者以每秒数万个包的速度持续发送,不断让交换机收到这个错误的映射关系。(大量的发送无效MAC地址,使其充斥满CAM表,无法处理正常的MAC请求)

5. ARP欺骗

  地址解析协议(IP->MAC),通过ARP请求,可以知道拥有特定IP地址的的MAC地址。

  最常见的ARP攻击是网关欺骗,以中间人的形式获取目标主机和网关之间的信息流。

6. MAC地址欺骗

  为防止内部人员进行ARP欺骗,将内网IP地址与MAC地址绑定,arp请求时同时判断IP地址和MAC地址。因为MAC地址的唯一性,可以根据网卡的MAC地址找到使用此主机的攻击者。

  MAC地址可以伪造的原因是Ethernet报文在填写MAC地址时并不是直接从网卡的EEPROM中读取MAC地址,而是驱动程序先在内存中创建一个MAC地址缓冲区,网卡初始化时读入MAC地址,如果将内存中的MAC地址修改为指定的地址,之后报文的源MAC地址就为修改后的值。如果两台具有相同MAC地址的主机分别发出请求,而这两个请求的响应对于这两台主机都是匹配的,那么这两台主机都会收到自己和另外一个主机的内容。如果在同一个网络里出现两个相同的MAC地址的主机,则会出现很严重的丢包现象。

7. 攻击DHCP服务器

  攻击者利用类似Goobler的工具发出大量的不同源MAC地址的DHCP请求,直到DHCP服务器预设网段的所有地址都被占用,无法回应正常的DHCP请求。这时攻击者冒充DHCP服务器,发放错误的IP地址、DNS服务器和默认网关等配置信息。客户在接入伪造的DHCP服务器后会指派恶意的DNS服务器查询目的网站IP时会得到假的地址,该IP可能会受到恶意监听。

 8. 针对RIP的攻击

  路由信息协议(RIP)通过周期性的路由更新报文来维护路由表。一台运行RIP的路由器,如果从一个接口上接收到了一个路由更新报文,它就会分析其中包含的路由信息,与自身的路由表进行比较。如果更新信息比较有效则引入自身的路由表中。

  攻击者可以向运行RIP协议的路由器发送破坏性更新报文,这样其他RIP路由器接收到后进行错误更新,建立错误的路由表,从而导致网络中断。

9. 针对OSPF路由协议的攻击

  开放最短路径优先(OSPF)是一种应用广泛的链路状态路由协议。该路由协议基于链路状态算法,具有收敛快、平稳、杜绝环路等优点,不同于矢量距离协议OSPF路由之间交换的不是路由表,而是链路状态(LSA)然后形成整个网络的链路状态数据库,根据数据库计算出最合适的路由表。

  攻击者冒充一台合法的OSPF路由器与网络中的一台正常路由器建立邻接关系,并向正常路由器发送大量的链路状态广播引起其错误的网络拓扑结构,从而使整个网络的路由表紊乱,导致网络崩溃。

10. 针对IS-IS路由协议的攻击

  IS-IS路由协议即中间系统到中间系统路由协议,是ISO提出来的针对ISO CLNS网络服务进行路由的一种协议,这种协议也是基于链路状态的,原理与OSPF类似。

  其攻击者可以通过模拟软件与该协议的路由器建立邻接关系,然后发送大量的链路状态数据单元引起其错误的网络拓扑结构,从而使整个网络的路由表紊乱,导致网络崩溃。

11. 针对BGP的攻击

  通过边界网关协议(BGP),信息可以在网络中不同的自治域之间进行交互。为了实现不同自治域之间交互,BGP维护一个可用的IP网络的路由表。

  攻击者采用中间人的攻击方法,迅速修改数据包中的存活时间,从而欺骗路由器将信息重定向到攻击者的网络中,劫持和重定向用户通信。

12. DNS劫持

  攻击者通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转到修改后的指定IP。

  DNS劫持的主要方法:

  1)DNS高速缓冲存储器毒化。

    每个DNS服务器都有一个高速缓冲存储器,可以记录一段时间的DNS记录。如果想知道自身以外的DNS记录时,就必须向信息持有者发送请求,并记录DNS服务器返回的信息。

    DNS缓存毒化攻击中,攻击者有自己的域(attacker.net)和一个被攻陷的DNS服务器,并定义自己的DNS记录,例如:www.google.com = 22.22.22.22。

    • 攻击者向目标DNS服务器发送请求www.attacker.net;
    • 目标DNS服务器不知道这台主机的IP地址,因为它不属于自身域,所以目标DNS服务器就会问此主机所属的DNS服务器;
    • 被攻陷的DNS服务器就会回复目标DNS服务器,同时提供它所有的记录(www.google.com = 22.22.22.22),目标DNS服务器缓存遭到毒化。
    • 通过目标DNS服务器有关www.google.com 的IP地址都会回复22.22.22.22。

  2)DNS ID欺骗 

    查询端X再向所在域查询Y的IP地址时,会在查询请求中分配一个随机数,这个数将会出现在DNS服务器返回的信息中,X收到回复后比较两个随机数是否相同。

    如果查询过程没有加密,就可以利用嗅探工具捕获这个ID,然后根据ID伪造一个回复信息,信息里含有攻击者所选的IP地址,这样X会把攻击者提供的IP当做Y的。但这就意味着攻击者必须在真DNS服务器回复前实施攻击。

  3)漏洞攻击

    利用一般操作系统对DNS修改而不加验证的漏洞,修改用户系统注册表中的DNS设置,使其指向恶意DNS。

13. 骗取/伪造数字证书攻击

  数字证书,通常与TLS/SSL配合使用,是带有数字签名的用于描述身份的一小块数据。签名是一种基于证书内容和签名者秘钥的复杂数学运算。

  可利用社会工程学骗取数字证书。

14. SSL代理攻击

  使用SSL代理来破解TLS/SSL连接,监视网络的数据流量,其过程类似于ARP欺骗。

15. SSLstrip攻击

  SSLstrip充当http连接的中间人来观察流量,如果看到出现安全链接时就将其转换成不安全的链接。

二、应用层攻击

1. 缓冲区溢出攻击

  当程序或进程试图在其分配的数据存储区或缓冲区中存储超出预计的数据时,缓冲区溢出就会发生。由于创建的缓冲区中只能存储有限的数据,故额外的信息会溢出到临近的缓冲区中。溢出时,临近缓冲区的数据会被覆盖或破坏。函数中局部变量的溢出会覆盖该函数的返回地址,这可能导致段错误(segmentation fault)。而某些特定情况下,程序崩溃后攻击者会收到一个shell提示,期待下一步的操作指令。主要有两种类型的溢出攻击:

  1)基于堆的溢出攻击。对程序预留内存空间进行溢出,但由于难以加入可执行的指令,这种攻击比较罕见。

  2)基于堆栈的溢出攻击。通常情况下程序使用一个名叫堆栈的内存对象来存储用户的输入,用户输入时,程序先写入一个返回内存的地址到堆栈,然后把用户的输入数据存储在返回地址的上方。当执行堆栈时,用户的数据就被传送到程序的指定返回地址中。如果用户的输入数据超过了堆栈的预留空间,那么就会发生堆栈溢出。

  有可执行指令的缓冲区溢出并不代表指令一定会被执行。缓冲区溢出导致程序崩溃时,程序会试图通过指定返回地址进行恢复,攻击者如果将可执行指令的地址进行替换,程序崩溃时则会执行攻击者的而已代码。当然,这意味着攻击者必须知道崩溃时的返回地址。为了省去精确地址的麻烦,可以在恶意指令的首尾填充NOP指令。

2. SQL注入攻击

  就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

3.跨站脚本攻击

  

  

posted @ 2018-12-04 18:41  三寸碧玉心  阅读(2753)  评论(0编辑  收藏  举报