侯向寧 劉華春
(成都理工大學工程技術學院電子信息與計算機工程系 樂山 614007)
基于單播的DHCP SERVER掃描系統(tǒng)?
侯向寧 劉華春
(成都理工大學工程技術學院電子信息與計算機工程系 樂山 614007)
論文采用單播方式,設計并實現了一個跨網段的DHCP SERVER掃描系統(tǒng),系統(tǒng)基于多線程技術,能夠高效地跨網段掃描出校園網中所有的DHCP SERVER,并能根據預先的設置,區(qū)分出合法以及私架的DHCP SERVER,從而極大地方便了校園網絡的管理。
DHCP SERVER;單播;跨網段;校園網
現如今隨著網絡的迅速發(fā)展以及校園網在廣大高校的日漸普及,各大高校學生們對校園網產生了極大的依賴性。但與此同時,諸多潛在的安全問題也在校園網的運行過程中暴露出來。其中,私架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。
這兩種方法的缺點顯而易見,首先,它們都是基于廣播的,因此不能跨網段,只能發(fā)現本網段內的DHCP SERVER,對校園網管理來說,幾乎沒有實用價值。其次,它們都是被動的掃描方式,都是當出現問題的時候才去掃描。最后,它們不能把合法的和非法的DHCP SERVER區(qū)分開來。
針對上述方法的不足,本文設計并實現了一個基于單播的DHCP SERVER掃描系統(tǒng),該系統(tǒng)基于主動方式,能夠一次性掃描出整個校園網中所有的DHCP SERVER,并根據預先的設置,能夠區(qū)別出哪些是私架的DHCP SERVER,從而極大地方便了校園網絡的管理。
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可知,客戶端以廣播的方式向本網段發(fā)送DHCP DISCOVER包,如果本網段內有DHCP SERVER,并且地址池中有可分配的地址,就以單播的形式向客戶機發(fā)送OFFER包,其中包括向客戶機分配的IP地址和相關配置參數。
2.3 DHCP Relay
在校園網中,存在很多子網,為了節(jié)省資源,不需要在每個網段部署DHCP SERVER。由于客戶機發(fā)送的DISCOVER是廣播消息是不能跨網段的,這就要用到DHCP Relay,DHCP Relay的工作流程[8~11]如圖 3所示。
圖3 DHCP Relay的工作流程
DHCP Relay收到客戶端向本網段中廣播的DHCP DISCOVER報文后,對其進行適當處理后,再以單播形式發(fā)送給指定的位于其它網段上的DHCP SERVER。DHCP SERVER根據請求報文中提供的必要信息,從地址池中取出可用地址,然后以單播的形式發(fā)給DHCP Relay。最后,DHCP Relay再將配置信息轉發(fā)給客戶端,從而完成對客戶端IP地址的動態(tài)配置。
3.1 設計思路
由2.3節(jié)可知,為了實現跨網段DHCP SERVER掃描,只能采用單播的形式,讓源主機代替客戶端(可以偽造客戶端)向目的主機發(fā)送DHCP DISCOVER報文,如果目的主機是DHCP SERVER,且與源主機同網段的地址池中還有未分配的IP地址,DHCP SERVER就從中取出一個IP地址并封裝到DHCP OFFER報文中,然后以單播的形式發(fā)送給源主機,最后在源主機上解析DHCP OFFER報文,可以得到DHCP SERVER分配給偽造客戶端(并非源主機)的IP地址。
因此掃描時構造DHCP DISCOVER報文尤為重要,由于DHCP協(xié)議是基于UDP的,DHCP數據報要封裝在UDP報文中,再將UDP報文封裝在IP報文中。然后通過原始套接字發(fā)送出去(目的地址可以是本網段,也可以是其它網段),最后偵聽所有網段,如果收到DHCP OFFER報文,說明對方就是DHCP SERVER。
3.2 核心算法
為了提高掃描的效率,采用多線程的方式,其中一個線程用于發(fā)送DHCP DISCOVER報文;另一個線程用于偵聽并解析DHCP OFFER報文。
發(fā)送線程的流程比較簡單,其核心在于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個字節(jié)為客戶機的MAC地址
dhcpHdr->chaddr2=0x3635;
…
這里要說明的是,SourceIP本應是中繼代理的IP地址,在這里借用DHCP Relay的原理,填入掃描者本機IP地址,這樣如果目的方是DHCP SERVER,并且其地址池有可用地址,就會向SourceIP(掃描者)發(fā)送DHCP OFFER報文。6個字節(jié)的chaddr填充的是一個偽造的客戶機MAC地址,也就是說SourceIP代替的是MAC地址為31-32-33-34-35-36的客戶機向DHCP SERVER請求地址,而DHCP SERVER返回DHCP OFFER包后,SourceIP并不需要轉發(fā)給客戶機,原因有兩點:其一是完全沒有必要,因為掃描的目的僅僅為了驗證對方是否是DHCP SERVER。其二是如果轉發(fā)的話,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.1 實驗環(huán)境及部署
實驗地點為本校校園網,首先在60,77,120及204網段內各架設一臺DHCP SERVER,此外,學校的中心DHCP SERVER(192.168.150.208),可以為60,77,120及204網段的客戶機分配IP地址。
接下來是跨網段DHCP SERVER掃描系統(tǒng)的部署,有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進行抓包,由于發(fā)送的DHCP DISCOVER報文過多,不便于全部展示,這里只抓取發(fā)往目標地址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發(fā)送方式為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抓取發(fā)往目標地址192.168.60.25(私架DHCP SERVER)的數據包,其中DHCP OFFER報文及其解析如圖8所示。
圖8 私架DHCP SERVERDHCP OFFER報文及其解析
從黑色部分的解析可以看出,DHCP SERVER(192.168.60.25)分配給偽造客戶機的IP地址是192.168.60.10。
總之,本文采用單播方式,設計并實現了一個跨網段的DHCP SERVER掃描系統(tǒng),該系統(tǒng)基于多線程,能夠高效率的掃描出整個校園網中所有的DHCP SERVER,并根據預先的設置,能夠區(qū)別出哪些是私架的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協(xié)議優(yōu)化方案研究[J].計算機技術與發(fā)展,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協(xié)議深入分析[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協(xié)議在校園網絡中的應用研究[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中繼系統(tǒng)安全方案設計與實現[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)資助。
侯向寧,男,碩士研究生,講師,研究方向:無線通信網絡、網絡安全與網絡應用。劉華春,男,碩士研究生,副教授,研究方向:網絡安全、智能信息處理。