LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4696|回复: 15

基于linux的ARP欺骗程序

[复制链接]
发表于 2007-7-25 09:43:26 | 显示全部楼层 |阅读模式
自己编写的一个基于linux的ARP欺骗程序,可以自己构造ARP数据包

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2007-7-25 12:20:27 | 显示全部楼层
好东西!好东西!
回复 支持 反对

使用道具 举报

发表于 2007-7-25 17:00:48 | 显示全部楼层
干坏事不好哦
回复 支持 反对

使用道具 举报

发表于 2007-7-26 00:29:11 | 显示全部楼层
没载,关心怎么用,最大危害能有多大。

最关键的是,能不能以毒攻毒。
回复 支持 反对

使用道具 举报

发表于 2007-7-27 21:59:37 | 显示全部楼层
楼主好样的!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-1 00:23:00 | 显示全部楼层
里面有两个执行文件arprequest和arpresponse.
arprequest是发送arp请求,arpresponse是发送arp响应。
命令中各个选项的解释:
-s:指定源Ip地址,有三种指定方式 [-s hostip][-s hostip1,hostip2][-s hostip/netmask]
可以指定单个ip地址,也可以指定ip地址范围。例如-s 10.11.19.1,10.11.19.254就是指定从10.11.19.1到10.11.19.254的ip地址范围,-s 10.11.19.1/24就是指定10.11.19.0/24网段中的主机。
-d:指定目的ip地址,用法同上
-e:在上述的源、目的地址中不包含由-e所指定的ip地址或ip范围。例如
arprequest -s 10.11.19.254 -d 10.11.19.2/24 -e 10.11.19.25 ...
那么在发送arp请求数据包时,不允许源、目的ip地址中包含10.11.19.25。
-i:指定所要发送出去的网络接口,例如-i eth0或者如果有几个以太网接口可以-i eth1...
--sha或-h:指定arp数据包中指定的源物理地址,如果没有指定那么选择由-i所指定网络接口的物理地址作为arp数据包的源物理地址。
-b:指定是否以广播方式发送arp数据包,理论上arp请求是以广播的方式发送的,arp响应是以单播的方式发送,但是这里你可以指定发送方式,你可以指定arp请求以单播方式发送,arp响应以广播方式发送。因为如果你伪造的arp请求以广播方式发送就会被网内的所有主机所接收从而被它们察觉到网内有相同ip地址的主机,所以你用arprequest发送arp请求数据包的时候可以不指定-b选项从而让它以单播的方式发送出去。
-c:因为目的物理地址不需要用户指定,由程序从arp缓存表中获得由-d选项所指定目标主机ip地址所对应的mac物理地址,例如arprequest -s 10.11.19.25 -d 10.11.19.26 -c 2 -f -i eth0.目的主机10.11.19.26的物理地址获得从arp cache中找,若没找到就要发送获得10.11.19.26物理地址的arp请求(执行程序arping -c 2 10.11.19.26 -I eth0),这里的-c就是指定发送ARP请求的个数,相当于命令arping中的-c选项。
-f:上面例子中若第一次从arp cache中未获得10.11.19.26的mac物理地址,如果指定-f选项那么就要发送arp请求,如果未指定-f选项,那么就不发送arp请求,直接返回当10.11.19.26主机在网内是关闭的。

arpresponse:是发送arp响应。用法同arprequest相同。

arprequest、arpresponse这两个程序可以编写成一个功能强大的脚本。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-1 00:23:41 | 显示全部楼层
里面有两个执行文件arprequest和arpresponse.
arprequest是发送arp请求,arpresponse是发送arp响应。
命令中各个选项的解释:
-s:指定源Ip地址,有三种指定方式 [-s hostip][-s hostip1,hostip2][-s hostip/netmask]
可以指定单个ip地址,也可以指定ip地址范围。例如-s 10.11.19.1,10.11.19.254就是指定从10.11.19.1到10.11.19.254的ip地址范围,-s 10.11.19.1/24就是指定10.11.19.0/24网段中的主机。
-d:指定目的ip地址,用法同上
-e:在上述的源、目的地址中不包含由-e所指定的ip地址或ip范围。例如
arprequest -s 10.11.19.254 -d 10.11.19.2/24 -e 10.11.19.25 ...
那么在发送arp请求数据包时,不允许源、目的ip地址中包含10.11.19.25。
-i:指定所要发送出去的网络接口,例如-i eth0或者如果有几个以太网接口可以-i eth1...
--sha或-h:指定arp数据包中指定的源物理地址,如果没有指定那么选择由-i所指定网络接口的物理地址作为arp数据包的源物理地址。
-b:指定是否以广播方式发送arp数据包,理论上arp请求是以广播的方式发送的,arp响应是以单播的方式发送,但是这里你可以指定发送方式,你可以指定arp请求以单播方式发送,arp响应以广播方式发送。因为如果你伪造的arp请求以广播方式发送就会被网内的所有主机所接收从而被它们察觉到网内有相同ip地址的主机,所以你用arprequest发送arp请求数据包的时候可以不指定-b选项从而让它以单播的方式发送出去。
-c:因为目的物理地址不需要用户指定,由程序从arp缓存表中获得由-d选项所指定目标主机ip地址所对应的mac物理地址,例如arprequest -s 10.11.19.25 -d 10.11.19.26 -c 2 -f -i eth0.目的主机10.11.19.26的物理地址获得从arp cache中找,若没找到就要发送获得10.11.19.26物理地址的arp请求(执行程序arping -c 2 10.11.19.26 -I eth0),这里的-c就是指定发送ARP请求的个数,相当于命令arping中的-c选项。
-f:上面例子中若第一次从arp cache中未获得10.11.19.26的mac物理地址,如果指定-f选项那么就要发送arp请求,如果未指定-f选项,那么就不发送arp请求,直接返回当10.11.19.26主机在网内是关闭的。

arpresponse:是发送arp响应。用法同arprequest相同。

arprequest、arpresponse这两个程序可以编写成一个功能强大的脚本。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-1 00:27:20 | 显示全部楼层
至于windows、linux当接收到arp数据包是如何处理的,可参看:
http://hi.baidu.com/bantouxiaoxu ... e7c4ff53664f67.html
回复 支持 反对

使用道具 举报

发表于 2007-8-7 10:32:24 | 显示全部楼层
是不是要用到libnet这个包包啊??

什么原理呢?

搂主给讲讲哈~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-9 22:30:04 | 显示全部楼层
虽然程序写的还不够精湛,放上来给大家共享一下,也算是do something for the opensource
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表