2.91 Challenge 1: Operation "Dead Drop"

🕵️ Briefing Mission

« Agent, nous avons un problème. Nos informateurs doivent nous transmettre des documents sensibles récupérés sur les serveurs cibles (Flags). Cependant, si un informateur est compromis, il ne doit jamais pouvoir voir ce que les autres ont déposé, ni même savoir si le dossier est vide ou plein. Nous avons besoin d'une "Boîte aux lettres morte" (Dead Drop) numérique. »

Votre mission : Configurer un système d'exfiltration sécurisé et automatisé sur le serveur.

Ce challenge combine : Sécurité des permissions, Scripting Shell, Journalisation (Logs) et Cron.

1. La "Dead Drop" (Permissions avancées)

Vous devez créer une infrastructure pour un groupe d'utilisateurs nommé informateurs et un compte handler (l'officier traitant).

Structure : - /srv/intel/dropzone/ : La zone de dépôt aveugle.

Objectifs de sécurité (Hardening) : 1. Le dossier appartient à handler et au groupe informateurs. 2. Les informateurs peuvent entrer (cd) dans le dossier. 3. Les informateurs peuvent déposer (touch, cp) des fichiers (exfiltration). 4. Les informateurs ne doivent JAMAIS pouvoir lister (ls) le contenu (Confidentialité stricte). 5. Seul handler a le contrôle total.

Indice Hacker

Sur un répertoire, la permission r permet de lire la liste des fichiers. La permission x permet d'accéder aux inodes (traverser/utiliser). Que se passe-t-il si on donne x sans r ?

2. Le "Cleaner" (Automatisation)

Pour éviter que la zone de dépôt ne devienne un dépotoir, et pour sécuriser les données rapidement, un script doit tourner en tâche de fond.

Créez le script /usr/local/bin/intel_sweep.sh :

  1. Il scanne /srv/intel/dropzone/.
  2. Si un fichier est détecté (le "Flag") :
    • Journalisation : Il envoie une alerte discrète au syslog (priorité auth.notice) : [OP_DEAD_DROP] Intel received: <nom_du_fichier>.
    • Sécurisation : Il déplace immédiatement le fichier vers /srv/intel/secure_vault/ (accessible uniquement par handler).
    • Horodatage : Il renomme le fichier avec un timestamp précis (ex: flag_20251212_2342.txt) pour l'audit.

3. Persistence (Cron)

Le script doit être exécuté toutes les minutes par le handler (ou root).

Pentest de votre solution (Validation)

  1. Infiltration : Connectez-vous avec un utilisateur du groupe informateurs.
  2. Reconnaissance : Essayez de lister le contenu : ls -la /srv/intel/dropzone/. ➜ Résultat attendu : Permission denied (Vous êtes aveugle).
  3. Exfiltration : Déposez un fichier : touch /srv/intel/dropzone/secret_plans.pdf. ➜ Résultat attendu : Pas d'erreur.
  4. Attendez une minute.
  5. Vérification Admin : En tant que root/handler, vérifiez /srv/intel/secure_vault/. Le fichier doit y être, renommé.
  6. Audit : Vérifiez les logs (logread). ➜ alpine auth.notice handler: [OP_DEAD_DROP] Intel received: secret_plans.pdf