20242801 2024-2025-2 《网络攻防实践》第4次作业
一、实验内容
在虚拟机环境中完成TCP/IP协议栈重点协议的攻击实验,学习ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击的原理和相关知识,并动手进行实践。
二、实验过程
(一)ARP缓存欺骗攻击
原理:当数据包传输到数据链路层,需要ARP解析协议将网络层的ip地址转化为mac地址,主机维护了一张arp表,用于实现ip到mac地址的映射。该攻击方式通过欺骗目标主机的arp缓存表,使其将流量发送到错误的mac地址上,实现数据劫持。
1、确定攻击机和靶机的IP和MAC地址
在此次实验中,选择kail作为攻击机,seedUbuntu和winxpattack作为靶机,攻击机的ip为192.168.5.8,mac为00:0c:29💿9a:fc ;靶机seedUbuntu的ip为192.168.5.10,mac为00:0c:29:ac:56:32;靶机winxpattack的ip为192.168.5.9。并且三者都处于nat链接模式下,处于同一网段。
2、查看靶机原本的arp缓存表
通过ping命令测试靶机和虚拟机之间的连通性,并在seed中查看arp表。
可以发现当前192.168.5.9和192.168.5.8的mac是不同的
3、安装netwox
netwox是一款可以创造任意tcp/udp/ip数据报文的开源工具包,并且内置了许多攻击方法,在后面的ICMP重定向攻击、SYN Flood攻击等都有用到。
4、使用netwox进行arp欺骗攻击
命令:sudo netwox 80 -e 00:0c:29💿9a:fc -i 192.168.5.9
其中,-e {劫持后转发到的mac地址} ,-i
通过再次查看seedubuntu的arp表,可以发现192.168.5.9的mac地址和.8的mac地址相同,攻击成功。
(二)ICMP重定向攻击
1、查看靶机原始的路由表
原理:该方式利用icmp协议中的重定向消息,攻击者可以将受害者的网络流量重定向到一个由攻击者指定的地址。
在arp欺骗攻击中已经确认了seedubuntu、winxpattack和kail的ip和mac地址,在此就不再重复赘述。
此处是实验选择kail作为攻击机、seedubuntu作为靶机。
通过查看路由表可以发现当前靶机的网关地址为192.168.5.1。
2、使用netwox进行攻击
命令:sudo netwox 86 -f "host 192.168.5.10"-g 192.168.5.8 -i 192.168.5.1
其中,“host 192.168.5.10”为靶机的ip地址,-g后跟流量转发到的ip地址,-i后跟有修改掉的ip地址
在靶机中ping百度,可以发现当前靶机的流量已经被转发到了192.168.5.8中。
(三)SYN Flood攻击
1、查看端口信息
SYN洪泛攻击,利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
命令:netstat -antu | grep :23
选择seedubuntu作为靶机、kail作为攻击机,输入netstat命令可以发现当前23端口没有连接信息。
2、使用netwox进行攻击
命令1:nmap 192.168.5.10
命令2:sudo netwox 76 -i 192.168.5.10 -p 23
首先,使用了之前实验用的nmap,扫了一下靶机目前都开了哪些端口,然后在使用命令2进行攻击,-i后跟靶机ip,-p后跟攻击的端口号。
3、重新查看靶机的被攻击端口
再次查看靶机23端口可以发现出现了大量syn连接。
(四)TCP RST攻击
1、靶机使用tcp相关协议
原理:RST用来关闭连接,攻击者伪造了一个TCP RST的包发给客户端,使客户端异常的断开了与服务端之间的TCP连接,这就是RST攻击。
在此,靶机选择seedubuntu,攻击机为kail,靶机使用之前实验中telnet协议登陆bbs网站。
命令:sudo netwox 78 -i 192.168.5.10,-i后跟靶机的ip地址。
在靶机登陆成功后,使用攻击机输入命令,可以发现靶机登陆bbs的连接已经关闭。
(五)TCP会话劫持攻击
1、使用wireshark监听虚拟机流量
原理:TCP会话劫持是在通信双方已建立的TCP会话连接的基础上假冒其中一方(一般为客户端是客户端)的身份与另外一方(服务端)进行通信,从而达到劫持双方通讯信息的目的。
选用kail作为攻击机,meta和seedUbuntu作为靶机,两个靶机相互通信,kail使用tcp会话劫持攻击。首先,打开wireshark,查看是否能成功监听两靶机通信流量。
两个靶机之间,seed通过telnet连接远程登陆meta主机。
靶机可以成功通信,并且kail可以监听到通信流量。
2、使用shijack进行攻击
首先下载并解压shijack,shijack是一款专门针对TCP劫持的工具。通过下列命令可以安装shijack
wget https://dl.packetstormsecurity.net/sniffers/shijack.tgz
tar -zxvf shijack.tgz
通过在kail中查看监听到的流量可以发现,seed作为telnet连接发起方使用的端口号是38780,meta作为连接方telnet协议默认是23。
确认后端口后,即可使用shijack进行tcp会话劫持攻击。
命令:sudo ./shijack-lnx eth0 192.168.5.10 38780 192.168.5.3 23
其中 eth0指定网卡,紧接源ip,源端口号,目的ip,目的端口号
发起攻击后有一段等待实践,攻击正在获取当前tcp会话的序列号等信息。等待完成后,打开seed可以发现,远程连接界面已经无法响应,在kail中输入命令,可以在wireshark中监听到相关信息。说明当前seed到meta的会话已经被成功劫持。
三、学习感悟
- 学习了针对TCP/IP协议栈的相关攻击方法,重温了arp、icmp协议的基本原理,对每个攻击的原理进行了了解并亲手实践,同时实践了之前实验的扫描方法。
- arp缓存表的更新是存在延迟的,在第一次查询arp表的时候,虽然各个主机都处于同一网段,但arp却没有显示,通过查阅资料,相互进行ping命令之后,arp表即可正常显示;并且,可能是因为靶机的版本比较老,无法自动更新网段,在使用dhcp时需要手动重启网卡。
- 本次学习的完整录屏视频已上传至百度网盘(时间较长文件较大),通过网盘分享的文件:第四次作业
链接: https://pan.baidu.com/s/1-KIdLlYovULfSFxMksFMsA?pwd=1234 提取码: 1234