Aircrack-ng之Aireplay-ng命令

描述

aireplay-ng是一个注入帧的工具。它的主要作用是产生数据流量,而这些随后将会被用于aircrack-ng破解WEP和WPA/WPA2秘钥。aireplay-ng里包含了很多种不同的攻击方式用来获取WPA握手包。如:解除认证攻击(-0)、伪造认证攻击(-1)、交互式数据包重放攻击(-2)、手动ARP请求注入攻击(-3)、ARP请求重放注入攻击(-4)。而且,通过与packetforge-ng一起,我们可以创造出任何想要的数据包。大部分的驱动需要补丁才能支持数据包注入,可参见此处安装驱动。

攻击类型

aireplay-ng当前支持的攻击种类如下:

  • Attack 0:解除认证攻击
  • Attack 1:伪造认证攻击
  • Attack 2:交互式注入攻击
  • Attack 3:ARP请求包重放攻击
  • Attack 4:chopchop Korek攻击
  • Attack 5:碎片交错攻击
  • Attack 6:Cafe-latte 攻击
  • Attack 7:面向客户的碎片攻击
  • Attack 8:WPA迁移模式
  • Attack 9:数据包注入测试

用法

以下只是通常情况下的用法,命令格式并不能涵盖所有的攻击模式。如果想要了解更详细的用法,可以参见每一种攻击各自的用法说明。

命令格式:

aireplay-ng <options> <replay interface>

除了解除认证攻击(-0)和伪造认证攻击(-1)以外,其他所有攻击都可以使用下面的过滤选项来限制数据包的来源。-b是最常用的一个过滤选项,它的作用是指定一个特定的接入点。通常,我们可能只会用到-b一个选项。

过滤选项:

  • -b bssid :接入点的MAC地址
  • -d dmac:目的MAC地址
  • -s smac:源MAC地址
  • -m len:数据包最小长度
  • -n len:数据包最大长度
  • -u type:含有关键词的控制帧
  • -v subt:含有表单数据的控制帧
  • -t tods:到目的地址的控制帧
  • -f fromds:从目的地址出发的控制帧
  • -w iswep:含有WEP数据的控制帧

当我们重放(注入)数据包时,会用到以下的选项。注意,不是每一种攻击都能使用所有的选项。具体请参见每一种攻击各自的详细说明。

重放选项:

  • -x nbpps:设置每秒发送数据包的数目
  • -p fctrl:设置控制帧中包含的信息(16进制)
  • -a bssid:设置接入点的MAC地址
  • -c dmac:设置目的MAC地址
  • -h smac:设置源MAC地址
  • -e essid:虚假认证攻击中,设置接入点名称
  • -j:ARP请求攻击,向目标注入数据包
  • -g value:修改缓冲区的大小(默认值:8)
  • -k IP:设置目标IP加入注入文件
  • -l IP:设置目标源IP加入注入文件
  • -o npckts:每次攻击含数据包的数量
  • -q sec:设置持续活动时间
  • -y prga:包含共享秘钥的关键数据流
  • -Bor –bittest:比特率测试(仅适用于测试模式)
  • -D:禁止接入点嗅探
  • -F or –fast:选择第一次匹配的数据包
  • -R:禁止 /dev/rtc 的使用

Aireplay-ng有两个获取数据包来源。第一个是无线网卡的实时通信流,第二个则是pcap文件。大部分商业的或开源的流量捕获与分析工具都可以识别标准的Pcap格式文件。从pcap文件读取数据是Aireplay-ng一个经常被忽视的功能。这个功能可以使我们从捕捉的其他会话中读取数据包。注意,有很多种攻击会在攻击时生成pcap文件以便重复使用。

来源选项:

  • iface:从指定网卡捕获数据包
  • -r file:从指定pcap文件获取数据包

下面的选项用来指定程序运行哪一种攻击模式。前面我们提到的选项并非在所有攻击模式下都适用,选项是否可用基于当前指定的攻击模式。

攻击模式:

  • –deauth count:解除一个或所有工作站与接入点之间的认证(-0)
  • -fakeauth delay:向接入点发起伪造的认证(-1)
  • -interactive:交互式注入攻击(-2)
  • -arpreplay:标准ARP请求包重放(-3)
  • chopchop:解密WEP包
  • -fragment:碎片包攻击模式
  • -test:注入测试

Fragmentation和Chopchop的比较

以下是fragmentation和chopchop攻击的差别比较:

Fragmentation

优点:

  • 通常会得到1500byte长的完整数据包,这就使我们随后可以创建任意大小的数据包。即便当我们收集的数据包小于1500byte,也足够我们用来产生ARP请求
  • 有时可用在chopchop不能使用的情况中
  • 速度非常快。成功时产生xor流文件的速度非常快

缺点:

  • 需要更多的输入信息来发动攻击(即IP地址信息)。通常,这能够被猜测出来。而且在没有指定时,aireplay-ng会将源地址和目的地址默认为255.255.255.255。在大多数情况下这样都不会有问题,所以这个缺点并不是很大的问题。
  • 发动攻击更容易受限于网卡驱动。例如,对于Atheros,如果不将网卡的MAC地址设定为我们要欺骗的MAC地址,就不能够产生正确的数据包。
  • 我们需要距离接入点更近,因为一个数据包的丢失都会导致攻击的失败
  • 攻击在不正常处理碎片包的接入点上会失败

ChopChop

优点:

  • 有时可用在fragmentation不能使用的情况中
  • 不需知道任何IP信息

缺点:

  • 不是所有的接入点都能被攻击
  • 最大的xor流长度受限于我们chopchop的包长度。尽管理论上,我们可以获得1500byte长的xor流,而实际中却很少
  • 比fragmentation要慢很多

用法指导

优化注入速度
优化注入速率更像是一门艺术。首先我们可以尝试按照默认的设定运,如果效果欠佳,则可以使用-x选项来改变注入速度。需要注意,有时降低注入速率反而会提高整体效率。我们还可以按照网卡本身的传输速率来设置注入速率。即:

iwconfig wlan0 rate 11M

通常默认的传输速率是1或11M,这取决于网卡驱动以及我们将它启动为monitor模式的方式。如果我们距离接入点比较近,则可以设定一个相对较高的值,如54M,这可以使我们每秒获取更多的数据包。如果相距较远,以至于数据包无法传输,则可以尝试将它降低到些,如1M。

常见问题及解决方法

以下说明适用于aireplay-ng所有的攻击模式。

aireplay-ng没有注入数据包

保证我们使用的是正确的monitor接口。使用iwconfig命令可以查看各个接口及它们的模式。对于mac80211驱动,monitor模式的接口名通常为”mon0”;对于ieee80211驱动,接口则通常为”ath0”。而其它,则因驱动而异。

对于madwifi-ng驱动,确保没有其他的VAP在运行

确保已经没有其他的VAP运行,因为当已经存在一个monitor模式的VAP时,再使用另一个managed模式的VAP会导致问题。我们需要先停掉ath0,再开启wifi0:

airmon-ng stop ath0
airmon-ng start wifi0

或者:

wlanconfig ath0 destroy
wlanconfig ath create wlandev wifi0 wlanmode monitor

aireplay-ng被挂起没有输出

我们输入了命令,但它看起来好像被挂起了没有任何输出。这种现象通常是因为我们的无线网卡与接入点工作在不同的频道。另一个可能的原因是我们在prism2芯片组上使用的固件版本过老。此时,需保证使用1.7.4或更高版本的固件。可参见此链接获得更多信息。这里介绍了升级固件所使用的指令。另外,如果我们在后台运行了另一个aireplay-ng进程,且两个进程之间选项有冲突,也会导致第二个进程被挂起。

aireplay-ng注入过程中卡住

参见这篇帖子,或者这篇。

写入失败:“Cannot allocate memory wi_write(): Illegal seek”

当我们使用的是broadcom芯片以及对应驱动时,可能会得到这样的提示信息:

write failed: Cannot allocate memory wi_write(): Illegal seek

这是因为bcm43xx原始补丁里的一个BUG。要解决这个问题,可以使用SuD修改过的补丁。此外,也可以使用B43驱动来代替bcm43xx。(B43对aireplay-ng的版本要求>1.0-beta2,推荐使用1.0 rc1或其子版本。)

注入缓慢:”rtc: lost some interrupts at 1024Hz”

症状:可以注入但是速度非常慢,每秒大概30个数据包(30pps)。每次注入数据包时,都会有类似于下面的提示信息:

rtc: lost some interrupts at 1024Hz

且随后这样的信息会不断重复提示。对此问题有多种解决方法,第一种是再开启一个新的aireplay进程,这样注入速度就能到大约300pps。第二种方法需要输入以下命令:

 rmmod rtc 
 modprobe genrtc

如果内核可以用rtc-cmos,也可输入:

 rmmod rtc
 modprobe rtc-cmos

对这个问题,并没有彻底的解决方法。以上只是一些变通方法,可参见这篇文章。

注入速率低的一般情况

距离接入点太近会导致注入速率明显地降低。这主要是由数据包损坏或者接入点过载导致的。这篇文章是一个具体的例子。

错误信息:”open(/dev/rtc) failed: Device or resource busy”

此错误是由于同时运行两个或多个aireplay-ng进程造成的。虽然程序仍然可以运行,但是会导致时间变得不准确。

网卡的MAC地址与指定的MAC地址不匹配

当我们输入了一个类似于下面的命令:

aireplay-ng -1 0 -e horcer -a 00:50:18:4C:A5:02 -h 00:13:A7:12:3C:5B ath0

得到如下信息:

The interface MAC (06:13:F7:12:23:4A) doesn't match the specified MAC (-h).
      ifconfig ath1 hw ether 00:13:A7:12:3C:5B

当用来进行注入的源MAC地址(由-h指定)与我们网卡的MAC地址不同时,会出现上述提示信息。在上面的例子中,用来注入的MAC地址是00:13:A7:12:3C:5B,而网卡的MAC地址是06:13:F7:12:23:4A。有时候,它们的不相同会导致注入的失败,这也是提示信息出现的原因。所以,我们一般需要将用以注入的MAC地址和网卡的MAC地址相匹配。改变网卡MAC地址的方法,参见此处。

隐藏SSID “

mon0 is on channel 1, but the AP uses channel 6

这表示一些原因导致我们的网卡发生了跳频。一个可能的原因是启动airodump-ng的时候没有将其指定到一个特定的信道(需带上-c参数)。另一个可能的原因是我们同时运行了会引起跳频的进程,比如:network manager、wpa_supplicant。此时必须杀死所有这些进程。可参见airmon-ng(airmon-ng check kill)。

你可能感兴趣的:(破解,Aircrack-ng)