论坛风格切换切换到宽版
  • 1174阅读
  • 7回复

[问题求助][分享] 如何探测网络上非法的 DHCP 服务器 [复制链接]

上一主题 下一主题
离线喜多多.
 
发帖
2009
C币
-235365
威望
366
贡献值
1
银元
-5
铜钱
4496
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01

注 .:要探知网.络上其他的非法 DHCP 服务器,可以用 tcpdump 等抓包软件,--- 印刷

       本方法只.是用于在没有安装该类软件或者对 tcpdump 不熟悉的情况下的.一种代替方法,          婚庆

       尽量从 DH.CP 协议本身入手


一、首先简单介绍一下 D.HCP 的工作流程              乙肝

1、客户机发送 DHCPDISCOVER 广播消息 ,这个消息.的 src ip 是 0.0.0.0 ,dst ip 是 255..255.255.255 。src mac 是客户机的 .mac ,dst mac 是 --------------彩票

     ff.:ff:.ff:ff:ff:ff 。 注意!如果这个客户机之前获得某个 ip ,则它会使用 option requ.ested-ip-address 来申明希望继续使用某个 ip ,否则为空.

2.、每个收到这个广播的 DHCP 服务器都会返回一个 DHCPOFFER ,src ip 是 DHCP 服务器的 ip ,dst ip 是 0.0.0..0 ,src. mac 是服务器的 mac ,dst mac 是--- 印刷

     客户机的 mac. 。注意,服务器会在发送 DHCPOFFER 之前对要分配的 ip 发送一个 ping .包,如果收.到响应则表示该 ip 被占用,不能分配,否则则可以被分配              乙肝

3、客户机可能会收到多个 DHCPOFFER ,这时它处于 RFC 2131 中所规定的 SELECTING 状.态。它可以从多.个 OFFER 中挑.选一个合适的。           建材

    . 默认是只接受第1个收到的 OFFER ,忽略其他的。.这里正是我们需要修改的。电影

4、客户机发送一个 DHCPREQUEST 消息,src ip 是 0.0.0.0 ,dst ip 是 255.255.255.255. 。src mac 是客户机的 mac , ds.t mac 是 ff:ff:ff:f.f:ff:ff。域名

     然后通过 option server-identifier 告诉所有 DH.CP 服务器它.选择的是那个 DHCP 服务器的 OFFER。.

.   注意,在这个时间,.客户机实际上已经拿到了 ip 了,可以实现点-点的通信了学习

5、其他没有被接受的 DHCP 服务器在收到 DHCPREQUEST 后就会知道.自己的 OFFER 没有被接受,也就不再关.心了.

6、那个被选中的 DHCP 服务器返回一个 DHCP ACK 消息,src ip 是自.己的 ip ,dst ip 是客户机的 ip 。src mac 是服.务器的 mac ,dst. mac 是客户机的 mac--- 印刷

7、这就完成.了一个 lease 。.

8、如果客户机.是续约,且 Server 发现之前的 ip 已经过期,而且被另外一台客户机所申请,且该服务器是“权威.的“则会返回一个 DHCPN.AK ,客户机则放弃申请域名

     该 ip ,并从 D.HCPDISCOVER 开始,而不是从. DHCPREQUEST 开始。.



二、什么是 R.ogue DHCP ?

由于目前 DHCP 没有认证.功能,如果有人无心启动了 DHCP 服务,但又没有配置好 /etc/dhcpd..conf ,这时就会.干扰正常的 ip 租用。.

举.个例子,我有一个 “权威” 的 DHCP 服务器 172..17.64.34 ,提供的地址是从 172.17.64.244 ~ 248. 。这时有人非法启动了一个 DHCP 服务器 ,.

其 ip 为 172..17.64.39 , 分配的地址为 .172.17.64.249~254 。教育

假设有一台客户机,它.申请 ip 时 ,那台”非法“的 DHCP 服务器先返回一个 DHCPOFFER ,则客户机会拿着那个”非法.的 ip“。    美容

然后在后续的过.程也会继续申请该 ip ,这就可能.造成那些由”权威“的 DHCP 服务器分配的 ip 发生冲突的情况。    美容

三、什么是“权威的”.DHCP 服务器.

就是允许返回 DHCPNAK 的 DHCP 服务器。默认 ISC D.HCP 服务.器都不会认为自己是“权威的”    健康

只有那些“权威的.” DHCP 服务器才能对一个非法的 request 返回一个 DHC.PNAK。.

你必须在 /etc/dh.cpd.co.nf 中加入下面的指令--------------彩票

authoritative;
复制代码


具体方法

该方法需要一台空闲的客户机。

1、设置接口

BOOTPROTO=dhcp

PEERDNS=no
复制代码

2、设.置 /etc/dhclient.conf :             汽车

sel.ect-timeout 5;           女人

interface "e.th1" {.

  .      send fqdn..server-update on;          婚庆

        send dhcp-client-identifier "my-dhcp-client..n7css.com.";.教育

    .    send fqdn.fqdn "my-dh.cp-client.n7css.com.";             电子

       . se.nd fqdn.encoded on;.

       . send host-name "m.y-dhcp-client.n7css.com.";          婚庆

}               .            女人
复制代码

第一句是最主要的。目的让客户机不要立即选择 DHCPOFFER ,而是等待5秒。否则 dhclient 只会打印它所接受的那个 DHCP.OFFE.R           婚庆

3、以 root 身.份执行命令教育



[root@my-dhcp-client roo.t]# d.hclient -1 eth1             汽车

Intern.et Systems .Consortium DHCP Client V3.0.1.

Cop.yri.ght 2004 Internet Systems Consortium.(广告)

All rights reserve.d.    健康

For info, please visit http://www.isc.org/products/DHCP.

                                                       .                       .                                                 .                              .投资

L.isten.ing on LPF/eth1/00:01:02:97:75:d3.

Sending on.   LPF/eth1/00:01:02:.97:75:d3             电子

Sending on .  Socke.t/fallback虚拟主机

DHCPDISCOVER on eth1 to 255.255.255.255 por.t 67 interval. 7.

DHCP.OFFER from 172.17.64..39.

DHCPOFFER from 172.17...64.34服务器

DHCPREQUEST on et.h1 to 255.255..255.255 port 67(        游戏          )

DHCPA.CK from 172.17.64.34           女人

bound to .172.17.64.247 -- ren.ewal in 2726 seconds.             汽车

[root@m.y-dhcp-client. root]#域名
复制代码

可以看到上面指出 dhclient 收到两个. DHCPOFFER ,一个是来自 172.17.64.39 ,一个是来自 172.17.64.3.4 ,              乙肝

所以你只要用

gre.p DHCPOFFER |grep -v '172..17.64.39' |awk '{print $3}' (广告)
复制代码

就可以找出有那些非法的 DHCP .服务器了             汽车

此外还有一个想法,就是利.用 dhclient.conf 中的 requir.e 来强制客户机只能从那些服务器获得 ip服务器

只有 server 返回某个选项时(我们可以自定义一个 opti..on space ),客户机才接受这个 offer ,否则拒绝--- 印刷

不知道有没有人试过? http://upload.bbs.csuboy.com/Mon_1004/126_6627_a65c98fee2add0b.gif[/img]

[ 本帖最后由 ailms 于 2008-2-20 09:.39 .编辑 ]           鲜花

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线aeleven.
发帖
2203
C币
-262342
威望
435
贡献值
1
银元
-1
铜钱
5068
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:[分享]
以前也想知道DHCP如何认证,看了LZ的文章,觉得就是我想得到的方法。

你必须在 /etc/dhcpd.conf 中加入下面的指令

[Copy to clipboard] [ - ]CODE:
authoritative;

不过不知道这个地方是什么意思,应该如何使用。

离线cylczzj.
发帖
2088
C币
-60539
威望
413
贡献值
1
银元
-4
铜钱
4850
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:[分享]
to ssffzz1 版主 :

authoritative 这个不是认证的作用,只是用于确定你的服务器能否返回 DHCPNAK 消息

非权威的 DHCP 服务器是不允许返回这个消息的

离线gratful.
发帖
2079
C币
-611306
威望
371
贡献值
2
银元
-2
铜钱
4648
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
Re:[分享]
这个还需要客户端的配合。就是说要给每一个客户端设置。 对吧?

如果面对不单是windows机器,那就很大工作量且好麻烦哩

离线hack119.
发帖
1875
C币
-60755
威望
362
贡献值
1
银元
-1
铜钱
4278
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
Re:[分享]
不是这样的,只是随便找一台机器来探测出是有没有非法的 DHCP 服务器,然后进行处理而已,

没有必要对每台客户机都这么做

离线sfcq.
发帖
1976
C币
-199261
威望
356
贡献值
1
银元
-2
铜钱
4517
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
Re:[分享]
呵呵。明白用意在那里了。多谢!

如果要找出自己网络中所有dhcp服务器,直接抓包就可以哦。直接会有列表

离线dwbtongyi.
发帖
2171
C币
-60536
威望
368
贡献值
1
银元
0
铜钱
4781
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
Re:[分享]
嗯,抓包也是一个方案。

不过抓包的话也必须在 client 上抓,而且 dhclient 本身就能显示了,所以这也算另外一个方案吧。

主要是见到 sourceforg 上有个 RogueDetect  的软件,所以才想了这么个方法的

发帖
1977
C币
-152657
威望
342
贡献值
1
银元
0
铜钱
4441
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
Re:[分享]
留个记号!来日方长!!

快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个