20232827田紫晴 2023-2024-2 《网络攻防实践》实践四-程序员宅基地

技术标签: 网络  智能路由器  

1.实践内容

在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1、ARP欺骗攻击
原理:ARP协议在设计时认为局域网内部的所有用户都是可信的,这使得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欺骗攻击的是网关节点,将导致整个局域网所有节点经过网关出入的数据包都会首先通过攻击节点,可能被嗅探、监听和恶意修改。
攻击工具:DSniff中的Arpspoof、arpison、Ettercap、Netwox。
防范措施:静态绑定关键主机的IP地址和MAC地址映射关系、使用相应的ARP防范工具、使用虚拟子网细分网络拓扑、加密传输。

2、ICMP路由器重定向攻击
原理:利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听。
攻击过程:
攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。
被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新的路由器。
攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。
在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态。
工具:netwox
防范措施:根据类型过滤一些ICMP数据包、设置防火墙过滤、对ICMP重定向报文判断是不是来自本地路由器的

3、TCP SYN Flood拒绝服务攻击
原理:基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
攻击过程:
在TCP SYN Flood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文。
受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包。
如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,永远不会返回ACK报文,受害主机继续发送SYN+ACK包,当半开连接报文填满,服务器也就拒绝新的连接。
防范措施:SYN-Cookie技术(在连接信息未完全到达前不进行资源的分配);防火墙地址状态监控技术(将到目标服务器的TCP连接状态分为NEW、GOOD、BAD)。

4、TCP RST攻击
原理:TCP协议头有一个reset,该标志位置为1,接收该数据包的主机即将断开这个TCP会话连接。tcp重置报文就是直接关闭掉一个TCP会话连接。
攻击过程:
攻击主机C可以通过嗅探方式监视通信双方A、B之间的TCP连接。
在获得源、目标IP地址及端口、序列号之后,接可以结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方。
在确保端口号一致及序列号落入TCP造成通信双方正常网络通信的中断,达到拒绝服务的效果。
工具:netwox

5、TCP会话劫持攻击
原理:TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过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风暴。
防范措施:禁用主机上的源路由、采用静态绑定IP-MAC映射表以及避免ARP欺骗、引用和过滤ICMP重定向报文

2.实践过程

(1)ARP缓存欺骗攻击
需要用到的三台机器,kali作为攻击机,其他两台作为靶机,先查询IP地址

机器名称 IP地址 MAC地址
Win2k 192.168.200.124
kali 192.168.200.5
Metasploitable-ubuntu 192.168.200.123

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
然后使用靶机 Metasploitable2-Linux通过ping 192.168.200.14 ping Win2kServer_SP0_target,并通过arp -a命令获得Win2kServer_SP0_target未被攻击时的MAC地址,如下图所示:
在这里插入图片描述
在kali攻击机中执行sudo netwox 80 -e 00:0c:29:67:7b:1a -i 192.168.200.124进行ARP攻击,然后再查询arp表发现变化,变为我们指定的地址,证明攻击成功:
在这里插入图片描述
在这里插入图片描述
同时在Win2k中有以下报错:
在这里插入图片描述
在kali中停止攻击后,再ping发现恢复了正常OK
在这里插入图片描述

(2)ICMP重定向攻击

设备 IP地址
kali 192.168.200.5
ubuntu 192.168.200.3

首先使用Ubuntu ping baidu.com
然后使用route -n查看ping包的数据流向,发现网关是192.168.200.2,如下图所示:
在这里插入图片描述

在这里插入图片描述
在kali中执行sudo netwox 86 -f “host 192.168.200.3” -g 192.168.200.4 -i 192.168.200.2,其中192.168.200.3为靶机IP,192.168.200.4为重定向IP地址,192.168.200.2为原网关:

在这里插入图片描述
再在ununtu中ping百度,发现已重定向
在这里插入图片描述

在kali上停止攻击,再ping 百度发现恢复正常
在这里插入图片描述
在这里插入图片描述
结束
(3)SYN Flood攻击

设备 IP地址
kali 192.168.200.5
ubuntu 192.168.200.3
Metasploitable-ubuntu 192.168.200.123

在SEEDUbuntu中使用TELNET服务登录Metasploitable,命令:telnet 192.168.200.123,ok
在这里插入图片描述
在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i 192.168.200.123 -p 23
在这里插入图片描述
打开WireShark查看,可见Kali虚拟机向192.168.200.123发送了大量SYN标志的TCP数据包
在这里插入图片描述

4、TCP RST攻击

设备 IP地址
kali 192.168.200.5
ubuntu 192.168.200.3
Metasploitable-ubuntu 192.168.200.123

在SEEDUbuntu中使用TELNET服务登录Metasploitable,命令:telnet 192.168.200.123,ok

在这里插入图片描述
在Kali上利用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i 192.168.200.123,并提前打开Wireshark
在这里插入图片描述
此时发现SEEDubuntu主机上使用telnet服务被中断:
在这里插入图片描述
在kali Ctrl C停止攻击会恢复正常:
在这里插入图片描述
OK!

5、TCP会话劫持攻击

设备 IP地址
kali 192.168.200.5
ubuntu 192.168.200.3
Metasploitable-ubuntu 192.168.200.123

在kali中使用sudo ettercap -G打开图形化界面进行操作
在这里插入图片描述
在扫描结束后,打开Menu->Hosts->Host List,将SEED Ubuntu和MetaSploitable设置为目标1和目标2
在这里插入图片描述
打开MITM Menu->ARP poisoning,出现弹窗后点击OK,出现目标确认消息即成功
可以在Ettercap中看到SEED Ubuntu与MetaSploitable的Telnet连接

3.学习中遇到的问题及解决

  • 问题1:在kali中无法下载netwox
  • 问题1解决方案:之前的kali一直出现下载的问题,重新安装了2023版,就OK了
  • 问题2:ping不通
  • 问题2解决方案:都改为net模式

4.实践总结

在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。学会了各种攻击,增强了动手能力。

参考资料

  • 前人的博客https://mbd.baidu.com/ma/s/v6ou6CAh
  • ……
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_52102143/article/details/137120837

智能推荐

JWT(Json Web Token)实现无状态登录_无状态token登录-程序员宅基地

文章浏览阅读685次。1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?服务端保存大量数据,增加服务端压力 服务端保存用户状态,无法进行水平扩展 客户端请求依赖服务.._无状态token登录

SDUT OJ逆置正整数-程序员宅基地

文章浏览阅读293次。SDUT OnlineJudge#include<iostream>using namespace std;int main(){int a,b,c,d;cin>>a;b=a%10;c=a/10%10;d=a/100%10;int key[3];key[0]=b;key[1]=c;key[2]=d;for(int i = 0;i<3;i++){ if(key[i]!=0) { cout<<key[i.

年终奖盲区_年终奖盲区表-程序员宅基地

文章浏览阅读2.2k次。年终奖采用的平均每月的收入来评定缴税级数的,速算扣除数也按照月份计算出来,但是最终减去的也是一个月的速算扣除数。为什么这么做呢,这样的收的税更多啊,年终也是一个月的收入,凭什么减去12*速算扣除数了?这个霸道(不要脸)的说法,我们只能合理避免的这些跨级的区域了,那具体是那些区域呢?可以参考下面的表格:年终奖一列标红的一对便是盲区的上下线,发放年终奖的数额一定一定要避免这个区域,不然公司多花了钱..._年终奖盲区表

matlab 提取struct结构体中某个字段所有变量的值_matlab读取struct类型数据中的值-程序员宅基地

文章浏览阅读7.5k次,点赞5次,收藏19次。matlab结构体struct字段变量值提取_matlab读取struct类型数据中的值

Android fragment的用法_android reader fragment-程序员宅基地

文章浏览阅读4.8k次。1,什么情况下使用fragment通常用来作为一个activity的用户界面的一部分例如, 一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表,然后在屏幕右侧使用另一个fragment来展示一篇文章 – 2个fragment并排显示在相同的一个activity中,并且每一个fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输_android reader fragment

FFT of waveIn audio signals-程序员宅基地

文章浏览阅读2.8k次。FFT of waveIn audio signalsBy Aqiruse An article on using the Fast Fourier Transform on audio signals. IntroductionThe Fast Fourier Transform (FFT) allows users to view the spectrum content of _fft of wavein audio signals

随便推点

Awesome Mac:收集的非常全面好用的Mac应用程序、软件以及工具_awesomemac-程序员宅基地

文章浏览阅读5.9k次。https://jaywcjlove.github.io/awesome-mac/ 这个仓库主要是收集非常好用的Mac应用程序、软件以及工具,主要面向开发者和设计师。有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章《工具武装的前端开发工程师》,于是建了这么一个仓库,持续更新作为补充,搜集更多好用的软件工具。请Star、Pull Request或者使劲搓它 issu_awesomemac

java前端技术---jquery基础详解_简介java中jquery技术-程序员宅基地

文章浏览阅读616次。一.jquery简介 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互 jQuery 的功能概括1、html 的元素选取2、html的元素操作3、html dom遍历和修改4、js特效和动画效果5、css操作6、html事件操作7、ajax_简介java中jquery技术

Ant Design Table换滚动条的样式_ant design ::-webkit-scrollbar-corner-程序员宅基地

文章浏览阅读1.6w次,点赞5次,收藏19次。我修改的是表格的固定列滚动而产生的滚动条引用Table的组件的css文件中加入下面的样式:.ant-table-body{ &amp;amp;::-webkit-scrollbar { height: 5px; } &amp;amp;::-webkit-scrollbar-thumb { border-radius: 5px; -webkit-box..._ant design ::-webkit-scrollbar-corner

javaWeb毕设分享 健身俱乐部会员管理系统【源码+论文】-程序员宅基地

文章浏览阅读269次。基于JSP的健身俱乐部会员管理系统项目分享:见文末!

论文开题报告怎么写?_开题报告研究难点-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏15次。同学们,是不是又到了一年一度写开题报告的时候呀?是不是还在为不知道论文的开题报告怎么写而苦恼?Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦,一定让你脱胎换骨,顺利拿下开题报告这个高塔,你确定还不赶快点赞收藏学起来吗?_开题报告研究难点

原生JS 与 VUE获取父级、子级、兄弟节点的方法 及一些DOM对象的获取_获取子节点的路径 vue-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏17次。原生先获取对象var a = document.getElementById("dom");vue先添加ref <div class="" ref="divBox">获取对象let a = this.$refs.divBox获取父、子、兄弟节点方法var b = a.childNodes; 获取a的全部子节点 var c = a.parentNode; 获取a的父节点var d = a.nextSbiling; 获取a的下一个兄弟节点 var e = a.previ_获取子节点的路径 vue