Complete some missing infos
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
bd9b8969cc
commit
aa9ca28809
@ -188,6 +188,9 @@ They have the actual network topology at their disposal, as well as an IP addres
|
|||||||
|
|
||||||
![Network topology provided for students to find their way around](topology.png)
|
![Network topology provided for students to find their way around](topology.png)
|
||||||
|
|
||||||
|
This step enables them to learn how to read a topology and practice with subnet masks.
|
||||||
|
Some students will forget the mask when adding the IP to their interface, preventing them from contacting the server.
|
||||||
|
|
||||||
The risk of such an exercise is that several students will take the same address and create IP conflicts, which would make the exercise far too difficult.
|
The risk of such an exercise is that several students will take the same address and create IP conflicts, which would make the exercise far too difficult.
|
||||||
To eliminate any risk of conflict, each student is given a protected address: this address is registered in the server's ARP table so that it can only communicate with its own workstation.
|
To eliminate any risk of conflict, each student is given a protected address: this address is registered in the server's ARP table so that it can only communicate with its own workstation.
|
||||||
|
|
||||||
@ -285,7 +288,7 @@ Whereas up to now all tokens had to be sent to a web server over an unencrypted
|
|||||||
So far, everything has seemed coherent, but this seemingly straightforward step - switching from HTTP to HTTPS - will reveal an unexpected problem, to say the least:
|
So far, everything has seemed coherent, but this seemingly straightforward step - switching from HTTP to HTTPS - will reveal an unexpected problem, to say the least:
|
||||||
|
|
||||||
```
|
```
|
||||||
42sh# curl
|
42sh# curl https://172.23.200.1/challenge
|
||||||
curl: (60) SSL certificate problem: certificate is not yet valid
|
curl: (60) SSL certificate problem: certificate is not yet valid
|
||||||
More details here: https://curl.haxx.se/docs/sslcerts.html
|
More details here: https://curl.haxx.se/docs/sslcerts.html
|
||||||
```
|
```
|
||||||
@ -302,6 +305,12 @@ If the clock is too far off, the student receives a message reminding him that r
|
|||||||
|
|
||||||
To get past this stage, students are expected to discover clock synchronization tools, using the DMZ's NTP server.
|
To get past this stage, students are expected to discover clock synchronization tools, using the DMZ's NTP server.
|
||||||
|
|
||||||
|
Once this stage has been validated, it's important to review the certificate stores with the students.
|
||||||
|
Under normal circumstances, on a freshly installed machine, such a request should not have worked, as it is impossible to obtain a valid TLS certificate for a private IP.
|
||||||
|
In this case, I had placed an additional authority in their system store, which I control.
|
||||||
|
So I'm able to intercept any encrypted traffic their applications might emit.
|
||||||
|
This is a particularly important point of awareness.
|
||||||
|
|
||||||
|
|
||||||
### Step 8: Domain name resolution
|
### Step 8: Domain name resolution
|
||||||
|
|
||||||
@ -334,6 +343,7 @@ To ensure that all students without exception are confronted with this problem,
|
|||||||
The students are thus forced to find the server's true MAC among all the MACs responding to requests.
|
The students are thus forced to find the server's true MAC among all the MACs responding to requests.
|
||||||
They also discover the static entries in the ARP table.
|
They also discover the static entries in the ARP table.
|
||||||
|
|
||||||
|
This step also opens the door to *ARP spoofing* and the dangers of unprotected wireless access points.
|
||||||
|
|
||||||
### Step 10: Traceroute
|
### Step 10: Traceroute
|
||||||
|
|
||||||
@ -377,6 +387,11 @@ A virtual disk is created at system start-up, a file is created with a unique to
|
|||||||
This bonus is designed to show the experienced student how to use file recovery tools.
|
This bonus is designed to show the experienced student how to use file recovery tools.
|
||||||
|
|
||||||
|
|
||||||
|
### 4. Send an e-mail with the command line
|
||||||
|
|
||||||
|
The aim of this bonus is to introduce students to the format of e-mails, making them aware that the sender is just a header and can be easily falsified.
|
||||||
|
|
||||||
|
|
||||||
## Variants
|
## Variants
|
||||||
|
|
||||||
I'm showing here a standard framework for the exercise I've designed. Depending on expected needs, it is possible to deviate from this scenario.
|
I'm showing here a standard framework for the exercise I've designed. Depending on expected needs, it is possible to deviate from this scenario.
|
||||||
|
@ -189,6 +189,9 @@ Ils ont à leur disposition la véritable topologie du réseau, ainsi qu'une adr
|
|||||||
|
|
||||||
![Topologie du réseau qui est fournie aux étudiants pour se repérer](topology.png)
|
![Topologie du réseau qui est fournie aux étudiants pour se repérer](topology.png)
|
||||||
|
|
||||||
|
Cette étape leur permet d'apprendre à lire une topologie et à s'exercer avec les masques de sous-réseau.
|
||||||
|
Quelques étudiants oublieront notamment le masque en ajoutant l'IP à leur interface, ce qui les empêchera de contacter le serveur.
|
||||||
|
|
||||||
Le risque d'un tel exercice est que plusieurs étudiants prennent la même adresse et créent des conflits d'IP, ce qui rendrait l'exercice bien trop difficile.
|
Le risque d'un tel exercice est que plusieurs étudiants prennent la même adresse et créent des conflits d'IP, ce qui rendrait l'exercice bien trop difficile.
|
||||||
Pour annihiler tout risque de conflit, chaque étudiant se voit confier une adresse protégée : cette adresse est inscrite dans la table ARP du serveur pour qu'elle ne puisse communiquer qu'avec son poste exclusivement.
|
Pour annihiler tout risque de conflit, chaque étudiant se voit confier une adresse protégée : cette adresse est inscrite dans la table ARP du serveur pour qu'elle ne puisse communiquer qu'avec son poste exclusivement.
|
||||||
|
|
||||||
@ -286,7 +289,7 @@ Alors que jusqu'à maintenant tous les jetons devaient être envoyés vers un se
|
|||||||
Si jusque-là tout semblait être cohérent, cette étape qui avait pourtant l'air simple : passer du protocole HTTP au HTTPS, va révéler un problème pour le moins inattendu :
|
Si jusque-là tout semblait être cohérent, cette étape qui avait pourtant l'air simple : passer du protocole HTTP au HTTPS, va révéler un problème pour le moins inattendu :
|
||||||
|
|
||||||
```
|
```
|
||||||
42sh# curl
|
42sh# curl https://172.23.200.1/challenge
|
||||||
curl: (60) SSL certificate problem: certificate is not yet valid
|
curl: (60) SSL certificate problem: certificate is not yet valid
|
||||||
More details here: https://curl.haxx.se/docs/sslcerts.html
|
More details here: https://curl.haxx.se/docs/sslcerts.html
|
||||||
```
|
```
|
||||||
@ -303,6 +306,12 @@ Si l'horloge est trop éloignée, l'étudiant reçoit un message lui rappelant q
|
|||||||
|
|
||||||
Pour passer cette étape, il est attendu de découvrir les outils de synchronisation d'horloge, en utilisant le serveur NTP de la DMZ.
|
Pour passer cette étape, il est attendu de découvrir les outils de synchronisation d'horloge, en utilisant le serveur NTP de la DMZ.
|
||||||
|
|
||||||
|
Une fois l'étape validée, il est important de faire un point avec les étudiants sur les magasins de certificats.
|
||||||
|
En temps normal, sur une machine fraîchement installée, une telle requête n'aurait pas dû fonctionner car il est impossible d'obtenir un certificat TLS valide pour une IP privée.
|
||||||
|
En l'occurrence, j'avais placé dans le magasin de leur système une autorité supplémentaire, que je contrôle.
|
||||||
|
Je suis donc en mesure d'intercepter tout le trafic chiffré que leurs applications pourraient émettre.
|
||||||
|
Il s'agit d'un point de sensibilisation particulièrement important.
|
||||||
|
|
||||||
|
|
||||||
### Étape 8 : résolution des noms de domaine
|
### Étape 8 : résolution des noms de domaine
|
||||||
|
|
||||||
@ -335,11 +344,13 @@ Pour que tous les étudiants sans exception soient confrontés à ce problème,
|
|||||||
Les étudiants sont donc obligés de retrouver la véritable MAC du serveur parmi toutes les MAC qui répondent aux requêtes.
|
Les étudiants sont donc obligés de retrouver la véritable MAC du serveur parmi toutes les MAC qui répondent aux requêtes.
|
||||||
Ils découvrent à cette occasion les entrées statiques dans la table ARP.
|
Ils découvrent à cette occasion les entrées statiques dans la table ARP.
|
||||||
|
|
||||||
|
En complément, cette étape permet d'ouvrir sur l'*ARP spoofing* et les dangers notamment des points d'accès sans fils non protégés.
|
||||||
|
|
||||||
|
|
||||||
### Étape 10 : Traceroute
|
### Étape 10 : Traceroute
|
||||||
|
|
||||||
L'ultime étape nécessite de comprendre le cheminement des paquets sur le réseau.
|
L'ultime étape nécessite de comprendre le cheminement des paquets sur le réseau.
|
||||||
En découvrant l'outil `tracerooute`, l'étudiant peut s'apercevoir que ses paquets sont systématiquement détruits au 4ème routeur !
|
En découvrant l'outil `traceroute`, l'étudiant peut s'apercevoir que ses paquets sont systématiquement détruits au 4ème routeur !
|
||||||
|
|
||||||
L'exercice est quelque peu cavalier, mais il revient sur la configuration du noyau.
|
L'exercice est quelque peu cavalier, mais il revient sur la configuration du noyau.
|
||||||
La durée de vie des paquets IP a volontairement été fixée à 4, pour produire ce résultat.
|
La durée de vie des paquets IP a volontairement été fixée à 4, pour produire ce résultat.
|
||||||
@ -378,6 +389,11 @@ Un disque virtuel est créé au démarrage du système, un fichier est créé av
|
|||||||
Ce bonus vise à montrer à l'étudiant averti l'usage d'outils de récupération de fichiers.
|
Ce bonus vise à montrer à l'étudiant averti l'usage d'outils de récupération de fichiers.
|
||||||
|
|
||||||
|
|
||||||
|
### 4. Envoyer un courriel avec la ligne de commande
|
||||||
|
|
||||||
|
Ce bonus vise à faire découvrir le format des courriels aux étudiants, pour notamment les sensibiliser au fait que l'expéditeur n'est qu'un en-tête et qu'il peut être falsifier très facilement.
|
||||||
|
|
||||||
|
|
||||||
## Variantes
|
## Variantes
|
||||||
|
|
||||||
Je montre ici une trame standard de l'exercice que j'ai conçu. Selon les besoins attendu il est possible de dévier de ce scénario.
|
Je montre ici une trame standard de l'exercice que j'ai conçu. Selon les besoins attendu il est possible de dévier de ce scénario.
|
||||||
@ -396,7 +412,7 @@ D'autre part ils sont reconnaissants de l'originalité du format, qui les stimul
|
|||||||
Un tel format de cours prend tout de même un temps conséquent à préparer.
|
Un tel format de cours prend tout de même un temps conséquent à préparer.
|
||||||
Initialement j'y ai passé près de 165 heures réparties entre :
|
Initialement j'y ai passé près de 165 heures réparties entre :
|
||||||
|
|
||||||
- 40 heures de reflexions initiales sur les objectifs et le scénario,
|
- 40 heures de réflexions initiales sur les objectifs et le scénario,
|
||||||
- 20 heures pour réaliser quelques preuves de concepts sur les zones d'ombre à éclairer,
|
- 20 heures pour réaliser quelques preuves de concepts sur les zones d'ombre à éclairer,
|
||||||
- 100 heures de conception du serveur et des différents mécanismes,
|
- 100 heures de conception du serveur et des différents mécanismes,
|
||||||
- 5 heures de tests sur place pour s'assurer de la compatibilité de l'ensemble du scénario.
|
- 5 heures de tests sur place pour s'assurer de la compatibilité de l'ensemble du scénario.
|
||||||
|
Loading…
Reference in New Issue
Block a user