第四次作业

TCP/IP协议栈攻击实验内容

TCP/IP协议栈在设计之初主要考虑互联互通和健壮性,安全性考虑相对不足,因此存在多种协议漏洞。本实验通过在网络攻防环境中复现ARP欺骗、ICMP重定向、SYN Flood、TCP RST及TCP会话劫持等五种典型攻击,旨在深入理解各协议漏洞的利用原理,并掌握相应的检测与防御方法。

1、ARP缓存欺骗攻击

攻击原理:ARP协议缺乏身份认证机制,攻击者可以发送伪造的ARP响应报文,将自己计算机的MAC地址与目标IP地址(例如网关IP)进行绑定。这样一来,目标主机在发送数据时会将流量错误地转发给攻击者,而不是真正的网关,从而实现中间人攻击。

实验演示:使用arpspoof工具发起双向欺骗。首先开启IP转发功能,执行命令echo 1 > /proc/sys/net/ipv4/ip_forward。然后分别向靶机和网关发送伪造的ARP响应:arpspoof -i eth0 -t 靶机IP 网关IP以及arpspoof -i eth0 -t 网关IP 靶机IP。欺骗成功后,可以使用driftnet等工具嗅探并查看被劫持的流量。

防御措施:采用静态ARP绑定,在主机或交换机上固定IP与MAC的映射关系;部署ARP防火墙,检测并阻止异常的ARP响应;利用交换机的端口安全功能限制每个端口允许的MAC地址数量。

2、ICMP重定向攻击

攻击原理:ICMP重定向报文用于通知主机存在更优的路由路径。攻击者可以冒充网关,向目标主机发送伪造的ICMP重定向报文,声称通往某个网络有更好的下一跳(即攻击者自己的主机)。目标主机收到后会修改本地路由表,将后续流量导向攻击者。

实验演示:使用netwox工具的第86号模块发起攻击,命令格式为netwox 86 -g 新网关IP -i 目标网段。例如,netwox 86 -g 192.168.1.100 -i 192.168.1.0/24,表示告知目标主机去往192.168.1.0/24网段的最佳网关是192.168.1.100(攻击者IP)。

防御措施:在主机上配置忽略ICMP重定向报文。通过执行sysctl -w net.ipv4.conf.all.accept_redirects=0sysctl -w net.ipv4.conf.all.secure_redirects=0即可关闭该功能。

3、SYN Flood攻击

攻击原理:TCP协议在建立连接时需要三次握手。服务器收到SYN请求后,会分配资源并进入半连接状态,等待ACK确认。攻击者伪造大量不同源IP的SYN请求发送给目标服务器,服务器回应SYN-ACK后收不到最终的ACK,导致半连接队列被迅速填满,无法再响应合法用户的连接请求。

实验演示:使用hping3工具发起SYN Flood攻击。命令为hping3 -S -p 80 --flood --rand-source 目标IP。其中-S表示设置SYN标志位,-p 80指定攻击端口为80,--flood表示以最快速度发送数据包,--rand-source使用随机源IP地址。

防御措施:在服务器上启用SYN Cookie机制,该机制不预先分配资源,而是通过计算验证ACK的合法性;调整内核参数tcp_max_syn_backlog增大半连接队列长度;部署专业的抗DDoS设备进行流量清洗。

4、TCP RST攻击

攻击原理:TCP协议规定,当一方收到RST(重置连接)标志位为1的报文时,会立即终止该连接。攻击者通过嗅探或猜测通信双方的IP地址、端口号和当前序列号,伪造RST数据包发送给其中一方或双方,从而强行中断合法的TCP连接。

实验演示:可以使用tcpkill工具发起RST攻击,命令为tcpkill -i eth0 host 目标IP,该工具会持续发送匹配的RST包。或者使用scapy库自行构造RST报文,设定正确的源IP、目的IP、端口以及序列号范围。

防御措施:启用TCP时间戳选项,使得序列号空间更难猜测;使用IPsec或TCP-MD5等认证机制对TCP报文进行完整性校验,防止伪造RST包被接受。

5、TCP会话劫持攻击

攻击原理:攻击者通过嗅探获取合法通信双方的IP地址、端口号和当前的序列号,然后伪造数据包插入恶意内容,或伪装成其中一方继续会话。由于TCP仅依靠序列号确认数据包的归属,攻击者一旦猜中序列号,就可以在通信中注入任意数据。

实验演示:使用netwox工具的第40号模块进行会话劫持。命令中需要指定客户端IP和端口、服务器IP和端口、当前合法的序列号和确认号,并通过--tcp-data参数携带恶意数据。例如,netwox 40 --ip4-src 客户端IP --ip4-dst 服务器IP --tcp-src 客户端端口 --tcp-dst 服务器端口 --tcp-seqnum 序列号 --tcp-acknum 确认号 --tcp-ack --tcp-psh --tcp-data "恶意数据"

防御措施:使用加密协议(如SSH、HTTPS),即使数据被截获也无法解密;部署入侵防御系统(IPS)检测异常的TCP数据包;采用随机化初始序列号并定期更换密钥,增加序列号猜测的难度。

二.实践过程

1.ARP缓存欺骗攻击

1.1查看arp缓存表
1.1查看arp缓存表

1.2.1安装netwox
1.2.1安装netwox
1.2.2安装netwox

1.3.1通过指令修改arp缓存,使靶机的ip地址指向攻击机的mac地址
1.3.1通过指令修改arp缓存,使靶机的ip地址指向攻击机的mac地址

1.3.2 mac地址已经被修改
1.3.2 mac地址已经被修改

2.ICMP重定向攻击

2.1 ICMP重定向攻击
2.1 ICMP重定向攻击

2.2显示 ICMP 重定向包
2.2显示 ICMP 重定向包

3.ISYN Flood攻击

3.1打开wireshark抓包
3.1打开wireshark抓包

3.2SeedUbuntu上的wireshark,发现大量tcp包出错
3.2SeedUbuntu上的wireshark,发现大量tcp包出错

4.TCP RST攻击

4.1攻击机上执行sudo netwox 78
4.1攻击机上执行sudo netwox 78

4.2tcp连接错误的包
4.2tcp连接错误的包

5.TCP会话劫持攻击

5.1 打开telnet
5.1 打开telnet

5.2捕获
5.2捕获

5.3 target1和2
5.3 target1和2

5.4.1启动 ARP 投毒攻击
5.4.1启动 ARP 投毒攻击

5.4.2SEED Ubuntu向Linux靶机发起登陆
5.4.2SEED Ubuntu向Linux靶机发起登陆

5.4.3 Ettercap 中查看捕获的数据
5.4.3 Ettercap 中查看捕获的数据

5.4.4使用 Wireshark 验证
5.4.4使用 Wireshark 验证

3. 学习中遇到的问题及解决

  • 问题1:在进行ARP缓存欺骗攻击时,执行arpspoof命令后,靶机的ARP表并未立即更新,或者更新后很快又恢复为正确的MAC地址。
    解决方案:确保攻击机开启了IP转发(echo 1 > /proc/sys/net/ipv4/ip_forward),并且持续发送伪造的ARP响应包(arpspoof默认会持续发送,不要中途终止)。如果靶机启用了静态ARP绑定或ARP防火墙,需要先关闭或绕过这些防护机制。此外,可在攻击机上同时向网关和靶机双向欺骗,以维持欺骗效果。

  • 问题2:ICMP重定向攻击实验中,执行netwox 86命令后,目标主机的路由表并未发生变化。
    解决方案:首先确认目标主机是否开启了接收ICMP重定向报文的功能(默认是开启的)。某些Linux发行版默认会忽略来自非网关的ICMP重定向,可尝试在目标主机上执行sysctl -w net.ipv4.conf.all.accept_redirects=1强制开启。另外,伪造的网关IP必须与被冒充的网关处于同一网段,且攻击机IP需与目标主机可达。

  • 问题3:SYN Flood攻击时,使用hping3 --flood导致攻击机自身网络卡顿甚至死机。
    解决方案--flood模式会以最高速度发包,可能耗尽攻击机的CPU或网络带宽。可降低发包速率,例如使用--faster或手动控制间隔(-i u1000表示每毫秒1个包)。另外,在虚拟机环境中,适当降低攻击强度,避免影响宿主机和其他虚拟机.

4. 实践总结

通过本次TCP/IP协议栈攻击实验,我亲手复现了ARP缓存欺骗、ICMP重定向、SYN Flood、TCP RST及TCP会话劫持这五种经典攻击,深刻体会到了网络协议在设计之初因追求效率而忽略安全所带来的严重后果。

ARP缓存欺骗让我明白了局域网内缺乏认证的脆弱性——攻击者可以轻易成为中间人,窃听或篡改流量。ICMP重定向攻击则展示了路由协议信任风险,一个伪造的报文就能改变主机的路由走向。SYN Flood攻击揭示了资源耗尽型拒绝服务攻击的威力,利用TCP三次握手的半连接状态就能让服务器瘫痪。TCP RST攻击让我看到攻击者如何利用重置标志位强行切断合法连接,破坏通信可用性。TCP会话劫持更是直接突破了会话的完整性,攻击者可以冒充合法用户执行任意操作。

这些攻击的共同根源在于:协议对数据包的源身份缺乏验证、对资源请求未加限制、关键参数(如序列号)可预测或易被嗅探。在实验中,我不仅掌握了arpspoofnetwoxhping3tcpkillettercap等工具的使用方法,更重要的是学会了从攻击者视角思考问题,理解了防御方应如何通过静态绑定、加密通信、状态检测、资源限制等手段来阻断或缓解此类攻击。

本次实验将抽象的理论转化为直观的操作,极大提升了我的网络攻防实战能力,也为后续学习入侵检测、防火墙策略以及安全协议设计奠定了坚实基础。

posted @ 2026-04-08 19:10  熊志东  阅读(22)  评论(0)    收藏  举报