20199106 2019-2020-2 《网络攻防实践》第五周作业
作业说明
这个作业属于哪个课程 | 网络攻防实践 |
---|---|
这个作业的要求在哪里 | 第五周作业:网络嗅探与协议分析 |
我在该课程的目标 | 对网络攻防技术有一个比较全面的认识,能够掌握基本的攻防操作。 |
这个作业在哪个具体方面帮助我实现目标 | 动手练习了TCP/IP网络协议攻击的原理和实践 |
作业正文
实践内容
第五章主要介绍了TCP/IP网络协议的各种攻击。
概述:
- 网络安全五大安全属性:机密性,完整性,可用性、真实性和不可抵赖性。
- 网络攻击四种基本模式:截获、中断、篡改、伪造。
- TCP/IP网络协议栈安全缺陷:
- 网络接口层:以太网协议,当网络接口处于混杂模式可以直接嗅探并截获数据包,同时缺乏对MAC地址源的身份验证机制,实现MAC地址欺骗。
- 互联层:IP协议只根据目的地址进行转发,不检查源IP地址是否真实有效,容易遭到IP地址欺骗。同时还包括源路由滥用、IP分片攻击,以及ARP欺骗、ICMP重定向、Smurf攻击等。
- 传输层:TCP建立会话之后的连接过程中,非常容易遭受伪造和欺骗攻击,攻击者可以进行TCP RST攻击直接中断会话过程。同时TCP的三次握手过程存在设计缺陷,攻击者可以进行SYN泛洪攻击。
- 应用层:一些流行的应用层协议HTTP、FTP、POP3/SMTP、 DNS等均缺乏安全设计。
网络层攻击及防范措施
- IP源地址欺骗
- ARP欺骗攻击
- ICMP路由器重定向攻击
- 传输层协议攻击及防范措施
- TCP RST攻击
- TCP会话劫持攻击
- TCP SYN Flood拒绝服务攻击
- UDP Flood拒绝服务攻击
- 原理:通过向目标主机和网络发送大量UDP数据包,造成目标主机显著的计算负载提升,或者通过网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
- 防范措施:禁用或过滤监控及响应服务、禁用或过滤其他UDP服务。
实验过程
实验任务
在网络攻防实验环境(以 SEED_VM 作为攻击机,Linux Metasploitable/Windows Metasploitable 作为靶机)中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击以及TCP会话劫持攻击(bonus)。
实验环境
实验环境 | IP地址 | Mac地址 |
---|---|---|
靶机A:winXP | 192.168.200.3 | 00:0C:29:03:4F:2D |
靶机B:linux Metasploitable | 192.168.200.125 | 00:0c:29:0c:64:32 |
攻击机C:kali | 192.168.200.2 | 00:0c:29:7e:33:d5 |
1、ARP缓存欺骗攻击
首先在kali上输入命令apt-get install netwox
安装netwox
。
在攻击机输入命令netwox
,选择5
->'33'->netwox 33 -b 00:0C:29:03:4F:2D -g 192.168.200.125 -h 00:0C:29:03:4F:2D -i 192.168.200.2
注:
33号工具可以构造任意的以太网ARP数据报,80号工具可以周期性地发送ARP应答报,这两个工具都可进行arp攻击;
netwox 33 -b (A的mac地址) -g (B的ip地址) -h (A的mac地址) -i (A的ip地址)
,其中,-b 显示网络协议下相关的模块; -g 显示与客户端相关的模块; -h 显示与服务器相关的模块; -i 显示与检测主机连通性相关的模块;
命令执行结果如下:
在A靶机中输入arp -a
查看目标主机A的arp缓存中保存了IP(B)/MAC(C)这样的映射关系从而达到了欺骗目的。
同样的方式对B进行欺骗;在kali中打开wirshark,可以看出A与B之间的通信在C主机上已经捕获,由此可知已成功实现了ARP欺骗。
2、ICMP路由重定向攻击
一般和IP源地址欺骗技术结合实践,攻击机利用Netwox的第86号工具,执行攻击命令 netwox 86 -f "host 192.168.200.3" -g 192.168.200.2 -i 192.168.200.1
,-f 代表靶机地址, -g 代表靶机的下一跳地址,-i 代表伪造的身份。
让靶机访问任意网页,对比实施ICMP重定向攻击前后的受害主机路由表,发现攻击机的IP地址变化如下图所示:
可见攻击机成功冒充了网关ip地址。
3、TCP RST攻击
在攻击之前,先将主机A向主机B登录: telnet 192.168.200.125
;在C上使用Netwox
的78号
工具“Reset every TCP packet”来实现TCP RST攻击 netwox 78 -i 192.168.200.125
,查看主机A,随意输入一个指令,然后回车,发现A与B已断开连接:
C中打开wireshark查看抓包情况会发现C冒充B向A发送了RST信息,断开了A、B的连接:
4、SYN Flood攻击
首先在A中使用telnet
登陆B,建立连接,
在C中选择编号为76的“synflood”工具,并输入目标地址:192.168.200.125;
打开C中wireshark,可见攻击机C向目标靶机B发送了大量的虚假ip的SYN连接请求。
查看A刚刚的登录页面,发现连接并没有断开,可能是因为目标靶机B比较强悍?
5、TCP会话劫持攻击
首先使用telnet
在A中登陆B;在C中打开wireshark,过滤器中输入telnet
,然后再A中输入pwd
命令。查看C中wireshark,第二个窗口,telnet
下会看到p
、w
、d
的数据包。
选择最后一个包,打开TransmissionControl Protocol 查看以下几个值,源端口、目的端口、Next Seq Num和ACK值。
获取到信息之后,攻击机C使用netwox工具伪造A给B发一个tcp包。发送成功后,原来的A就会失去连接,同时B会把Kali当作访问者 ,如此实现了会话劫持。
指令如下:
netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.3 --ip4-dst 192.168.200.125 --tcp-src 1069 --tcp-dst 23 --tcp-seqnum 1387 --tcp-acknum 104 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "6D6B646972206161"
在ip4-src后输入A 的地址,在ip4-dst后输入你的B的地址,tcp-src表示原端口号(这个是变化的),tcp-seqnum和tcp-acknum输入上面标出的值,tcp-data是C要发的16进制值数据,这里的是mkdir aa
的16进制。同样的可以在Wireshark中观察到发送的值。
可见攻击机C成功冒充了A的ip向B发送了数据包。
学习中遇到的问题及解决
问题一:虚拟机开机总显示内存不足。
解决:多试几下就好了,也尝试更改了一下虚拟机的内存,效果不明显。
问题二:安装netwox不成功。
解决:kali攻击机没连网。
学习感想和体会
这次实验除了开始网络和虚拟机开启出了点问题,后面做的还是比较顺利,感谢同学们的帮助。
参考资料
《网络攻防技术与实践》 诸葛建伟
《winXP如何查看mac地址》
《arp百度百科》