20212911陈金翔-2022-3 网络攻防实践 第四次(第六周)作业

------------恢复内容开始------------

1.实践内容

ARP欺骗攻击

  • 定义:ARP欺骗也称为ARP下毒,是指攻击者在有线或以太网上发送伪造的ARP信息,对特定IP所对应的的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
  • 原理: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防范工具
  • 使用虚拟子网细分网络拓扑
  • 加密传输

 

 ICMP路由重定向攻击

 

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

TCP RST攻击

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

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重定向报文

hijk1

TCP SYN Flood拒绝服务攻击

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

2.实验步骤

实验环境:

本次实验总共用到三个虚拟机,分别是攻击机kali,靶机win server和靶机Metasplitable,相关ip及mac地址如下:

虚拟机名称 类型 IP地址 MAC地址
kali 攻击机 192.168.2.3 00:0c:29:7d:16:62
Metasplitable 靶机 192.168.2.1 00:0c:29:3e:53:3a
win server 靶机 192.168.2.6 00:0c:29:ed:06:56

ARP缓存欺骗攻击

1.  首先让kali与Metasploitable进行通信,用ping命令得到ARP缓存表(arp -a查看ARP缓存表)

 

 

 输入arp -a获取Metasplitable的mac地址

 

 可以看到Metasplitable的实际mac地址为:00:0c:29:3e:53:3a

2. 在在Kali上执行指令netwox 80 -e 00:0c:29:7d:16:62 -i 192.168.2.1

80 是指netwox的80号工具,-e:攻击机kali的MAC地址,-i:MetaSploitable的IP地址,周期性发送应答

该条指令告诉winserver 192.168.2.1(Metasplitable对应的ip)的mac地址为00:0c:29:7d:16:62(kali攻击机对应的mac地址)

此时我们来看win server的缓存表

 

 发现Metasplitable的ip地址192.168.2.1对应的是kali的mac地址00:0c:29:7d:16:62

ICMP重定向攻击

1.查看被攻击机Metasplitable的默认网关

 

 可以看到默认网关是192.168.2.2

2.使用netwox的86号工具进行ICMP重定向攻击,在Kali攻击机上执行命令netwox 86 -f "host 192.168.2.1" -g 192.168.2.3 -i 192.168.2.2,

这个命令是当嗅探到Metasplitable的数据包时,以192.168.2.2的名义发送ICMP重定向报文,使192.168.2.3(Kali)成为其默认路由。

 

 我们可以看到Metasplitable的下一跳地址变成了攻击机kali的IP地址192.168.2.3

SYN Flood攻击

选择利用win server向靶机MetaSploitable发起telnet服务访问,用Kali攻击机攻击靶机的telnet服务端口,并用Wireshark查看。

1.win server向MetaSploitable发起正常的telnet服务访问

 

 

2.在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i 192.168.2.1 -p 23

 

 利用wireshark抓包可以看到kali伪造了很多不同源ip地址的SYN包发送给靶机,当数据包过多时就会造成DOS攻击,使得正常的服务因为资源占尽不可用

TCP RST攻击

与TCP Flood攻击相似,换了工具号为78,Kali上利用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i 192.168.2.1

 

 此时我们发现winserver执行Telnet命令已经无法正常连接,观察wireshark的包,我们发现kali攻击机伪造了tcp包,使RST标志位置为了1,致使双方无法正常通讯

 

 

 

 

TCP会话劫持攻击

我们依旧在win server利用telnet 192.168.2.1登陆MetaSploitable。

在Kali上打开Wireshark设置过滤条件tcp.port == 23,然后在win server中输入ls,回到Kali的Wireshark中查看,会发现有响应的数据包

 

 观察包中对应的值,接下来我们就可以伪造发下一个包,把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。

获取到信息之后,攻击机使用netwox工具伪造win server给MetaSploitable发一个tcp包。

发送成功后,原来的win server就会失去连接,同时MetaSploitable会把Kali当作访问者 ,如此实现了会话劫持

netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.2.6 --ip4-dst 192.168.2.1 --tcp-src 1045 --tcp-dst 23 --tcp-seqnum 111 --tcp-acknum 1432 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"
第一个40是netwox的40号工具,在ip4-src后输入win server地址,在ip4-dst后输入你的MetaSploitable地址,tcp-src表示原端口号(这个是变化的),tcp-seqnumtcp-acknum输入对应的seq和ack值,tcp-data是你要发的数据的16进制值,这里的是helloworld的16进制。同样的可以在Wireshark中观察到发送的值。

 

 

 如果在wireshark上也发现了很多Tcp Dup和Tcp Retransmission,那么你的劫持就是成功的。TCP Dup ACK XXX#X即
重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失

 

 

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

问题:只改kali中的hostname文件会会导致无法用你sudo提权

解决:需要把对应的hosts文件也改掉,系统才能正确的识别提权命令

4.实践总结

了解了几种攻击的原理,通过动手实践加深了理解,还有就是手捏ip包太麻烦了。

------------恢复内容结束------------

posted @ 2022-04-03 20:48  虎啊虎呀  阅读(125)  评论(0编辑  收藏  举报