20199310 2019-2020-2 《网络攻防实践》第5周作业
作业课程: | https://edu.cnblogs.com/campus/besti/19attackdefense |
---|---|
作业要求: | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553 |
课程目标: | 学习《网络攻防技术与实践》教材第五章,并完成课后作业 |
本次作业实现目标: | 学习TCP/IP网络协议攻击技术和实践操作 |
作业正文:
1 知识点梳理
1.1 网络安全
网络安全:网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭受破坏、更改、泄露,系统连续可靠正常运行,网络服务不被中断。
网络安全属性:
- 机密性:网络中的信息不被非授权实体获取和使用,通常基于加密算法进行保障。
- 完整性:信息未经授权不能进行改变的特性,即信息在存储和传输过程中保持不被修改、不被破坏和丢失的特性。
- 可用性:被授权实体访问并按需求使用的特性,即当需要时能够正常地存取和访问所需的信息与服务。
- 真实性:被授权实体访问并按需求使用的特性,即当需要时能够正常地存取和访问所需的信息与服务。
- 不可抵赖性:在通信中确保任何一方无法抵赖自己曾经做过的操作的安全特性,包括对自己行为的不可抵赖及对行为发生时间的不可抵赖。
网络攻击基本模式:
- 截获:一种被动攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反,具体攻击技术为嗅探与监听。
- 中断:一种主动攻击模式,致使正常的网络通信和会话无法继续,是对可用性的破坏,具体攻击技术为拒绝服务。
- 篡改:一种主动攻击模式,对网络通信过程的信息内容进行修改,是的通信一方或双方接收到篡改后的虚假信息,是对完整性的违背,具体技术为数据包篡改,一般需要结合身份欺骗进行中间人攻击。
- 伪造:一种主动攻击模式,假冒网络通信方的身份,欺骗通信对方达到恶意目的,是对真实性属性的背离,具体攻击技术为欺骗。
- 中间人攻击:一种主动攻击模式,通过各种技术手段与通信双方建立起各自独立的会话连接,并进行消息的双向转发。
TCP/IP网络协议栈的安全缺陷与攻击技术:
2 实验内容
2.1 网络层协议攻击
2.1.1 IP地址欺骗
IP地址欺骗:攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。
攻击示意图:
- 1.对受信任主机进行拒绝服务供给,使其丧失工作能力;
- 2.对目标主机的TCP初始序列号(ISN)进行取样与猜测;
- 3.伪造源地址为受信任主机IP的SYN数据包,发送给目标主机;
- 4.等待目标主机将SYN/ACK包发给已瘫痪的受信任主机;
- 5.再次伪装成被信任主机向目标主机发送ACK包,设置发送数据包的ACK值为预测目标哦主机ISN+1;
- 6.连接建立,假冒被信任主机与目标主机通信。
防范措施: - 使用随机化的初始序列;
- 使用网络层安全传输协议如IPsec,对传输数据包进行加密;
- 避免采用基于IP地址的信任策略,以基于加密算法的用户身份认证机制来替代这些访问控制策略;
- 在路由器和网关上实施包过滤是对抗IP源地址欺骗的一种主要技术。
2.1.2 ARP欺骗
ARP欺骗:攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
攻击示意图:
- 1.源节点A通过广播的形式在局域网内发送ARP请求包,询问节点B的IP地址所映射的MAC地址;
- 2.局域网内的攻击节点虽然不是ARP包的目标IP地址,但不断向源节点发送ARP响应包;
- 3.虽然B节点也向源A发出了ARP响应,但是源节点上会强制以节点C发送的响应包中的信息来更新ARP缓存;
- 4.源节点A再次发送数据包到目的节点B时,根据错误的映射记录,会直接把数据包发送给节点C;
- 5.利用相同的方法,攻击节点C也可以对节点B假冒节点A,形成中间人攻击。
防范措施: - 静态绑定关键主机IP地址与MAC地址映射;
- 使用ARP防范工具;
- 使用VLAN虚拟子网细分网络拓扑;
- 以加密传输数据以降低ARP欺骗攻击的危害后果。
2.1.3 ICMP路由重定向
ICMP路由重定向攻击:攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。
ICMP报文:
- 差错报告报文:目的站不可达,数据报超时,数据包参数错误。
- 控制报文:请求/应答报文,通知报文。
攻击示意图:
- 1)攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点;
- 2)被攻击节点选择攻击节点作为其新路由器(网关);
- 3)攻击节点可以开启路由转发,充当中间人;
防范措施:设置防火墙过滤,对ICMP重定向报文判断是不是来自本地路由器
2.2 传输层协议攻击
2.2.1 TCP RST攻击
TCP重置报文:一种假冒干扰TCP通信连接的技术方法,reset标志位为1时主机将断开这个TCP会话连接。
攻击示意图:
攻击机可以发送TCP重置报文导致通信双方TCP连接断开,达到拒绝服务的效果。
2.2.2 TCP会话劫持攻击
TCP会话劫持:劫持建立TCP通信的会话连接,假冒其中一方与另一方进一步通信,该攻击绕过了应用层的身份认证。
ACK风暴:在网络中来回发送ACK,构成死循环,直到其中一个ACK由于网络拥塞或其他原因丢失。
攻击示意图:
防范措施:
- 1)优化初始序列号随机化;
- 2)禁用主机上的源路由;
- 3)采用静态绑定IP-MAC映射表以避免ARP欺骗;
- 4)引用和过滤ICMP重定向报文,采用网络层加密机制。
2.2.3 TCP SYN Flood拒绝服务攻击
TCP SYN Flood拒绝服务:使服务器不能够为正常访问的用户提供服务。
正常的三次握手建立TCP连接:
攻击示意图:
利用TCP三次握手协议的缺陷,攻击时大量发送SYN报文,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能为正常用户提供服务。
防范措施:
- 1)SYN-Cookie技术;
- 2)防火墙地址状态控制技术。
3.实践作业
- 请在网络攻防实验环境(以SEED_VM作为攻击机,Linux Metasploitable/Windows Metasploitable作为靶机)中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击及TCP绘画劫持攻击(bonus)。
3.1 ARP缓存欺骗攻击
攻击机SEED
:IP为192.168.200.4
,MAC地址为00:0c:29:8f:cc:a9
靶机1Linux Metasploitable
:IP为192.168.200.102
,MAC地址为00:0c:29:c8:14:8b
靶机2win2kServer
:IP为192.168.200.103
,MAC地址为00:0c:29:bb:a0:45
一开始靶机之间没有ARP映射关系,通过靶机2ping
靶机1,让靶机2获得靶机1的ARP映射信息
使用命令netwox 33 -b 00:0c:29:bb:a0:45 -g 192.168.200.102 -h 00:0c:29:bb:a0:45 -i 192.168.200.103
替换ARP缓存,其中两个MAC地址都是靶机2的MAC地址,第一个IP地址为靶机1的IP地址,第二个IP地址为靶机2的IP地址,攻击机截获了靶机2的ARP请求包,向靶机2不断发送ARP响应包,由此修改了原本ARP缓存靶机1的MAC地址。
在靶机2上通过arp -a
命令可以看到靶机1的IP地址没变,但是MAC地址已经被替换为攻击机的MAC地址:
3.2 ICMP重定向攻击
首先在windows靶机中用命令route print
查询当前默认网关为192.168.200.1
:
然后在攻击机Kali上通过命令netwox 86 -f “host 192.168.200.10” -g 192.168.200.7 -i 192.168.200.1
,以原默认网关192.168.200.1
的名义向源IP地址192.168.200.10
发送一个ICMP重定向数据包,把默认网关的MAC地址改为攻击机192.168.200.7
的MAC地址:
查询靶机的route跳转记录,可以发现经过攻击机192.168.200.7
:
3.3 TCP RST攻击
使用netwox第78号工具发起攻击,执行命令netwox 78 -i 192.168.200.4
,对dees机进行TCP RST攻击,冒充靶机向目的IP发送大量RST
标志位1的数据包,导致TCP连接断开,靶机与目标服务器断开通信:
可以看到靶机已与百度网页断开通信:
3.4 SYN Flood攻击
使用netwox中的76号工具进行攻击,执行netwox 76 -i "192.168.200.4" -p 23
对靶机的23号端口进行SYN Flood
攻击:
在wireshark上进行抓包,发现攻击机向靶机发送大量虚假SYN
连接请求,这些请求没有MAC地址,无法查询攻击者:
对靶机进行telnet连接,显示连接失败:
3.5 TCP会话劫持攻击
安装ettercap命令apt-cache search ettercap
,apt-get install -y ettercap-graphical
,启动web服务/etc/init.d/apache2 start
,/etc/init.d/apaches2 status
:
修改/etc/ettercap/etter.dns
配置文件,添加欺骗的A记录和PDR记录:
输入ettercap -G
开启ettercap,选择eth0网卡,点击√
开启服务,然后选择Hosts
下Hosts list
,然后点击Scanf for hosts
,能显示当前网段内的扫描的主机IP,将windows靶机192.168.200.3
添加为Target1,将SEED靶机192.168.200.4
添加为Target2:
然后选择ARP posisoning
,勾选Sniff remote connections,开始远程嗅探:
靶机之间ARP查询,对方MAC地址已经变为攻击机MAC地址:
靶机之间进行ping
操作,嗅探结果如下:
靶机之间进行telnet
连接,嗅探结果如下:
靶机登录百度,嗅探结果如下:
4.学习中遇到的问题及解决
- 问题1:登录kali机后发现eth0不见了
问题1解决方案:不知道是什么原因,查询网上的解决方案在/etc/network/interfaces
文件中添加eht0的自动启动,并重新配置了DNS服务器。
- 问题2:ICMP路由重定向攻击失败
问题2解决方案:原来的靶机用的是仅主机模式,将其修改为NAT模式重定向就可以成功
- 问题3:netwox和ettercap的使用
问题3解决方案:netwox的使用语法参考主要参考了教材,ettercap的安装和配置稍显复杂,参考了这篇ettercap入门学习博客
5.学习感悟和思考
本次学习内容主要包括TCP/IP网络协议中的常见攻击技术,并对其在配置的虚拟机环境中进行了测试实践。感觉netwox还是一个比较全面的网络攻击软件,其中包括的命令不止以上实践所展示的,有时间还可以好好研究下,但是netwox没有很好的交互性,这就需要通过wireshark和其他的操作来对数据包进行嗅探和分析。