荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Lg (创造人生的传奇), 信区: Linux
标  题: 关于arp欺骗的技术文档
发信站: BBS 荔园晨风站 (Wed Jun  7 19:05:21 2000), 站内信件

【 以下文字转载自 Hacker 讨论区 】
【 原文由 Sealed 所发表 】


  所有系统 Linux UNIX Windows Other



  首页 >> 资料文献 >> Unix

  关于arp欺骗的技术文档

发布日期: 2000-5-10
内容:
--------------------------------------------------------------------------------

设计:关于arp欺骗的技术文档

作者:scz


-------------------------------------------------  <-- -- -- 交换式HUB
|               |               |               |
|               |               |               |
D            A' + A             B               C  <-- -- -- A、B、C 处在同一逻
辑子网内
                |               |
                |               |
  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欺骗的情况,这个以后再增加处理过
   程。







版权所有,未经许可,不得转载
欢迎访问我们的站点http://www.isbase.com/
绿色兵团给您安全的保障





 关于我们   合作伙伴   绿盟月刊   安全论坛   系统漏洞   安全文献   工具介绍   服
务项目   客户专区

--------------------------------------------------------------------------------

绿盟计算机网络安全技术有限公司版权所有   联系:isbase@isbase.net
&copy; 1999,2000 isbase Corporation. All rights Reserved.

--
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: bbs@192.168.28.106]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: bbs.szptt.net.cn]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店