DHCP服务是由DHCP协议(动态主机配置协议)提供的服务,它可以动态地为 DHCP客户机提供ip地址,子网掩码,网关,租期,DNS等网络信息。 DHCP协议内置在手机和电脑中,如果没有该协议,电子设备不管接入网线还是wifi都无法上网。
DHCP服务端口:UDP 67(客户机的默认端口)和UDP 68(服务器的默认端口)
会在客户端第一次查找DHCP服务器时发出,由于是广播,对象是所有能和他建立通信的所有主机,广播包中会包含该主机自己的MAC地址,并询问谁是DHCP服务器,虽然大家都收到了该广播报文,但是由于自己不是DHCP服务器,不会给予应答。
会在DHCP服务器收到客户机请求的时候发送给客户机,用于给客户机分配ip地址,这个地址来自于DHCP服务器的地址池当中,如果客户机不接受服务器分配的地址,则服务器需要为其分配一个新的ip地址。(注意:当多个DHCP服务器都给客户机发送提供包的时候,哪个DHCP的提供包先到达,客户机就先信任哪个DHCP服务器)
客户机表示,已经决定使用刚才服务器通过DHCP提供报文给出的x.x.x.x,需要向服务器请求后续的详细相关信息。
服务器收到客户端的请求,给客户端发送其余所有信息(ip地址,子网掩码,网关,租期,DNS等网络信息),并在服务器本地记录该ip地址和pc的MAC地址。(电脑出厂时就写在网卡上,作为该网卡的唯一标识符,全球唯一)
注意:由于在第二步,服务器发送的提供包可能是虚假的DHCP服务器发送的,所以只要客户机此时选择信任,就会导致该客户机的地址分配出现问题。所以我们在做DHCP部署实验的时候,不能将部署DHCP服务器修改为桥接模式,因为此时该虚拟机相当于接入了真实网络,如果该网络当中没有做限制和防护,就会导致我们的实验DHCP服务器干扰本地正常DHCP服务器的工作,局域网内大面积断网。
1、win2003作为DHCP服务器,win7作为DHCP客户机,两个主机保证能ping通,不能选择桥接模式。
2、为了防止dhcp服务器冲突,在虚拟机的设置打开虚拟网络编辑器,将win7和DHCP连接的网卡设置为关闭DHCP动态分配地址,相当于就关闭了本地原来的DHCP服务器,让我们部署的DHCP服务器能正常发挥作用。当我们关闭该功能之后,到win7上禁用网卡,再启用,发现ip地址已经变成了169网段,这是虚拟机在动态地址分配错乱之后得到的全球无效ip地址,也就证明了虚拟机自带的dhcp服务器已经被我们成功关闭。
3、由于默认的DHCP服务器已经被关闭,此时win7和2003的ip地址都需要手动配置,但是只配置2003的ip,因为DHCP服务器本身只能通过静态配置的方式获得ip地址,而win7作为客户机,需要享受2003未来DHCP的服务,暂时不需要配置。
4、将局域网段设置为10.1.1.0/24,打开2003,右键任务栏右下角的小电脑,打开网络适配器设置,2003的ip配置为10.1.1.1,子网掩码为255.255.255.0,网关设置为10.1.1.254或者10.1.1.1可以预留给网关(模拟一下常规的网络环境,虽然不能上网,因为这个局域网是我们单独划分出来的)
5、此处和ftp服务的安装方式一致,需要借win2003的镜像,添加操作系统服务组件。选择网络服务,双击之后在里面勾选动态主机配置协议(dhcp),安装完成后使用netstat -an来查看是否开启67和68端口,因为是udp协议的服务端口,只要显示端口号就证明开启,没有状态字段。开启则证明dhcp服务安装成功。
6、需要进行dhcp服务的配置,才能使该服务器正常工作。选择开始---管理工具---dhcp---选中服务器---右键新建作用域。 选择作用域分配地址范围(客户机享受dhcp服务之后能被分配的地址范围),此处设置为10.1.1.50~10.1.1.150(其中在前面预留出40多个ip,为了将来分配给服务器,服务器需要使用静态ip才能正常提供服务);排除ip设置可以按照需求排除几个不被分配给客户机的ip地址;租期设置为8天;dhcp选项中的信息我们暂时不配置,选择否,稍后配置。
7、作用域生成之后,选择作用域选项,右键选择配置作用域选项,选择路由器,将其ip地址设置为网关地址,此处为10.1.1.254。下滑找到DNS服务器,此处为114.114.114.114。
7、右键作用域,点击激活,来使刚才的配置生效。
8、重启win7客户机的网卡,查看网卡属性中是否接收到了DHCP服务器发送的信息。
9、切换回2003的dhcp服务器中,查看租约信息,可以看到刚才成功分配ip地址的客户机信息。如果租约过期,那该客户机下一次登录时就会重新分配地址,但是如果下次分配时原来的ip没有被其他客户机占用,该ip地址还是会再次分配给该客户机。
10、假设客户机和服务器约定的租约为24小时,12小时后,客户机主动发送request包尝试续约,如果此时服务器因为宕机等原因无法和客户机续约的话,客户机会在租约时间的87.5%再次向服务器申请续约,如果还是续约失败,客户机会直接释放当前ip地址,并且重新发送广播报文获取新的ip。如果一直找不到DHCP服务器给自己分配地址,就会给自己配置一个169.254.0.0/16网段的全球无效地址,证明获取地址失败。
11、客户机从dhcp动态获取地址的时候其实也可以让服务器每次都分配固定的ip地址,此时需要在服务的保留选项右键新建保留,输入该客户机的mac地址,并且输入需要被动态分配的ip地址,未来用户每次接入该局域网,就会固定分配到本次配置的ip地址,这就不影响该客户机在接入其他局域网时动态获取新地址上网。
1、ipconfig /release---释放dhcp获取到的ip地址,此时就能看到ip地址被清空了。(相当于禁用网卡)
2、ipconfig /renew---重新获取ip地址。(相当于启用网卡)
1、伪造一个非法的DHCP服务器,提供非法的ip,导致断网攻击。(其实就是在操作系统上部署一台dhcp服务器干扰正产的dhcp服务器工作)
2、伪造大量的非法DHCP客户机,不断的发送广播包向dhcp请求ip地址,从而攻击DHCP服务器地址池,导致地址耗尽。
kali:使用Python编写的一个dhcp耗尽工具自动化完成攻击。