基于单播的DHCP SERVER扫描系统∗

2017-12-18 06:23侯向宁刘华春
计算机与数字工程 2017年11期
关键词:网段客户机IP地址

侯向宁 刘华春

(成都理工大学工程技术学院电子信息与计算机工程系 乐山 614007)

基于单播的DHCP SERVER扫描系统∗

侯向宁 刘华春

(成都理工大学工程技术学院电子信息与计算机工程系 乐山 614007)

论文采用单播方式,设计并实现了一个跨网段的DHCP SERVER扫描系统,系统基于多线程技术,能够高效地跨网段扫描出校园网中所有的DHCP SERVER,并能根据预先的设置,区分出合法以及私架的DHCP SERVER,从而极大地方便了校园网络的管理。

DHCP SERVER;单播;跨网段;校园网

1 引言

现如今随着网络的迅速发展以及校园网在广大高校的日渐普及,各大高校学生们对校园网产生了极大的依赖性。但与此同时,诸多潜在的安全问题也在校园网的运行过程中暴露出来。其中,私架DHCP SERVER是造成当前校园网络混乱的一大原因。

私架DHCP服务器造成的危害是很大的,对于校园网的某一个子网,合法的DHCP服务器通常情况在该子网外,由于网段内的DHCP报文比网外的传播的快,如果这个网段有私架的DHCP服务器,用户将会先获取这台私架DHCP服务器分配的非法IP,这就会导致本网段内的机器大面积无法上网,极大地扰乱了正常的网络秩序[1]。

目前检测非法DHCP的方法主要是使用命令行工具和使用国外第三方工具:

1)使用命令行工具——dhcploc.exe。dhcploc是DHCP Server定位工具,用于显示本网段网中活动的DHCP SERVER。

2)使用国外的第三方工具比如DhcpExplore以及Nsasoft Dhcp Explorer等,这些工具都可以定位一个网段内的所有DHCP SERVER。

这两种方法的缺点显而易见,首先,它们都是基于广播的,因此不能跨网段,只能发现本网段内的DHCP SERVER,对校园网管理来说,几乎没有实用价值。其次,它们都是被动的扫描方式,都是当出现问题的时候才去扫描。最后,它们不能把合法的和非法的DHCP SERVER区分开来。

针对上述方法的不足,本文设计并实现了一个基于单播的DHCP SERVER扫描系统,该系统基于主动方式,能够一次性扫描出整个校园网中所有的DHCP SERVER,并根据预先的设置,能够区别出哪些是私架的DHCP SERVER,从而极大地方便了校园网络的管理。

2 DHCP协议概述

2.1 DHCP消息格式

DHCP(Dynamic Host Configuration Protocol)[2~3]消息格式[4]如图1所示。

图1 DHCP消息格式

DHCP消息格式中重要选项[4]的含义如表1所示。

表1 DHCP消息格式重要选项的含义

2.2 DHCP工作原理

DHCP的工作原理[5~7]如图2所示。

图2 DHCP的工作流程

由图2可知,客户端以广播的方式向本网段发送DHCP DISCOVER包,如果本网段内有DHCP SERVER,并且地址池中有可分配的地址,就以单播的形式向客户机发送OFFER包,其中包括向客户机分配的IP地址和相关配置参数。

2.3 DHCP Relay

在校园网中,存在很多子网,为了节省资源,不需要在每个网段部署DHCP SERVER。由于客户机发送的DISCOVER是广播消息是不能跨网段的,这就要用到DHCP Relay,DHCP Relay的工作流程[8~11]如图 3所示。

图3 DHCP Relay的工作流程

DHCP Relay收到客户端向本网段中广播的DHCP DISCOVER报文后,对其进行适当处理后,再以单播形式发送给指定的位于其它网段上的DHCP SERVER。DHCP SERVER根据请求报文中提供的必要信息,从地址池中取出可用地址,然后以单播的形式发给DHCP Relay。最后,DHCP Relay再将配置信息转发给客户端,从而完成对客户端IP地址的动态配置。

3 系统的设计与实现

3.1 设计思路

由2.3节可知,为了实现跨网段DHCP SERVER扫描,只能采用单播的形式,让源主机代替客户端(可以伪造客户端)向目的主机发送DHCP DISCOVER报文,如果目的主机是DHCP SERVER,且与源主机同网段的地址池中还有未分配的IP地址,DHCP SERVER就从中取出一个IP地址并封装到DHCP OFFER报文中,然后以单播的形式发送给源主机,最后在源主机上解析DHCP OFFER报文,可以得到DHCP SERVER分配给伪造客户端(并非源主机)的IP地址。

因此扫描时构造DHCP DISCOVER报文尤为重要,由于DHCP协议是基于UDP的,DHCP数据报要封装在UDP报文中,再将UDP报文封装在IP报文中。然后通过原始套接字发送出去(目的地址可以是本网段,也可以是其它网段),最后侦听所有网段,如果收到DHCP OFFER报文,说明对方就是DHCP SERVER。

3.2 核心算法

为了提高扫描的效率,采用多线程的方式,其中一个线程用于发送DHCP DISCOVER报文;另一个线程用于侦听并解析DHCP OFFER报文。

发送线程的流程比较简单,其核心在于DHCP DISCOVER报文的填充,其中DHCP DISCOVER报文核心部分填充如下:

dhcpHdr=(DHCP_HEADER*)(buf+sizeof(IPHDR)+sizeof(UDP_HDR));

dhcpHdr->op=0x01; //消息类型为DHCP DISCOVER…

dhcpHdr->flags=0x0000;//单播方式

dhcpHdr->ciaddr=0x00000000;

dhcpHdr->yiaddr=0x00000000;

dhcpHdr->siaddr=0x00000000;

dhcpHdr->giaddr=inet_addr(SourceIP);//扫描者本地地址

dhcpHdr->chaddr1=0x34333231;//以下6个字节为客户机的MAC地址

dhcpHdr->chaddr2=0x3635;

这里要说明的是,SourceIP本应是中继代理的IP地址,在这里借用DHCP Relay的原理,填入扫描者本机IP地址,这样如果目的方是DHCP SERVER,并且其地址池有可用地址,就会向SourceIP(扫描者)发送DHCP OFFER报文。6个字节的chaddr填充的是一个伪造的客户机MAC地址,也就是说SourceIP代替的是MAC地址为31-32-33-34-35-36的客户机向DHCP SERVER请求地址,而DHCP SERVER返回DHCP OFFER包后,SourceIP并不需要转发给客户机,原因有两点:其一是完全没有必要,因为扫描的目的仅仅为了验证对方是否是DHCP SERVER。其二是如果转发的话,DHCP SERVER会无谓的消耗一个IP地址。还有一点就是为了确保DHCP SERVER能分到IP地址,就必须伪造一个特殊的MAC地址,否则如果是一个常用的MAC地址,DHCP SERVER很可能因为之前为其分配过IP地址,而不再给其分配IP地址。

接收线程的流程如图4所示。

其中判断是否为DHCP OFFER包需要对DHCP报文进行解析,具体代码如下:

if(buf[21]==0x43&&buf[23]==0x43&&buf[28]==0x02)

…//从 DHCP OFFER包中取出 siaddr字段(DHCP SERVER的IP地址)

…//从DHCP OFFER包中取出yiaddr字段(分配给伪造客户机的IP地址)}

其中0x02(2)指消息类型为DHCP OFFER报文,0x43(67)分别为DHCP SERVER和SourceIP的UDP端口号。

图4 接收线程的流程

判断是否合法DHCP SERVER的算法,就是将从DHCP OFFER报文解析出来的siaddr字段(DHCP SERVER的IP地址)与预设的合法的DHCP SERVER集逐一进行比较,如果有相同的就为合法的DHCP SERVER,否则为私架的DHCP SERVER。

4 实验与结果分析

4.1 实验环境及部署

实验地点为本校校园网,首先在60,77,120及204网段内各架设一台DHCP SERVER,此外,学校的中心DHCP SERVER(192.168.150.208),可以为60,77,120及204网段的客户机分配IP地址。

接下来是跨网段DHCP SERVER扫描系统的部署,有3种备选方案可供选择:

1)部署在某一网段,这样可以扫描出本网段内的DHCP SERVER,以及本网段外且地址池与本网段吻合的DHCP SERVER(不过这种情况,需要配置DHCP Relay Agent,由于技术有限,一般同学不会采用该方法)。显然对于网络管理员来讲,需要扫描是所有网段,因此这种方法并不适用。

2)部署在网段汇集的地方,比如接入到核心交换机或者核心路由器上,这样可以扫描所有网段。但通过这些设备的网络流量非常大,侦听的时候造成的丢包率很高,所以也不适用。

3)部署在DHCP Relay Agent上,首先,DHCP Relay Agent是网段汇集的设备;其次,DHCP Relay Agent的主要职责是为客户机分配IP地址,通常情况下网络流量比较小,丢包率低,因此是最为理想的部署地点。

4.2 实验结果与分析

在DHCP Relay Agent上扫描60~255网段的所有机器,结果如图5所示。从图中可直观的看到合法以及私架DHCP SERVER的IP地址,以及这些DHCP SERVER分配给伪造客户机的IP地址。

图5 60~255网段扫描结果

扫描的同时,在DHCP Relay Agent上用Ethereal进行抓包,由于发送的DHCP DISCOVER报文过多,不便于全部展示,这里只抓取发往目标地址192.168.150.208的数据包,其中部分DHCP DISCOVER报文及其解析如图6所示。

图6 DHCP Relay Agent上DHCP DISCOVER报文及其解析

从图中黑色部分可知192.168.77.3是DHCP Relay Agent的其中一个接口地址,其它的接口地址还有192.168.204.73、192.168.150.2、192.168.60.200以及192.168.60.200。Bootp Flags发送方式为Unicast(单播),此外,伪造的客户机MAC地址31-32-33-34-35-36也很明显。

DHCP Relay Agent上部分DHCP OFFER报文及其解析如图7所示。

图7 DHCP Relay Agent上DHCP OFFER报文及其解析

从黑色解析部分可以看到分配给伪造客户机的IP地址是192.168.77.100,紧跟下面是192.168.150.208是DHCP SERVER的IP地址。

最后,在DHCP Relay Agent上用Ethereal抓取发往目标地址192.168.60.25(私架DHCP SERVER)的数据包,其中DHCP OFFER报文及其解析如图8所示。

图8 私架DHCP SERVERDHCP OFFER报文及其解析

从黑色部分的解析可以看出,DHCP SERVER(192.168.60.25)分配给伪造客户机的IP地址是192.168.60.10。

5 结语

总之,本文采用单播方式,设计并实现了一个跨网段的DHCP SERVER扫描系统,该系统基于多线程,能够高效率的扫描出整个校园网中所有的DHCP SERVER,并根据预先的设置,能够区别出哪些是私架的DHCP SERVER,从而极大地方便了校园网络的管理。

[1]刘小华.DHCP在校网应用中的安全问题及对策研究[J].计算机安全,2013(2):47-50.LIU Xiaohua.DHCP on the web application security problem and countermeasure research[J].Computer Security,2013(2):47-50.

[2]何智勇,沈苏彬,毛燕琴.DHCP协议优化方案研究[J].计算机技术与发展,2010(9):6-7.HE Zhiyong,SHEN Subin,MAO Yanqin.DHCP protocol optimization study[J].Computer technology and development,2010(9):6-7.

[3]黄小花.浅析DHCP服务器的运行机制[J].无线互联科技,2015(4):21-21.HUANG Xiaohua.Operating mechanism of the DHCP server is analysed[J].Journal of wireless technology,2015(4):21-21.

[4]王文龙,黄地龙.DHCP协议深入分析[J].电脑与电信,2010(4):45-46.WANG Wenlong,HUANG Dinong.DHCP protocol analysis[J].Computer and telecom,2010(4):45-46.

[5]武爽.校园网中DHCP服务器的应用[J].网络安全技术与应用,2016(4):89-89.WU Shuang.DHCP server in the campus network application[J].Journal of network security technology and appli-cation,2016(4):89-89.

[6]陈小中.校园网DHCP故障与解决[J].福建电脑,2010(10):167-169.CHEN Xiaozhong.Campus network DHCP failure and solving[J].Journal of Fujian computer,2010(10):167-169.

[7]王卓然.DHCP协议在校园网络中的应用研究[J].电子技术与软件工程,2016(11):36-37.WANG Zhuoran.DHCP protocol in the application of the campus network study[J].Journal of electronic technology and software engineering,2016(11):36-37.

[8]罗定福.DHCP中继在路由交换网络中的设计与应用[J].微型电脑应用,2014(2):48-49.LUO Dingfu.DHCP relay route switching network in the design and application[J].Microcomputer applications,2014(2):48-49.

[9]陈加春.浅谈DHCP中继代理的应用[J].科技风,2016(12):117-116.CHEN Jiachun.Introduction to the application of DHCP relay agent[J].Science and technology of the wind,2016(12):117-116.

[10]李金翠.DHCPv4中继系统安全方案设计与实现[D].武汉:华中科技大学,2011:34-41.LI Jincui.DHCPv4 relay system security design and implementation[D].Wuhan:Huazhong university of science and technology,2011:34-41.

[11]韩丽,崔建涛.DHCP中继代理在虚拟机上的实现[J].太原理工大学学报,2010(2):163-164.HAN Li,CUI Jiantao.DHCP relay agent in the realization of the virtual machine[J].Journal of Taiyuan university of technology,2010(2):163-164.

DHCP SERVER Scanning System Based on Unicast

HOU Xiangning LIU Huachun
(College of Engineering and Technical,Cheng du University of Technology,Leshan 614007)

This paper designs and realizes A DHCP SERVER overlay IP scanning system by using unicast way is designed and realized in this paper,based on multi-thread technology ,the system can efficiently scanning all the DHCP SERVER's in the campus network,and according to the preset Settings,which is able to distinguish the private plane of DHCP SERVER,which can greatly facilitates the management of campus network.

DHCP SERVER,Unicast,overlay IP,campus network

TP393

10.3969/j.issn.1672-9722.2017.11.019

Class Number TP393

2017年5月7日,

2017年6月11日

四川省教育自然科学重点项目(编号:12ZA200)资助。

侯向宁,男,硕士研究生,讲师,研究方向:无线通信网络、网络安全与网络应用。刘华春,男,硕士研究生,副教授,研究方向:网络安全、智能信息处理。

猜你喜欢
网段客户机IP地址
“复兴号”17辆编组动车组列车总线网段扩展的设计研究
单位遭遇蠕虫类病毒攻击
配置局域网访问方式
隔山亦能打牛,本本巧变远控利器
用无线路由器共享单位局域网
公安网络中IP地址智能管理的研究与思考
《IP地址及其管理》教学设计
计算机的网络身份IP地址
升腾瘦客户机借神码翱翔“云端”
基于Web数据提高访问速度的方法