Skip to content

Instantly share code, notes, and snippets.

@fvln
Created January 23, 2024 20:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fvln/938c227761ee6e644b634c8ede33579c to your computer and use it in GitHub Desktop.
Save fvln/938c227761ee6e644b634c8ede33579c to your computer and use it in GitHub Desktop.

BSI - DS du semestre 1

Aspects techniques

Connectez-vous en SSH au serveur indiqué en début de séance (avec putty, la commande ssh ou autre). Vingt comptes sont disponibles, de user01 à user20 ; le mot de passe est égal au login. Utilisez bien chacun un compte différent.

Instructions

  • Les questions sont majoritairement indépendantes et peuvent être abordées dans n'importe quel ordre.
  • Toutes les ressources techniques sont autorisées.
  • La plupart des questions acceptent plusieurs réponses, car il y a souvent plusieurs manières de faire sous Linux.
  • Certaines questions ne nécessitent aucune manipulation dans la session SSH. Mais vous avez le droit de tester tout ce que vous voulez !

Questions

Des points sont réservés à la clarté des réponses et aux explications. N'hésitez pas à joindre des captures d'écran.

Démons et Logs

  1. Le programme sleep infinity tourne en tâche de fond, exécuté par votre utilisateur. Comment faire pour lui envoyer un signal SIGKILL afin de l'arrêter ?

  2. Vous souhaitez sauvegarder votre répertoire utilisateur toutes les semaines sur un serveur distant. Comment ajouter une tâche planifiée (avec cron) qui exécute la commande duplicity full /home/userXX tous les lundis à 2h du matin ? (pas besoin de tester, la commande duplicity n'est pas installée sur ce serveur).

  3. Vers quel serveur distant les logs liés à l'authentification sont-ils envoyés par rsyslog ?

Indice : exécuter man rsyslog.conf et chercher Remote machine

Exécution de commandes

  1. Dans votre répertoire utilisateur, taper la commande suivante : compute_pi.sh. Pourquoi avez-vous une erreur command not found?
user25@pc-91:~$ compute_pi.sh
-bash: compute_pi.sh: command not found
  1. Proposer deux méthodes permettant d'exécuter ce script sans avoir l'erreur ci-dessus.

  2. Qu'exécute le shell lorsque vous tapez la commande hello (script, binaire exécutable, alias, commande du shell, etc.) ? Comment l'avez-vous vérifié ?

  3. En jetant un coup d'oeil par-dessus l'épaule du sysadmin, vous apercevez que son PATH est défini ainsi. Comment pouvez-vous exploiter cette configuration pour obtenir un accès root sur le serveur ?

root@pc-473:~# echo $PATH
/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  1. Vous cherchez un fichier de configuration contenant le mot-clé "PermitRootLogin" mais la commande grep -R PermitRootLogin / affiche trop d'erreurs "Permission non accordée" que vous ne souhaitez pas voir. Comment modifier cette commande pour ne plus voir les erreurs ?

Manipulation de fichiers

  1. Un stagiaire a malencontreusement créé un fichier nommé $HOME dans votre répertoire utilisateur. Avec quelle commande pouvez-vous le supprimer sans que $HOME soit interprété comme une variable ? (justifiez votre réponse)

  2. Dans votre répertoire utilisateur : la commande ./compute_euler.sh (qui calcule les décimales de la constante d'Euler) ne semble pas fonctionner. Comment résoudre le problème ?

user25@pc-91:~$ ./compute_euler.sh
-bash: ./compute_euler.sh: Permission denied
  1. En jetant un coup d'oeil par-dessus l'épaule du sysadmin, vous apercevez ce contenu dans son répertoire utilisateur. Décrivez les bits de mode (permissions) accordés au fichier run_backup.sh.
root@pc-473:~# ls -la /root/
total 48
drwxr-xr-x  3 root root 4096 janv.  5 23:20 .
drwxr-xr-x 18 root root 4096 déc.  26 23:20 ..
-rw-------  1 root root    5 déc.  26 23:51 .bash_history
-rw-r--r--  1 root root  570 janv. 31  2010 .bashrc
-rw-r--r--  1 root root  148 août  17  2015 .profile
-rwsrwxrwx  1 root root   39 Jan  6  2022 run_backup.sh
-rw-------  1 root root 9355 janv.  5 23:20 .viminfo
  1. Suite de la question précédente : proposez un moyen pour obtenir les droits root (pas besoin de tester sur le serveur, la faille n'est pas présente).

  2. Qui peut modifier le fichier /var/log/lastlog ci-dessous ?

user25@pc-91:~$ ls -la /var/log/lastlog
-rw-rw-r-- 1 root utmp 299884 Jan  9 21:07 /var/log/lastlog

Paquets

  1. Avec apt, comment savoir quelles sont les dépendances du paquet libreoffice ?

  2. Avec dpkg, extraire le nom du mainteneur du paquet beef_1.0.2-3_amd64.deb présent dans votre répertoire personnel ?

Droits d'accès et utilisateurs

  1. Expliquer pourquoi le fichier /etc/passwd est accessible en lecture pour tous les utilisateurs.

  2. Comment savoir à quel(s) groupe(s) appartient votre utilisateur ?

  3. Comment afficher la liste des utilisateurs ayant ouvert une session sur le serveur ?

  4. Un hacker péruvien a obtenu un accès au serveur et a créé un compte sur le système pour pérenniser son accès. Où peut-on identifier ce compte ?

  5. Si vous exécutez le script suivant qui appartient à l'utilisateur root, sera-t-il exécuté avec ou sans les privilèges du root ? Pourquoi ?

user25@pc-91:~$ ls -la /tmp/script.sh
-rwxrwxr-x 1 root root 215 Jan  9 21:07 /tmp/script.sh

Compilation

  1. En inspectant le contenu du fichier Makefile, quel est le résultat attendu de la commande make myfile.txt ?

  2. Exécutez la commande make myfile.txt. Pourquoi le fichier myfile.txt est-il toujours vide ?

root@pc-91:~/skel# ls -la
(...)
-rw-r--r-- 1 root root   143 Jan  9 21:34  Makefile
-rw-r--r-- 1 root root     0 Jan  9 21:38  myfile.txt
-rw-r--r-- 1 root root   112 Jan  9 21:36  myfile.txt.enc

Divers

  1. Que contient le fichier caché ?

  2. En utilisant par exemple la configuration des ddépôts APT, identifiez la version de Debian installée sur le serveur.

  3. En utilisant systemctl : le service emergency est-il en cours d'exécution ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment