2018-02-20 09:31:03 +00:00
|
|
|
|
---
|
|
|
|
|
title: ADLIN
|
|
|
|
|
section: 6
|
|
|
|
|
header: ADvanced LINux administration
|
2019-02-27 01:41:37 +00:00
|
|
|
|
footer: EPITA SRS 2020
|
2018-02-20 09:31:03 +00:00
|
|
|
|
author: Écrit par Pierre-Olivier *nemunaire* Mercier <**nemunaire+adlin@nemunai.re**>
|
2019-02-27 01:41:37 +00:00
|
|
|
|
date: 2019-02-28
|
2018-02-20 09:31:03 +00:00
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
# NOM
|
|
|
|
|
|
|
|
|
|
ADLIN - Travaux pratiques d'ADministration système LINux avancée
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# SYNOPSIS
|
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Dans une salle machine hostile, vous devez vous infiltrer au sein d'un système
|
|
|
|
|
et réussir à en reprendre le contrôle, alors qu’il n’y a plus d’infrastructure
|
|
|
|
|
réseau, ni de système d’automatisation à votre disposition.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ENVIRONNEMENT
|
|
|
|
|
|
|
|
|
|
Mettez-vous à l'aise ! Vous risquez d'être bloqué dans ce TTY pour un moment,
|
|
|
|
|
alors prenez quelques minutes pour le mettre à votre goût : **loadkeys**(1),
|
|
|
|
|
**loadfonts**(1), ...
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# DESCRIPTION
|
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Pour chacune des étapes à suivre, vous devez envoyer un jeton à l'URL indiquée.
|
|
|
|
|
|
|
|
|
|
Le programme **adlin** peut vous aider à envoyer le jeton au bon format et à y
|
|
|
|
|
inclure les données demandées par le serveur de validation.
|
|
|
|
|
|
|
|
|
|
Il n'y a pas de limite sur le nombre de tentatives que vous pouvez effectuer ;
|
|
|
|
|
mais essayez tout de même de comprendre ce que vous faites !
|
|
|
|
|
|
|
|
|
|
|
2018-02-20 09:31:03 +00:00
|
|
|
|
## STAGE -1
|
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Afin de pouvoir accéder au TP, vous devez commencer par vous authentifier :
|
|
|
|
|
cela permet d'assurer le suivi de votre progression. Votre nom d'utilisateur et
|
|
|
|
|
votre mot de passe CRI vous seront nécessaire.
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
Au moment de votre authentification, le système vous aura attribué une IP qui
|
|
|
|
|
vous est dédiée. Vous êtes libre d'utiliser n'importe quelle autre IP de la
|
|
|
|
|
plage qui ne serait pas attribuée.
|
|
|
|
|
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
## STAGE 0
|
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Outrepasser l'écran de connexion et devenir **root** sur le système.
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## STAGE 1
|
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Au commencement, votre machine n'est pas connectée au réseau : vous allez
|
|
|
|
|
devoir le configurer manuellement.
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Commencez par prendre connaissance de la topologie réseau.
|
|
|
|
|
|
|
|
|
|
Afin de ne pas créer de conflit d'IP sur le réseau, veuillez respecter les
|
|
|
|
|
plages qui vous sont attribuées. Si néanmoins des conflits se créent, vous
|
|
|
|
|
disposez du fabuleux **tcpdump**(1), pour vous sortir du pétrin !
|
|
|
|
|
|
|
|
|
|
Cette étape sera validée lorsque vous pourrez contacter le serveur de
|
|
|
|
|
validation :
|
|
|
|
|
|
|
|
|
|
**adlin token1 | curl -d @- http://172.23.0.1/iamalive**
|
|
|
|
|
|
|
|
|
|
Voir aussi : **modprobe**(8), **fbi**(1), **ip**(8), **ip-link**(8), **ip-address**(8)
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
## DON'T PANIC
|
|
|
|
|
|
|
|
|
|
Vous avez vu comment passer des arguments au noyau, via la ligne de commande
|
|
|
|
|
dans le *bootloader*. Certains paramètres peuvent également être changé pendant
|
|
|
|
|
que le noyau est lancé.
|
|
|
|
|
|
|
|
|
|
Par exemple, vous pouvez consulter à partir de quel numéro de port, il n'y a plus besoin de privilèges pour l'utiliser :
|
|
|
|
|
|
|
|
|
|
**cat /proc/sys/net/ipv4/ip_unprivileged_port_start**
|
|
|
|
|
|
|
|
|
|
Et vous pouvez le modifier, aussi simplement que cela :
|
|
|
|
|
|
2019-03-04 08:00:22 +00:00
|
|
|
|
**echo 142 > /proc/sys/net/ipv4/ip_unprivileged_port_start**
|
2019-02-27 01:41:37 +00:00
|
|
|
|
|
|
|
|
|
Voir aussi : **sysctl**(8), **proc**(5) (rechercher */proc/sys*, */proc/sys/kernel*)
|
|
|
|
|
|
|
|
|
|
|
2018-02-20 09:31:03 +00:00
|
|
|
|
## STAGE 2
|
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Une DMZ contenant différents services est à votre disposition. Commencez par
|
|
|
|
|
établir un lien avec le serveur de validation s'y trouvant :
|
|
|
|
|
|
2018-02-20 12:04:37 +00:00
|
|
|
|
**adlin token2 | curl -d @- http://172.23.200.1/challenge**
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
Voir aussi : **ip-route**(8)
|
2018-02-21 00:25:47 +00:00
|
|
|
|
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
## BONUS 1
|
2018-02-21 00:25:47 +00:00
|
|
|
|
|
|
|
|
|
Souriez, vous êtes monitoré ! Mais n'y aurait-il pas un contenu caché ?
|
|
|
|
|
|
|
|
|
|
**adlin** *payload* **| curl -d @- http://172.23.200.1/echorequest**
|
|
|
|
|
|
2019-03-04 08:00:22 +00:00
|
|
|
|
Attention à l'endianness !
|
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Voir aussi : **tcpdump**(1)
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
2018-02-20 12:04:37 +00:00
|
|
|
|
## STAGE 3
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
On passe en HTTPS ! Facile ?
|
|
|
|
|
|
2018-02-20 12:04:37 +00:00
|
|
|
|
**adlin token3 | curl -d @- https://172.23.200.1/challenge**
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-20 12:04:37 +00:00
|
|
|
|
Voir aussi: **ntpd**(1)
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
## BONUS 2
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Montez le disque attaché à votre machine pour y découvrir fichier contenant le
|
2019-02-27 01:41:37 +00:00
|
|
|
|
*token* bonus.
|
2018-02-21 00:25:47 +00:00
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
**adlin $(cat bonus2) | curl -d @- https://172.23.200.1/testdisk**
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-20 12:04:37 +00:00
|
|
|
|
Voir aussi: **mount**(8)
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
## STAGE 4
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2019-03-04 08:00:22 +00:00
|
|
|
|
Configurez le résolveur DNS de votre système, afin d'utiliser le serveur de
|
|
|
|
|
noms de la DMZ. Nous cherchons un token caché dans le domaine
|
|
|
|
|
**adlin.nemunai.re**.
|
2018-02-21 00:25:47 +00:00
|
|
|
|
|
2019-03-04 08:00:22 +00:00
|
|
|
|
**dig +short adlin.nemunai.re** *entry-type* **| adlin token4 | curl -d @- https://172.23.200.1/challenge**
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
Voir aussi: **resolv.conf**(5), **dig**(1)
|
|
|
|
|
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
## STAGE 5
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Vous pouvez résoudre des noms de domaines, mais vous n'avez pas encore accès à
|
|
|
|
|
internet ? Consultez la topologie pour vous ajouter une route vers la
|
|
|
|
|
connaissance !
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
**adlin token5 | curl -d @- https://adlin.nemunai.re/challenge**
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Voir aussi : **ip-link**(8), **udhcpc**(1), **traceroute**(8), **tcpdump**(1), **sysctl**(8)
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
## BONUS 3
|
2018-02-21 00:25:47 +00:00
|
|
|
|
|
|
|
|
|
Parmi les services mis à disposition dans la DMZ, se trouve un serveur de
|
|
|
|
|
transport de courriels (MTA). Utilisez-le pour envoyer votre meilleure histoire
|
|
|
|
|
drôle : des points bonus faciles !
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
**sendmail** [*OPTIONS*] **adlin@nemunai.re**
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
Voir aussi : **sendmail**(1)
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
## STAGE 6
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Générez une clef SSH robuste puis soumettez-là :
|
|
|
|
|
|
|
|
|
|
**adlin $(cat ~/.ssh/***id_ssh.pub***) | curl -d @- https://adlin.nemunai.re/sshkeys**
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Voir aussi : **ssh-keygen**(1)
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
## STAGE 7
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Pouvez-vous vous connecter ?
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
**ssh root@adlin.nemunai.re**
|
2018-02-21 00:25:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# VALEUR RENVOYÉE
|
|
|
|
|
|
|
|
|
|
Votre niveau d'avancement dans ce premier TP permet d'établir la première note
|
2019-02-27 01:41:37 +00:00
|
|
|
|
de ce cours. Les autres notes seront établies sur vos réponses aux questions de
|
|
|
|
|
cours sur Epitaf, les rendus des deux projets que l'on commencera aux prochains
|
|
|
|
|
TP.
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2018-02-21 00:25:47 +00:00
|
|
|
|
Vous n'êtes pas tenus de réaliser l'ensemble des étapes, ni de les faire dans
|
|
|
|
|
l'ordre : votre performance la plus haute sera retenue (+ les éventuels bonus
|
|
|
|
|
débloqués). Gardez cependant en tête que les étapes suivent un ordre, a priori,
|
|
|
|
|
logique, qui devrait correspondre à votre évolution.
|
2018-02-20 09:31:03 +00:00
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
|
2018-02-20 09:31:03 +00:00
|
|
|
|
# VOIR AUSSI
|
|
|
|
|
|
|
|
|
|
* <http://www.opsschool.org/> - Ops School Curriculum
|
|
|
|
|
* The Practice of System and Network Administration - T. Limoncelli, C. Hogan, S. Chalup
|
|
|
|
|
* Programmation système en C sous Linux - Christophe Blaess – Eyrolles
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# HISTORIQUE
|
|
|
|
|
|
2019-02-27 01:41:37 +00:00
|
|
|
|
2019 - Deuxième édition du cours à destination des SRS 2020.
|
2019-03-04 08:00:22 +00:00
|
|
|
|
|
2018-02-20 09:31:03 +00:00
|
|
|
|
2018 - Première édition du cours à destination des SRS 2019.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# CONFORMITÉ
|
|
|
|
|
|
|
|
|
|
Certifié non conforme.
|