TP sysres IMA5 2021/2022 G10 : Différence entre versions
(→5.3 Cassage de mot de passe WPA-PSK par force brute) |
(→Role SSHkey) |
||
(52 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 83 : | Ligne 83 : | ||
Puis, dans le fichier /etc/resolv.conf :<br> | Puis, dans le fichier /etc/resolv.conf :<br> | ||
Indiquez le domaine et la zone de recherche DNS. Cela permet que notre serveur soit intégré à la zone DNS que nous allons configuré par la suite. | Indiquez le domaine et la zone de recherche DNS. Cela permet que notre serveur soit intégré à la zone DNS que nous allons configuré par la suite. | ||
− | search | + | search panacheima59abcd.site |
− | domain | + | domain panacheima59abcd.site |
nameserver 193.48.57.185 | nameserver 193.48.57.185 | ||
nameserver 127.0.0.1 | nameserver 127.0.0.1 | ||
Ligne 90 : | Ligne 90 : | ||
Nous devons déclarer nos zones DNS à savoir la zone « panachima59abc.site » et sa zone inverse associée 57. 48.193.in-addr.arpa afin que les adresses IP puissent être traduites en noms de domaines.<br> | Nous devons déclarer nos zones DNS à savoir la zone « panachima59abc.site » et sa zone inverse associée 57. 48.193.in-addr.arpa afin que les adresses IP puissent être traduites en noms de domaines.<br> | ||
Ainsi, il faut modifier le fichier : '''/etc/bind/named.conf.local''' | Ainsi, il faut modifier le fichier : '''/etc/bind/named.conf.local''' | ||
− | zone " | + | zone "panacheima59abcd.site" { |
type master; | type master; | ||
file "/etc/bind/zones.rfc1918"; | file "/etc/bind/zones.rfc1918"; | ||
Ligne 103 : | Ligne 103 : | ||
$TTL 10800 | $TTL 10800 | ||
$ORIGIN panachima59abc.site. | $ORIGIN panachima59abc.site. | ||
− | @ IN SOA ns1.. | + | @ IN SOA ns1..panacheima59abcd.site. root.panacheima59abc.site. ( 20160505; 3h; 1h; 1w; 1h); |
− | @ IN NS ns1. | + | @ IN NS ns1.panacheima59abc.site. |
@ IN NS ns6.gandi.net. | @ IN NS ns6.gandi.net. | ||
ns1 IN A 193.48.57.185 | ns1 IN A 193.48.57.185 | ||
Ligne 113 : | Ligne 113 : | ||
<br>Ensuite on configure notre DNS sur Gandi en ajoutant notre Glue record et en paramétrant nos deux domaines externes. | <br>Ensuite on configure notre DNS sur Gandi en ajoutant notre Glue record et en paramétrant nos deux domaines externes. | ||
[[Fichier:Nameserverext.png|800px|center|thumb|"Configuration de notre DNS sur Gandi"]] | [[Fichier:Nameserverext.png|800px|center|thumb|"Configuration de notre DNS sur Gandi"]] | ||
+ | |||
=Sécurisation de serveur DNS par DNSSEC= | =Sécurisation de serveur DNS par DNSSEC= | ||
Résultat de recherche d'images pour "dnssec" | Résultat de recherche d'images pour "dnssec" | ||
Ligne 124 : | Ligne 125 : | ||
* On renomme 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)<br> | * On renomme 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)<br> | ||
* On inclue les clefs publiques dans notre fichier de zone | * On inclue les clefs publiques dans notre fichier de zone | ||
− | $include /etc/bind/ | + | $include /etc/bind/panacheima59abcd.site.dnssec/panacheima59abcd.site-ksk.key |
− | $include /etc/bind/ | + | $include /etc/bind/panacheima59abcd.site.dnssec/panacheima59abcd.site-zsk.key |
* On signe les enregistrements de la zone : | * On signe les enregistrements de la zone : | ||
dnssec-signzone -o panacheima59abcd.site -k panacheima59abcd.site-ksk ../db.panacheima59abcd.site panacheima59abcd.site-zsk | dnssec-signzone -o panacheima59abcd.site -k panacheima59abcd.site-ksk ../db.panacheima59abcd.site panacheima59abcd.site-zsk | ||
Ligne 163 : | Ligne 164 : | ||
aircrack-ng -w dictionnaire.lst -b 44:AD:D9:5F:87:06 psk*.cap | aircrack-ng -w dictionnaire.lst -b 44:AD:D9:5F:87:06 psk*.cap | ||
[[Fichier:Pskcracked.jpg|500px|center|thumb|"Mot de passe WPA-PSK cassé avec succés"]] | [[Fichier:Pskcracked.jpg|500px|center|thumb|"Mot de passe WPA-PSK cassé avec succés"]] | ||
+ | |||
+ | ===5.4 Attaque de type "homme au milieu" par usurpation ARP=== | ||
+ | *On installe le paquet dsniff sur notre eepc | ||
+ | *On modifie le fichier /proc/sys/net/ipv4/ip_forward on change le '''0''' en '''1''' | ||
+ | *On connecte notre eePc à la zabeth16 qui sera notre cible via un cable ethernet | ||
+ | [[Fichier:Ipzabeth17arp.jpg|400px|center|thumb|Wireshark: Adresse ip de notre cible]] | ||
+ | [[Fichier:Ipeepcarp.jpg|400px|center|thumb|Wireshark: Adresse de notre eepc qui sera l'attaquant]] | ||
+ | *On lance ensuite l'attaque par cache arp de la cible : | ||
+ | arpspoof -i enp4s0 -t 172.26.145.66 172.26.145.254 | ||
+ | On peut traduire cette ligne de commande par “fait moi passer pour 172.26.145.254 auprès de 172.26.145.66 via l'interface enp4s0“. | ||
+ | *On lance ensuite Wireshark sur notre eepc pour visualiser les trames qui transitent sur le réseau pendant que sur la zabeth on essaye de s'authentififier sur un site web http via un formulaire. | ||
+ | [[Fichier:Wiresharkcaptarp.jpg|400px|center|thumb|Wireshark: Capture des informations utilisés dans le formulaire]] | ||
+ | On arrive à récupérer les informations que l'utilisateur de la zabeth transmet lors de son authentification sur le site web http via un formulaire. | ||
===5.5 Intrusion sur un serveur d’application Web=== | ===5.5 Intrusion sur un serveur d’application Web=== | ||
+ | |||
+ | Nous nous rendons tout d'abord sur le site http://honey.plil.info/ | ||
1. Attaque par injection sql | 1. Attaque par injection sql | ||
− | On | + | On fait une injection SQL afin de récuperer les différentes informations sur les identifiants et les mdp directement dans la base de donné. |
+ | Pour ce faire, on remplace user et password par le code SQL <<' OR 1=1 -->>. | ||
− | user : | + | user : |
password : " OR 1=1;' | password : " OR 1=1;' | ||
+ | |||
+ | L'on obtient alors : | ||
+ | [[Fichier:Screenshot_2022-01-10_14-25-21.png|400px|center|thumb|Liste utilisateurs avec MDP]] | ||
+ | |||
+ | |||
+ | On se connecte alors en tant qu'administrateur avec le premier identifiant sur la liste : | ||
+ | "admin" | ||
+ | "jesuislechef" | ||
+ | |||
+ | On dispose ainsi maintenant de toutes les droits. On rajoute un utilisateur: | ||
+ | |||
+ | user : panache | ||
+ | password : avecpanache | ||
+ | |||
+ | |||
+ | On s'intéresse maintenant a l'exploration des fichiers. pour ce faire on install le paquet dirb qui va nous permettre de scanner le contenu web du site honey.plil.info | ||
+ | |||
+ | On execute la commande : | ||
+ | |||
+ | dirb http://honey.plil.info/ | ||
+ | |||
+ | Cette commande va explorer tous les repertoires de ce site. Ce qui va nous intéresser c'est la page | ||
=Service Internet= | =Service Internet= | ||
Ligne 205 : | Ligne 244 : | ||
ServerName panacheima59abcd.site | ServerName panacheima59abcd.site | ||
ServerAlias www.panacheima59abcd.site | ServerAlias www.panacheima59abcd.site | ||
− | DocumentRoot "/var/www/ | + | DocumentRoot "/var/www/panacheima59abcd.site" |
SSLEngine on | SSLEngine on | ||
Ligne 222 : | Ligne 261 : | ||
# a2enmod ssl | # a2enmod ssl | ||
+ | On modifie apache.conf pour rediriger vers notre page web qui se situe /var/www/panacheima59abcd.site. | ||
Puis on recharge ensuite la configuration d'Apache : | Puis on recharge ensuite la configuration d'Apache : | ||
# sudo systemctl reload apache2 | # sudo systemctl reload apache2 | ||
+ | Aprés ca on arrive à accéder à notre serveur web en https://www.panacheima59abcd.site :) | ||
+ | |||
+ | =Réalisations= | ||
+ | == Sécurisation de données== | ||
+ | Sur notre serveur Xen, on crée trois partitions LVM de 1Go avec des noms liés à celui de notre serveur. | ||
+ | lvcreate -L1G -n Panache-raid0 storage | ||
+ | lvcreate -L1G -n Panache-raid1 storage | ||
+ | lvcreate -L1G -n Panache-raid2 storage | ||
+ | On rajoute les disques sur le fichier de configuration de notre VM: | ||
+ | [[Fichier:ConfVMpanache.png|800px|center|thumb|"Ajout des nouveaux disques"]] | ||
+ | On installe le paquet mdadm pour créer un RAID5 logiciel avec les partitions crées. | ||
+ | apt-get install mdadm | ||
+ | Nous pouvons maintenant utiliser mdadm pour construire notre volume RAID 5 : | ||
+ | mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 | ||
+ | [[Fichier:raid5ok.png|800px|center|thumb|"Raid 5 ok"]] | ||
+ | Le RAID disque est prêt mais il faut pouvoir le monter afin d'y copier les fichiers. | ||
+ | Ainsi, il faut créer le système de fichiers: | ||
+ | mkfs.ext4 /dev/md0 | ||
+ | Enfin il faut modifier /etc/fstab afin de créer le point de montage au démarrage de Linux. | ||
+ | mkdir /media/raid5 | ||
+ | echo "/dev/md0 /media/raid5 ext4 defaults 0 2" >>/etc/fstab | ||
+ | mount -a | ||
+ | On copie des données sur le raid 5 | ||
+ | cd /media/raid5 | ||
+ | touch test1 test2 test3 | ||
+ | On arrete notre VM | ||
+ | shutdown -h now | ||
+ | On enleve le disque virtuel Panache-raid2 de notre machine virtuelle puis on le relance.<br> | ||
+ | '''Essayez de remonter votre RAID5, que constatez-vous ?'''<br> | ||
+ | On retrouve les memes fichiers crées en plus d'un nouveau répertoire '''/media/raid5/lost+found''' | ||
+ | ==Chiffrement de données== | ||
+ | On va utiliser la Zabeth16 et une clef USB pour cette partie. | ||
+ | *On installe d'abord les paquets lvm2 et cryptsetup | ||
+ | *On cherche le nom de la partition de la clef | ||
+ | [[Fichier:Lsblkz.png|800px|center|thumb|"Lister les disques"]] | ||
+ | *On remarque qu'on a déja une partition sur la clef on la supprime puis on crée un nouveau avec | ||
+ | fdisk /dev/sdb | ||
+ | *On applique les changements sans reboot avec la commande | ||
+ | partprobe | ||
+ | *On sécurise ensuite la partition avec cryptsetup avec comme '''passphrase = glopglop''': | ||
+ | cryptsetup luksFormat /dev/sdb1 | ||
+ | cryptsetup luksOpen /dev/sdb1 home | ||
+ | On crée ensuite un systéme de fichiers sur notre partition qui est dans /dev/mapper: | ||
+ | mkfs.ext4 /dev/mapper/home | ||
+ | *On monte notre partition: | ||
+ | mount /dev/mapper/home /mnt/ | ||
+ | *On ajoute des fichiers dans le systéme de fichiers: | ||
+ | cd /mnt | ||
+ | touch file1 file2 | ||
+ | *On démonte ensuite notre disque | ||
+ | umount /mnt | ||
+ | cryptsetup luksClose home | ||
+ | *Si on essaie de remonter notre disque l'entrée du passphrase est obligatoire | ||
+ | |||
+ | [[Fichier:Passphrasecrypt.png|800px|center|thumb|"Disque chiffrée avec succés :)"]] | ||
+ | |||
+ | ==Sécurisation WiFi par WPA2-EAP== | ||
+ | *Configuration de Freeradius | ||
+ | On commence par installer freeRadius : | ||
+ | apt-get install freeradius | ||
+ | |||
+ | Dans le fichier /etc/freeradius/3.0/mods-enabled/mschap : | ||
+ | use_mppe = yes | ||
+ | require_encryption = yes | ||
+ | require_strong = yes | ||
+ | |||
+ | On modifie également le fichier users (on décommente la partie bob): | ||
+ | root Cleartext-Password := "glopglop" | ||
+ | Puis le fichier clients.conf | ||
+ | client panache { | ||
+ | ipaddr = 10.1.0.3 | ||
+ | secret = glopglop | ||
+ | } | ||
+ | *Configuration de l'Access Point | ||
+ | On configure ensuite le point d'accés: | ||
+ | ap(config)#aaa authentication login Panache_group group radius_Panache | ||
+ | ap(config)#radius-server host 193.48.57.185 auth-port 1812 acct-port 1813 key glopglop | ||
+ | ap(config)#aaa group server radius radius_Panache | ||
+ | ap(config-sg-radius)#server 193.48.57.185 auth-port 1812 acct-port 1813 | ||
+ | ap(config-sg-radius)#dot11 ssid SSID_Panache | ||
+ | ap(config-ssid)#mbssid guest-mode | ||
+ | ap(config-ssid)#vlan 9 | ||
+ | ap(config-ssid)#authentication open eap Panache_group | ||
+ | ap(config-ssid)#authentication network-eap Panache_group | ||
+ | ap(config-ssid)#authentication key-management wpa | ||
+ | |||
+ | |||
+ | ap(config-ssid)#interface Dot11Radio0 | ||
+ | ap(config-if)#encryption vlan 9 mode ciphers aes-ccm tkip | ||
+ | ap(config-if)#mbssid | ||
+ | ap(config-if)#ssid SSID_Panache | ||
+ | |||
+ | ap(config)#int Dot11radio0.10 | ||
+ | ap(config-subif)#encapsulation dot1q 9 | ||
+ | ap(config-subif)#bridge-group 10 | ||
+ | ap(config-subif)#exit | ||
+ | ap(config)#int Dot11radio0 | ||
+ | ap(config-if)#no shutdown | ||
+ | ap(config-if)#exit | ||
+ | ap(config)#exit | ||
+ | On ping notre VM:OK ca marche | ||
+ | |||
+ | Sur un téléphone portable, nous essayons de nous connecter au wifi SSID_Panache avec le bon mot de passe et user. | ||
+ | Puis nous lançons le mode debug avec la commande: | ||
+ | freeradius -X | ||
+ | [[Fichier:capradiusss.jpg|800px|center]] | ||
+ | |||
+ | =Ferme de serveurs Web= | ||
+ | ==Architecture générale de la ferme== | ||
+ | |||
+ | =TP ASR= | ||
+ | On configure d'abord le réseau de notre VM en lui attribuant l'adresse IP 172.26.145.110 et on teste s'il arrive à communiquer avec les Zabeth. | ||
+ | <br>Ensuite on ajoute le proxy avec export puis on modifie les sources dans /etc/apt pour pouvoir installer des paquets.<br> | ||
+ | On installe le paquet python3 et python-pip<br> | ||
+ | On modifie tout d'abord le fichier inventory en renseignant notre nom et l'adresse ip de notre VM pra-10. | ||
+ | |||
+ | pra-10 ansible_ssh_host="172.26.145.110" | ||
+ | |||
+ | Nous générons une clé ssh à l'aide de la commande suivante: | ||
+ | |||
+ | ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "ssow@polytech-lille.net" -P '' | ||
+ | que nous renseignons dans /root/.ssh/authorized_keys de notre VM. Cette clé va nous permettre ainsi de nous connecter à notre VM avec ANSIBLE. | ||
+ | |||
+ | On renseigne ensuite le hostname de notre machine virtuelle dans le fichier host_vars/pra-10.yaml | ||
+ | |||
+ | hostname: pra-10 | ||
+ | bar: | ||
+ | baz: 42 | ||
+ | |||
+ | Pour fonctionner, ansible a besoin de Python 3 que nous installons préalablement sur la zabeth et notre VM PRA-10. | ||
+ | |||
+ | Nous installons ensuite ansible avec les commandes suivantes : | ||
+ | $ python3 -m venv ~/env-ansible | ||
+ | $ . ~/env-ansible/bin/activate | ||
+ | $ pip3 install -U setuptools wheel | ||
+ | $ pip3 install -U ansible | ||
+ | |||
+ | Puis on lance la commande : | ||
+ | $ ansible-playbook -v -i inventory polytech.yaml | ||
+ | ===Role SSHkey=== | ||
+ | [[Fichier:Rolessh.png|350px|center]] | ||
+ | |||
+ | ===Role pour installer docker avec ansible=== | ||
+ | [[Fichier:Roledocker.png|800px|center]]<br> | ||
+ | |||
+ | ===Role pour installer Consul avec un conteneur docker=== | ||
+ | On rencontre un probléme car docker n'arrive pas à accéder à son repo pour pull l'image de consul. On a ajouté le proxy dans les conf de docker mais on rencontre toujours le meme probléme |
Version actuelle datée du 12 janvier 2022 à 22:06
Sommaire
Configuration Routeur C6509
L'architecture générale
Paramétrage de notre routeur
C6509 Je me suis chargé de la configuration du routeur cisco C6509 de la salle E-304. Il fallait pour chaque séance se connecter d'abord sur la console du rack 6 et lancer la commande boot pour activer ses interfaces
- VLAN 531
enable conf t vlan 531 exit int vlan 531 no shut ip address 192.168.222.74 255.255.255.248 exit int Te6/4 no shut switchport mode access switchport access vlan 531 exit exit write
- VLAN 42
enable conf t vlan 42 exit int vlan 42 no shut ip address 193.48.57.187 255.255.255.192 ipv6 enable ipv6 address 2001:7A8:116E:60B0::F0/64 eui-64 exit int Te5/5 no shut switchport mode access switchport access vlan 42 exit exit write
- Te5/4
interface TenGigabitEthernet5/4 switchport switchport trunk encapsulation dot1q
- OSPF
router ospf 1 router-id 192.168.222.74 log-adjacency-changes summary-address 193.48.57.176 255.255.255.240 summary-address 10.0.0.0 255.0.0.0 not-advertise redistribute connected subnets redistribute static subnets route-map ospf network 192.168.222.40 0.0.0.7 area 20 network 192.168.222.72 0.0.0.7 area 20 default-information originate
- VRRP
interface Vlan42 ip address 193.48.57.187 255.255.255.240 ipv6 address 2001:7A8:116E:60B0::F0/64 ipv6 enable vrrp 42 description version vrrp 42 ip 193.48.57.190 vrrp 42 priority 110
Installation de la VM
Configuration du DNS
Installation et configuration de BIND 9
Commençons par l’installation du service BIND 9
apt-get install bind9
Il faut maintenant préparer notre serveur avant de configurer bind 9.
Notre serveur aura ici pour adresse IP : 193.48.57.185
Tout d’abord, il est nécessaire de placer le nom FQDN de notre serveur (dans ce cas « Panache.panachima59abc.site » ) dans le fichier : /etc/hostname
Il faut ensuite modifier le fichier /etc/hosts de façon à ajouter le nouveau nom du serveur et’associer l’adresse IPV4 de notre serveur DNS à son nom FQDN.
Puis, dans le fichier /etc/resolv.conf :
Indiquez le domaine et la zone de recherche DNS. Cela permet que notre serveur soit intégré à la zone DNS que nous allons configuré par la suite.
search panacheima59abcd.site domain panacheima59abcd.site nameserver 193.48.57.185 nameserver 127.0.0.1
Nous allons désormais nous rendre dans le répertoire /etc/bind qui contient les fichiers de configurations de bind9.
Nous devons déclarer nos zones DNS à savoir la zone « panachima59abc.site » et sa zone inverse associée 57. 48.193.in-addr.arpa afin que les adresses IP puissent être traduites en noms de domaines.
Ainsi, il faut modifier le fichier : /etc/bind/named.conf.local
zone "panacheima59abcd.site" { type master; file "/etc/bind/zones.rfc1918"; }; zone "57.48.193.in-addr.arpa" { type master; file "/etc/bind/db.57.48.193.in-addr.arpa"; };
Dans notre cas, les deux zones sont de types « master », c’est à dire que le serveur sera maître sur les deux zones.
Nous devons maintenant devoir créer nos zones.
Il faut pour cela créer et modifier le fichier suivant comme ci-dessous : nano /etc/bind/db.panachima59abcd.site
$TTL 10800 $ORIGIN panachima59abc.site. @ IN SOA ns1..panacheima59abcd.site. root.panacheima59abc.site. ( 20160505; 3h; 1h; 1w; 1h); @ IN NS ns1.panacheima59abc.site. @ IN NS ns6.gandi.net. ns1 IN A 193.48.57.185
Nous venons de déclarer notre notre serveur (nom FQDN + @IP)
Pour tester notre configuration, il suffit d’utiliser la commande suivante : named-checkconf -z
Ensuite on configure notre DNS sur Gandi en ajoutant notre Glue record et en paramétrant nos deux domaines externes.
Sécurisation de serveur DNS par DNSSEC
Résultat de recherche d'images pour "dnssec"
Les DNSSEC renforcent l'authentification du DNS en utilisant des signatures numériques basées sur la cryptographie à clé publique. Avec les DNSSEC , les requêtes DNS et les réponses ne sont pas elles-mêmes signées cryptographiquement, ce sont les données DNS qui sont signées par le propriétaire des données.
- On ajoute l’option dnssec-enable yes; dans le fichier named.conf.options
- On crée le répertoire panacheima59abcd.site.dnssec pour y générer les clefs ;
- On crée la clef asymétrique de signature de clefs de zone :
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE panacheima59abcd.site
- On crée la clef asymétrique de la zone pour signer les enregistrements :
dnssec-keygen -a RSASHA1 -b 1024 -n ZONE panacheima59abcd.site
- On renomme 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)
- On inclue les clefs publiques dans notre fichier de zone
$include /etc/bind/panacheima59abcd.site.dnssec/panacheima59abcd.site-ksk.key $include /etc/bind/panacheima59abcd.site.dnssec/panacheima59abcd.site-zsk.key
- On signe les enregistrements de la zone :
dnssec-signzone -o panacheima59abcd.site -k panacheima59abcd.site-ksk ../db.panacheima59abcd.site panacheima59abcd.site-zsk
- On modifie le fichier named.conf.local pour utiliser la zone signée de suffixe .signed
zone "panacheima59abcd.site" { type master; file "/etc/bind/db.panacheima59abcd.site.signed"; };
- On communique la partie publique de la KSK sur Gandi:
Test d'intrusion
5.2 Cassage de clef WEP d’un point d’accès WiFi
- On repére d'abord le nom de notre réseau sans fil avec la commande ip a
- On liste les cartes réseaux présentes sur le pc. Pour cela on utilise la commande iwconfig.
Pour scanner l'environnement Wi-Fi, on utilise l'outil airodump-ng qui, lancé sans option, permet d'écouter sur tous les canaux en séquence mais nous spécipifions notre carte réseau wlanmon0 sur lequel scanner le réseau.Comme seuls les réseaux protégés en WEP nous intéressent, on peut également préciser à l'outil de n'afficher que les réseaux ainsi protégés.
airodump-ng --encrypt WEP wlan0mon
Pour pouvoir injecter du trafic en provenance d'une adresse MAC factice, il est d'abord nécessaire d'associer cette dernière au point d'accès. Pour ce faire, on utilise l'outil aireplay-ng. Ce dernier est un peu le couteau suisse de l'attaque WEP, implémentant la plupart des attaques contre ce type de protection. On choisit comme cible le wifi cracotte07
aireplay-ng -9 -e cracotte07 -a 04:DA:D2:9C:50:56 wlan0mon
Pour capturer le trafic nécessaire au cassage de la clé WEP, on utilise encore une fois l'outil airodump-ng, en lui fixant un canal à écouter, un fichier de sortie, et éventuellement, le BSSID du réseau pour filtrer la capture.
airodump-ng -c 4 --bssid 04:DA:d2:9C:50:56 -w output wlan0mon
L'étape essentielle de l'attaque consiste à rejouer du trafic ARP capturé sur le réseau cible de manière à générer du trafic. Là encore, on utilisera l'outil aireplay-ng qui se chargera de l'identification de trames susceptibles d'être des requêtes ARP, de les capturer et les rejouer sur le réseau cible.
La dernière étape consiste à lancer le processus de cassage de clé sur la capture générée par airodump-ng. Ceci se fait au moyen de l'outil aircrack-ng. On le lance sur un nouveau terminal:
aircrack-ng -b 04:DA:D2:9C:50:56 output*.cap
5.3 Cassage de mot de passe WPA-PSK par force brute
- On scanne d'abord l'environnement wifi en spécifiant les réseaux de type PSK pour pouvoir choisir notre nouvelle cible:
airodump-ng --encrypt PSK wlan0mon
- Pour capturer le trafic nécessaire au cassage de la clé WPA-PSK, on utilise encore une fois l'outil airodump-ng
airodump-ng -c 4 --bssid 44:AD:D9:5F:87:06 -w psk wlan0mon
On génere ensuite le dictionnionnaire de clefs potentiels:
crunch 8 8 0123456789 -o dictionnaire.lst
On lance ensuite le craquage qui prend énormément de temps
aircrack-ng -w dictionnaire.lst -b 44:AD:D9:5F:87:06 psk*.cap
5.4 Attaque de type "homme au milieu" par usurpation ARP
- On installe le paquet dsniff sur notre eepc
- On modifie le fichier /proc/sys/net/ipv4/ip_forward on change le 0 en 1
- On connecte notre eePc à la zabeth16 qui sera notre cible via un cable ethernet
- On lance ensuite l'attaque par cache arp de la cible :
arpspoof -i enp4s0 -t 172.26.145.66 172.26.145.254
On peut traduire cette ligne de commande par “fait moi passer pour 172.26.145.254 auprès de 172.26.145.66 via l'interface enp4s0“.
- On lance ensuite Wireshark sur notre eepc pour visualiser les trames qui transitent sur le réseau pendant que sur la zabeth on essaye de s'authentififier sur un site web http via un formulaire.
On arrive à récupérer les informations que l'utilisateur de la zabeth transmet lors de son authentification sur le site web http via un formulaire.
5.5 Intrusion sur un serveur d’application Web
Nous nous rendons tout d'abord sur le site http://honey.plil.info/
1. Attaque par injection sql
On fait une injection SQL afin de récuperer les différentes informations sur les identifiants et les mdp directement dans la base de donné. Pour ce faire, on remplace user et password par le code SQL <<' OR 1=1 -->>.
user : password : " OR 1=1;'
L'on obtient alors :
On se connecte alors en tant qu'administrateur avec le premier identifiant sur la liste :
"admin" "jesuislechef"
On dispose ainsi maintenant de toutes les droits. On rajoute un utilisateur:
user : panache password : avecpanache
On s'intéresse maintenant a l'exploration des fichiers. pour ce faire on install le paquet dirb qui va nous permettre de scanner le contenu web du site honey.plil.info
On execute la commande :
dirb http://honey.plil.info/
Cette commande va explorer tous les repertoires de ce site. Ce qui va nous intéresser c'est la page
Service Internet
Serveur SSH
Connexion SSH :
$ ssh root@193.48.57.185
(Mot de pass habituel)
Création du certificat SSL
Nom de domaine : panacheima59abcd.site
1. Etape 1 : Génération de nos clés assymétriques
root@Panache:~# openssl req -nodes -newkey rsa:2048 -sha256 -keyout panacheima59abcd.site.key -out panacheima59abcd.site.csr
On obtient les fichiers panacheima59abcd.site.csr(clé publique) et panacheima59abcd.site.key(clé privée) que l'on déplace dans /etc/ssl/private/.
2. Etape 2 : Initiation de notre commande sur Gandi
_410FF1D81990060388E944AB2DE1D9A3.panacheima59abcd.site. 10800 IN CNAME 8172D68061E8FC98B62F78B737E08A75.84C9FCFD8DB368804A47B98C18189737.e44ad2329e7fabf14c09.sectigo.com.
Enfin, nous obtenons notre certificat téléchargeable depuis la page de gestion des certificats SSL que nous déplaçons dans /etc/ssl/certs/ à l'aide de scp.
Configuration Apache
1. Création/Configuration du fichier de configuration
On crée un fichier de configuration /etc/apache2/sites-available/panacheima59abcd.site.conf
<VirtualHost 193.48.57.185:443> ServerName panacheima59abcd.site ServerAlias www.panacheima59abcd.site DocumentRoot "/var/www/panacheima59abcd.site" SSLEngine on SSLCertificateKeyFile /etc/ssl/private/panacheima59abcd.site.key SSLCertificateChainFile /etc/ssl/certs/panacheima59abcd.site.crt SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem ErrorLog /var/log/apache2/error.panacheima59abcd.site.log CustomLog /var/log/apache2/access.panacheima59abcd.site.log combined </VirtualHost>
Puis on active le site avec la commande:
# a2ensite panacheima59abcd.site
2. Activation du module ssl
# a2enmod ssl
On modifie apache.conf pour rediriger vers notre page web qui se situe /var/www/panacheima59abcd.site. Puis on recharge ensuite la configuration d'Apache :
# sudo systemctl reload apache2
Aprés ca on arrive à accéder à notre serveur web en https://www.panacheima59abcd.site :)
Réalisations
Sécurisation de données
Sur notre serveur Xen, on crée trois partitions LVM de 1Go avec des noms liés à celui de notre serveur.
lvcreate -L1G -n Panache-raid0 storage lvcreate -L1G -n Panache-raid1 storage lvcreate -L1G -n Panache-raid2 storage
On rajoute les disques sur le fichier de configuration de notre VM:
On installe le paquet mdadm pour créer un RAID5 logiciel avec les partitions crées.
apt-get install mdadm
Nous pouvons maintenant utiliser mdadm pour construire notre volume RAID 5 :
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7
Le RAID disque est prêt mais il faut pouvoir le monter afin d'y copier les fichiers. Ainsi, il faut créer le système de fichiers:
mkfs.ext4 /dev/md0
Enfin il faut modifier /etc/fstab afin de créer le point de montage au démarrage de Linux.
mkdir /media/raid5 echo "/dev/md0 /media/raid5 ext4 defaults 0 2" >>/etc/fstab mount -a
On copie des données sur le raid 5
cd /media/raid5 touch test1 test2 test3
On arrete notre VM
shutdown -h now
On enleve le disque virtuel Panache-raid2 de notre machine virtuelle puis on le relance.
Essayez de remonter votre RAID5, que constatez-vous ?
On retrouve les memes fichiers crées en plus d'un nouveau répertoire /media/raid5/lost+found
Chiffrement de données
On va utiliser la Zabeth16 et une clef USB pour cette partie.
- On installe d'abord les paquets lvm2 et cryptsetup
- On cherche le nom de la partition de la clef
- On remarque qu'on a déja une partition sur la clef on la supprime puis on crée un nouveau avec
fdisk /dev/sdb
- On applique les changements sans reboot avec la commande
partprobe
- On sécurise ensuite la partition avec cryptsetup avec comme passphrase = glopglop:
cryptsetup luksFormat /dev/sdb1 cryptsetup luksOpen /dev/sdb1 home
On crée ensuite un systéme de fichiers sur notre partition qui est dans /dev/mapper:
mkfs.ext4 /dev/mapper/home
- On monte notre partition:
mount /dev/mapper/home /mnt/
- On ajoute des fichiers dans le systéme de fichiers:
cd /mnt touch file1 file2
- On démonte ensuite notre disque
umount /mnt cryptsetup luksClose home
- Si on essaie de remonter notre disque l'entrée du passphrase est obligatoire
Sécurisation WiFi par WPA2-EAP
- Configuration de Freeradius
On commence par installer freeRadius :
apt-get install freeradius
Dans le fichier /etc/freeradius/3.0/mods-enabled/mschap :
use_mppe = yes require_encryption = yes require_strong = yes
On modifie également le fichier users (on décommente la partie bob):
root Cleartext-Password := "glopglop"
Puis le fichier clients.conf
client panache { ipaddr = 10.1.0.3 secret = glopglop }
- Configuration de l'Access Point
On configure ensuite le point d'accés:
ap(config)#aaa authentication login Panache_group group radius_Panache ap(config)#radius-server host 193.48.57.185 auth-port 1812 acct-port 1813 key glopglop ap(config)#aaa group server radius radius_Panache ap(config-sg-radius)#server 193.48.57.185 auth-port 1812 acct-port 1813 ap(config-sg-radius)#dot11 ssid SSID_Panache ap(config-ssid)#mbssid guest-mode ap(config-ssid)#vlan 9 ap(config-ssid)#authentication open eap Panache_group ap(config-ssid)#authentication network-eap Panache_group ap(config-ssid)#authentication key-management wpa
ap(config-ssid)#interface Dot11Radio0 ap(config-if)#encryption vlan 9 mode ciphers aes-ccm tkip ap(config-if)#mbssid ap(config-if)#ssid SSID_Panache
ap(config)#int Dot11radio0.10 ap(config-subif)#encapsulation dot1q 9 ap(config-subif)#bridge-group 10 ap(config-subif)#exit ap(config)#int Dot11radio0 ap(config-if)#no shutdown ap(config-if)#exit ap(config)#exit
On ping notre VM:OK ca marche
Sur un téléphone portable, nous essayons de nous connecter au wifi SSID_Panache avec le bon mot de passe et user. Puis nous lançons le mode debug avec la commande:
freeradius -X
Ferme de serveurs Web
Architecture générale de la ferme
TP ASR
On configure d'abord le réseau de notre VM en lui attribuant l'adresse IP 172.26.145.110 et on teste s'il arrive à communiquer avec les Zabeth.
Ensuite on ajoute le proxy avec export puis on modifie les sources dans /etc/apt pour pouvoir installer des paquets.
On installe le paquet python3 et python-pip
On modifie tout d'abord le fichier inventory en renseignant notre nom et l'adresse ip de notre VM pra-10.
pra-10 ansible_ssh_host="172.26.145.110"
Nous générons une clé ssh à l'aide de la commande suivante:
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "ssow@polytech-lille.net" -P
que nous renseignons dans /root/.ssh/authorized_keys de notre VM. Cette clé va nous permettre ainsi de nous connecter à notre VM avec ANSIBLE.
On renseigne ensuite le hostname de notre machine virtuelle dans le fichier host_vars/pra-10.yaml
hostname: pra-10 bar: baz: 42
Pour fonctionner, ansible a besoin de Python 3 que nous installons préalablement sur la zabeth et notre VM PRA-10.
Nous installons ensuite ansible avec les commandes suivantes :
$ python3 -m venv ~/env-ansible $ . ~/env-ansible/bin/activate $ pip3 install -U setuptools wheel $ pip3 install -U ansible
Puis on lance la commande :
$ ansible-playbook -v -i inventory polytech.yaml
Role SSHkey
Role pour installer docker avec ansible
Role pour installer Consul avec un conteneur docker
On rencontre un probléme car docker n'arrive pas à accéder à son repo pour pull l'image de consul. On a ajouté le proxy dans les conf de docker mais on rencontre toujours le meme probléme