20232815 2023-2024-2 《网络攻防实践》实践四报告
1.实践内容
IP假冒攻击: 基于IP源地址欺骗,通过对受信任主机进行拒绝服务,使其无法正常工作,然后以猜测的ISN伪造受信任主机IP的SYN包,发送给目标主机。
ICMP路由重定向攻击: 攻击机伪装成路由器,利用ICMP路由重定向控制数据包路由路径,通过向目标主机发送重定向报文,是自己加入到路由路径中,从而进行嗅探等操作。
ARP欺骗攻击: 前面学习了ARP协议的原理,知道ARP采用广播方式来确认目标 MAC地址,但是没有任何验证,攻击机可以伪造回应,使目标主机的IP-MAC映射表里的记录错误。
TCP RST攻击: TCP重置报文通过修改“reset”标志位(从0改1)以切断一个TCP会话连接,攻击者可以通过滥用TCP重置报文,切断两个主机间的通信
TCP SYN洪泛攻击: 利用TCP三次握手,向目标主机发送大量伪造源地址的SYN连接请求,消耗主机的连接队列资源,使通信网络阻塞。
2.实践过程
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
(1)ARP缓存欺骗攻击
选择Kali作为攻击机,其他两台机器作为正常通信的机器。三个虚拟机的IP地址和Mac地址如下所示。
虚拟机 | IP | Mac地址 |
---|---|---|
Kali | 192.168.200.4 | 00:0c:29:a9:cf:5f |
Linux MetaSploitable | 192.168.200.123 | 00:0c:29:52:d1:e7 |
win2k | 192.168.200.124 | 00:0c:29:e5:c4:f7 |
首先使用Linux ping win2k
输入arp -a
查看arp表并记录:
打开kali对其进行攻击。netwox安装命令为sudo apt-get install netwox
,使用一个虚拟的mac地址发送一个数据包,命令为sudo netwox 80 -e 00:0c:29:e5:c4:f6 192.168.200.124
,再次通过arp -a
命令查看,发现mac地址变为00:0c:29:e5:c4:f6,成功将攻击机伪装成Windows。
(2)ICMP重定向攻击
虚拟机 | IP |
---|---|
Kali | 192.168.200.4 |
SEED | 192.168.200.5 |
首先在SEED中输入route -n
查看
使用netwox 86 -f "host 192.168.200.5" -g 192.168.200.4 -i 192.168.200.1
命令,这句话的意思是,嗅探网络中来自SEED靶机192.168.200.2的数据包时,以网关192.168.200.1(网关)的名义,向数据包的源地址发送一个ICMP重定向报文,使之使用192.168.200.4作为默认的路由。
使用SEED ping baidu.com,发现已经重定向到192.168.200.4上,则ICMP重定向攻击成功,路由的下一跳地址被修改为了192.168.200.4。
(3)SYN Flood攻击
设计使用kali攻击SEED靶机的telnet23号端口
先利用Metasploitable_linux对SEED靶机发起telnet访问,即telnet 192.168.1.105
,使用SEED的用户名和密码登录,发现可以正常连接,输入exit退出
Netwox可以使用76工具 Synflood (SYN洪泛)
在kali打开wireshark抓包,并在终端使用netwox 76 -i 192.168.1.105 -p 23
命令开始对SEED靶机进行SYN Flood攻击,在wireshark可以看到大量的伪造源IP的SYN包
再次让Metasploitable_linux对SEED靶机发起telnet访问,就变得很慢很慢,但是还是连接上了(队列没被消耗完)
(4)SYN Rst攻击
Netwox可以使用78工具 Reset every TCP packet (重置每个TCP包)
TCP RST攻击与TCP SYN Flood攻击相似,但是比后者要狠,会导致通信直接断开
还是打开kali的wireshark抓包,使用netwox 78 -i 192.168.1.105
命令,这次Metasploitable_linux和SEED靶机彻底失联了…
(5)TCP会话劫持攻击
打开kali的wireshark抓包,Metasploitable_linux对SEED靶机发起telnet访问建立通信,并输入ls
可以在wireshark使用tcp.port==23筛选出通信双方之间的数据包,找到ls相关数据包,“l”和“s”是分开发送的,并且一个数据包发送,一个数据包确认
直接找到最后的一个包
点击 TransmissionControl Protocol
查看其中的源端口,目的端口,SEQ 和 ACK 信息
因为我们要伪造发下一个包,所以直接采用 next SEQ 作为下一个包的 ACK ,采用 ACK 作为下一个包的 SEQ,攻击机使用 netwox 40伪装成Metasploitable_linux给SEED靶机发一个TCP包
Netwox可以使用40工具 Spoof Ip4Tcp packet (伪造Ip4Tcp包)
攻击机命令如下
sudo netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.1.108 --ip4-dst 192.168.1.105 --tcp-src 44476 --tcp-dst 23 --tcp-seqnum 3926719700 --tcp-acknum 384897573 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"
参数说明:
–ip4-src和–ip4-dst就是源地址和目的地址
–tcp-src 40593 就是wireshark中的
–tcp-seqnum序列号CLT_SEQ值
–tcp-acknum确认号SVR_ACK
–tcp-data是伪造的数据
可以在data部分看到自己设定的数据
发送成功后,Metasploitable_linux就会失去连接,但是它还是会一直与SEED虚拟机联系,单方面发送TCP ACK。同时SEED靶机会把攻击机当作Metasploitable_linux,这样攻击机就实现了会话劫持。
3.学习中遇到的问题及解决
- 问题1:kali安装netwox时,找不到这个包,安装失败
- 问题1解决方案:先使用sudo apt-get update命令更新一下,再使用sudo apt-get install netwox命令就可以成功下载了
- 问题2:2个机器之间无法ping通
- 问题2解决方案:改用直连模式。
4.实践总结
实践四学习了以网络层、传输层基于不同协议缺陷的攻击原理与方法,视频比较简单,但操作过程还是会有很多问题。