TP sysres IMA2a5 2021/2022 G8 : Différence entre versions

De Wiki d'activités IMA
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

Wiki4.jpg


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