20212917于欣月 2021-2022-2 《网络攻防实践》第四周作业
1.实验要求及过程
ARP缓存欺骗攻击
-
解释:ARP缓存是ARP协议的重要组成部分。当使用ARP协议解析了某个 MAC地址和IP地址的映射关系,该映射便会被缓存下来。因此就不用再使用ARP协议来解析已存在缓存中的映射关系。但是因为ARP协议是无身份认证的,所以ARP缓存很容易被恶意的虚假ARP数据报实施欺骗。这样的攻击被称为ARP缓存欺骗(或ARP缓存中毒)。在这样的攻击中,攻击者通过伪造ARP数据报来欺骗被攻击主机的电脑使之缓存错误的MAC地址和IP地址映射。攻击者可以使被攻击主机的默认网关IP映射到一个不存在的MAC地址达到DoS攻击,攻击者也可以使被攻击主机的通信重定向至其他机器等等。
-
(1)先把三个虚拟机都改为桥接模式,分别查询ip地址与mac地址
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali | 192.168.11.190 | 00:0c:29:29:c3:5f |
Seet Ubuntu16 | 192.168.11.158 | 00:0c:29:56:50:94 |
Linux Metaolitable | 192.168.11.39 | 00:0c:29:66💿48 |
- (2)先用Seed Ubuntu ping Linux MetaSploitable,得到arp缓存表,再用
arp -a
查看arp缓存表。
- (3)在Kali上执行指令
netwox 80 -e 00:0c:29:29:c3:5f -i 192.168.11.39
。80是指netwox的80号工具,第一个为攻击机Kalid MAC地址,第二个为MetaSploitable的IP地址。
- (4)在Seed Ubuntu上再用
arp -a
查看缓存表,可以发现MetaSploitable对应的mac地址改变了。
- (5)在MetaSploitable上按照上述步骤也改一下arp缓存表,然后做个验证。在kali上能用wireshark抓到Seed Ubuntu ping Linux MetaSploitable的数据包。
- (6)最后取消netwox指令在ping一下,就能恢复arp缓存表或者用sudo arp -d 192.168.11.39也能删除arp缓存
ICMP 重定向攻击
因实验中,更换了网络,所以从此IP地址改为:
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali | 192.168.199.121 | 00:0c:29:29:c3:5f |
Seet Ubuntu16 | 192.168.199.154 | 00:0c:29:56:50:94 |
Linux Metaolitable | 192.168.199.142 | 00:0c:29:66💿48 |
-
解释:ICMP重定向报文是路由器为网络中的机器提供最新的路由信息以达到最短路由而使用的。当主机收到一个ICMP重定向报文就会根据报文来更新自己的路由表。由于缺乏确认机制,如果攻击者想要使被攻击主机使用特定路由,他们只要向被攻击主机发送欺骗性的ICMP重定向报文,使它改变路由表即可。
-
(1)在SEED Ubuntu上打开Wireshark来查看数据流量,并在终端ping baidu.com,可以ping通。
- (2)Kali上执行命令`sudo netwox 86 -f "host 192.168.199.154" -g 192.168.199.121 -i 192.168.199.1即嗅探到192.168.199.154(SEED Ubuntu)的数据包时,以192.168.3.1的名义发送ICMP重定向报文,使192.168.199.121(Kali)成为其默认路由,观察Wireshark数据包的情况。发现其访问百度的数据包已经被重定向到192.168.199.121
SYN Flood攻击
-
解释:SYN flood攻击是DoS攻击的一种形式,攻击者向被攻击主机的 TCP端口大量发送SYN请求包,但不去完成TCP的“三次握手”的过程。
-
(1)使用SEED Ubuntu向MetaSploitable发起登陆telnet 192.168.199.142,输入用户名密码(MetaSploitable登陆的用户名密码)。
- (2)在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击
sudo netwox 76 -i 192.168.199.142 -p 23
。
- (3)打开Wireshark查看,可以看到攻击机向靶机发送了大量的虚假ip发出的SYN连接请求,这些虚假的连接请求没有MAC地址,无法溯源攻击者的真实身份。同时我们在SEED Ubuntu上进行访问也发现无法访问了。
TCP RST攻击
-
解释:TCP RST攻击是一种中断攻击
-
(1)使用SEED Ubuntu向MetaSploitable发起登陆telnet 192.168.199.142,输入用户名密码(MetaSploitable登陆的用户名密码)。
- (2)在Kali上利用netwox的78号工具对靶机进行TCP RST攻击
sudo netwox 78 -i 192.168.199.142
- (3)回到SEED Ubuntu的登陆界面,可以发现连接已经被强制关闭了。
TCP会话劫持攻击
-
解释:TCP会话劫持的目标是劫持一个已经存在于两台被攻击主机之间的TCP连接,在会话中注入恶意的内容。如果这是一个telnet会话连接,攻击者可以注入一些恶意的命令,使得被攻击主机运行这些恶意的命令。
-
(1)首先SEED Ubuntu利用telnet 192.168.199.142登陆MetaSploitable。
- (2)在Kali上打开Wireshark设置过滤条件tcp.port==23,然后在SEED Ubuntu中输入ls,在没有发其他指令的条件下,回到Kali的Wireshark中查看,会发现有l和s的数据包,找到最后一个包。
- (3)伪造下一个包,使用指令
sudo netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.199.154 --ip4-dst 192.168.199.142 --tcp-src 58292 --tcp-dst 23 --tcp-seqnum 6 --tcp-acknum 6 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"
,tcp-data是你要发的数据的16进制值,这里的是helloworld的16进制。
- (4)如果在wireshark上也发现了很多Tcp Dup和Tcp Retransmission,那么你的劫持就是成功的。TCP Dup ACK XXX#X即
重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失
2.学习中遇到的问题及解决
- 问题1:Linux MetaSploitable改成桥接模式后,IP地址不变和kali与ubuntu不在同一个网段中
- 答:在实验一环境的配置中,已经把Linux MetaSploitable的IP地址固定了,把对应的代码注释掉即可。
3.学习感想和体会
- TCP会话劫持我做的是手动实现的过程,比较复杂,除了视频中的ettercap,通过查询,还有一些工具可以直接使用。此外,本次实验学的攻击方法又+++了,下节课继续进步一点点!