当前位置: 首页 > 图文教程 > 服务器 > DNS服务器 > DNS欺骗技术方法

DNS服务器
访问网站出现403错误集锦
DNS服务器组建攻略
让DNS服务器支持泛域名解析
经验:避免危害DNS服务器安全部署的七宗罪
DNS服务器架设:winmydns
解决域名DNS解析的故障
DNS攻击泛滥 IDC企业呼吁国家运营商打击
从断网事件分析DNS服务器拒绝服务攻击
域名DNS解析的故障解决方法
winmydns DNS服务器架设
DNS服务器 支持泛域名解析的设置方法 [修正版本]
新网互联 域名 泛解析设置方法
妙用DNS解析实现防火墙客户的重定向(图)
面向IPv6局部无服务器DNS名称解析
局域网内妙用DNS控制学生上网
上网提速,从架设简易DNS开始(图)
上网提速,从架设简易DNS开始
网管经验谈:激发DNS潜能 自有主张(3)
网管经验谈:激发DNS潜能 自有主张(2)
网管经验谈:激发DNS潜能 自有主张(1)

DNS服务器 中的 DNS欺骗技术方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 36 ::
收藏到网摘: n/a

 

A是网关 <------ ------> 我们在这里架设 sniffer,从这里同时对A、C进行ARP欺骗。需要到达这种效果:

A:ipC <----> macB,于是A企图和C通信的时候,包将发向B,这个很容易验证。

B:负责链路层包转发,进行先修改MAC后转发的操作。

这里要求我们的sniffer介入到IP层。显然我们只处理单播地址,而不用处理广播地址。

C:ipA <----> macB,于是C企图和A通信的时候,包将发向B,这个很容易验证。

1、单独起一个线程负责刷新,可以在配置文件中定制刷新间隔。应该和包分析线程doAnalyseThread 一样,当抓包线程 doCaptureThread 被外来信号 SIGEND 暂停时,欺骗刷新线程 doSpoofThread 被阻塞住,而不要无谓进行欺骗刷新。

以下为引用的内容:

ipA macA

------> 这是ipA的真实macA地址
|
|
|---------------|
AA-AA-AA-AA-AA-AA 00 00-00 00 00 00 08 06 00 01
08 00 06 04 00 02 BB-BB-BB-BB-BB-BB CC-CC-CC-CC
|---------------| |---------|
| |


| |
| ------> 这是ipC
|
------> 这是即将出现在 ipA 的 ARP CACHE 中
ipC 对应的 macB 地址
00 00 00 00 00 00 AA-AA-AA-AA
|---------|
|
|
------> 这是 ipA

这种报文导致 ipA 的 ARP CACHE 中 ipC 对应的是 macB

2、需要取得目标MAC地址和目标IP地址,每次都根据这两个数据判断,是否需要进行链路层的包转发。如果需要进行链路层包转发,必须同时修改源MAC地址和目标MAC地址。

当出现 destMacB + destIpA + srcMacC + srcIpC 时,修改成 destMacA + destIpA + srcMacB + srcIpC 。

当出现 destMacB + destIpC + srcMacA + srcIpA 时,修改成 destMacC + destIpC + srcMacB + srcIpA 。

上面的讨论仅仅限于局域网内不涉及跨网关时的arp欺骗过程,下面我们来看看如果涉及到网关会如何。假设主机A是网关,主机D位于网关外,主机C位于网关 内,且主机C的ARP CACHE中有 ipA----macB 对,主机A的ARP CACHE中有ipC----macB对。

当出现 destMacB + destIpD + srcMacC + srcIpC 时,修改成 destMacA + destIpD + srcMacB + srcIpC 。

当出现 destMacB + destIpC + srcMacA + srcIpD 时,修改成 destMacC + destIpC + srcMacB + srcIpD 。

综合比较一下四种情况,提取出共同点,destIp、srcIp始终保持原值。

当出现 destMacB + destIpX( X等于A或X在网关外 ) + srcMacY 时,修改成 destMacA + destIpX + srcMacB 。

当出现 destMacB + destIpX( X在网关内且不等于B ) + srcMacA 时,修改成 destMacX + destIpX + srcMacB 。

上面都是针对"正常"情况下可能出现的包而言,如果有人正在进行其他ARP扰乱过程,情况会很复杂,这里不做讨论。一定要理解这里简化后的最终结论,否则编程不好处理。

3、应该在配置文件中设置是否进行针对交换式HUB的监听。如果不做这种监听,就不必在初始化的时候启动欺骗刷新线程。同时也就不必在函数 doIp() 中做链路层包转发。

4、在函数 doIp() 中增加代码,做链路层包转发处理。因为进行完整的arp欺骗需要介入到IP层,从条目2的讨论中可以理解这一点。

5、arp cache中出现一个MAC对应多个IP的情况,虽然不合情理,但是经过实践,没有发现什么副作用。

6、暂时不考虑同时针对主机C、C'、C"进行arp欺骗的情况,这个以后再增加处理过程。