手把手教你玩转ARP包(完)【数据包的游戏系列之一】

作者:
   CSDN  VC/MFC 网络编程 PiggyXP  ^_^
 
本篇目录:

    四。ARP包的游戏

      1 .   小伎俩

      2.    ARP欺骗的实现

      3.   基于ARP欺骗的监听原理 

 

四.

既然我们可以自己来填充数据包,那么来玩些ARP的“小游戏”欺骗就是易如反掌了,当然,是在没有安全防护的网络里 ,比如只有hub或者交换机把你们相连,而没有路由分段……^_^

下面我就由浅入深的讲一些介绍一些关于ARP的小伎俩。

 

1. 小伎俩

1)       你可以试着发一个请求包广播,其中的ARP帧里关于你的信息填成这样:

(为了节省篇幅,我只写需要特别指出的填充字段)

发送方MAC

6

随便乱填一个错误的

发送方IP

4

 填上你的IP

   出现什么结果?是不是弹出一个IP地址冲突的提示?呵呵,同样的道理,如果发送方IP填成别人的,然后每隔1秒发一次………..-_-b

 

2)       比如你们都靠一个网关192.168.0.1 上网 ,如果你想让192.168.0.77 上不了网,就可以伪装成网关给192.168.0.77发一个错误的ARP响应包, like this

发送方MAC

6

随便乱填一个错误的

发送方IP

4

 网关IP 192.168.0.1

接收方就填192.168.0.77的相关信息,发送之后,它还能上网不?

这样能折腾他好一阵子了,只要它的系统得不到正确的到网关的ARP映射表它就一直上不了网了 ^_^

          呵呵类似的伎俩还有很多,不过只停留在这点东西上也没什么意思,还是看看稍微高深一点的吧^_^

 

       2.        ARP欺骗

因为在以太网里,网络设备就是靠MAC信息来识别的计算机的,比如A电脑知道MAC地址为22-22-22-22-22-22的电脑是B,而如果我给A发送一个ARP响应包,告诉它我的MAC22-22-22-22-22-22的话,A同样会认为我的计算机是B了,那么好,我们设想有这么一个环境,

A的防火墙只对IP192.168.0.2 MAC 22-22-22-22-22-22B有信任关系,而且A打开了21端口提供FTP服务,正常情况下因为防火墙的缘故我们的计算机是连不到A的,

于是我们想办法让B down掉,或者在它关机的时候,我们把我们的IP改成B192.168.0.2,然后给A发送一个ARP回应包,告诉A更新一下ARP缓存列表,192.168.0.2IP映射到我们的
MAC
地址上来,于是,奇迹出现了,我们可以连到AFTP上了,防火墙失效了^_^

不过这个办法只能在同网段内生效,如果我们和A不在一个网段内,那就要复杂的多了,还要配合ICMP的重定向来控制报文的路由,这个我准备在以后阐述ICMP包的时候详细讲解,就不再此多说了。

    3.        基于ARP欺骗的监听原理

监听的技术有很多了,不过我们常用的sniffer工具只能在基于hub的网络中起作用,碰到哪怕是交换机都无能为力了,这个时候我们的ARP欺骗技术就派上用场了。

还是假设有三台主机A,B,还有我们的主机,位于同一个交换式局域网中

AB正在通信,如果我们想要刺探A――>B通信的内容,于是我们就可以给A发送一个伪造的ARP回应包,告诉ABIP对应的MAC条目为我们的MAC地址,于是,A也就会相应的刷新自己的ARP缓存,将发给B的数据,源源不断的发送到我们的主机上来,这样我就可以对接收到的数据包进行分析就好了,达到了监听的目的。当然,因为动态ARP缓存是动态的,有超时时间的,所以我们必须每隔一段时间就给A发送一个ARP回应包

虽然我们这样达到了目的,但是AB的通信却被停止了,为了不让B发现,我们还要对每次接收到的数据包进行转发,全部都转发给B,这样就天衣无缝了^_^

同样的,如果我们还想监听B à A的数据包,一样给B发一个ARP回应包,告诉BAIP对应的MAC是我们的主机MAC,于是BA的数据包也源源不断的发到我们的主机上来了,当然我们也是一样要对这些数据包进行转发,如图:

A  <------>   我们的主机   <------>   B

一切都无误的话,AB的通信内容就这样不知不觉的被我们监听到了^_^

具体的代码实现由于篇幅的关系我就不放在这里讲了,如果需要我就专门另写篇文章附上完整代码吧

至此,我们的ARP基础知识就讲完了,但愿您能从中有所收获

 

后记:

 因为本人开发都是使用VC++.net 2003,所以没有安装.net的朋友是打不开工程的,可以试一下vckbase上的工程转换工具,本人没有试过,不保证有效

             http://www.vckbase.com/tools/assist/prjconverter.rar

而且本文的代码使用了winpcap开发包,是要另外安装ainpcap驱动。

读者可以安装我代码包里的驱动,不过它更新很快,可以到它主页上去下载最新版本

        http://winpcap.polito.it/install/default.htm

    不做开发的读者,只用下载并安装这个就可以了WinPcap auto-installer (driver +DLLs)

   我的原文及源码下载地址稍后贴出,请关注本帖^_^

   

     源码下载地址,新鲜出炉,非常感谢 _foo 兄弟提供的空间

http://iunknown.com.cn/csdn/network/ARPPlayer_By_PiggyXP.rar

     2007年11月5日更新的源代码下载地址,上面的地址已经失效了。。。。

http://download.csdn.net/source/275445

我的资源空间在这里,欢迎大家访问

http://piggyxp.download.csdn.net/

ARP包的游戏

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 81
    评论
成端口是一种异步输入/输出(I/O)模型,在网络编程中起到了重要的作用。它是Windows操作系统中提供的一种高效的I/O成机制。 成端口的工作方式是通过一个预先创建的I/O成端口对象来管理I/O操作。在应用程序中,可以创建多个成端口对象,用于不同的I/O操作。成端口对象会与一个执行线程相关联,这个线程会在I/O操作成时被唤醒。当一个I/O操作成时,操作系统会将成的消息发送给成端口对象,并唤醒相应的线程。 使用成端口的好处是可以实现高效的并发I/O操作。通过使用线程池,可以有效地处理多个客户端请求,并且不会因为等待I/O操作而造成线程的闲置。此外,成端口还可以用于实现高性能的服务器应用程序,因为它能够轻松地处理大量的并发I/O操作。 成端口的使用步骤如下: 1. 创建成端口对象,并绑定执行线程。 2. 创建一个I/O请求(例如读取或写入操作)。 3. 将I/O请求与成端口对象关联。 4. 执行I/O操作,并等待操作成。 5. 当操作成时,线程被唤醒,并处理成的I/O请求。 总之,成端口是一种强大而高效的I/O成机制,在网络编程中非常实用。它能够提供高并发的I/O操作能力,使得应用程序能够高效地处理多个客户端请求。通过合理地利用成端口,在网络编程中可以实现高性能和高效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 81
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值