Wireshark抓包分析Yersinia 根据DHCP协议发送的伪造数据包攻击(sending RAW packet)

来源:互联网 发布:烘焙成本核算软件 编辑:程序博客网 时间:2024/06/07 01:19

抓包结果如下:


抓包与分析

帧号时间   源地址         目的地址     高层协议 包内信息概况
No.  Time   Source        Destination      Protocol    Info
5  1.04252000  0.0.0.0   255.255.255.255  DHCP    -TransactionID 0x643c9869                      
源端口>目的端口[请求建立DHCP链接]
                           以下为物理层的数据帧概况

Frame 5 (286bytes on wire,286 bytes captured) 5号帧,线路286字节,实际捕获286字节
Arrival Time: Dec 13, 201719:03:26.818512000 中国标准时间  捕获日期和时间
Time delta from previous captured frame:0.249290000 seconds此包与前一包的时间间隔
Time since reference or first frame:1.042520000 seconds此包与第1帧的间隔时间
Frame Number: 5                                    
帧序号
Packet Length: 286bytes                            帧长度
Capture Length: 286bytes                           捕获长度
[Frame is marked:False]                           此帧是否做了标记:否
[Protocols in frame: eth:ip:udp]                   帧内封装的协议层次结构
[Coloring Rule Name: udp]           用不同颜色染色标记的协议名称:HTTP
[Coloring Rule String: udp]     
染色显示规则的字符串:

                    以下为数据链路层以太网帧头部信息

EthernetII, Src: 02:48:33:66:02:51 (02:48:33:66:02:51), Dst: Broadcast(ff:ff:ff:ff:ff:ff)
以太网协议版本II,源地址:厂名_序号(网卡地址),目的:厂名_序号(网卡地址)
 Destination: Broadcast(ff:ff:ff:ff:ff:ff)目的:厂名_序号(网卡地址)
Source: 02:48:33:66:02:51 (02:48:33:66:02:51) 
源:厂名_序号(网卡地址)
  Type: IP (0x0800) 
帧内封装的上层协议类型为IP(十六进制码0800

                          以下为互联网层IP包头部信息

InternetProtocol Version 4, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255(255.255.255.255)                     互联网协议,源IP地址,目的IP地址
Version: 4 互联网协议IPv4

Headerlength: 20bytes                             IP包头部长度
Differentiated Services Field: 0x10 (DSCP0x04: Unknown DSCP; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))差分服务字段
Total Length:272                                         IP包的总长度

Identification:0x0000(0)                           标志字段

Flags:       标记字段(在路由传输时,是否允许将此IP包分段,教材125页)

Fragmentoffset: 0   分段偏移量(将一个IP包分段后传输时,本段的标识)
Time to live: 16                                          生存期TTL
Protocol: udp(0x06)                         
此包内封装的上层协议为udp
Header checksum: 0xa9ce [validation disabled]                 
头部数据的校验和
Source GeoIP: UnknownIP地址
Destination GeoIP: Unknown 目的IP地址

                        以下为传输层UDP数据段头部信息

UserDatagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)

                                              传输控制协议UDP的内容
Source port: bootpc (68)源端口名称(端口号)
Destination port: bootps (67)
目的端口名bootps(端口号67
Length: 252bytes                                       
 长度
Checksum: 0x53e3 [validation disabled]  TCP数据段的校验和
Options:                                          可选项 

 

 

首先host向局域网广播一个discover包,此时ip.src为0.0.0.0。

 

 

从上图可以看出,DHCP属于应用层协议,它在传输层使用UDP协议,目的端口是67。

 

 

(1)DHCP服务器仍然使用广播地址作为目的地址,因为此时请求分配IP的Client并没有自己ip,而可能有多个Client在使用0.0.0.0这个IP作为源IP向DHCP服务器发出IP分配请求。通常来说DHCP也不能使用0.0.0.0这个IP作为目的IP地址,但我们是RAW(伪造数据包),于是依然采用广播的方式,告诉正在请求的Client们,这是一台可以使用的DHCP服务器。

(2)我们伪造了一个可用的IP,在数据包的Your (client) IP Address字段可以看到。

(3)除此之外,服务器还发送了DHCP数据包和END等信息。

 

攻击方案验证(攻击与防范)

 DHCP假冒攻击(sending RAW packet)

耗尽DHCP服务端的地址资源之后,攻击者就可以架设自己的DHCP服务器,从而实现DHCP假冒攻击

首先在假冒的DHCP服务器上架设DHCP服务,指定地址池范围为192.168.1.100~200,并将默认网关指向Kali LinuxIP地址192.168.1.5。需要注意的是,在将DHCP服务架设好之后,先暂时不要将服务激活,由于此时Kali Linux上的DHCP 耗尽攻击仍在继续,一旦激活服务,这台假冒DHCP服务器的地址资源也将会很快被耗尽。

下面在Kali Linux上停止攻击,并快速激活假冒DHCP服务器上的DHCP服务,可以看到被攻击主机成功从假冒服务器处申请到了IP地址。

这里同样需要注意一个问题,在将Yersinia停止攻击之后,一定要快速激活假冒DHCP服务器上的DHCP服务。这是因为Yersinia的攻击原理是发送大量的DHCP Discover报文,交换机会向其返回DHCP Offer报文,而在这个Offer报文中所提供的IP地址并未真正分配出去,在等待一段时间之后(大约5分钟),交换机会自动将IP地址收回,因而只要停止攻击之后过一段时间,交换机就会自动恢复正常。

攻击成功之后,被攻击主机的上网流量就将全部被导向到Kali Linux。在Kali中需要执行下面的命令开启路由转发功能,以便将被攻击主机的数据转发到互联网。

echo 1> /proc/sys/net/ipv4/ip_forward

最后,就可以在Kali Linux中利用Wireshark等抓包工具来截获被攻击主机的上网数据了。不过对于这种DHCP攻击方式,只能单向截获从被攻击主机发往互联网的数据,而无法截获从互联网发回给被攻击主机的数据,这是由于DHCP攻击无法去攻击默认网关等网络出口设备,要想真正实现双向截获数据的中间人攻击,还是要通过ARP欺骗等攻击方式。

 

防范DHCP假冒攻击

在交换机上通过传统的DHCPSnooping技术就可以来防范DHCP假冒攻击。当启用了DHCPSnooping功能之后,交换机的所有端口都将无法接收DHCP Offer报文,这样假冒的DHCP服务器就无法向外分配IP地址了。

下面在神州数码CS6200交换机上启用并配置DHCPSnooping功能。

#启用DHCPSnooping功能:

CS6200(config)#ipdhcp snooping enable

#DHCPSnooping应用于指定的VLAN,这里应用于默认的VLAN 1

CS6200(config)#ipdhcp snooping vlan 1

启用了DHCP Snooping功能之后,还需要设置如果从某个端口收到假冒DHCP服务报文后,将对这个端口如何处理。处理动作有两个:

  shutdown:端口检测到假冒DHCP Server时,将shutdown此端口。

  blackhole:端口检测到假冒DHCP Server时,将以伪装数据包的vid和源mac设置blackhole来阻止此Mac的流量,也就是将假冒服务器的数据暂时丢弃一段时间,可选择的时间范围为10~3600秒。

比如将20号端口设置为接收到假冒服务器报文后,将数据暂时丢弃300秒。

CS6200 (config-if-ethernet1/0/20)#ipdhcpsnooping actionblackhole recovery 300

由于shutdown的处理动作过于严格,因而建议采用blackhole模式进行防范。

 

阅读全文
0 0
原创粉丝点击