Monter un LAB CTF/Pentest from Scratch

Avant-Propos

Cet article n’a pas vocation à faire un tuto détaillé de comment monter une infra de A à Z mais plutôt de montrer qu’il est possible avec un peu de matos de recup, un peu de temps, et quelques logiciels OpenSource qu’il est possible de fabriquer des choses intéressantes !

De plus, je précise que je fais bien évidemment la promotion du “hacking éthique”, du pentest, et de la sécurité informatique de manière globale et non de la cybercriminalité.

Bonne lecture à vous !

Pourquoi ?

Oui, la question est légitime avec tous les DM/TP que nous avons à faire en majeure de sécurité, j’avais peut-être du temps à consacrer à des projets plus “importants” sauf que souvent, ce sont les choses que l’on fait à côté de l’école qui nous apportent le plus donc, aucun regret !

Ça, c’est la réponse rapide, voilà 2 réponses plus constructives :

1. Apprendre des trucs !

Durant mon stage de début de 4e année, j’ai eu l’occasion de déployer une infrastructure dédiée au pentest, j’ai eu l’occasion d’apprendre énormément en terme d’infra de réseaux etc... Mais au début mon stage la base de l’infrastructure était déjà posée (configuration des routeurs, branchement des switchs, etc...) C’est pourquoi j’ai eu l’envie de remonter from scratch une infra ce qui me permettrait de repasser par toutes les étapes basiques. De plus dans notre labo de majeure, nous avons beaucoup de matériel inutilisé, certains parlent souvent de recommander du matos pour faire ce genre de projets, je me suis dit que ce n'était vraiment pas la peine et que j’allais récupérer le matos du lab.

2. Le pentest c’est cool !

La seconde raison, c’est que je suis un passionné de sécurité informatique (ctf, pentest, bidouillage) et plus particulièrement de sécurité offensive donc je voulais partager cette passion avec mes camarades de promo en leur proposant de tester la sécurité d’une entreprise fictive et de compromettre un maximum de machines. Cela me permettrait également de me prêter à un nouvel exercice, la création d’un scenario de ctf (Capture The Flag).

Recupération du Matos

Etape 1 récuperer un switch

Facile,il y’en a partout dans le labo

Etape 2 recuperer des Serveurs

Bien que nous possédons des “vrais” serveurs inutilisés, ça aurait fait un peu de boucan dans le labo en termes de bruit. Alors j’ai fait un petit tour dans le labo et je me rend compte rapidement qu’il y’a des dizaines (oui des dizaines) de tours inutilisées, des HP avec i7 en plus, je vais pas me priver, ni une ni deux, j’en pique deux pour l’infra (admin + ctf) et une autre pour faire routeur, je les dépoussières, je récupère quelques barrettes de RAM sur les autres tours qui en ont encore (on veut faire des serveurs avec un minimum de patate) et enfin je recupère 3 disques durs de minimum 1To dans notre local (sachant qu’on en a pleins) un rapide branchement et verification que les tours s’allument sans inconveniant et on est bon pour la suite.

Clef bootable et c’est partie !

Un iso de proxmox pour les 2 serveurs, un iso OPNSENSE pour le routeur, et on est bon.

Specs

Finalement, le serveur admin tourne avec 15go de RAM et 8CPU(s) ce qui est largement suffisant pour le peu de VMs qu’on herbergera dessus

Le serveur dédié au CTF tourne avec 20go de RAM et 8CPU(s), ça suffira également pour ctf qui hebergera autour de 5/6 machines au final

Pour le routeur, je me permets également de récupérer une carte réseau en plus, en effet, les tours que j’ai récupérées n’ont de base qu’une interface ethernet que j’ai déjà réservée pour le switch. J’avais donc besoin d’une interface supplémentaire pour la sortie Internet.

Création de la partie “admin”

Avec un schéma c’est mieux

Je n’ai pas réussi à retrouver les premiers schémas, celui là correspond à une étape déja bien avancée. Mais globalement vous pouvez voir l’état du chantier 🙂

On peut voir la sacré TODO List à coté

Explication Rapide du réseau

On a d’abord le vrai WAN (la sortie Internet) le premier LAN (que j’appelle FakeWAN, car du point de vue des infra hebergées sur les Proxmox, c’est leur WAN) et enfin les LANs de chaque Proxmox. Il y a un LAN qui correspond à l’admin (sur proxmox1) qui me permettra de tout administrer et sur proxmox2 on aura l’infra du CTF.

Assez simpliste au final, c’est pas plus mal

L’utilisateur est sur le même réseau que les Proxmox, c’est pourquoi j’ai du firewaller l’accès depuis le FakeWan aux Proxmox (Proxmox propose des options de parfeu assez pratiques), et donc j’administrerai les proxmox depuis l’interieur du réseau “admin” via un bounce en SSH

Avec un “Vrai” Schéma c’est encore mieux

Un tunnel SSH (avec une unique clé précieusement gardée 🙂 ), un proxy sur le navigateur, et je peux administrer mes VMs admins et celles du lab CTF.

Début de la création de la partie CTF

Avec un wiki et du wifi c’est mieux !

Wifi !

Pour que tous les joueurs puissent attaquer l’infra sans être tous autour du switch, j’ai trouvé approprié de rajouter une carte WIFI sur le routeur pour permettre la création d’un WLAN 📶 (Merci aux responsables labo de la majeure GISTRE qui m’ont gentillement prêté une des leurs)

Je rajoute une interface, configure le SSID, le mot de passe, le DHCP etc...

Parfait, on a du wifi !

Apres avoir set up, le DNS (parceque c’est toujours mieux avec du DNS) je décide de déployer un petit wiki. A la fois pour énoncer les règles d’utilisation de l’infra mais aussi pour écrire le premier scénario.

Bienvenue sur wiki.mini-range.srs

Déploiement de la partie CTF

Schéma final (Attention aux joueurs, ça spoil un peu)

L’idée c’est de créer une mini infrastructure simulant une entreprise, un site vitrine, un backend un PC admin et un PC de responsable (un DSI). Le tout sur ubuntu, fedora et windows.

Tout le monde se porte à merveille !

Mettre des vulns en place

L’idée principale est de compromettre l’infra, c’est là qu’il faut être un peu créatif et imaginer des vulnérabilités à la fois pour avoir un premier shell puis à chaque fois passer root ce qui permet d’avoir les éléments pour accéder à la prochaine machine. Voila de manière globale les techniques necessaires pour réussir à compromettre l’entiereté du CTF:

Apperçu

Voilà quelques images du CTF.

Les SRS à l’attaque !

Aujourd’hui certains de mes camarades de promo SRS ont bien voulu se prêter au jeu et se mettre dans la peau de pentesters (les pentesters sont des experts qui sont en charge d’auditer les systèmes d’information) . Ils ont donc pu attaquer mon infrastructure et mettre en application leurs compétences et aussi en acquérir de nouvelles.

Grâce à tout cela ainsi que les compétences citées plus haut dans l’article, ils ont tous été capables (avec quelques coups de pouce) de compromettre le SI fictif dans son intégralité (serveurs web, intranet, serveurs ftp et ssh, sessions rdp).

Merci à tous les participants qui (je crois) ont bien apprécié l’exercice !

Conlusion

Pour une première fois (je n'avais jamais monté d'infra de ce type avant), je suis fiers d’avoir pu créer un CTF qui m’a permit d’apprendre des choses sur comment monter un lab, comment écrire un scénario crédible, comment creer une infra avec du matos de récupération etc... Je suis également content d’avoir pu transmettre ma passion à mes camarades.

J’espère bientôt pouvoir animer de nouvelles sessions et également travailler sur un second scénario ! @Fey, Arthur Naullet Étudiant en école d’ingénieurs, majeure Systèmes Réseau et Sécurité.