20212928 2021-2022-2 《网络攻防实践》第6周作业
一、 实验内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
二、 实验原理
1. ARP缓存欺骗攻击
1)ARP欺骗也称为ARP下毒,是指攻击者在有线或以太网上发送伪造的ARP信息,对特定IP所对应的的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
2)原理:ARP协议在设计时认为局域网内部的所有用户都是可信的,但是局域网内可以存在内部攻击者,或者已经渗透进局域网的外部攻击者或恶意代码。这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。
3)ARP协议完成IP地址到MAC地址映射的过程步骤:
源节点A发送数据包给目的节点B时,会通过ARP协议在局域网段广播ARP请求包,询问节点B的IP地址所映射的MAC地址。
攻击节点C说IP目标IP地址所映射的MAC地址是他自己,并不断地向源节点发送ARP响应包。
由于攻击节点C不断地发送响应包,这样源节点上会强制以C发送响应包中的信息来更新ARP缓存。
当源节点A要再次发送数据包到节点B时,直接将数据包发送到C对应的MAC地址,即攻击节点C,这样C就通过欺骗假冒了目的节点B。
如果ARP欺骗攻击的是网关节点,将导致整个局域网所有节点经过网关出入的数据包都会首先通过攻击节点,可能被嗅探、监听和恶意修改。
4)ARP欺骗技术的应用场景:交换式网络、构造中间人攻击、恶意代码。
进行ARP欺骗技术可以使用的工具:Netwox、DSniff套装中的Arpspoof工具、arpison、Ettercap
5)ARP欺骗攻击防范措施
静态绑定关键主机的IP地址和MAC地址映射关系
使用响应的ARP防范工具
使用VLAN虚拟子网细分网络拓扑,并加密传输数据
2. ICMP重定向攻击
1)攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。
2)ICMP路由重定向机制原理:ICMP报文分为两种类型:差错报告类、控制类报文。(差错报文分为:目的站不可达、数据报超时、数据包参数错误,控制类报文:请求/应答类和通知类)。
3)ICMP路由重定向攻击技术:
攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。
被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新的路由器。
攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。
在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态
4)ICMP路由重定向攻击防范
根据类型过滤一些ICMP数据包,设置防火墙过滤,对于ICMP重定向报文判断是不是来自本地路由器
3. SYN Flood攻击
1)概念:TCP SYN Flood ,又称SYN洪泛攻击,他是利用TCP三次握手协议 的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
2)原理:在TCP SYN Flood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文。受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包。
如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,永远不会返回ACK报文,受害主机继续发送SYN+ACK包,当半开连接报文填满,服务器也就拒绝新的连接
4. TCP RST攻击
1)TCP RST攻击也被称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。TCP协议头的标志位有一个“reset”比特位,绝大部分数据包中该标志位都置为0,但该标志位置为1,接收该数据包的主机即将断开这个TCP会话连接,不再利用该连接进行数据包发送和接收。tcp重置报文就是直接关闭掉一个TCP会话连接。
5. TCP会话劫持攻击
1)原理: TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过TCP对会话通信方的验证。
2)TCP会话挟持攻击技术过程
victim主机与telnet服务器进行连接,并通过身份认证建立起会话。
telnet服务器将会向victim发送响应包,并包含服务器当前序列号(SVR_SEQ)以及期望客户端发送的下一个序列号(SVR_ACK)。
攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得victim和telnet服务器间的通信内容,然后假冒victim的IP地址及身份,向talent服务器发送数据包,声称自己是victim。攻击者发送数据包中的序列号必须满足条件:SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND。
victim仍然会继续持续talent服务器之间的连接会话,但是由于与telnet服务器之间的ACK值互相不匹配出现AC风暴。
3)TCP会话挟持攻击防御措施:
禁用主机上的源路由
采用静态绑定IP-MAC映射表以及避免ARP欺骗
引用和过滤ICMP重定向报文
网络层加密机制(IPsec协议)
三、 实验过程
1. ARP缓存欺骗攻击
1) 打开靶机A:Metasploitable2-Linux,和靶机B:win2kServer,查看靶机B的IP地址为192.168.124,用 A ping B:ping 192.168.200.124
由下图可知,靶机A和靶机B是连通的。
输入命令ctrl+c,才可以将ping停下来
2)查看一下B的MAC地址,输入命令:ifconfig,可以看到MAC地址为:00:0c:29:AB:57:6E
3)用arp -p 命令得到ARP缓存表
4)
接下来在在Kali上执行指令netwox 80 -e 00:0c:29:0b:6a:4c -1 -i 192.168.200.124是指netwox的80号工具,-e:攻击机kali想要改成的MAC地址,-i:靶机B的IP地址,周期性发送应答,将对方靶机的MAC地址改为00:0c:29:0b:6a:4c。但是,如下图,发现netwox下载失败。
将虚拟机的适配器由桥接模式改为net模式,之后便可以下下来,
5)之后,输入netwox 80 -e 00:0c:29:0b:6a:4c -1 -I 192.168.200.124
之后发现arp中查看前后的ip竟然变了,什么原因呐?
究其原因,是因为Kali虚拟机改为桥接NET模式下载完netwox后,并没有将其改回来
改完之后,便可以做出来,由下图,我们可以看出成功的将靶机的MAC地址欺骗成了我们想改成的地址!
2. ICMP重定向攻击
1)
Seed的IP为:192.168.200.2
Kali的IP地址为:192.168.200.4
2)发现ping baidu.com 并ping不同,于是将seed的网络适配器改为桥接模式,再次进行尝试,发现IP地址和网关分别如下:
3)在攻击机Kali输入 netwox 86 -f “host 192.168.200.2” -g 192.168.200.4 -i 192.168.200.1,进行ICMP重定向攻击,发现如下问题加上sudo提权后即可。之后ping百度,发现了新的吓一跳,地址为:192.168.200.4
3.SYN Flood攻击
1)实验环境
IP | |
Kali |
192.168.200.4 |
SEEDUbuntu |
192.168.200.2 |
MetaSploitable_Ubuntu |
192.168.200.3 |
2)首先,在SEEDUbuntu中输入telnet 192.168.200.3,将SEEDUbuntu和MetaSploitable_Ubuntu之间建立telnet连接,如下图:
3)在Kali输入netwox 76 192.168.200.3 -p 23,对MetaSploitable_Ubuntu的23号端口进行攻击
4)回到SEEDUbuntu再次输入telnet 192.168.200.3,将SEEDUbuntu和MetaSploitable_Ubuntu之间建立telnet连接,出现明显卡顿
5)最后,我们回到Kali虚拟机,打开Wireshark看到攻击机通过不同的IP向靶机23号端口发送大量的数据包,使得正常服务停止。
4.TCP RST攻击
1)实验环境
虚拟机 |
IP |
Kali |
192.168.200.4 |
SEEDUbuntu |
192.168.200.2 |
MetaSploitable_Ubuntu |
192.168.200.3 |
2)在SEEDUbuntu中输入telnet 192.168.200.3,将SEEDUbuntu和MetaSploitable_Ubuntu之间建立telnet连接
3)使用命令:netwox 78 -i 192.168.200.3 ,在Kali上利用netwox的78号工具对MetaSploitable_Ubuntu的23号端口进行SYN Flood攻击
4)回到SEEDUbuntu再次输入telnet 192.168.200.3发现无法连接,如下图。
5.TCP会话劫持攻击
1)环境
虚拟机 |
IP |
Kali |
192.168.200.4 |
SEEDUbuntu |
192.168.200.2 |
MetaSploitable_Ubuntu |
192.168.200.3 |
2)进入Kali,输入ettercap -G,打开ettercap,
点击√,点击Ettercap菜单,点击hosts,点击scan for hosts,
3)等待扫描完毕,再打开菜单点击hosts,点击hosts list:
4)在host list中选择SEEDUbuntu和MetaSploitable_Ubuntu靶机作为靶机作为攻击对象,选择菜单MITM中的ARP Poisoning点击OK:
5)打开Ettercap菜单选择view,选择connections:
6)打开SEEDUbuntu靶机对MetaSploitable_Ubuntu进行连接,如下图
7)回到Kali,发现两个靶机之间传输数据包,点开发现telnet相关信息以及账号和密码mfsadmin:
四、 学习中遇到的问题及解决
1.问题:对虚拟机kali改名字的时候,输入了sudo hostnamectl set-hostname 20212928pcl,但这样改完后,发现sudo权限用不了了。
解决:打开kali文件夹,然后打开终端,open as root,输入密码kali,以root打开终端,再进行输入vi /etc/hosts ,修改主机名保存即可
2.问题:在第一个实验下载netwox一直下载失败
解决:将虚拟机的适配器由桥接模式改为net模式,之后便可以下下来,
3.问题:在输入arp -a后,发现两次的IP地址竟然改变了,导致实验无法进行
解决:Kali虚拟机改为桥接模式下载完netwox后,并没有将其改回来,改为NAT模式后,即可正常使用。
五、学习感悟、思考
1.通过本次实验,我学会了虚拟机名的修改,其次,掌握了一个ping过程中停下来的指令:CTRL+C,最重要的是了解了ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击这几种攻击原理,并通过实验进行了验证
2.虽然本次实验不难,但是我花的时间却很长,最大的原因是对于之前的搭建的环境的原理以及具体场景的使用能力还有待提高,对于过程中出现的问题,通过询问同学,上网查询,也让自己收获颇丰,希望下次实验可以更顺利一些。