TP sysres IMA5 2021/2022 G8 : Différence entre versions
(→Sécurisation de serveur DNS par DNSSEC) |
(→Intrusion sur un serveur d'application web) |
||
Ligne 218 : | Ligne 218 : | ||
[[Fichier:intrusion_honey.zip]] | [[Fichier:intrusion_honey.zip]] | ||
(mot de passe habituel) | (mot de passe habituel) | ||
+ | |||
+ | = ASR = |
Version actuelle datée du 13 janvier 2022 à 19:26
Sommaire
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)