# Rapport audit de sécurité complète par ilyes
> #### Ce rapport, aura pour but de mettre en évidence l'usage d'une méthode de hacking.
>
* Nous évoquerons les moyens de hacking d'un réseau WI-FI
> Sources d'inspiration:
> https://www.youtube.com/watch?v=J8A8rKFZW-M&ab_channel=DavidBombal
> https://www.youtube.com/watch?v=WfYxrLaqlN8
> https://www.youtube.com/watch?v=BT1Wjiy0VvE&ab_channel=Smiley
## Sommaire
1. Wifi
1.1 Introduction
1.2 Motivations
1.3 Exposition des pré-requis
1.4 Les points de blocages éventuels
1.5 Démo
1.5.1 Énoncé
1.5.2 Préparation
1.5.3 Analyse
1.5.4 Capture du handshake
1.5.5 Le déchiffrement
1.5.6 Conclusion
# 1. Wifi
## 1.1 Introduction
De nos jours, nous détenons tous un accès internet au sein de nos domiciles respectives. Pour cela, nous optons pour des abonnements auprès de différents opérateurs (Free, SFR, Orange, Bouygues,Sosh ...).
L'accès à internet, nous permet de collecter comme exploiter des informations. Via internet nous consommons des services. Nous avons chacun un usage diverses et spécifiques lié à l'usage d'internet.
Pour accéder à internet depuis nos domiciles, nous avons différents moyens à notre disposition:
* Par connexion filaire, c'est à dire brancher sa machine par port RJ45 à sa box internet.
* Par connexion sans fil, c'est à dire en appairant sa machine à la box internet par WI-FI.
Ce qui va nous intéresser désormais, sera l'exploitation de vulnérabilitées lié au mdp d'un réseau WI-FI.
Pour se faire, nous réaliserons une démo sur mon réseau WI-FI.
## 1.2 Motivations
Les motivations m'ayant poussé à réaliser ce TP sont les suivantes:
* Mettre en évidence ma capacité de réflexion et me sensibiliser sur la sécurisation de mon réseau WI-FI.
* Mettre en pratique ce que j'ai appris sur Kali
* M'ouvrir vers d'autres idées de hacking par la suite.
## 1.3 Exposition des pré-requis
Bien évidemment, avant de pouvoir tater le terrain. Il faut au préalable s'assurer que certains pré-requis soient mises en place:
* Préparation d'une VM Kali sous VMware avec la configuration réseau opérationnelle.
* Acquisition d'une clé USB adapter WI-FI compatible sous linux/kali (sans cela le TP ne sera pas faisable).
* Suite à l'acquisition de la clé USB, installer les drivers compatible kali et s'assurer à l'aide de la commande "iwconfig" dans le terminal de kali que le port wlan0 est bien disponible pour la suite.
Suite à cela, nous allons maintenant évoquer les potentiels points de blocages avant la mise en place de la solution
## 1.4 Les points de blocages éventuels
Comme à l'accoutumé, il arrive très souvent que tout ne se passe pas forcément comme prévu. Cela engendre des blocages, ces derniers très souvent long à résoudre peuvent faire l'objet de pertes de temps plus ou moins long.
Ici nous allons évoquer les points de blocages éventuels qui peuvent survenir dans le cadre du tp.
Par exemple:
* Difficultés d'installation lié à la VM, cela peut souvent être dû à un manque d'espace sur le PC par exemple donc s'assurer d'avoir sufissament d'espaces sur son disque.
* Parfois, il est plus ou moins difficiles de récupérer les drivers de sa clé usb réseau pour Kali. Pour celà, il faut en général s'assurer que l'apt est bien update, bien suivre les préconisations de l'éditeur et surtout réaliser un grand effort de recherche. Une grosse partie des erreurs sont expliqués dans différents forum.
<br>
Maintenant que nous avons évoquer les potentiels blocages susceptibles de survenir. Nous allons enfin pouvoir passer à la démo :100:
## 1.5 Démo
Pour cette démo, je tiens tout d'abord à apporter plus de précisions. Pour réaliser les actions que nous comptons mener, plusieurs solutions sont disponibles nous opterons pour Aircrack-ng.
Les différentes autres possibilités sont les suivantes:
* Fluxion, cet outil permet de recenser les différents points d'accès wifi, le nom, port, méthodes d'authent (wpa2,wep ...). Fluxion fait parti des outils les plus utilisés sur kali de part sa facilité d'utilisation mais aussi son rendu visuel. Pour plus d'informations le concernant, voici une documentation: https://linuxhint.com/fluxion-kali-linux-tutorial/
* Wifite, ce dernier détient des possibilités similaires avec Fluxion. Mais comme évoqué précédemment, fluxion est plus intéressant à manipuler et plus compréhensible en terme de facilité que Wifite. En bref, Wifite a des possibilités similaire à Fluxion. La différence majeur, sera axé sur le fait que Wifite propose de récupérer la clé de la cible uniquement via wordlist à la différence de fluxion qui propose aussi par wordlist mais aussi via un phising.
Maintenant, nous allons pouvoir attaquer notre démo.
### 1.5.1 Énoncé
Pour rappel, nous avons opter pour Aircrack-ng qui est une suite de logiciels utilisée pour monitoriser les réseaux sans fil et casser les clés Wep et WPA des réseaux WI-FI. Notre attaque comportera différentes phases:
* La préparation de la carte réseau
* Recueil par le biais d'un analyse du WI-FI cible
* Capture du WPA Handshake (principe de connexion au réseau WI-FI) en forçant la déconnexion d'un périphérique WI-FI.
* Enfin, la partie déchiffrement du mot de passe retranscrit dans le WPA Handshake via bruteforce.
### 1.5.2 Préparation
Cette étape, consiste à activer le mode moniteur de la carte réseau usb qu'on sollicite. Pour se faire, nous allons lister les cartes réseaux disponibles par le biais de la commande "airmon-ng".
Comme ceci:

> NB: si votre carte réseau ne s'affiche pas, cela peut être dû à différents facteurs tel que le fait qu'elle ne soit pas compatible ou que les drivers ne soient pas bien installé.
Nous concernons, nous pouvons constater que notre carte réseau est bien exploitable sur l'interface wlan0. De ce fait, nous allons activer le mode moniteur avec la commande suivante:

dès maintenant, la carte réseau wlan0 se retrouve indisponible (en d'autres termes plus d'accès à internet).
### 1.5.3 Analyse
Maintenant nous allons attaquer la partie analyse.
Nous pouvons désormais sniffer les paquets réseaux qui intéragissent autour de nous avec airodump.
Cette commande nous permettra de récolter des informations complémentaires sur le WI-FI comme par exemple:
* Le BSSID
* Le Channel, identifié "CH"
* L'auth, pour le mode d'authentification (WPA,WEP...) identifié "ENC"
* Le ESSID, étant le nom rattaché au routeur
Voici ci-dessous un exemple, bien-sûr il est important de conserver les informations car elles nous seront propises par la suite.

### 1.5.4 Capture du handshake
Le "WPA Handshake" se réalise lors de la connexion d'un périphérique (PC, Smartphone..) sur le WI-FI. Notre objectif, est d'en capturer un afin de récupérer un mot de passe crypté.
Du coup, deux phases se découpent:
* Dans un premier temps, sniffer le réseau WI-FI dans l'attente qu'un périphérique se connecte au WI-FI.
* Ensuite, maintenir le sniffing sur le WI-FI et provoquer une déconnexion puis attendre que l'appareil se reconnecte.
De sorte à pouvoir reproduire cela, je vais déconnecter mon Iphone13Pro déjà connecté.
***Nous allons désormer entamer la phase de scan WI-FI.***
Du coup, nous allons scanner le réseau avec la commande airodump-ng en incluant les options suivantes:
* -c de sorte à spécifier le channel
* --bssid, l'identifiant du routeur cible (voir capture lors de l'analyse 1.5.3 pour récupérer le bssid qu'on a conservé)
* -w pour spécifier le répertoire qui contiendra les fichiers d'output
cela donnerai ceci:

Par la suite, tout en laissant tourner cette commande en arrière plan, cette dernière nous générera 3 fichiers, dont un de type .xml .
Cette dernière nous intéressera, car elle détiendra davantages de d'informations sur les périphériques connecté sur le WI-FI.
En rentrant dans ce fichier, on retrouvera avec facilité les informations sur mon Iphone13Pro.
Voici ci-dessous un extrait du fichier:

***Maintenant, nous allons entamer la phase de déconnexion.***
Nous avons précédement pu récolter toutes les informations voulu. De ce fait, nous allons maintenant envoyer un packet qui provoquera la déconnexion de mon Iphone13Pro.
Pour se faire, nous allons uliser aireplay-ng avec les paramètres suivantes:
* -0 étant le paramètre pour forcer une désauthentification.
* -a étant le paramètre désignant le BSSID de notre box.
* -c étant le paramètre désignant le BSSID de notre cible (en l'occurence ici mon Iphone).
* enfin, spécifier la carte qu'on utilise
Voici ce que cela donne :

Le périphérique Iphone13Pro s'est déconnecté puis reconnecté automatiquement. Donc, nous obtenons désormais un WPA Handshake qui sera contenu dans notre fichier tplink.cpa.
Nous pouvons désormais aborder la partie de déchiffrement :100:
### 1.5.5 Le déchiffrement
Maintenant que nous avons pu récupérer un packet contenant le mot de passe WPA Crypté, il nous suffit de réaliser plusieurs tests de combinaisons jusqu'à en trouver un correspondant. Ce procédé est appelé un bruteforce.
Nous allons maintenant aborder le ***dictionnaire***.
Comme nous le savons, pour identifier un mot de passe, il nous faut des mots passes. De ce fait, nous pouvons trouver des fichiers textes de plusieurs giga contenant une liste des mots de passes les plus utilisés.
Dans notre cas, je sais que le mdp de mon routeur WI-FI admet 15 chiffres.
Pour cela, je vais donc opter pour la commande "crunch" qui permet de générer toutes les combinaisons possibles.
Crunch détient quelques paramètres dans un ordre précis qui sont les suivantes:
* Longueur minimum (on va opter pour 15)
* Longueur maximal (on va opter pour 15)
* Les caractères à utiliser (0123456...9abcdefgh...z)
enfin, nous allons définir un output qui contiendra nos différents mdp généré dans un fichier password.txt
Voici un exemple de ce que cela donnera dans notre cas:

en quelques instant, nous atteignons un fichier avec énormément de lignes et avec un poids très volumineux :hotsprings:

Maintenant que notre fichier est opérationnel, nous allons pouvoir passer sur l'étape de ***bruteforce***.
L'étape de bruteforce consiste comme expliqué précemment à bruteforcer le mot de passe.
Pour cela, nous allons utiliser aircrack-ng qui va crypter les mots de passe pas à pas.
Cela, lui permettra de vérifier si le cryptage de chaque mot de passe correspond au mot de passe du paquet réseau que nous avions capturé en amont.
> NB: Je recommande fortement d'optimiser son temps après l'execution du bruteforce car l'execution peut prendre un temps fortement conséquent.
Nous allons utiliser notre commande aircrack-ng comme ceci:

Après un long moment d'attente le Graal survient :hotsprings:

### 1.5.6 Conclusion
Suite à notre démo, nous pouvons constater qu'il est plus ou moins facile de craquer un mdp WI-FI. Les outils dont on a usé sont accessible et aucun matériel spécifique n'est requis.
Néanmoins, en appliquant quelques règles souple nous pouvons éviter ce type de risque.
Dans notre exemple nous avons opté pour 15 caractères numériques. De ce fait, le nbr de combinaisons tenais dans un fichier relativement énorme. En ajoutant le facteur de la pluralité des caractères, majuscule, minuscule, caractères spéciaux... Le Dictionnaire serait devenu tellement lourd qu'elle détiendrai difficilement l'espace suffissante pour stocker ces données.
Et même en admettons qu'un stockage avec tant d'espaces existe, le bruteforce prendrai de ce fait plusieurs jours,semaines voir mois/années.
Donc en optant pour un mdp plus complexe, nous diminuerions le risque. En changeant le mot de passe régulièrement, il ne sera pas évident de craquer la combinaison rapidement.
Nous avons également la possibilité d'adapter le signal WI-FI pour qu'il ne soit pas visible dans tout l'immeuble.
Et si possible, privilégier la connexion de ces périphériques par voie cabler qui restera toujours plus sécurisée.
Pour synthétiser :
* Un mot de passe complexe de plus de 12 caractères de préférences avec des Majuscules, minuscules, caractères spéciaux et chiffres
* Changement régulier du mot de passe (fréquence d'une fois tout les 6 mois par exemple)
* D'un point de vue sécuriter, mettre en place un moyen de monitoriser son réseau (chaque opérateur propose ce service avec sa box)
* Privilégier si possible les connexions par voie cabler (port rj45)
* Faire attention aux phising Wifi( ne pas cliquer sur n'importe quel lien que l'on reçoit sur son périphérique)