• Aucun résultat trouvé

Security Web

N/A
N/A
Protected

Academic year: 2022

Partager "Security Web"

Copied!
4
0
0

Texte intégral

(1)

Security Web

2020/2021

P.Lafourcade

TP4 SSL-TLS

Exercise 1 (Authentification http vs https (3 points))

1. (1 point) Cr´eer une page de saisi de login et mot de passe en local sur votre machine en http. Puis regarder le traffic r´eseau avec le logiciel wiresharkqu’observez-vous ? 2. Regarder le traffic r´eseau avec le logicielwireshark sur la page

https://sancy.iut-clermont.uca.fr/~lafourcade/SECWEB/ qu’observez-vous ? 3. (1 point) Refaire la mˆeme analyse sur les dumps accessibles ici

http://sancy.univ-bpclermont.fr/~lafourcade/SECWEB/data/. Qu’observez-vous ?

Il est possible de filtrer les trames avec les adresses IP pour avoir moins de bruitip.addr == 192.168.128.30 et aussi par protocole.

Exercise 2 (Votre banque favorite (2 points))

Il existe un certain nombre de vuln´erabilit´es pour SSL/TLS qui n´ecessitent une maintenance constante et des mises `a jour r´eguli`eres des serveurs. Ce n’est malheureusement pas toujours le cas. La soci´et´e Qualys propose sur le siteSSL Labsle projetSSL Test, qui permet de tester un serveur HTTPS contre les vuln´erabilit´es connues du protocole.

1. Allez sur la page d’acc`es aux comptes de votre banque favorite (sans vous identifier ; la page de connexion suffit bien). V´erifiez que vous ˆetes bien connect´e·e en HTTPS.

2. Allez sur le site https://www.ssllabs.com/ssltest/, rentrez le nom de domaine pr´ec´edent, puis validez. C¸ a prend un peu de temps, puis vous allez obtenir une note et un compte-rendu d´etaill´e.

3. Anlayzer les rapports de 4 sites de banques et ´etablisser un classement en le justifiant.

Exercise 3 (Votre propre serveur SSL/TLS (4 points))

Afin de cr´eer votre serveur SSL/TLS, il faut g´en´erer une paire de cl´es publique/priv´ee pour ce serveur, puis fabriquer un certificat pour authentifier sa cl´e publique avecOpenSSL.

1. Cr´eez un r´epertoire serveur. Dans un terminal, dans ce r´epertoire, faire : openssl genrsa -out key.pem 2048

Le fichier key.pem contient une cl´e RSA de 1024 bits. Il s’agit d’un fichier texte, vous pouvez faire cat key.pempour en voir le contenu. (1 point)

2. Dans le mˆeme terminal, tapez ensuite la commande

openssl req -new -x509 -key key.pem -out cert.pem -subj "/CN=localhost/"

1

(2)

openssl req -x509 -new -keyout key.pem -out cert.pem

Le fichier cert.pem contient alors un certificat pour la cl´e publique du serveur, sign´e avec sa propre cl´e priv´ee1. (1 point) V´erifier les d´etails de votre certificat avec

openssl x509 -in cert.pem -noout -text Votre serveur est prˆet : il ne vous reste plus qu’`a l’essayer !

3. D´emarrez le serveur (sur le port TCP 4433, par exemple) en tapant la commande suivante dans le mˆeme terminal :

openssl s server -key key.pem -cert cert.pem -accept 4433 Dans un autre terminal, connectez-vous `a ce serveur avec la commande

openssl s client -connect localhost:4433

Une fois le handshake effectu´e, vous pouvez alors taper du texte dans un terminal et le voir apparaˆıtre dans l’autre : ces messages sont transmis `a travers la connexion SSL/TLS ´etablie entre le client et votre serveur. (1 point)

4. Essayez de vous connecter sur le serveur de votre voisin(e) afin d’´echanger entre vous des messages s´ecuris´es (1 point).

Exercise 4 (SQL Injection (3 points))

L’objectif est de trouver des attaques SQL `a la main dans un premier temps sur une base de donn´ees et dans un second temps de se servir des outils SQLMAP2, JohnTheRipper3 et HashCat4 pour hacker une autre base de donn´ees.

Mettre dans votre la varaible PATH a jour avec PATH="$PATH:/home/prof/gudavala/bin"

PATH="$PATH:/home/prof/vdn/vdn-dev/bin"

En mode texte Se connecter enssh`a l’IUT surssh.iut-clermont.uca.fr, puis scanner les machines allum´ees avec iut-scan et vous connecter en ssh `a l’une d’entre elles. Pour partager votre ´ecran avec l’enseignant faireiut-tmux -a palafour

Fairewget https://sancy.iut-clermont.uca.fr/~lafourcade/SECWEB/vdn-start-secure-1 Puis lancer vdn-start-secure-1

Puis lancer dans un autre terminal le script baseConfigSecure-1 avec la commande vdn-scriptsque vous aller t´el´echargerhttps://sancy.iut-clermont.uca.fr/~lafourcade/

SECWEB/baseConfigSecure-1cette commande prend un peu de temps.

Puis se connecter `a la machine debian-1 il faut fairevdn-ssh root@debian-1

1Bien sˆur, ce n’est pas tr`es s´ecuris´e, mais c’est d´elicat de construire tout un PKI X.509 en deux heures de TP !

2https://sqlmap.org/

3https://www.openwall.com/john/

4https://hashcat.net/wiki/doku.php?id=example_hashes

2

(3)

En mode grahique avec X2GO ou Guacamaol Connectez-vous `a l’IUT avechttps://

guacamole.iut-clermont.uca.fr/#/ou avec X2GO. Puis tapezssh -X localhost. Pour partager votre ´ecran avec l’enseignant faireiut-vnc -a palafour

Fairewget https://sancy.iut-clermont.uca.fr/~lafourcade/SECWEB/vdn-start-secure-1 Puis lancer vdn-start-secure-1

Ensuite lancer VDN avec la commande~vdn/vdn/bin/vdnpuis ouvrir le r´eseau secure1 et d´emarrer la machine debian-1, lancer le script baseConfigSecure-1 et se connecter en tant queroot.

VDN et Docker T´el´echarger le fichier suivant

https://sancy.iut-clermont.uca.fr/~lafourcade/SECWEB/SQLIA.tar

Pour lancer docker aller dans le r´epertoire SQLIAet faites docker-compose up ce qui va lancee le sitehttp://localhost:8080.

Une fois docker quitt´e il faut faire docker-compose down --volumes pour arrˆeter pro- prement le syst`eme.

1. Aller sur la pagelevel0et monter une attaque par SQL injection sur le sitemyblog.com pour se connecter comme user et comme admin. Sachant que la requˆete `a la base de donn´ees est :

SELECT * FROM users

WHERE ‘email‘ = ’" . $email . "’ AND ‘password‘ = ’" . $password . "’";

Et quel si le nombre de r´esultats de la requˆete est 1 alors l’utilisateur choisi peut se connecter.

2. Aller sur la page level1 et utiliser l’outil SQLMAP avec les options --data et ensuite --dump (cette deuxi`eme option est lente mais tr`es efficace). Pour r´ecuperer la totalit´e de la BD.

Une fois le contenu de la BD obtenu, utiliser le dictionnaire rockyoulight.txtextrait de la base de donn´es https://github.com/danielmiessler/SecListsavec le logciel JohnTheRipper ou Hashcat pour retoruver les mots de passe des deux utilisateurs de ce niveau.

Remarque pour effeacer les r´esultats desqlmapil faut faire sqlmap --purge.

Exercise 5 (BoF (4 points))

Compiler le code `a l’IUT saisi dans un fichier file.cavec la commande gcc file.c Ensuite ex´ecuter le en tapant par exemple : ./a.out 3

Question : Comment modifier la variable qui vaut 0, seulement en executant le programme avec la bonne valeur? Expliquer votre raisonnement et votre approche.

#include <stdlib.h>

#include <unistd.h>

#include <stdio.h>

int main(int argc, char **argv)

3

(4)

{

int modified;

char buffer[64];

modified = 0;

gets(buffer);

if(modified != 0) {

printf("you have changed the ’modified’ variable\n");

} else {

printf("Try again?\n");

}

return 0;

}

Exercise 6 (BoF (4 points))

Compiler le code `a l’IUT et d´eterminer quelle valeur peremet d’afficher “you have correctly got the variable to the right value”? Expliquer votre raisonnement et votre approche.

#include <stdlib.h>

#include <unistd.h>

#include <stdio.h>

#include <string.h>

int main(int argc, char **argv) {

volatile int modified;

char buffer[64];

if(argc == 1) {

printf("please specify an argument\n");

return 1;

}

modified = 0;

strcpy(buffer, argv[1]);

if(modified == 0x61626364) {

printf("you have correctly got the variable to the right value\n");

} else {

printf("Try again, you got %d\n", modified);

} }

4

Références

Documents relatifs

− Un pré processeur logique de gestion des servlets (sous forme d’un service Internet) destinée à connecter au service HTTPD permettant de générer les documents HTML

Or cette configuration manuelle peut être fastidieuse pour un nombre important de périphériques car pour chaque machine il faut entrer manuellement l'adresse IPv4, le masque

Pour la sélection du serveur choisir Select a server from the server pool et cliquer Next.. Dans les roles de serveur, metter case serveur Web Server IIS et

Activités Élèves • Installer le serveur en python et un premier exemple : ”Hello World !” • Structurer le site web • Intégrer des variables ”python” dans un fichier

Il existe deux méthodes d'accès définies dans le protocole HTTP pour transmettre les données d’une page HTML d’un formulaire vers un fichier de traitement :.. ✓ La

Afin de réaliser ce contrôle il faut créer un formulaire dans la page HTML et récupérer les données de la page HTML grâce à un requête POST qui permet de renvoyer des données

9 Utiliser toujours la méthode HTTP GET pour récupérer une information et pas la méthode

Ainsi, lorsqu'un utilisateur se connecte à internet à l'aide d'une application cliente configurée pour utiliser un serveur proxy, celle-ci va se connecter en premier lieu au