20211912 2021-2022-2 《网络攻防实践》第四周作业
20211912 2021-2022-2 《网络攻防实践》第四周作业
1 知识点梳理与总结
1.1 ARP缓存欺骗攻击
-
原理:通过发送伪造虚假的ARP报文(广播或单播),来实现的攻击或欺骗:如虚假报文的MAC是伪造的不存在的,实现ARP攻击,结果为中断通信/断网;如虚假报文的MAC是攻击者自身的MAC地址,实现ARP欺骗,结果可以监听、窃取、篡改、控制流量,但不中断通信
-
防范:静态绑定关键主机的IP地址与MAC地址映射关系,使用ARP防火墙
1.2 ICMP重定向攻击
-
原理:网络协议分析是指对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法
-
防范:根据类型过滤一些ICMP数据包,设置防火墙过滤,对于ICMP重定向报文判断是不是来自本地路由器
1.3 SYN Flood攻击
-
原理:SYN Flood攻击是通过伪造一个源地址的SYN报文,发送给受害主机,受害主机回复SYN-ACK报文给这些地址后,不会收到ACK报文,导致受害主机保持了大量的半连接,直到超时;这些半连接可以耗尽主机资源,使受害主机无法建立正常TCP连接,从而达到攻击的目的
-
防范:SYN-Cookie技术,防火墙地址状态监控技术
1.4 TCP RST攻击
-
原理:攻击机可以通过嗅探方式监视通信双方之间的TCP连接,在获得源、目标IP地址及端口,以及序列号之后,就可以结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方,在确保端口号一致及序列号落入TCP窗口之内的情况下,即可直接关闭这个TCP连接,造成通信双方正常网络通信的中断,达到拒绝服务的效果,而且向TCP会话中的任意一端节点均可以重置TCP连接
-
防范:防火墙过滤带RST位的数据包
1.5 TCP会话劫持攻击
-
原理:劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信
-
防范:禁用主机上的源路由,采用网络层加密机制(IPsec协议)
1.6 实践内容
2 虚拟机信息
虚拟机 | IP地址 | MAC地址 |
---|---|---|
Kali | 192.168.31.104 | 00:0C:29:e1:a2:41 |
Seed Ubuntu16 | 192.168.31.174 | 00:0C:29:c6:ad:b5 |
Metasploitable_ubuntu | 192.168.31.154 | 00:0C:29:e1:1a:4f |
3 ARP缓存欺骗攻击
-
用Seed Ubuntu16pingMetasploitable_ubuntu,并通过arp -a命令查看arp缓存表
-
在Kali上执行指令netwox 80 -e Kali的Mac地址 -i Metasploitable_ubuntu的IP地址,并再次在Seed Ubuntu16上查看arp缓存表,会发现MAC地址变成了我们所伪造的,因此欺骗成功
4 ICMP重定向攻击
-
在Seed Ubuntu16上ping baidu.com后,使用route -n查看数据流向,发现网关是192.168.31.1
-
Kali上执行命令netwox 86 -f "host 192.168.31.174" -g 192.168.31.104 -i 192.168.31.1意思是嗅探到所有来自192.168.31.174的数据包时,以192.168.31.1的名义发送ICMP重定向包,使192.168.31.104成为默认路由,此时再在Seed Ubuntu16上ping baidu.com后会发现数据重定向
-
在Wireshark中也可以看出重定向
5 SYN Flood攻击
-
在Seed Ubuntu16上使用命令telnet 192.168.31.154登录Metasploitable_ubuntu(账号密码为Metasploitable_ubuntu的)
-
Kali上执行命令netwox 76 -i 192.168.31.154 -p 23(23号端口是Telnet服务端口)
-
在Wireshark中可以看到攻击机向靶机发送了大量的虚假IP发出的SYN连接请求,同时我们的Seed Ubuntu16也无法登录Metasploitable_ubuntu
6 TCP RST攻击
-
再次在Seed Ubuntu16上登陆登录Metasploitable_ubuntu,并在Kali上使用命令netwox 78 -i 192.168.31.154进行TCP RST攻击
-
这时会在Seed Ubuntu16上发现连接被关闭
7 TCP会话劫持攻击
-
再次在Seed Ubuntu16上登陆登录Metasploitable_ubuntu,并再Wireshark上设置过滤条件tcp.port23,然后在Seed Ubuntu16中输入ls==,这时会在Wireshark中看到输入的消息,并再最后一个包中可以看到数据包的源地址、目的地址、端口号等信息
-
根据上一步得到的信息,使用命令netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.31.174 --ip4-dst 192.168.31.154 --tcp-src 57450 --tcp-dst 23 --tcp-seqnum 5 --tcp-acknum 44 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "20211912"伪造一个数据包,发送成功后,Seed Ubuntu16就会失去连接,Kali会被当作访问者,实现TCP会话劫持
-
在Wireshark中可以看到发送成功的信息以及Tcp Dup数据包,说明TCP会话劫持攻击成功
8 学习中遇到的问题及解决
- 问题1:攻击机与靶机ping不通
- 问题1解决方案:将攻击机与靶机改为桥接模式,同时将实验一配置的Metasploitable_ubuntu中的rc.local文件中的命令删除
9 学习感悟、思考
- 本次的实践较简单,学习了netwox的使用方法,并对各种攻击的原理加深了理解
10 参考资料
- Linux常用命令
- [网络攻防技术与实践(诸葛建伟编著)]
- netwox网络工具集入门教程