由于IPv4协议中的IP头部是明文表示的,所以IP欺骗适用于所有包含IP头部的协议,包括TCP、UDP、ICMP、HTTP等,其中以TCP协议的IP欺骗最为常见,攻击效果最显著。
首页
[{"ID":42422,"Name":"理学"},{"ID":81272,"Name":"计算机科学技术"},{"ID":81357,"Name":"信息安全"},{"ID":81383,"Name":"网络安全"},{"ID":81384,"Name":"网络攻击"},{"ID":81385,"Name":"网络欺骗"}]
. 理学 . 计算机科学技术 . 信息安全 . 网络安全 . 网络攻击 . 网络欺骗IP欺骗
/IP spoofing/
最后更新 2023-09-26
浏览 183次
通过伪造数据包IP头部中的源IP字段达到假冒身份的攻击目的。
- 英文名称
- IP spoofing
- 所属学科
- 计算机科学技术
TCP将IP地址作为通信的主要身份凭证,部分承载于TCP的应用协议甚至将IP地址作为访问控制的凭证。标志性事件是1994年K.D.米特尼克(Kevin David Mitnick)利用IP欺骗实现对rlogin服务器的远程攻击:通过远程猜测TCP的ACK Number,伪装合法源IP地址的身份与服务器建立TCP3次握手连接,发送了一个高权限命令并成功地在服务器上执行。
除了假冒身份,IP欺骗还可用于在TCP通信中注入数据,或者中断TCP连接。
攻击者作为TCP连接的发起端,实现IP欺骗难点在于获得TCP的ACK Number。ACK Number包含在TCP第二次握手包中,由服务器随机生成。由于第二次握手发向伪造的IP地址,攻击者自身无法直接得到,所以需要通过猜测或嗅探来得到ACK Number以完成TCP3次握手。
①猜测ACK Number。早期的操作系统存在ACK Number随机性不强的问题,可以通过远程探测观察ACK Number的生成规律,准确预测下一次握手的ACK Number变化范围。现代操作系统采用了强随机算法,每一次握手的ACK Number存在40亿个可能值,使得猜测变得极为困难。2016年曹跃发现Linux操作系统在实现RFC5961规范时存在边信道漏洞,允许攻击者猜测互联网上任意两台指定版本Linux主机TCP通信使用的ACK Number。
②嗅探ACK Number。攻击者可对同一局域网内的其他主机发起IP欺骗攻击:伪装成其他IP尝试与受害者主机建立TCP连接,再利用ARP欺骗、嗅探等攻击手段获取TCP通信时的ACK Number,完成TCP3次握手进而以假冒身份发送和接收数据。