目录
1.实践内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.1 ARP缓存欺骗攻击
攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
原理:局域网是根据MAC地址进行传输。ARP协议在进行IP地址到MAC地址映射查询时存在安全缺陷,ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。
1.2 ICMP重定向攻击
指攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听。
1.3 SYN Flood攻击
基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
1.4 TCP RST攻击
TCP协议头有一个reset,该标志位置为1,接收该数据包的主机即将断开这个TCP会话连接。tcp重置报文就是直接关闭掉一个TCP会话连接。
1.5 TCP会话劫持攻击
TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过TCP对会话通信方的验证。原理:通常一些网络服务在建立TCP会话之后进行应用层的身份认证,客户端在通过身份验证之后就可以通过TCP会话连接对服务端进行控制或获取资源,期间不需要再次进行身份验证。为攻击者提供了一种绕过应用层身份认证的技术途径。
本次使用的虚拟机信息:
虚拟机 | 功能 | IP |
---|---|---|
kali | 攻击机 | 192.168.200.3 |
SEEDUbuntu | 攻击机 | 192.168.200.5 |
MetaSploitable | 靶机 | 192.168.200.123 |
2.实践过程
实验正式开始之前,先调试虚拟机网络,将kali、Ubuntu、和metasploitable的虚拟机网络均调为VMnet8
再输入ifconfig
命令分别查询三台虚拟机的IP 地址和MAC地址
虚拟机 | IP | MAC |
---|---|---|
kali | 192.168.200.3 | 00:0c:29:a5:a4:8c |
Linux MetaSploitable | 192.168.200.123 | 00:0c:29:43:a9:d7 |
SEED Ubuntu | 192.168.200.5 | 00:0c:29:d6:78:63 |
2.1 ARP缓存欺骗攻击
(1)通过刚才的查询得知Metasploitable的IP地址的192.168.200.123
,在SEED Ubuntu上输入命令 ping 192.168.200.123
测试二者的连通性。
如上图,结果为二者连通性正常。
再在SEED Ubuntu上输入arp -a
得到arp缓存表。
由上图可知,从该表中可以发现Metasploitable的IP地址和对应的MAC地址
(2)接下来的指令需要用到netwox
,需要先在kali上安装netwox
包
先把kali的网络改为桥接模式
,在kali上使用sudo su
命令提权后(密码为kali
),输入命令arp-get install netwox
安装netwox
netwox
安装成功后,把网络改回VMnet8
,在kali输入以下命令
netwox 80 -e `kali的MAC地址` -i `metasploitable的IP地址`
执行命令后,会在局域网内广播这条命令吗,使得攻击机SEED收到IP(Metasploitable)/MAC(kali)的映射。
(3)在Ubuntu上再次输入命令 “arp -a”查看arp映射表
发现IP地址为192.168.200.123
的Metasploitable的MAC地址已经变成了kali的MAC地址,则ARP缓存欺骗成功
(4)打开kali上的WireShark进行捕获
选择eth0
网卡
(5)在kali上输入命令arp -d 192.168.200.123
删除arp缓存
2.2 ICMP重定向攻击
由于我的虚拟机在VMnet8
下无法访问外网,因此将Kali和SEED Ubuntu的网络都改为桥接模式
虚拟机 | IP |
---|---|
Kali | 192.168.1.101 |
SEED Ubuntu | 192.168.1.111 |
在Ubuntu上输入命令 “ping baidu.com” 检查连通性,发现Ubuntu可以和该网址连接上,则说明Ubuntu可以直接访问外网
使用route -n
查看路由信息
(2)在kali上输入以下命令
netwox 86 -f "`ubuntu的IP地址`" -g `kali的IP地址` -I 192.168.1.123
该命令用于在嗅探到攻击机SEED的数据包时,以192.168.1.123
的名义发送ICMP重定向报文
(3)再次在Ubuntu上输入命令 ping baidu.com
发现Ubuntu的IP地址从原来的192.168.1.101
变成了192.168.1.123
,其访问百度的数据包已经被重定向
2.3 SYN Flood攻击
(1)本次实验使用SEED Ubuntu向metasploitable发起telnet
连接
在SEED上输入telnet 192.168.200.123
然后输入metasploitable的用户名和密码进行登录(用户名密码均是:msfadmin)
可见连接成功
(2)在kali上输入命令netwox 76 -i 192.168.200.123 -p 23
利用netwox的76号工具对metasploitable的23号端口进行SYS Flood攻击。
(3)打开kaili里的WireShark进行捕获
选择eth0
网卡
可以发现kali向metasploitable发送了大量虚假ip的SYN连接请求数据包,大量数据包引起的泛洪攻击使Metasploitable拒绝服务。同时在Ubuntu上发现无法进行访问了
2.4 TCP RST攻击
Ubuntu向metasploitable发起telnet
服务访问,用kali对metasploitable发起TCP RST
攻击
(1)使用Ubuntu向Metasploitable发起telnet连接
在SEED上输入telnet 192.168.200.123
然后输入metasploitable的用户名和密码进行登录(用户名密码均是:msfadmin)
(2)在kali上输入以下命令
netwox 78 -i `Metasploitable的IP地址`
(3)在Ubuntu刚刚的界面,敲击回车发现,连接已经被强制关闭。并且在Ubuntu上再次输入命令 telnet 192.168.200.12
3无法连接
(4)打开kali的WireShark进行捕获
选择eth0
网卡
可以看到,出现了很多RST数据包将之前建立的连接断开了,导致了telnet连接关闭
2.5 TCP 会话劫持攻击
这次的攻击使用ettercap工具,首先,在Kali攻击机上使用以下命令打开工具:
sudo ettercap -G
点击右上角的√
按钮,开始使用工具
点击右上角的三个点,然后依次点击Hosts-Host List
注:如果打开后发现并没有这两个靶机的IP,点击右上角的三个点,再点击
Hosts-Scan for hosts
,进行扫描后,再查看Host List,即可发现IP
将SEEDUbuntu和MetaSploitable的IP分别设置为攻击目标1和攻击目标2
随后点击右上角的第一个圆形按钮,选择ARP Poisoning
进行ARP欺骗
在弹出的窗口中点击OK
然后点击右上角的三个点,然后依次点击View-Connections
,查看SEEDUbuntu和MetaSploitable之间的连接
接着,在SeedUbuntu上通过telnet命令远程连接Metasploitable
可以看到Connections连接列表中出现了相关信息,192.168.200.5
通过23号端口对192.168.200.123
进行连接
点击这条信息,再点击下方的View Details
查看更详细的内容
双击这条信息,查看详细内容
我们可以看到刚才在SEED Ubuntu上输入的l
命令及该命令的返回信息,也就是说,这里监视着两个主机之间交互的一切信息,攻击成功。
点击下方的Kill Connection
,提示连接已关闭
再回到SEED Ubuntu
可以看到连接已被关闭
3. 学习中遇到的问题
- 问题1描述:在kali下载netwox失败
- 解决方法:将kali虚拟机的网络改为
桥接模式
,下载好后再改回VMnet8
- 问题2描述:在ICMP重定向攻击实验中,ping不通,无法访问外网
- 解决方法:将SEED Ubuntu和Kali的网络都改为
桥接模式
,这样既在同一网段,也能访问外网
4. 学习感想和体会
在本次实验中,应用netwox工具进行了ARP欺骗攻击、ICMP路由重定向攻击、SYN Flood攻击、TCP RST 攻击和TCP会话劫持,并初步了解了netwox、ettercap等工具的使用,为今后进一步深入了解和实践网络协议攻击奠定了基础。