第4次作业 实践四 TCP/IP网络协议攻击
任务:
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
实验一:ARP 缓存欺骗攻击
原理:ARP协议无认证机制。攻击者伪造ARP应答,告诉靶机“网关的MAC地址是攻击机的MAC”,同时告诉网关“靶机的MAC地址是攻击机的MAC”,从而实现在中间拦截流量(中间人)。
注意事项:须在同一网段,本实验使用kali主机以及SeedUbuntu
步骤:
- 开启IP转发(让靶机能正常上网,避免产生拒绝服务引起怀疑):
echo 1 > /proc/sys/net/ipv4/ip_forward - 进行双向欺骗:
已知两台攻击机的网关IP为 192.168.5.1,靶机IP为 192.168.5.3,攻击机IP地址为192.168.5.2网卡为 eth0。
#终端1:欺骗靶机,告诉它网关的MAC是我
arpspoof -i eth0 -t 192.168.5.3 192.168.5.1
#终端2:欺骗网关,告诉它靶机的MAC是我
arpspoof -i eth0 -t 192.168.5.1 192.168.5.2

此时在靶机也就是SeedUbuntu中输入
arp -a
查看arp路由表

我们可以看到192.168.5.1也就是我们的网关现在他的mac地址为00:0c:29:64:ad:a0

而这个mac地址就是我们kali主机的eth0网卡的ip地址说明欺骗成功
我们在seedUbuntu中ping 192.168.5.1也就是我们的网关的时候出现了以下的信息:

以下为正常情况下的结果:

实验二:ICMP 重定向攻击
原理:ICMP重定向用于告知主机存在更优的路由路径。攻击者伪造ICMP重定向报文,诱使靶机将流量发送到攻击机(或其他错误网关),从而实现嗅探或DoS。
- 使用 netwox 构造报文(netwox 是强大的网络工具包kali可能需要重新下载):
假设攻击机IP为 192.168.5.2,靶机为 192.168.5.3,网关为 192.168.5.1。
# 让靶机认为访问ip时的最佳下一跳是攻击机 192.168.5.2
netwox 86 -f "host 192.168.5.3" -g "192.168.5.1" -i "192.168.5.2"
- 验证:
此为未进行欺骗状态:
![image]()
在靶机上执行 ip route get 8.8.8.8,若成功,会显示 via 192.168.5.2 dev eth0。现在攻击机可以开启转发,嗅探靶机去往8.8.8.8的流量。
以下是攻击成功的状态

由于其在同一网段实际上知道最快的路径还是走网关,但是已经把流量给劫持了
实验三:SYN Flood 攻击
原理:TCP三次握手中,服务器收到SYN后分配资源并回复SYN+ACK,等待ACK。攻击者发送大量伪造源IP的SYN包,耗尽服务器的半连接队列(Backlog),导致无法响应合法请求。
步骤:
- 开启蜜网和靶机以MSFubuntu为例(靶机上80端口自带有http服务打开界面如下)
使用SeedUbuntu打开192.168.5.134页面正常
![image]()
此时使用kali攻击机输入指令
# -S: SYN标志位; -p 80: 目标端口; --flood: 快速发包; --rand-source: 随机源IP
sudo hping3 -S -p 80 --flood --rand-source 192.168.5.134
此时刷新界面SeedUbuntu已无法正常访问(也可能是刷新非常慢)

实验四:TCP RST 攻击
原理:利用TCP协议中,收到RST包会立即关闭连接的特性。攻击者通过嗅探或预测序列号,伪造RST包发送给通信双方,强制中断连接。
场景:
SeedUbuntu通过telnet登录服务器(这种明文协议很容易被拦截)。在msfubuntu中存在telnet服务,所以直接使用
telnet 192.168.5.134即可登录。
此时我们回到kali主机,先对其进行劫持也就是我们的ICMP重定向
netwox 86 -f "host 192.168.5.3" -g "192.168.5.1" -i "192.168.5.2"
通过SeedUbuntu登录靶机,登录结果如下所示可能会比较慢

我们在kali中打开wireshark,选择eth0进行监听

我们在SeedUbuntu中输入命令ls,然后回到kali的wireshark界面就能够看到所劫持的流量
我们直接过滤为telnet,我们能够看到正常的流量信息

回到kali我们使用
sudo netwox 78 -i 192.168.5.3对靶机进行TCP RST攻击
此时SeedUbuntu已经无法使用telnet连接msfadmin了:


实验五:TCP 会话劫持攻击
原理:当客户端与服务器建立TCP连接后,攻击者通过嗅探获取序列号(Seq)和确认号(Ack),然后伪装成客户端向服务器发送恶意数据包。由于序列号正确,服务器会接受该数据并将其视为合法客户端发送的数据。
可以直接使用工具ettercap
场景:靶机 telnet 服务器(虽然SSH无法劫持,但telnet或ftp等明文协议可以)。
与实验四一致,SeedUbuntu连接Msf Ubuntu靶机进入命令行界面,可能会比较慢建议等会

接下来回到kali,打开工具

点击右上角对勾accept,然后点击三个点进入host->hostlist
先扫描host->host scan

左侧已经出现了我们的目标
我们本次的目标就是我们的SeedUbuntu IP为192.168.5.3还有我们的网关192.168.5.1
接下连target1 选择我们的SeedUbuntu ,target2 选为我们的网关,然后点击arp

随后选择Views->connections
回到SeedUbuntu随机输入几个命令
然后界面正常如下,能够看见192.168.5.3的流量在发往192.168.5.134也就是我们的Msfadmin

可以双击打开看看发了什么

备注
缺少命令注入等后面再试试吧


浙公网安备 33010602011771号