├── README └── iwmap /README: -------------------------------------------------------------------------------- 1 | DESCRIPTION 2 | =========== 3 | 4 | iwmap is a little bash script focused on wardriving activities. Collect all the Wi-Fi wireless networks in a log file (csv format) skipping duplicate. 5 | 6 | 7 | MACADDRESS CH FREQ KEY ENCR ESSID 8 | ---------- -- ---- --- ---- ----- 9 | 00:1D:A1:C1:B5:3D 1 2.412 on TKIP FASTWEB-1-XXXXXXXX 10 | 00:21:2F:DE:CA:03 6 2.437 off ---- Free Public WiFi 11 | 5D:D8:78:07:C4:CD 6 2.437 on TKIP NETGEAR 12 | 64:84:E7:F2:42:30 11 2.462 on TKIP Alice-XXXXXX 13 | 00:21:2E:FB:7E:38 6 2.437 on TKIP ICEGUEST 14 | 00:1D:A2:BE:48:5D 1 2.412 on TKIP FASTWEB-1-YYYYYYY 15 | 16 | 17 | DOWNLOAD IWMAP 18 | ============== 19 | 20 | git clone https://github.com/guelfoweb/iwmap.git 21 | 22 | 23 | TO USE IWMAP 24 | ============ 25 | 26 | # cd iwmap 27 | # bash iwmap 28 | 29 | 30 | Alternatively, set executable permissions on iwmap file 31 | 32 | # cp iwmap /usr/local/bin/iwmap 33 | # chmod a+x /usr/local/bin/iwmap 34 | # iwmap 35 | 36 | 37 | CONFIGURE 38 | ========= 39 | 40 | By default interface is setting to wlan0. If you use a different interface then open iwmap file and replace variable with your interface: 41 | 42 | WLAN="wlan0" 43 | 44 | 45 | Variable list: 46 | 47 | WLAN="wlan0" # <- Interface type 48 | LOGFILE="iwmap.log" # <- Logfile name 49 | SLEEP=10 # <- Delay in seconds 50 | SU="sudo" # <- Super User 51 | 52 | 53 | OTHER 54 | ===== 55 | 56 | This script is currently maintained by Gianni 'guelfoweb' Amato, who can be contacted at guelfoweb@gmail.com. Suggestions and criticism are welcome. -------------------------------------------------------------------------------- /iwmap: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # ---------------------------------------------------------------------------- 5 | # "THE BEER-WARE LICENSE" (Revision 42): 6 | # guelfoweb@gmail.com wrote this file. As long as you retain this notice you 7 | # can do whatever you want with this stuff. If we meet some day, and you think 8 | # this stuff is worth it, you can buy me a beer in return Gianni 'guelfoweb' Amato 9 | # ---------------------------------------------------------------------------- 10 | # 11 | 12 | #-------------------# 13 | WLAN="wlan0" # <- Interface type 14 | LOGFILE="iwmap.log" # <- Logfile name 15 | SLEEP=10 # <- Delay in seconds 16 | SU="sudo" # <- Super User 17 | #-------------------# 18 | 19 | TS=`date --utc --date now +%s` 20 | LOGTMP=".iwmap_$TS.tmp" 21 | FUCK="/dev/null" 22 | 23 | start(){ 24 | SCAN=`$SU iwlist $WLAN scanning 2> $FUCK | egrep 'Channel|Address|ESSID|Encryption|Group Cipher' | sed -e 's/Cell [0-9]* - Address: //g' \ 25 | -e 's/Channel://g' \ 26 | -e 's/Frequency://g' \ 27 | -e 's/GHz//g' \ 28 | -e 's/(Channel [0-9]*)//g' \ 29 | -e 's/Encryption key://g' \ 30 | -e 's/ESSID://g' \ 31 | -e 's/Group Cipher : //g' \ 32 | -e 's/^ *//g'` 33 | 34 | for i in $SCAN; 35 | do 36 | echo -n $i | sed '/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/{x;p;x;}' >> $LOGTMP; echo -n "," >> $LOGTMP 37 | done 38 | 39 | if [ ! -f $LOGFILE ]; then > $LOGFILE; fi 40 | 41 | tail -n +2 $LOGTMP 2> $FUCK | sed 's/,$//g'| while read LINE; 42 | do { 43 | if [ ! "$LINE" = "" ]; then 44 | ESSID=`echo "$LINE" | cut -d\" -f2 | sed 's/,/ /g'` 45 | MACADDR=`echo $LINE | cut -d\, -f1` 46 | CHANNEL=`echo $LINE | cut -d\, -f2` 47 | FREQ=`echo $LINE | cut -d\, -f3` 48 | KEY=`echo $LINE | cut -d\, -f4` 49 | ESSID=`echo $LINE | awk -F "\"" '{print $2}' | sed 's/,/ /g'` 50 | ENC=`echo "$LINE" | awk -F "\"" '{print $3}' | awk -F "," '{print $2}'` 51 | if [ "$ENC" = "" ]; then ENC="----"; fi 52 | FOUND="$MACADDR,$CHANNEL,$FREQ,$KEY,$ENC,$ESSID" 53 | DUPLICATE=`echo $FOUND | cut -d\, -f2,4,5,6` 54 | GREPLINE=`cut -d\, -f2,4,5,6 $LOGFILE | grep "$DUPLICATE"` 55 | if [ -z "$GREPLINE" ]; then 56 | echo -e "$MACADDR \t $CHANNEL \t $FREQ \t $KEY \t $ENC \t $ESSID" 57 | echo $FOUND >> $LOGFILE 58 | fi 59 | fi 60 | } 61 | done 62 | 63 | rm $LOGTMP 2> $FUCK 64 | } 65 | 66 | RES="BEGIN" 67 | echo -e "MACADDRESS \t\t CH \t FREQ \t KEY \t ENCR \t ESSID" 68 | echo -e "---------- \t\t -- \t ---- \t --- \t ---- \t -----" 69 | while [ $RES != "END" ]; do 70 | start 71 | sleep $SLEEP 72 | done 73 | --------------------------------------------------------------------------------