TP sysres IMA2a5 2020/2021 G5 : Différence entre versions
(→Configuration de la machine virtuelle Xen) |
(→Description) |
||
(13 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 29 : | Ligne 29 : | ||
|- | |- | ||
|} | |} | ||
+ | === Architecture réseau === | ||
+ | L'architecture du réseau est la suivante : | ||
+ | [[Fichier:Architecture2-MA2a5-2020_2021.JPG|1000px|thumb|left|Architecture du réseau]] | ||
+ | <br style="clear: both;" \> | ||
+ | |||
+ | Le problème est que si on regarde le réseau n'est pas vraiment redondant : | ||
+ | |||
+ | - Si on a une coupure de courant tout le réseau s'effondrent, dans l'idéale, il faudrait des onduleurs et un réseau électrique séparé pour la Baie1 et la Baie2/3 | ||
+ | |||
+ | - Le réseau ADSL n'est pas fonctionnelle donc si on perd le réseau Polytech on n'as plus accès aux machines. | ||
+ | |||
+ | - Toutes les VM et les sites WEB sont sur la baie3 qui héberge le serveur de virtualisation Capbreton, si on perd la baie3 tout le système tombe. | ||
+ | |||
+ | - Pour finir dans l'idéale les deux bais devrais être dans des bâtiments séparer en cas d'incendie, on risque de perdre les deux bais. | ||
== Installation des systèmes d’exploitation == | == Installation des systèmes d’exploitation == | ||
Ligne 63 : | Ligne 77 : | ||
xl list | xl list | ||
Pour fonctionner l'état de la VM doit être r ou -b | Pour fonctionner l'état de la VM doit être r ou -b | ||
+ | |||
[[Fichier:LancementVm.PNG|1000px|thumb|left|Liste des VM en fonctionnement]] | [[Fichier:LancementVm.PNG|1000px|thumb|left|Liste des VM en fonctionnement]] | ||
− | |||
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
Ligne 206 : | Ligne 220 : | ||
bridge_ports vlan502 | bridge_ports vlan502 | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
==Services Internet== | ==Services Internet== | ||
Ligne 215 : | Ligne 225 : | ||
===Serveur SSH=== | ===Serveur SSH=== | ||
− | On peux maintenant se connecté a la VM mirage avec la commande : <code>ssh root@193.48.57.168 -p 2222</code> | + | Grace aux efforts de monsieur Xavier Redon pour permettre de joindre Capbreton a distance pendant le confinement avec la commande 'SSH'. |
+ | |||
+ | On peux donc maintenant se connecté a la VM mirage avec la commande : <code>ssh root@193.48.57.168 -p 2222</code> | ||
===Serveur DNS=== | ===Serveur DNS=== | ||
Ligne 248 : | Ligne 260 : | ||
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
− | On va maintenant ajouter un "glue record" qui est un enregistrement collé. Il permet d'associer un nom d'hôte avec une adresse IP au registre. | + | On va maintenant ajouter un "glue record" qui est un enregistrement collé. |
− | Glue records fournis par | + | |
+ | Il permet d'associer un nom d'hôte avec une adresse IP au registre. | ||
+ | |||
+ | Glue records fournis par Gandi pour associer un hostname (nom de serveur ou DNS) à l'adresse IP de notre machine. Les modifications seront effectives entre 12 et 24 heures. | ||
[[Fichier:Mirage-Ajoue-GlueRecord.PNG|1000px|thumb|left|Image de la configuration de Gandi avec Glue Record]] | [[Fichier:Mirage-Ajoue-GlueRecord.PNG|1000px|thumb|left|Image de la configuration de Gandi avec Glue Record]] | ||
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
− | Une fois le "glue record" renseigner se qui va lié | + | Une fois le "glue record" renseigner se qui va lié notre DNS a une ip, il faut renseigner les serveur de non. cela prend 27/72h. |
− | Il faut bien faire attention que la VM soit correctement configurer avec 'bind9' car c'est lui qui donne IPv4 et IPv6 correspondant à vos noms de machines. Si ce n'est pas le cas | + | |
+ | Il faut bien faire attention que la VM soit correctement configurer avec 'bind9' car c'est lui qui donne IPv4 et IPv6 correspondant à vos noms de machines. | ||
+ | |||
+ | Si ce n'est pas le cas Gandi ne pourras pas liée les DNS a l'ip de la machine. | ||
[[Fichier:GandiDNS_2020-11-13_09-00-16.png|1000px|thumb|left|DNS sur GANDI]] | [[Fichier:GandiDNS_2020-11-13_09-00-16.png|1000px|thumb|left|DNS sur GANDI]] | ||
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
− | Une fois les | + | Une fois les serveurs DNS configurer on peux fermer GANDI. |
===Sécurisation de site web par certificat=== | ===Sécurisation de site web par certificat=== | ||
Ligne 267 : | Ligne 285 : | ||
Premièrement, on ajoute <code>l'obtion dnssec-enable yes;</code> dans le fichier <code>named.conf.options</code>. | Premièrement, on ajoute <code>l'obtion dnssec-enable yes;</code> dans le fichier <code>named.conf.options</code>. | ||
====Génération des clef asymétrique==== | ====Génération des clef asymétrique==== | ||
− | Il est important de bien sauvegarder la clef privée, sinon | + | Il est important de bien sauvegarder la clef privée, sinon notre système de clef ne fonctionnera pas. |
− | pour | + | pour commencer, on crée un répertoire pour stocker les clef. |
cd /etc/bind | cd /etc/bind | ||
mkdir glopglop.site.dnssec | mkdir glopglop.site.dnssec | ||
Ligne 283 : | Ligne 301 : | ||
Kglopglop.site.+005+55608 | Kglopglop.site.+005+55608 | ||
− | On a bien maintenant la paire de clef privée/publique. Le problème est qu'il est difficile de les distinguer avec leurs nom compliquer, il faut donc les | + | On a bien maintenant la paire de clef privée/publique. |
− | On renomme donc les deux paires de clefs obtenues en utilisant le nom de la zone comme préfixe puis en suffixant d’abord par la destination de la clef (-ksk pour la KSK ou -zsk pour la ZSK) | + | |
+ | Le problème est qu'il est difficile de les distinguer avec leurs nom compliquer, il faut donc les renommer pour plus de transparence. | ||
+ | |||
+ | On renomme donc les deux paires de clefs obtenues en utilisant le nom de la zone comme préfixe puis en suffixant d’abord par la destination de la clef (-ksk pour la KSK ou -zsk pour la ZSK). | ||
+ | |||
+ | Puis par le type de clef (.key pour la clef publique ou .private pour la clef privée); | ||
mv Kglopglop.site.+005+15337.key glopglop.site-ksk.key | mv Kglopglop.site.+005+15337.key glopglop.site-ksk.key | ||
Ligne 310 : | Ligne 333 : | ||
glopglop.site. IN DNSKEY 257 3 5 AwEAAc3TCJkWFGnZSj/Q364AF7n69UaXum/no+LuEbXbGjTXLETdYk+Q gVAmIpvbJXcG0rucJTbVFaHr8IhWqf7VvkCbEGAORAkzBVXThPDR1pZR lJDEY88Lb2T6k9uHw43l2oP8vPev2eIRbU3VxUuJs++elgj32DTBA+yK p++/gz29H6PQVpkHnH81RjGdV+K1RZEwxkuev2MmB329fhMRwTsbW0BV aeXc5faRk9ZEKb7tr0p7txVv4wZEL6it01ZiNyGktwLRj8ln+cQz1GtC PY/UWnCtamycE/2k4f98sdDa6TMiguuBNOPug+ODzqGiI7LNUyF4jBbf 6NAgChwITps= | glopglop.site. IN DNSKEY 257 3 5 AwEAAc3TCJkWFGnZSj/Q364AF7n69UaXum/no+LuEbXbGjTXLETdYk+Q gVAmIpvbJXcG0rucJTbVFaHr8IhWqf7VvkCbEGAORAkzBVXThPDR1pZR lJDEY88Lb2T6k9uHw43l2oP8vPev2eIRbU3VxUuJs++elgj32DTBA+yK p++/gz29H6PQVpkHnH81RjGdV+K1RZEwxkuev2MmB329fhMRwTsbW0BV aeXc5faRk9ZEKb7tr0p7txVv4wZEL6it01ZiNyGktwLRj8ln+cQz1GtC PY/UWnCtamycE/2k4f98sdDa6TMiguuBNOPug+ODzqGiI7LNUyF4jBbf 6NAgChwITps= | ||
− | On ajoute la clef a | + | On ajoute la clef a Gandi comme montrer ci-dessous en n'oubliant pas de sélectionner '5(RSA/SHA-1'. |
[[Fichier:Zones_d'enregistrement_2020-11-13_10-27-11.png|1000px|thumb|left|gandi enregistrement de la clef KSK]] | [[Fichier:Zones_d'enregistrement_2020-11-13_10-27-11.png|1000px|thumb|left|gandi enregistrement de la clef KSK]] | ||
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
− | Pour vérifier que tout fonctionne correctement, on va sur le site 'dnsvizi.net' il nous permet d'analyser le | + | Pour vérifier que tout fonctionne correctement, on va sur le site 'dnsvizi.net' il nous permet d'analyser le DNS et représente la chaine d'authentification DNSSEC. |
[[Fichier:DNSSEC_2020-11-13_11-59-06.png|1000px|thumb|left|Test du DNSSEC]] | [[Fichier:DNSSEC_2020-11-13_11-59-06.png|1000px|thumb|left|Test du DNSSEC]] | ||
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
Ligne 320 : | Ligne 343 : | ||
On peut voir que maintenant on a bien le statu 'SECURE' donc tout fonctionne bien. | On peut voir que maintenant on a bien le statu 'SECURE' donc tout fonctionne bien. | ||
− | ===Installation d'une | + | ===Installation d'une messagerie=== |
====Configuration de Postfix==== | ====Configuration de Postfix==== | ||
− | Pour recevoir le mail de | + | Pour recevoir le mail de vérification de GANDI il faut sur la VM un gestionnaire de mail il faut installer mutt et postfix. On utilise les commandes ci-dessous : |
apt-get install postfix | apt-get install postfix | ||
ant-get install mutt | ant-get install mutt | ||
− | A l'installation de 'postfix' un | + | A l'installation de 'postfix' un fenêtre de configuration s'ouvre. |
Il faut renseigner le non du site comme 'System mail name : 'glopglop.site' | Il faut renseigner le non du site comme 'System mail name : 'glopglop.site' | ||
Ligne 339 : | Ligne 362 : | ||
Si le service n'est pas configurer correctement, on peut le reconfigurer avec la commande <code>dpkg-reconfigure postfix</code> | Si le service n'est pas configurer correctement, on peut le reconfigurer avec la commande <code>dpkg-reconfigure postfix</code> | ||
====Réception d'un message==== | ====Réception d'un message==== | ||
− | On peux testé la | + | On peux testé la réception de message en envoyant un message a 'roor@glopglop.site' |
− | Si tout fonctionne bien, on peux visualisé les | + | Si tout fonctionne bien, on peux visualisé les message reçu en tapant la commande <code>mutt</code> |
[[Fichier:Reception_messages_mirage.png|1000px|thumb|left|texte descriptif]] | [[Fichier:Reception_messages_mirage.png|1000px|thumb|left|texte descriptif]] | ||
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
− | On constate que on | + | On constate que on reçoit bien les message en provenance du mail de Polytech. |
− | Pour que | + | Pour que Gandi puissent nous envoyer le mail contenant la clef de cryptage, on a besoin de pouvoir recevoir les messages qui sont destiné a 'admin@glopglop.site' |
Pour cela on va modifier le fichier 'vim /etc/aliases' en ajoutant la commande <code>admin:root</code> | Pour cela on va modifier le fichier 'vim /etc/aliases' en ajoutant la commande <code>admin:root</code> | ||
− | On crée ensuite un <code>newaliases</code> puis on restarte bind9 avec la | + | On crée ensuite un <code>newaliases</code> puis on restarte bind9 avec la commande <code>service bind9 restart</code> |
− | Attention pour les test il est conseiller d'utilisé deux boite mail | + | Attention pour les test il est conseiller d'utilisé deux boite mail différant care celle ci prenne du temps pour se mettre a jours. |
====Envoie du SSL Certification Gandi==== | ====Envoie du SSL Certification Gandi==== | ||
Quand on est sure que le mail fonctionne bien avec l'envoie d'un message a destination de 'admin@glopglop.site' on peux demandé a gandi de bous envoyer la clef de cryptage. | Quand on est sure que le mail fonctionne bien avec l'envoie d'un message a destination de 'admin@glopglop.site' on peux demandé a gandi de bous envoyer la clef de cryptage. | ||
− | On demande d' | + | On demande d'envoyé le ssl certification a notre VM, cela peux prendre un certain temps. |
[[Fichier:SSL_Certification_Gandi_Mirage.png|1000px|thumb|left|texte descriptif]] | [[Fichier:SSL_Certification_Gandi_Mirage.png|1000px|thumb|left|texte descriptif]] | ||
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
− | Dans le mail de | + | Dans le mail de Gandi on reçoit un code de confirmation ainsi qu'un mot de passe. Une fois confirmer, on peut télécharger les fichiers 'glopglop.site.crt' et 'GandistandardSSLCA2.perm' |
Une fois les fichiers télécharger et importer dans la Vm dans le dossier '/root', il faut dire que quand on se connecte sur le site 'glopglop.site' en 'https' il dois utilisé la cled publique 'myserver.key'. | Une fois les fichiers télécharger et importer dans la Vm dans le dossier '/root', il faut dire que quand on se connecte sur le site 'glopglop.site' en 'https' il dois utilisé la cled publique 'myserver.key'. | ||
− | [[Fichier:Gandi-téléchargement_clefetcertifica_mirage.png|1000px|thumb|left|Fichiers | + | [[Fichier:Gandi-téléchargement_clefetcertifica_mirage.png|1000px|thumb|left|Fichiers Gandi a téléchargé]] |
<br style="clear: both;" \> | <br style="clear: both;" \> | ||
Ligne 376 : | Ligne 399 : | ||
On reboot le service apash2 pour qu'il prenne les modification en compte. | On reboot le service apash2 pour qu'il prenne les modification en compte. | ||
− | Le service ne | + | Le service ne fonctionne pas encore car on a rien qui écoute le port 442. |
/etc/apache2/sites-available/default-ssl.conf | /etc/apache2/sites-available/default-ssl.conf | ||
dnssec-signzone -o glopglop.site -k glopglop.site-ksk ../db.glopglop.site glopglop.site-zsk | dnssec-signzone -o glopglop.site -k glopglop.site-ksk ../db.glopglop.site glopglop.site-zsk | ||
Ligne 412 : | Ligne 435 : | ||
==Tests d’intrusion== | ==Tests d’intrusion== | ||
− | + | Un ordinateur portable et une clef Wifi est fourni par Monsieur Redon. Pour que le clef fonctionne il est nécessite pas nécessairement de la configuration. Il faut aussi installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA | |
− | Un ordinateur portable et une clef Wifi est fourni par Monsieur Redon. Pour que le clef fonctionne il est nécessite pas nécessairement de la configuration. Il faut aussi installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA | ||
=== Installation de la clef Wifi === | === Installation de la clef Wifi === | ||
Ligne 517 : | Ligne 539 : | ||
On va maintenant craquer le réseau Kracotte05 qui est un réseau WPA on sait d'avance que la clef WPA est un nombre sur 8 chiffres. | On va maintenant craquer le réseau Kracotte05 qui est un réseau WPA on sait d'avance que la clef WPA est un nombre sur 8 chiffres. | ||
+ | |||
On va donc faire un "cassage par force brute" avec un fichier texte contenant tout les combination de 00000000 a 99999999. | On va donc faire un "cassage par force brute" avec un fichier texte contenant tout les combination de 00000000 a 99999999. | ||
Ligne 542 : | Ligne 565 : | ||
On peut voir que cela prend du temps pour récupérer les data nécessaire pour effectuer le crackage 1 data toutes les 15 minutes. | On peut voir que cela prend du temps pour récupérer les data nécessaire pour effectuer le crackage 1 data toutes les 15 minutes. | ||
+ | |||
Une fois que on a récupérer les data, on peux effectuer le "cassage par force brute" | Une fois que on a récupérer les data, on peux effectuer le "cassage par force brute" | ||
Ligne 564 : | Ligne 588 : | ||
On a bien trouver la clé du wifi ! | On a bien trouver la clé du wifi ! | ||
− | On voit que cela peut prendre beaucoup de temps pour trouver la clé, d'out l'interner de couper le dictionnaire en plusieurs et lancer le traitement sur plusieurs pc des camarades de classe. Cela permet de diviser le temps de traitement par le nombre de machine utilisé. | + | |
+ | On voit que cela peut prendre beaucoup de temps pour trouver la clé, d'out l'interner de couper le dictionnaire en plusieurs et lancer le traitement sur plusieurs pc des camarades de classe. | ||
+ | |||
+ | Cela permet de diviser le temps de traitement par le nombre de machine utilisé. | ||
===Exploitation de failles du système=== | ===Exploitation de failles du système=== | ||
Ligne 580 : | Ligne 607 : | ||
On fait la commande <code>arpspoof -i bridge -t zabeth07 172.26.145.254</code> | On fait la commande <code>arpspoof -i bridge -t zabeth07 172.26.145.254</code> | ||
+ | |||
On lance Wireshark en root en utilisant la commande <code>su</code> si celui ci n'est pas installer on fait préalablement <code>apt-get install wireshark</code> | On lance Wireshark en root en utilisant la commande <code>su</code> si celui ci n'est pas installer on fait préalablement <code>apt-get install wireshark</code> | ||
+ | |||
Une fois Wireshark lancé, on filtre tout les paquets en provenance de nottre cible la zabeth07. | Une fois Wireshark lancé, on filtre tout les paquets en provenance de nottre cible la zabeth07. | ||
+ | |||
Il faut fauire attention de bien désativer les proxi dans firefow sinon cela ne fonctionne pas. | Il faut fauire attention de bien désativer les proxi dans firefow sinon cela ne fonctionne pas. | ||
Version actuelle datée du 27 novembre 2020 à 19:35
Sommaire
- 1 Introduction
- 2 Installation des systèmes d’exploitation
- 3 Services Internet
- 4 Tests d’intrusion
- 4.1 Installation de la clef Wifi
- 4.2 Installation du paquetage AirCrack-ng
- 4.3 Utilisation de AirCrack pour clef WEP
- 4.4 Utilisation de AirCrack pour clef WPA2-PSA
- 4.5 Exploitation de failles du système
- 4.6 Attaque de type "homme au milieu" par usurpation ARP
- 4.7 Intrusion sur un serveur d’application Web
- 5 Réalisations
Introduction
Cet atelier consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système vous aurez à installer une machine virtuelle Xen et à y configurer des services. Enfin la mise en place d’un réseau WiFi sécurisé et d’un site web sécurisé vous permettent de mettre en pratiques vos connaissances en la matière.
Tableau Récapitulatif
Description | Détails |
---|---|
ID VLAN | Vlan7 |
Réseau IP V4 | 193.48.57.168/26 |
Réseau IP V6 | 2001:660:4401:60a2:216:3eff:fe95:d093/64 |
Nom de de la VM | mirage |
Numéro de poste | Zabeth06 |
Adresse du site internet version HTTP | http://www.glopglop.site/ |
Adresse du site internet version HTTPS | https://www.glopglop.site/ |
Architecture réseau
L'architecture du réseau est la suivante :
Le problème est que si on regarde le réseau n'est pas vraiment redondant :
- Si on a une coupure de courant tout le réseau s'effondrent, dans l'idéale, il faudrait des onduleurs et un réseau électrique séparé pour la Baie1 et la Baie2/3
- Le réseau ADSL n'est pas fonctionnelle donc si on perd le réseau Polytech on n'as plus accès aux machines.
- Toutes les VM et les sites WEB sont sur la baie3 qui héberge le serveur de virtualisation Capbreton, si on perd la baie3 tout le système tombe.
- Pour finir dans l'idéale les deux bais devrais être dans des bâtiments séparer en cas d'incendie, on risque de perdre les deux bais.
Installation des systèmes d’exploitation
Pour installer une Machine Virtuelle, il faut d'abord se connecter sur le disque de virtualisation. Pour cela, il faut utiliser la commande :
ssh capbreton.plil.info
Installation dans la machine virtuelle Xen
Une fois connecter, il faut lancer la création de la Machine virtuelle avec la commande :
xen-create-image --hostname=mirage --ip 193.48.57.168 --netmask=255.255.255.0 --gateway=100.64.0.5 --dist=ascii --dir=/usr/local/xen --force
L'installation prend un certain temps pour regarder si l'installation se déroule bien, on peut ouvrir un second terminale connecté en SSH a "capbreton" puis on utilise la commande :
tail -f /var/log/xen-tools/mirage.0.log
A la fin de l'installation, on obtient le mot de passe root et des informations importantes :
Installation Summary --------------------- Hostname : mirage Distribution : ascii MAC Address : xxxxxxxxxxx IP Address(es) : dynamic SSH Fingerprint : SHA256:xxxxxxx (DSA) SSH Fingerprint : SHA256:xxxxxxx (ECDSA) SSH Fingerprint : SHA256:xxxxxxx (ED25519) SSH Fingerprint : SHA256:xxxxxxx (RSA) Root Password : DgtUlOmnBFERdfarGBsopGR
Une fois la VM créer, nous pouvons la lancer avec la commande :
xl create /etc/xen/mirage.cfg
On peut vérifier que le VM est bien démarrer avec la commande :
xl list
Pour fonctionner l'état de la VM doit être r ou -b
On accède pour la premier fois a nottre Vm avec la commande :
xl console mirage
il demande alors le login (root) et le mdp (longue chaine précédemment générée). Après nous être logué, on change le mot de passe qui devient : glopglopglop.
Configuration de la machine virtuelle Xen
Il faut maintenant installer les packages que nous avons besoins :
apt-get update apt-get install VIM
Il faut configurer l'adresse IP et le mask de la VM. Pour cela on utilise la commande :
vim /etc/network/interfaces
Dans interfaces on ajoute
auto eth0 iface eth0 inet static address 193.48.57.168 gateway 193.58.57.163 netmask 255.255.255.248
Pour que la machine soit joignable par SSH via l'extérieure il est nécessaire de configurer la passerelle et le ssh_config. Pour cela on utilise la commande :
vi /etc/ssh/ssh_config
Le fichier ssh_config doit être configurer comme ci dessous :
Host * SendEnv LANH LC_* HashKnownHOST yes GSSAPIAuthentification yes
Sur Capbreton, une passerelle doit être mis en place pour pouvoir connecté les VM aux monde extérieure. Pour cela on configure ces interface avec la commande :
vim/etc/network/interfaces
Puis on configure la passerelle comme ci dessous :
# The loopback network interface auto lo iface lo inet loopback # Physical Network Interfaces # auto eth iface eth inet static address 192.168.0.29 netmask 255.255.255.0 gateway 192.168.0.1 auto eth0 iface eth0 inet manual post-up ip link set $IFACE up post-down ip link set $IFACE down auto eth1 iface eth1 inet manual post-up ip link set $IFACE up post-down ip link set $IFACE down auto eth2 iface eth2 inet manual post-up ip link set $IFACE up post-down ip link set $IFACE down auto eth4 iface eth4 inet manual post-up ip link set $IFACE up post-down ip link set $IFACE down auto eth5 iface eth5 inet manual post-up ip link set $IFACE up post-down ip link set $IFACE down auto eth6 iface eth6 inet manual post-up ip link set $IFACE up post-down ip link set $IFACE down auto eth7 iface eth7 inet manual post-up ip link set $IFACE up post-down ip link set $IFACE down # Main trunk bridge # auto Trunk iface Trunk inet manual bridge_ports eth4 eth5 post-up ip link set $IFACE up post-down ip link set $IFACE down # Virtual Network Interfaces # auto vlan48 iface vlan48 inet static vlan-raw-device Trunk address 172.26.191.21 netmask 255.255.252.0 gateway 172.26.191.254 iface vlan48 inet6 auto auto vlan500 iface vlan500 inet manual vlan-raw-device Trunk post-up ip link set $IFACE up post-down ip link set $IFACE down auto vlan502 iface vlan502 inet manual vlan-raw-device Trunk post-up ip link set $IFACE up post-down ip link set $IFACE down # Bridge for IMA5sc group # auto IMA5sc iface IMA5sc inet manual bridge_ports eth0 eth6 # Bridge for IMA2a5 # auto IMA2a5 iface IMA2a5 inet manual bridge_ports eth1 eth7 # Bridge for L3MRIT group # auto L3MRIT iface L3MRIT inet manual bridge_ports eth2 # Bridge for GIS group # auto bridgeGIS iface bridgeGIS inet manual bridge_ports vlan502
Services Internet
Serveur SSH
Grace aux efforts de monsieur Xavier Redon pour permettre de joindre Capbreton a distance pendant le confinement avec la commande 'SSH'.
On peux donc maintenant se connecté a la VM mirage avec la commande : ssh root@193.48.57.168 -p 2222
Serveur DNS
Un serveur DNS (Domain Name System) permet d'effectuer correspondance entre un nom de domaine et une adresse IP. Grâce à DNS, il n'est pas nécessaire de se souvenir des adresses IP pour naviguer sur Ethernet. Pour installer notre propre serveur DNS nous avons utilisé Bind9.
Nous commençons tout d'abord par installer bind9 via la commande suivante : apt-get install bind9
Création et configuration named.conf.local
Le named.conf.local
permet de faire pointer un nom de domaine pleinement qualifié (FQDN fully qualified domain name) sur une adresse IP.
Il faut tout d'abbord modifié le fichier /etc/bind/named.conf.local
qui contient la configuration DNS et y déclaré les zones associées au domaine ainsi qu'un fichier de description de la zone.
Puis créé le fichier de configuration appelé glopglop.site
avec la commande vim /etc/bind/glopglop.site
On relance le service 'bind9' avec la commande :service bind9 restart
On vérifie que le DNS fonctionne bien avec le commande host dns1.glopglop.site localhost
Le DNS fonctionne donc bien.
Configuration gandi.net
Grâce au registrar gandi.net, nous avons réservé le nom de domaine glopglop.site
. L'extension .site
On va maintenant ajouter un "glue record" qui est un enregistrement collé.
Il permet d'associer un nom d'hôte avec une adresse IP au registre.
Glue records fournis par Gandi pour associer un hostname (nom de serveur ou DNS) à l'adresse IP de notre machine. Les modifications seront effectives entre 12 et 24 heures.
Une fois le "glue record" renseigner se qui va lié notre DNS a une ip, il faut renseigner les serveur de non. cela prend 27/72h.
Il faut bien faire attention que la VM soit correctement configurer avec 'bind9' car c'est lui qui donne IPv4 et IPv6 correspondant à vos noms de machines.
Si ce n'est pas le cas Gandi ne pourras pas liée les DNS a l'ip de la machine.
Une fois les serveurs DNS configurer on peux fermer GANDI.
Sécurisation de site web par certificat
Sécurisation de serveur DNS par DNSSEC
Premièrement, on ajoute l'obtion dnssec-enable yes;
dans le fichier named.conf.options
.
Génération des clef asymétrique
Il est important de bien sauvegarder la clef privée, sinon notre système de clef ne fonctionnera pas. pour commencer, on crée un répertoire pour stocker les clef.
cd /etc/bind mkdir glopglop.site.dnssec cd glopglop.site.dnssec/
Une fois dans le dossier glopglop.site.dnssec
, on crée les clefs avec la commandednssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE glopglop.site
On obtien :
Generating key pair...............+++++ ..........................................+++++ Kglopglop.site.+005+15337
On crée ensuite le clef asymétrique pour la signature des enregistrements, pour cela on utilise la commande dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE glopglop.site
On obtien :
Generating key pair................+++++ ..................................................+++++ Kglopglop.site.+005+55608
On a bien maintenant la paire de clef privée/publique.
Le problème est qu'il est difficile de les distinguer avec leurs nom compliquer, il faut donc les renommer pour plus de transparence.
On renomme donc les deux paires de clefs obtenues en utilisant le nom de la zone comme préfixe puis en suffixant d’abord par la destination de la clef (-ksk pour la KSK ou -zsk pour la ZSK).
Puis par le type de clef (.key pour la clef publique ou .private pour la clef privée);
mv Kglopglop.site.+005+15337.key glopglop.site-ksk.key mv Kglopglop.site.+005+15337.private glopglop.site-ksk.private mv Kglopglop.site.+005+55608.key glopglop.site-zsk.key mv Kglopglop.site.+005+55608.private glopglop.site-zsk.private
Dans db.glopglop.site
on ajoute les deux lignes ci-dessous :
$include /etc/bind/glopglop.site.dnssec/glopglop.site-ksk.key $include /etc/bind/glopglop.site.dnssec/glopglop.site-zsk.key
On signe la zone d'enregistremment avec la commande dnssec-signzone -o glopglop.site -k glopglop.site-ksk ../db.glopglop.site glopglop.site-zsk
Les clef sont maintenant fonctionelle il faut donc les ajouter a GANDI, pour cela on se connecte a gandi puis on ajoute une clef KSK.
pour obtenir la cled on utilise la commande cat glopglop.site-ksk.key
on obtien le résultat ci-dessous :
; This is a key-signing key, keyid 15337, for glopglop.site. ; Created: 20201113090442 (Fri Nov 13 09:04:42 2020) ; Publish: 20201113090442 (Fri Nov 13 09:04:42 2020) ; Activate: 20201113090442 (Fri Nov 13 09:04:42 2020) glopglop.site. IN DNSKEY 257 3 5 AwEAAc3TCJkWFGnZSj/Q364AF7n69UaXum/no+LuEbXbGjTXLETdYk+Q gVAmIpvbJXcG0rucJTbVFaHr8IhWqf7VvkCbEGAORAkzBVXThPDR1pZR lJDEY88Lb2T6k9uHw43l2oP8vPev2eIRbU3VxUuJs++elgj32DTBA+yK p++/gz29H6PQVpkHnH81RjGdV+K1RZEwxkuev2MmB329fhMRwTsbW0BV aeXc5faRk9ZEKb7tr0p7txVv4wZEL6it01ZiNyGktwLRj8ln+cQz1GtC PY/UWnCtamycE/2k4f98sdDa6TMiguuBNOPug+ODzqGiI7LNUyF4jBbf 6NAgChwITps=
On ajoute la clef a Gandi comme montrer ci-dessous en n'oubliant pas de sélectionner '5(RSA/SHA-1'.
Pour vérifier que tout fonctionne correctement, on va sur le site 'dnsvizi.net' il nous permet d'analyser le DNS et représente la chaine d'authentification DNSSEC.
On peut voir que maintenant on a bien le statu 'SECURE' donc tout fonctionne bien.
Installation d'une messagerie
Configuration de Postfix
Pour recevoir le mail de vérification de GANDI il faut sur la VM un gestionnaire de mail il faut installer mutt et postfix. On utilise les commandes ci-dessous :
apt-get install postfix ant-get install mutt
A l'installation de 'postfix' un fenêtre de configuration s'ouvre. Il faut renseigner le non du site comme 'System mail name : 'glopglop.site'
On vérifie la configuration de 'postix' en allant dans le 'main.cf'
vi /etc/postfix/main.cf
On a bien le non de domaine 'glopglop.site' on peut relancer 'postfix'
service postfix restart
Si le service n'est pas configurer correctement, on peut le reconfigurer avec la commande dpkg-reconfigure postfix
Réception d'un message
On peux testé la réception de message en envoyant un message a 'roor@glopglop.site'
Si tout fonctionne bien, on peux visualisé les message reçu en tapant la commande mutt
On constate que on reçoit bien les message en provenance du mail de Polytech. Pour que Gandi puissent nous envoyer le mail contenant la clef de cryptage, on a besoin de pouvoir recevoir les messages qui sont destiné a 'admin@glopglop.site'
Pour cela on va modifier le fichier 'vim /etc/aliases' en ajoutant la commande admin:root
On crée ensuite un newaliases
puis on restarte bind9 avec la commande service bind9 restart
Attention pour les test il est conseiller d'utilisé deux boite mail différant care celle ci prenne du temps pour se mettre a jours.
Envoie du SSL Certification Gandi
Quand on est sure que le mail fonctionne bien avec l'envoie d'un message a destination de 'admin@glopglop.site' on peux demandé a gandi de bous envoyer la clef de cryptage. On demande d'envoyé le ssl certification a notre VM, cela peux prendre un certain temps.
Dans le mail de Gandi on reçoit un code de confirmation ainsi qu'un mot de passe. Une fois confirmer, on peut télécharger les fichiers 'glopglop.site.crt' et 'GandistandardSSLCA2.perm'
Une fois les fichiers télécharger et importer dans la Vm dans le dossier '/root', il faut dire que quand on se connecte sur le site 'glopglop.site' en 'https' il dois utilisé la cled publique 'myserver.key'.
quand on utilise le ssh on passe par le port '442' dans le fichier /etc/apache2/sites-available/default-ssl.conf
On ajoute les lignes suivantes :
SSLEngine on SSLCertificateFile /root/glopglop.site.crt SSLCertificateKeyFile /root/myserver.key SSLCertificateChainFile /root/GandiStandardSSLCA2.pem
On reboot le service apash2 pour qu'il prenne les modification en compte. Le service ne fonctionne pas encore car on a rien qui écoute le port 442.
/etc/apache2/sites-available/default-ssl.conf dnssec-signzone -o glopglop.site -k glopglop.site-ksk ../db.glopglop.site glopglop.site-zsk service bind9 restart
Il ne faut pas oublier d'incrémenter le numéro de version avant de restart le service 'bind9'
On vérifie que tout fonctionne bien avec les commandes :
host www.glopglop.site www.glopglop.site is an alias for dns1.glopglop.site. dns1.glopglop.site has address 193.48.57.168 host www.glopglop.site ns6.gandi.net Using domain server: Name: ns6.gandi.net Address: 2001:4b98:d:1::40#53 Aliases: www.glopglop.site is an alias for dns1.glopglop.site. dns1.glopglop.site has address 193.48.57.168
On peut maintenant vérifier que le site est maintenant bien sécurisé en 'https'
on a maintenant un site sécurisé en 'https'
Modification de la page d'accueille Apashe2
Pour éviter d'avoir la page de base Apash2, on va modifier le fichier 'index.html' pour cela il suffit d'éditer le fichier avec vim avec la commande vim /var/www/html/index.html
.
Le site : https://www.w3schools.com/html/html_examples.asp explique comment faire sa propre page web. la page pour le site 'glopglop.site' ne sert que d'exemple si on veux une page plus élaborer des template sont directement disponible sur le net avec en prime les fichiers css pour obtenir un site vraiment attractif. mais on cherche juste pour le moment a avoir une page différente de test.
Tests d’intrusion
Un ordinateur portable et une clef Wifi est fourni par Monsieur Redon. Pour que le clef fonctionne il est nécessite pas nécessairement de la configuration. Il faut aussi installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA
Installation de la clef Wifi
Avec la commande lsusb
on peux voir la list des interfaces connecté aux pc. Ci-dessous les résultats obtenu.
Bus 003 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 413c:2003 Dell Computer Corp. Keyboard Bus 001 Device 003: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
La clef ubs Wifi est bien détécter. On doit donc installer le pilote pour les clef usb RT5370 avec la commande :
apt-get install firmware-ralink apt-get install firmware-misc-nonfree
Une fois les pilotes installer, on récupéère le nom de l'interface wifi avec la commande ip l
et on récupère le résultat ci-dessous :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bridge state UP mode DEFAULT group default qlen 1000 link/ether 00:22:4d:7a:f1:c3 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bridge state UP mode DEFAULT group default qlen 1000 link/ether 00:15:17:3b:14:a8 brd ff:ff:ff:ff:ff:ff 5: bridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:15:17:3b:14:a8 brd ff:ff:ff:ff:ff:ff 6: vmnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 00:50:56:c0:00:01 brd ff:ff:ff:ff:ff:ff 7: vmnet8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 00:50:56:c0:00:08 brd ff:ff:ff:ff:ff:ff 8: wlx40a5ef059784: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether 40:a5:ef:05:97:84 brd ff:ff:ff:ff:ff:ff
La clef wifi s'apelle donc wlx40a5ef059784
on fait maintenant un ip link set wlx40a5ef059784 up>
Avec la comande dmsg
on vérifie que la clef wifi fonctionne bien.
Installation du paquetage AirCrack-ng
Pour installer AirCrack (utilitaire qui permet de casser les clefs WEP et WPA), il faut de taper la commande :
apt-get install aircrack-ng apt-get install firmware-misc-nonfree
Utilisation de AirCrack pour clef WEP
Après avoir branché la clef WiFi, on se sert de airmon-ng
qui est un utilitaire qui espionne le réseau et permet d'obtenir les types d'interfaces communicantes/espionnable.
airmon-ng
Pour tenter de s'y connecter en tant qu'espion, il faut alors taper (nous le tapons ici avec wlan0mon):
airmon-ng start wlx40a5ef059784
Puis, pour observer et découvrir les canaux associés au réseau et leurs SSID,il faut taper:
airodump-ng wlan0mon
On obtien le résultat ci dessous :
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 38:0E:4D:B0:E9:E0 -1 0 1 0 1 -1 WPA <length: 0> 04:DA:D2:9C:50:51 -30 49 834 0 9 54e. WEP WEP cracotte02 04:DA:D2:9C:50:5A -29 44 841 0 9 54e. WEP WEP cracotte11 04:DA:D2:9C:50:56 -28 53 832 9 9 54e. WEP WEP cracotte07 04:DA:D2:9C:50:57 -29 54 803 0 9 54e. WEP WEP cracotte08 04:DA:D2:9C:50:59 -30 50 833 0 9 54e. WEP WEP cracotte10 04:DA:D2:9C:50:54 -29 48 841 0 9 54e. WEP WEP cracotte05 04:DA:D2:9C:50:50 -29 50 841 0 9 54e. WEP WEP cracotte01 04:DA:D2:9C:50:5B -29 50 825 0 9 54e. WEP WEP cracotte12 04:DA:D2:9C:50:53 -33 46 843 0 9 54e. WEP WEP cracotte04 04:DA:D2:9C:50:58 -28 50 694 0 9 54e. WEP WEP cracotte09 04:DA:D2:9C:50:55 -30 49 746 0 9 54e. WEP WEP cracotte06 04:DA:D2:9C:50:52 -33 50 764 0 9 54e. WEP WEP cracotte03 00:14:1B:60:8C:28 -30 60 0 0 4 54e. WPA2 CCMP PSK kracotte09 00:14:1B:60:8C:22 -31 55 0 0 4 54e. WPA2 CCMP PSK kracotte03 00:14:1B:60:8C:27 -32 64 0 0 4 54e. WPA2 CCMP PSK kracotte08 00:14:1B:60:8C:24 -34 58 0 0 4 54e. WPA2 CCMP PSK kracotte05 00:14:1B:60:8C:23 -31 63 0 0 4 54e. WPA2 CCMP PSK kracotte04
Le réseau que nous voulons craquer est cracotte05 ssid : 04:DA:D2:9C:50:54 chanel : 9
On utilise la commande airodump-ng -w reseau_cracotte05 -c 9 --bssid 04:DA:D2:9C:50:54 wlan0mon
. cela nous crée un reseau_cracotte05-01.cap
On n'as pluq qu'a faire un aircrack-ng reseau_cracotte05-01.cap
.
KB depth byte(vote) 0 0/ 1 F1(50176) 48(46848) A1(46080) C9(45824) 2A(45056) 1 0/ 1 DE(50944) F0(46592) 60(45824) 4D(45312) 1E(44544) 2 1/ 3 D4(47360) 98(46336) B6(45568) A7(45056) EB(45056) 3 0/ 2 00(47360) 34(46848) 4E(45824) 6F(44800) 35(44544) 4 0/ 1 00(50688) 09(45824) 50(45568) FD(45056) 5E(44032) 5 0/ 3 00(46592) BD(45824) 4A(45824) 5A(45056) 87(45056) 6 0/ 1 00(51456) 09(47104) 3A(45824) F9(45824) 04(45568) 7 0/ 1 00(51712) C9(47360) 08(46336) 56(45312) E2(44800) 8 0/ 1 00(54016) 05(45568) C1(45312) D5(44544) B7(44288) 9 0/ 2 00(47872) 56(46592) 84(45568) 88(45568) F2(45056) 10 1/ 2 09(48128) 6B(45824) D5(45824) 0C(45568) C2(45568) 11 0/ 2 99(48128) 76(47616) 99(46080) E6(46080) 06(44800) 12 2/ 4 FD(44800) DE(44544) B9(44032) 3F(43776) 94(43776)
KEY FOUND! [ F1:DE:D4:00:00:00:00:00:00:00:09:99:99 ] Decrypted correctly: 100%
Et voila nous avons trouver clef du réseau wifi cracotte05
Utilisation de AirCrack pour clef WPA2-PSA
On va maintenant craquer le réseau Kracotte05 qui est un réseau WPA on sait d'avance que la clef WPA est un nombre sur 8 chiffres.
On va donc faire un "cassage par force brute" avec un fichier texte contenant tout les combination de 00000000 a 99999999.
On commence par installer Crnch avec la commande sudo apt-get install -y crunch
Une fois installer on génère un fichier dictionnaite.txt avec la commande crunch 8 8 0123456789 >> dictionnaire_wpa.txt
On relance la commande airodump-ng -w reseau_kracotte05 -c 5 --bssid 00:14:1B:60:8C:24
On a bien sure remplacer le ssid et le chanel par celui du wifi Kracotte05.
Puis nous lançons aircrack-ng avec la commande aircrack-ng reseau_kracotte05-01.cap -w dictionnaire_wpa.txt
Read 121032 packets.
# BSSID ESSID Encryption 1 00:14:1B:60:8C:24 kracotte05 No data - WEP or WPA Choosing first network as target. Opening reseau_kracotte05-01.cap Read 121032 packets. 1 potential targets Got no data packets from target network! Quitting aircrack-ng...
On peut voir que cela prend du temps pour récupérer les data nécessaire pour effectuer le crackage 1 data toutes les 15 minutes.
Une fois que on a récupérer les data, on peux effectuer le "cassage par force brute"
Aircrack-ng 1.5.2 [00:32:18] 10323450/102795810 keys tested (2771.75 k/s) Time left: 9 hours, 16 minutes, 11 seconds 10.04% KEY FOUND! [ 10244444 ]
Master Key : D6 B0 55 29 8C A0 B4 C9 13 24 C9 03 8C D5 13 4B 46 A4 C2 DB 79 E7 4C BC AE B5 5A 5D 48 D7 C4 3B Transient Key : 25 23 28 1B 21 51 4B 87 07 51 A4 8E D1 80 48 C8 54 F6 87 8B 30 DF C1 D0 E6 1A 74 87 2F 50 EC 1B 9B 24 39 29 40 E3 BD 89 CD AE 3E 81 E9 EC 16 70 79 F9 24 2E 30 4E 52 24 A9 41 30 52 E1 25 EC 85 EAPOL HMAC : 7F AC 76 7D B5 33 0C 24 20 C3 BA A2 4B DF 2F CD
On a bien trouver la clé du wifi !
On voit que cela peut prendre beaucoup de temps pour trouver la clé, d'out l'interner de couper le dictionnaire en plusieurs et lancer le traitement sur plusieurs pc des camarades de classe.
Cela permet de diviser le temps de traitement par le nombre de machine utilisé.
Exploitation de failles du système
Attaque de type "homme au milieu" par usurpation ARP
Maintenant on tesnt une attaque par "homme au milieu" pour commancé, on va installer le paquetage dsniff
pour cela on utilise la commande : apt-get install dsniff
On regarde dans un premier temps si le pc peut se comporter comme un routeur avec la commande cat /proc/sys/net/ipv4/ip_forward
normalement il nous notifie '0' se qui prouve que le pc ne se comporte pas comme un routeur. On utilise la commande cat /proc/sys/net/ipv4/ip_forward
pour faire passer la variable a 1. maintenant le PC peut se comporter comme un routeur.
On fait la commande cat /proc/sys/net/ipv4/conf/all/rp_filter
la variable recu doit être a '0' ce qui permet aux pc de renvoyer les requètes sur l'interface qui les a recu.
Ensuite on fait un ip r
pour récupérer l'adresse ip du routeur.
On fait la commande arpspoof -i bridge -t zabeth07 172.26.145.254
On lance Wireshark en root en utilisant la commande su
si celui ci n'est pas installer on fait préalablement apt-get install wireshark
Une fois Wireshark lancé, on filtre tout les paquets en provenance de nottre cible la zabeth07.
Il faut fauire attention de bien désativer les proxi dans firefow sinon cela ne fonctionne pas.
On peut voir que on a bien recupérer les mdp lors de la connexion aux site 'applications.polytech-lille.net'.
Non d'utilisateur : Oui le pas de calais Mdp : le mdp
Intrusion sur un serveur d’application Web
Réalisations
Sécurisation de données
Chiffrement de données
Parfois il est necessaire de chiffrer les données importante,d'avoir des clef USB, ou des fichier sécuriser. Pour sécuriser la clef USB, on va utilisé 'cryptsetup' pour commancer on installe les paquetages 'lvm2' et 'cryptsetup'.
apt-get install cryptsetup apt-get install lvm2
Le site on peut trouver la liste des commandes necessaire pour crypter le clef USB.
Premièrement on va formaté la clef usb pour avoir un disque propre avec la commande mkfs.vfat -n 'Alex.G' -I /dev/sdb1
on obtien le nom de la clef USB avec la commande df -h
On a maintenant une clef USB clean qui a comme nom Alex.G et un format FAT32.
On peut lancer le cryptage de la clef USB avec la commande cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb
Pour savoir ou les la clef USB on utilise la commande lsblk
On choisi un mdp pour le clef USB, puis on envoie le fichier etc sur le clef pour vérifier si il est bien encrypter. Une fois la clef crypter avec un fichier dessu, on va sur un autre pc et on, vérifie si le fichier est bien crypter.
La liste des commande utilisé est listé ci-dessous :
mount /dev/mapper/Alex.G /mnt cp -r /etc /mnt umount /mnt cryptsetup luksClose Alex.G
On peut voir que le clef USB crypter fonctionne bien.