TP sysres IMA2a5 2019/2020 G5 : Différence entre versions

De Wiki d'activités IMA
(Les tests d'intrusion)
Ligne 188 : Ligne 188 :
 
[[Fichier:aircrack wpa 1.png|600px|center|frameless|Clef troouvée !!!]]
 
[[Fichier:aircrack wpa 1.png|600px|center|frameless|Clef troouvée !!!]]
  
==Configuration du commutateur catalyst 4600==
 
 
une fois connecté avec  minicom, le commutateur est en état "rommon" on fait donc "boot" pour le redemmarer.
 
 
 
Configurationde la vm sur cordouan
 
brctl show pour retrouver le nom du bridge
 
 
Fichier de configuratiion : ima2a5-nofun.cfg
 
 
on ouvre avec:  root@cordouan:~# nano /etc/xen/ima2a5-nofun.cfg
 
 
xen permet de creer la machine virtuelle
 
  
  
 
==Cryptage de données==
 
==Cryptage de données==
il faut crypter les données d'un clef usb avec l'utilitaire '''cryptsetup''' (apt install cryptsetup)
+
Un petit exercice annexe consiste à réussir à encoder une clef USB afin qu'elle soit vérouillé par un mot de passe. Pour cela, on a besoin de l'utilitaire '''cryptsetup'''  
 +
      apt install cryptsetup
  
pour voir les périfériques sur le pc
+
Dans un premier temps, après avoir inséré la clef dans le PC, on recherche les périphériques présent sur le pc avec la commande :
 
       lsblk
 
       lsblk
  
regarde qu'elle est le nom de la clef, ici on a sdb
+
On regarde ensuite le nom de disque qui lui a été donné par le poste, dans notre cas, c'est '''sdb'''
  
on utilise la commande suivant pour gérer les partitions
+
On utilise la commande suivant pour gérer les partitions du disk :
 
       fdisk /dev/sdb
 
       fdisk /dev/sdb
  
Commandes utiles :
+
'''Remarque : '''On différenciera bien le nom du disque ('''sdb''') et le nom de la partition ('''sdb1'''). 
d => supprimer la partition
 
  
Pour nettoyer la clef, on supprime les partitions présentes avec d (si plusieurs partionsn on nous demande laquelles supprimer)
+
Une fois dans la clef grâce à la commande fdisk, on peut créer une partition.
  
Pour créer la partition, 'n'
+
Pour nettoyer la clef, on supprime les partitions présentes en tapant '''d''' (si plusieurs partions on nous demande laquelle supprimer). Ensuite, on réalise cette suite de commande pour créer la partition.
partition primaire 'p'
 
1 partition
 
creation au début du secteur
 
  
[[Fichier:cryptage_clefUSB.png|600px|center|frameless|Clef troouvée !!!]]
+
- Pour créer la partition, 'n'
 +
- Partition primaire 'p'
 +
- 1 partition
 +
- Creation au début du secteur
 +
 
 +
[[Fichier:cryptage_clefUSB.png|600px|center|frameless|Création de la partition]]
  
 
On enregistre le smodifications avec 'w' et puis ça quitte l'interface.
 
On enregistre le smodifications avec 'w' et puis ça quitte l'interface.
 +
En refaisant, '''lsblk''' on peut voir qu'une partition '''sdb1''' a été crée mais pour l'instant elle n'est pas encrypté.
  
On passe au cryptage de la clef (la partition)
+
On passe au cryptage de la partition:
  
On crypt la partion sdb1 (la seule présente) avec la commande suivante:
+
On crypte la partion sdb1 (la seule présente) avec la commande suivante:
 
       cryptsetup luksFormat -c aes -h sha256 /dev/sdb1
 
       cryptsetup luksFormat -c aes -h sha256 /dev/sdb1
  
on nous demande ensuite le mot de passe souhaité.
+
On nous demande ensuite le mot de passe souhaité.
  
remarque : pour la decrypter, il faut que l'outil crypsetup soit sur la machine.
+
'''Remarque : '''Pour la decrypter, il faut également que l'outil '''crypsetup''' soit sur la machine.
 +
On ouvre la partition et on lui donne enfin le nom que l'on souhaite.
  
       cryptsetup open --type luks /dev/sdb1 clef_ima2a_G5
+
       cryptsetup open --type luks /dev/sdb1 '''clef_ima2a_G5'''
 
 
formate en ext4 de la partition ( à faire une seule fois !!!)
 
  
 +
On formate en ext4 de la partition ( à faire une seule fois !!!)
 
       mkfs.ext4 /dev/mapper/clef_ima2a_G5
 
       mkfs.ext4 /dev/mapper/clef_ima2a_G5
  
monter la partition
+
Puis on monte la partition dans un répertoire crée préalablement :
 
 
 
       mount -t ext4 /dev/mapper/clef_ima2a_G5 /mnt/clef
 
       mount -t ext4 /dev/mapper/clef_ima2a_G5 /mnt/clef
  
 
+
Ainsi, lorsque la clef est inséré, le répertoire "clef" devient la partition de la clef  
clef est la partition de la clef  
 
 
on va dans clef et on crée un fichier, on sort ensuite de clef.
 
on va dans clef et on crée un fichier, on sort ensuite de clef.
  
Demontage de la clef
+
On démonte la clef du répertoire :
 
       umount /mnt/clef
 
       umount /mnt/clef
Fermeture du volume chiffré
+
 
 +
Pour finir, on ferme le volume chiffré avec la commande :
 
       cryptsetup close --type luks clef_ima2a_G5
 
       cryptsetup close --type luks clef_ima2a_G5

Version du 7 décembre 2019 à 17:45


GROUPE 5 : Adrien MONFILLIETTE & Quentin VERNE


Introduction

Dans le cadre du cours de système & réseau, nous avons eu la possibilité de créer une maquette réseau entre les différents binômes de la promotion. Pour cela, un numéro de groupe a été donné à chaque binôme : nous sommes le groupe n°5. Afin de réaliser cette maquette réseau, nous avons du installer une machine virtuelle (VM) sur un serveur commun puis réaliser les différentes étapes du TP afin que les VM puisse communiquer entre elle.

Remarque : La mise en place de la maquette réseau à nécessité, d'une part une configuration des machines, et d'autres part une configuration des routeurs et commutateurs afin d'obtenir une redondance réseau. Pour la partie hardware, se sont Quentin.W et Maxime.H qui s'en sont chargé, je vous renvoie donc vers leurs Wiki pour les explications.

Création de la VM

Dans un premier temps, il faut donc créer la VM sur le serveur commun. Tout d'abord, on se connecte en ssh sur le serveur CORDOUAN.

     pifou@zabeth10:~$ ssh root@cordouan.insecserv.deule.net

On veut créer une machine virtuel grâce à XEN. Pour cela, on utilise la commande suivante en précisant le hostname qui correspond à notre groupe.

      xen-create-image --hostname=ima2a5-nofun --dhcp --dir=/usr/local/xen --dist=ascii --apt-proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force

Avant de lancer pour la première fois la VM, il faut modifier son fichier de configuration afin de lui donner accès au bridge réseau (qui permettra à toutes les VM de communiquer entre elle) et lui ajouter les disques virtuels de stockage. On ouvre le fichier.

     nano /etc/xen/ima2a5-nofun.cfg

Voir fichier de configuration ci-dessous :

     #
     # Configuration file for the Xen instance ima2a5-nofun, created
     # by xen-tools 4.7 on Wed Nov 13 08:06:12 2019.
     #
     #
     #  Kernel + memory size
     #
     kernel      = '/boot/vmlinuz-4.9.0-6-amd64'
     extra       = 'elevator=noop'
     ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'
     vcpus       = '1'
     memory      = '256'
     #
     #  Disk device(s).
     #
     root        = '/dev/xvda2 ro'
     disk        = [
                       'file:/usr/local/xen/domains/ima2a5-nofun/disk.img,xvda2,w',
                       'file:/usr/local/xen/domains/ima2a5-nofun/swap.img,xvda1,w',
     #Ajout des disques de la VM 
                       'phy:/dev/virtual/ima2a5-nofun-home,xvdb1,w','
                       'phy:/dev/virtual/ima2a5-nofun-var,xvdb2,w','
                   ]
     #
     #  Physical volumes
     #
     #
     #  Hostname
     #
     name        = 'ima2a5-nofun'
     #
     #  Networking
     #
     dhcp        = 'dhcp'
     #Ajout du bridge
     vif         = [ 'mac=00:16:3E:C2:61:EB, bridge=IMA2a5 ' ]
     #
     #  Behaviour
     #
     on_poweroff = 'destroy'
     on_reboot   = 'restart'
     on_crash    = 'restart'


On lance la VM avec la commande suivante :

     xl create ima2a5-nofun.cfg

Lors de la création de la VM, un ficher .log a été généré dans le répertoire /var/log/xen-tools/ima2a5-nofun.log. On y trouve tout en bas le mot de passe du user 'root' pour la première connexion.

     Installation Summary :
     Hostname        :  ima2a5-nofun
     Distribution    :  ascii
     MAC Address     :  00:16:3E:C2:61:EB
     IP Address(es)  :  dynamic
     SSH Fingerprint :  SHA256:8HBjFBlcJ9qkmPAEGFlB59wCtE0Yj01dncHllqlQSa4 (DSA)
     SSH Fingerprint :  SHA256:1+oCeyrlSge+rsbzjJJDwVoyM/FE/oocazFZvSsT4rI (ECDSA)
     SSH Fingerprint :  SHA256:fLWNFie+QrBnqelNRshZJONiN1gCeegQvkVYgoyZXWo (ED25519)
     SSH Fingerprint :  SHA256:RjWVyV1LigFD//diAHUAdmd3tgMXPaClVaTkIgwJGNY (RSA)
     Root Password   :  u55fREsaBSw6FefPjLekV8W

Le mot de passe peut ensuite être modifier avec la commande passwd par le mot de passe des sessions Zabeth.

Les tests d'intrusion

L'objectif de cette partie est de comprendre comment cracker une clef de chiffrement WiFi. Pour cela, nous avons une RaspBerry qui envoit des paquets en WiFi avec, d'un coté un encodage avec une clef WEP et de l'autre une clef WPA-SPK. Pour notre groupe, voici le nom de nos points d'accès (désigné par leurs adresses MAC), nous verrons plus tard comment les obtenir :

      04:DA:D2:9C:50:54 => Adresse mac de cracotte05 (pour la clef WEP)
      04:DA:D2:9C:50:5C => Adresse mac de kracotte05 (pour la clef WAP-SPK)

Nous devons donc déchiffrer ces deux clefs.

Configuration du petit PC

Pour cette partie, nous utilisons le petit pc bleu. Premièrement, il faut activer la carte réseau afin de receptionner les trames venant de notre raspberry avec une clef Wi-Pi. Dans un premier temps, il faut télécharger l'outil "aircrack-ng". Pour cela, il faut d'abord configurer le PC pour avoir Internet.

Configuration de la carte réseau dans le fichier /etc/network/interfaces :

   #The loopback network interfaces
   auto lo
   iface lo inet loopback
   #Port Ethernet
   auto eth0
   iface eth0 inet static
        address 172.26.145.202
        netmask 255.255.255.0
        gateway 172.26.145.254

On actualise la carte réseau :

      ifdown eth0
      ifup eth0

Paramétrage du proxy pour pouvoir installer aircrack :

      export http_proxy=http://proxy.polytech-lille.fr:3128

Et voilà, le PC a maintenant accès à Internet et on peut installer aircrack-ng :

      apt-get install aircrack-ng

On peut passer au piratage !!

Décodage clef WEP

Pour capter les trames venant de la Raspberry, on utilise une clef Wi-Pi. On l'a détecte avec la commande suivante :

      airmon-ng

On peut voir le doggle apparaite avec un nom compliqué, on le demmare avec la commande

      airmon-ng start wlx40a5ef0590b2

Ensuite, si on refait airmon-ng, on peut voir que le nom est plus simple, pour nous, c'est wlan1mon et c'est ce nom que l'on va ensuite utiliser.

Afin de voir les différents équipements détecté par notre clef Wifi, on tape la commande suivante :

      airodump-ng --encrypt wep wlan1mon

On obtient une liste comme suit :

Liste

On voit quue le BSSID est 04:DA:D2:9C:50:54. On stock les trames captées dans un fichier avec la commande :

      airodump-ng -w out -c 2 --bssid 04:DA:9C:50:54 wlan1mon

On voit alors une fenêtre qui montre que les trames sortantes de cracotte05 sont analysées.

Liste

Cette commande va créer plusieurs fichiers dont un .cap, qui est le fichier qui nous interesse. Le notre s'appelle out-01.out (car nous n'avons pas donnée de nom spécial au fichier). On commence donc a lire les trames et en parrallèle, dans un autre terminal, on lance Aircrack avec la commande suivante :

      aircrack-ng out-01.cap

Et là, une nouvelle fenêtre s'ouvre avec l'utilitaire Aircrack et commence à analyser les trames. Et au bout d'un certain temps, la clef est trouvé !!!


Liste


Remarque : Lorsque l'outil capte 25000 trames, il a 50% de chance de trouver la clef. Lorsqu'il en a 50000, les chances montent à 90% !!

Décodage clef WAP-PSK

Pour le mot de passe WPA-PSK, on utilise un algorithme de force brute (réalisé par aircrack) L'idée de ce crack est de créer un dictionnaire de possiblilité pour le not de passe et de la comparer avec un fichier (.cap) créer à partir des trames receptionnées.

Création du .cap avec la commande

      airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5C -w out wlan1mon


Création d'un dictionnaire de possiblilité pour la clef à trouver

      crunch 8 8 0123456789 >> dico1.txt

On lance ensuite l'utilitaire Aircrack avec la commande suivante


      aircrack-ng handshake-01.cap -w dico1.txt

Ensuite, on voit une interface Aircraft qui passe en revu notre dictionnaire ( donc de 00000000 à 99999999), et au bout d'un moment...

Clef troouvée !!!


Cryptage de données

Un petit exercice annexe consiste à réussir à encoder une clef USB afin qu'elle soit vérouillé par un mot de passe. Pour cela, on a besoin de l'utilitaire cryptsetup

      apt install cryptsetup

Dans un premier temps, après avoir inséré la clef dans le PC, on recherche les périphériques présent sur le pc avec la commande :

      lsblk

On regarde ensuite le nom de disque qui lui a été donné par le poste, dans notre cas, c'est sdb

On utilise la commande suivant pour gérer les partitions du disk :

      fdisk /dev/sdb

Remarque : On différenciera bien le nom du disque (sdb) et le nom de la partition (sdb1).

Une fois dans la clef grâce à la commande fdisk, on peut créer une partition.

Pour nettoyer la clef, on supprime les partitions présentes en tapant d (si plusieurs partions on nous demande laquelle supprimer). Ensuite, on réalise cette suite de commande pour créer la partition.

- Pour créer la partition, 'n'
- Partition primaire 'p'
- 1 partition
- Creation au début du secteur 
Création de la partition

On enregistre le smodifications avec 'w' et puis ça quitte l'interface. En refaisant, lsblk on peut voir qu'une partition sdb1 a été crée mais pour l'instant elle n'est pas encrypté.

On passe au cryptage de la partition:

On crypte la partion sdb1 (la seule présente) avec la commande suivante:

      cryptsetup luksFormat -c aes -h sha256 /dev/sdb1

On nous demande ensuite le mot de passe souhaité.

Remarque : Pour la decrypter, il faut également que l'outil crypsetup soit sur la machine. On ouvre la partition et on lui donne enfin le nom que l'on souhaite.

      cryptsetup open --type luks /dev/sdb1 clef_ima2a_G5

On formate en ext4 de la partition ( à faire une seule fois !!!)

      mkfs.ext4 /dev/mapper/clef_ima2a_G5

Puis on monte la partition dans un répertoire crée préalablement :

      mount -t ext4 /dev/mapper/clef_ima2a_G5 /mnt/clef

Ainsi, lorsque la clef est inséré, le répertoire "clef" devient la partition de la clef on va dans clef et on crée un fichier, on sort ensuite de clef.

On démonte la clef du répertoire :

      umount /mnt/clef

Pour finir, on ferme le volume chiffré avec la commande :

      cryptsetup close --type luks clef_ima2a_G5