网络协议与攻击模拟_10DHCP攻击与DHCP欺骗

一、DHCP的报文格式

  • Message type:消息类型(1表示请求,2表示响应)
  • Hardware type:硬件类型
  • Hardware address length:硬件地址长度
  • Hops:DHCP报文经过中继的数目。
  • Transaction ID:事务ID,客户端发起请求是选择一个随机数,用来标识一次地址请求过程。
  • Seconds elapsed:客户端开始DHCP请求后所经过的时间,客户端从开始获取地址或地址续租更新后所用的时间,单位是秒,占用2字节
  • Bootp flags:保留标志字段,只有标志字段最高位才有意义,其余15位均被置为0,最高位被解释为单播或者广播相应标志位,0表示客户端请求服务器以单播形式发送相应报文;1表示客户端请求服务器以广播形式发送响应报文,占用2字节
  • Client IP address:客户机的IP
  • Your (client)IP address:服务器能够提供给客户机的IP地址
  • Next server IPaddress:DHCP 服务器的地址
  • Relay agent IP address:中继代理的IP
  • Client MAC address:客户端的MAC地址
  • Client hardware addresspadding:客户端MAC地址的填充。
  • Server host name :服务器名称
  • Boot file name:启动文件的名称
  • Magic cookie:这个字段是一个固定的字节流,一般都为DHCP。
  • Options:不同的报文会有不同的Options
    • Options:(53)DHCPMessage Type(ACK)
      Length:1
      DHCP:ACK(5)
    • Options:(58)Renewal Time Value
      Length:4
      Renewal Time Value:(345600s)4 days
    • Options:(59)Rebinding Time Value
      Length:4
      Rebinding Time Value:(604800s)7 days
    • Options:(51)IP Address Lease Time
      Length:4
      IP Address Lease Time:(691200s)8 days
    • Options:(54)DHCP Server Identifier(192.168.120.100)
      Length:4
      DHCP Server Identifier:192.168.120.100
    • Option:(1)Subnet Mask(255.255.255.0)
    • Option:(81)Client Fully Qualified Domain Name
      Length:3
      Flags:0x00
      A-RR result:255
      PTR-RR result:255
    • Option:(3)Router
      Length:4
      Router:192.168.50.254
    • Option:(6)Domain Name Server
      Length:8
      Domain Name Server:8.8.8.8
      Domain Name Server:114.114.114.114
    • Option:(255)End
      Padding :0000000000

二、实施DHCP欺骗

1、DHCP欺骗原理

使用一台kali作为攻击主机,向我们的DHCP服务器发起DHCP Discover请求,让服务器给我们的攻击主机分配IP地址。当它的IP地址分配完了就无法向正常的客户机提供IP,此时攻击主机把自己伪造成DHCP服务器,就可以向客户机提供IP,这就是DHCP欺骗。

2、实验配置

(1)网络拓扑图

(2)ping测试

使用kali去攻击DHCP服务器 ,配置完成后ping测试,看下能够访问到DHCP Server

kali配置TCP/IP参数:192.168.50.100 255.255.255.0 192.168.50.254

  523  vim /etc/network/interfaces 
  524  ifdown eth0
  525  ifup eth0
  526  ifconfig
  527  ping 192.168.120.100

3、攻击

(1)安装Yersinia

  • .图形化界面
  • 参数:-G   Graphical mode (GTK)

如果使用-G参数没反应,无法进入图形化界面,可尝试使用-I参数,yersinia攻击支持CDP、DHCP、802.1Q、802.1X、DTP、HSRP、ISL(思科私有的STP报文)、MRLS、STP、VTP

(2)DHCP地址分配情况

先看下DHCP服务器50网段的分配情况

50网段的IP地址池是192.168.50.22~192.168.50.33,地址总数,12个,使用中3个,可用还剩9个。

(3)实施攻击
  • 使用kali的yersinia实施攻击

  • 开始攻击之前先抓包,抓取DHCP Server到路由器的流量;
  • 开始攻击后,会不停的再发DHCP Discover报文;

(4)抓包分析 
  • DHCP中继R1->DHCP Server 的报文

抓到好多DHCP Discover报文,而且看不出来这DHCP Discover报文是真的假的,

这里source是192.168.120.254因为数据都是从DHCP 中继过来的。

  •  交换机SW到DHCP中继R1的数据流量

这边可以看到都是随机的MAC地址在发DHCP Discover请求,因为发的广播包没有IP地址,所以这里不需要去产生随机的IP。

  • DHCP Serve->R1的响应报文

查看响应报文(在DHCP中继到DHCP Server这条链路)直接去找源IP为192.168.120.100的

ip.src==192.168.120.100 

 从DHCP Offer报文的Your(Client)IP address可以看到刚好是DHCP Server上面我们为50网段设置的地址池的IP中剩余的9个IP地址,从192.168.50.25到192.168.50.33, 其实就是把DHCP50网段可以提供的IP全部响应了。

  • DHCP Server资源占用情况

我们再去看DHCP服务器上50网段的统计信息,地址总数12个,使用中12个。

地址租用这里是不会有记录的,因为客户机没有响应,没有发送DHCP Request,只有客户机响应完了才会把客户机的信息记录在这里。

即使服务器已经把这个IP地址留给客户机了,但实际客户机没有使用。所以在显示统计信息这儿会显示使用中有12个,就服务器已经认为把IP地址预留给客户机了。

4、伪造 

(1)伪造的配置过程

DHCP地址池中的地址已经没有了,有的分配有的预留给客户机了。

 kali上面使用yersinia伪造DHCP服务器,选creating  DHCP rogue server。

Server ID:DHCP服务器,可以填本地IP 192.168.50.100

Start IP  可以写一个非本网段的,192.168.10.10~192.168.10.20
Lease Time:租约时间,随便填的 720

Renew Time:更新租约时间 随便写的 720

Subnet Mask:255.255.255.0

Router:来个假的 192.168.10.254

DNS Server 9.9.9.9

domain写一个woniu.com

先不要直接点OK,因为你前面的DHCP攻击还没有停,它是广播发的,你点了OK就相当于把你的kali伪造成了DHCP服务器,因为DHCP Discover攻击报文是广播,所以你自己伪造的DHCP服务器也会受到DHCP攻击报文。

(2)先停掉DHCP攻击

先停掉DHCP Discover攻击 

(3)开启伪造DHCP Server

(4)伪造成功

回到Win10虚拟机上,先release一下再renew一下,回到DHCP服务器查看到50网段是被占满的,

这里Win10虚拟机也从kali伪造的DHCP Server获取到了新的IP地址。

 

5、总结 

以下是我听课之后,对过程的大致描述,如有错误,欢迎指正!

这个过程应该是:kali发起DHCP Discover广播使得DHCP服务器的50网段的IP地址全部被占用,然后kali伪造成DHCP服务器,由于之前Win10这台主机我们有通过DHCP服务器动态获取IP地址且租约还未到期,kali攻击并伪造DHCP服务器后,Win10发现有更近的DHCP服务器,所以想kali伪造的DHCP Server发起DHCP Discover请求获取新的IP地址,但此时真正的DHCP Server的Ip地址是处于占满状态的,50网段那儿有个感叹号表示50网段是无法正常工作的,即使Win10从kali伪造的DHCP Server获取新的IP后,原来的DHCP Server也不会释放IP,因为租约并没有到期。

Dhcp两大威胁以及arp欺骗等试验总结 1 伪dhcp server。Dhcp的工作原理大概是首先client广播dhcp discovery消息,本网段的dhcp server回送dhcp offer消息,客户段再发送dhcp request消息,声明自己即将使用的ip地址,server发送ack给client告知client可以使用。防止伪dhcp其实就可以在交换机上启用dhcp snooping功能,凡是不信任的端口(信任端口就是dhcp server使用的端口,需独立配置),都将拒绝从该端口发送dhcp offer消息从而杜绝伪dhcp server。 在cisco交换机上全局启用 ip dhcp snooping,,并使用命令ip dhcp snooping vlan 2,告知在vlan2里使用snooping,这样所有端口都是非信任端口,都将丢弃dhcp offer报文,如果是使用三层交换机提供dhcp服务,就不比单独配置信任端口了。配置信任端口是在物理端口下使用命令 ip dhcp snooping trust. 记住:接入层交换机需支持dhcp snooping功能;信任端口是在物理端口下配置(包括trunk级联端口) 2 DHCP dos攻击。主要就是伪造大量mac地址去像server申请地址,耗费dhcp server地址池,从个人达到拒绝服务攻击的目的。一般用两种方法,但实际操作性都不是太强。第一种办法就是对交换机端口规定一些合法的mac地址池,只有在此范围内的主机才可以通过该端口进行转发。或者限制最大mac地址数。这样客户端就没办法伪造mac地址去申请ip了。Cisco交换机就是在物理端口下使用switchport port-security mac-add命令填加,这种方法工作量大且不能满足移动性的要求。另一种方法就是与实际认证系统相结合,认证系统首先对MAC地址进行第一次认证,只有MAC地址是合法的,才允许DHCP Sever分配IP地址给终端,这主要用到802.1x认证协议和radius认证服务器。 3 有时候为了需要,不希望用户自己设定ip地址来上网,也就是说限制用户只能动态获取地址才能上网,自己固定地址不能上网。这种就相对比较简单,不需要在接入层上做什么设置,也就是不要求接入层支持dhcp snooping功能。只需要在三层交换机上使用如下命令就搞定。 Ip arp inspection vlan 500 //vlan500下面启用arp inspection功能 Ip arp inspection validate src-mac dst-mac ip //只有源mac 目的mac和ip都正确才合法 这里必须还是先在三层交换机上启用ip dhcp snooping功能 同时监控snooping vlan 500。因为arp inspection实际是根据dhcp 绑定信息来判断的。如果用户不是自动获取ip,而是自己设置ip,那么它就不会被dhcp snooping捕获到,当然所有的该ip地址发送的arp请求都会被网关拒绝掉的(因为源,目的mac和ip地址都是不合法的,自然被认为是非法的arp请求)。但是固定ip时是可以跟本局域网内其它机器通信的,只是不能通过arp协议学习到网关的mac地址。 注:以上的dhcp server都是在三层交换机上启用的。 4 arp欺骗。可以分两种情况:一是伪造网关去欺骗网内其它主机;而是伪造其它主机去 欺骗网关。当然更严重的是两种情况同时存在,并开始数据转发功能,这就是一种中间 人攻击(双方欺骗),可以嗅探数据包(代理arp功能跟此类似,很多计费网关和一些透明防火墙就利用了代理arp功能)。从某种意义上说,arp欺骗就是一种代理arp。 神码可提供专门的在接入层交换机使用ACL来限制客户仿冒网关,这个acl就是限制该端口下不允许发送网关地址的arp通告报文,这样可以有效的防止伪造网关去欺骗其它主机。 (Config)# access-list 1101 deny an an untagged-eth2 12 2 0806 20 2 0002 28 4 C0A80001 该ACL说明如下: 13,14字节是arp协议代码0806,21,22字节是0002表示arp reply,29-32字节就是网关ip地址的16进制 STEP2:应用ACL (Config)# Firewall enable (Config)# int e 0/0/1-24 //在所有端口下应用该acl (int)# mac access-group 1101 in traffic-statistic 当然,如果知道某个具体端口是什么IP地址,那么就可以限制该端口只能发送该IP的arp通告是最好了,这就可以完全杜绝arp欺骗。但明显可操作性差。 另一种能较好防止arp欺骗的办法就是在各个主机上绑定网关的mac,同时在网关上静态绑定IP+mac。不过这种办法不如前面办法好,它不能防止局域网内部的arp欺骗。 如果采取的是动态获取ip地址,神码交换机有个新特性,能完全控制arp欺骗。可以防止接入主机假冒网关,可以防止接入主机假冒其它用户;管理复杂度低,交换机配置简单并且基本不需要变更;支持用户移动接入,交换机可以自动检测到用户接入位置并正确转发用户数据; ip dhcp snooping enable ip dhcp snooping binding enable Interface Ethernet0/0/1 ip dhcp snooping binding user-control ! Interface Ethernet0/0/2 ip dhcp snooping binding user-control 如果是静态ip,需要ip+mac+端口的绑定。 am enable Interface Ethernet0/0/1 am port am mac-ip-pool 00-1C-23-06-0D-B9 10.10.1.90 还是说说cisco交换机吧。一般采取动态获取IP地址的上网方式比较多,先配置ip dhcp snooping 再配置ip arp inspection,此时,客户端就应该没办法伪造其它主机去伪造网关,因为这些伪造的arp reply报文在网关看来都是非法的,自然会拒绝。至于伪造网关的防治,大概就只能在用户自己主机上静态绑定arp缓存表了。 1 防止arp扫描。在某些情况下也可抑制arp欺骗。原理就是对物理端口进行arp报文 数量的限制。方法就是在物理端口是使用ip arp inspection limit rate 命令限制每秒钟允许通过的arp报文数。 2 伪mac地址的防治。交换机的mac地址表如果被大量充斥,将会影响性能,严重的将会是交换机崩溃,因为一般的cam存储都有限。所以这类防治般限制每端口出来的mac地址数目即可。至于伪造的防治,那就只能选择port-security了,虽然不能满足移动性的要求。 针对目前学校主干是cisco交换机,接入层品牌太杂,档次参差不齐,用户自动从cisco三层交换机上获取地址上网的情况,我认为比较好的办法就是在cisco交换机上启用dhcp snooping 以及arp inspection功能来尽可能防止arp欺骗。用户还得绑定好网关的mac地址。要能更有效的防止arp欺骗和防止伪dhcp server,还得升级接入层交换机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zkaisen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值