TP sysres IMA2a5 2019/2020 G2
Ekaterina ISHCHUK & Loick MOLLET
Sommaire
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.
Retour de Gandi et de notre cetificat
-----BEGIN CERTIFICATE----- MIIGETCCBPmgAwIBAgIQQD7X5S+/F3WTOPPJuYTgrzANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQG EwJGUjEOMAwGA1UECBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4wDAYDVQQKEwVHYW5kaTEgMB4G A1UEAxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIwHhcNMTkxMTEzMDAwMDAwWhcNMjAxMTEzMjM1 OTU5WjBeMSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQxGzAZBgNVBAsTEkdhbmRp IFN0YW5kYXJkIFNTTDEcMBoGA1UEAxMTaW1hMmE1LW1vbC1pc2guc2l0ZTCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAPIAQ2HpNh/f72EFAIfDjKuitCJ+gTneBxU5pzdgef4eUllNtVNb 7xQp+ildePOCj1T+F8SFAQYO4Im6F3XFBFrqIWpG42OAR3QsDop2SxQgwJ/ei2CLi+SH58JNvgft dJAB0zoFDIyApFj54XK/9n9Xtg5IpGHJNoDIRB7T7Z81pTihDHyNFiFgap8IzPMZ1pYWxt1pXLi4 xIvCuMKPEJ/Ahj1rTtKqkyLcYBgDcyqdPpWb9q3Z1WvcLqfi6AyOxhmfCQDJwAxk6leaQ+5qSwn9 fpaQJ1crp2r7W/DuvcDkEFopXhtCdBOfRqi/7ExkfpYKapnMwMq2IcyACmJHHVcCAwEAAaOCAsgw ggLEMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyffK1df0H9aTDqMB0GA1UdDgQWBBSRNlkNETdysrxo EOpmQ9eON0SLOTAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEF BQcDAQYIKwYBBQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDagNKAyhjBodHRw Oi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcmwwcwYIKwYBBQUHAQEE ZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNT TENBMi5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wNwYDVR0RBDAw LoITaW1hMmE1LW1vbC1pc2guc2l0ZYIXd3d3LmltYTJhNS1tb2wtaXNoLnNpdGUwggEFBgorBgEE AdZ5AgQCBIH2BIHzAPEAdwAHt1wb5X1o//Gwxh0jFce65ld8V5S3au68YToaadOiHAAAAW5j5/l/ AAAEAwBIMEYCIQCwlI5VaJUfUAg3u9CT/Mlek42R/JDke2Yaf1UCqFyMBgIhANvdjPn/m9X6HKY/ spP0BlMWGM+tyxBtnbyEIrrJqjyzAHYAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVgA AAFuY+f5cAAABAMARzBFAiBjkW/8HrXqbBGU0pzSUF9dVRKCQ9yBIVWvJBU73EagYwIhAM0XBb7k XkeMQneNP2GOR8be3DrmUY2pf9EgkaQhelQgMA0GCSqGSIb3DQEBCwUAA4IBAQA97gLu2Iw9QQ3+ q2TdKh4RqZ5GLtzxrOQV3xxRlnGqb81vxZFojVCrK02VQgNLX/2g3DhB/yN+YD3gliL4yz7apL+k NiX+SLHxFOqEVqFcK8k74fEoLxL4adNoKoUEzniupZR0wa7ZHROnuYc+ZQ5LEYgQNCzMpPFmVx4L OKcJnhmHjQJpIppz2RK1khGsVSXHL445o8vKXWUhsuGQXZKvd24G234jg0nEkARvHe6apD/nsYqT oBEbMOblH/nKvOhBhNkk1HqK15wh29gO5a2bawzwz8WLWi61WFs0HgKu6fvAugbIq88mkFg/JYoy LPxkPJg3syfr2tIHAjfYG2Xk -----END CERTIFICATE-----
Paramétrage d'Apache2 avec la gestion du https
Le paramétrage d'Apache peut se faire à l'aide du wiki d'ubuntu ([configuration d'Apache https://doc.ubuntu-fr.org/apache2])
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
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
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)
En parallèle de ça, on peut la phase de décryptage avec l'utilitaire aircrack-ng
aircrack-ng cracotte*.cap
Une fois le nombre d'IVs suffisant atteint, on obtient la clé WEP. Pour cracotte02, on a BA:BE:EE:EE:EE:EE:EE:EE:EE:EE:EE:44
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
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 :
La clé sur la kracotte02 est 12228888