diff options
Diffstat (limited to 'recon/inspector_wifi/inspector_wifi')
-rwxr-xr-x | recon/inspector_wifi/inspector_wifi | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/recon/inspector_wifi/inspector_wifi b/recon/inspector_wifi/inspector_wifi new file mode 100755 index 00000000..a13ecd3d --- /dev/null +++ b/recon/inspector_wifi/inspector_wifi @@ -0,0 +1,122 @@ +#!/bin/sh +# Usage; sudo iwlist wlan0 scan | ./inspector_wifi +# +# +# set -eu + +cd "$(dirname "$(readlink -f "$0")")" + +usage(){ + echo '-h show this help' + echo '-w output in wpa_supplicant.conf format' + echo '-n normal output message' + echo '' + echo 'Example: iwlist wlan0 scan | ./inspector_wifi -w' + + exit 0 +} + +crack_wifi(){ + for i in plugins/*;do + if RET=$(./$i "$@" 2>/dev/null);then + if [ ! -z wpa_sup ]; then + make_config $@ $RET + else + echo "$@ - with crack $i succeeded - Key is $RET" + fi + fi + done +} + +make_config(){ + cat<<EOF +network={ + ssid="$1" + psk="$5" +} +EOF + +} + +shell_escape(){ + sed 's/./\\&/g' +} +remove_quotes(){ + sed 's/^"\|"$//g' +} + + +iwlist_scan_parser(){ + count=0 + while read line; + do + case "$line" in + + *"Cell "*) + if [ $count -ne 0 ];then + crack_wifi "$ESSID" $MAC $CHANNEL any_encryption + fi + WPA=0 + WPA2=0 + : $((count+=1)) + MAC=${line#*Address: } + ;; + *Channel:*) + CHANNEL=${line#*:} + ;; + *Quality=*) + QUALITY="`printf '%s' ${line#*Quality=} | cut -d/ -f 1`" + ;; + *"Encryption key:"*) + ENCRYPTION=${line#*key:} + ;; + *ESSID:*) + ESSID=$(echo "${line#*ESSID:}" | remove_quotes) + ;; + *"IE: IEEE 802.11i/WPA2"*) + WPA2=1 + ;; + *"IE: WPA Version 1"*) + WPA=1 + ;; + *);; #important, do not delete! + esac + done; + crack_wifi "$ESSID" $MAC $CHANNEL any_encryption + #echo WIFI_COUNT=$count +} + + +loop_networks(){ + for i in `seq 1 $WIFI_COUNT`; do + loop_over_cracks "$i" + done +} + +wifi_init(){ + iwlist_scan_parser +} + +print_wpa_supplicant(){ + echo "args $@" +} + + +if [ $# -eq 0 ]; then + usage +fi + +while getopts wn OPT; do + case "$OPT" in + w) + wpa_sup=1 + ;; + n) + ;; + \?) + usage + ;; + esac +done + +iwlist_scan_parser |