
Laboratoire Blue Team axé sur l'analyse des journaux d'accès web Apache pour détecter le brute forcing de répertoires et l'activité de scan web.
Laboratoire Blue Team axé sur l'analyse des logs du serveur HTTP Apache pour détecter les activités de scan web, l'énumération de répertoires et les tentatives de traversée de chemin.
Installer et exposer un serveur web Apache dans un environnement de laboratoire isolé, simuler un scan web automatisé à l'aide d'outils standard de l'industrie, et analyser les logs générés du point de vue d'une Blue Team — en identifiant les schémas d'attaque, les signatures d'outils et les indicateurs d'activité de reconnaissance malveillante.
| Composant | Détails |
|---|---|
| VM attaquante | Kali Linux |
| VM cible | Debian 13 |
| Réseau | NAT Network (VirtualBox) |
| IP attaquante | 10.0.2.5 |
| IP cible | 10.0.2.15 |
| Serveur web | Apache 2.4.67 |
| Sources de logs | /var/log/apache2/access.log, /var/log/apache2/error.log |
| Port HTTP | 80 |
Confirmé que le serveur HTTP Apache était actif et en cours d'exécution sur la machine cible.```bash sudo systemctl status apache2 --no-pager
Résultat : `active (running)` depuis mer. 2026-05-06 21:09:17. Apache 2.4.67 (Debian), PID principal 3164, 55 tâches actives.
---
### 2. Identification de l'IP cible
Adresse IP de la machine cible Debian identifiée.```bash
ip a
IP cible : 10.0.2.15/24 — interface enp0s3
Connectivité réseau vérifiée entre la machine attaquante Kali et la cible Debian.```bash ping -c 4 10.0.2.15
**Résultat :** 4 paquets transmis, 4 reçus, 0% perte de paquets. RTT min/moy/max : 0.495/1.288/2.139ms.
---
### 4. Test du navigateur Apache
Accès au serveur Apache depuis le navigateur Kali pour confirmer la disponibilité du service HTTP.```
http://10.0.2.15
Résultat : Page par défaut Apache2 Debian chargée avec succès — confirmant que le serveur web était joignable et répondait aux requêtes HTTP.
Création de répertoires et de pages de test sur le serveur cible pour simuler une structure d'application web réaliste.```bash sudo mkdir -p /var/www/html/admin sudo mkdir -p /var/www/html/backup sudo mkdir -p /var/www/html/login echo "
Directories created: `/admin`, `/backup`, `/login`
---
### 6. Nikto Scan
Effectué un scan Nikto sur le serveur web cible pour simuler une recherche automatisée de vulnérabilités.```bash
nikto -h http://10.0.2.15
Nikto v2.5.0 — Heure de début : 2026-05-06 20:16:56 — Heure de fin : 20:17:13 (17 secondes)
Résultats rapportés par Nikto :
X-Frame-Options — protection contre le clickjacking absenteX-Content-Type-Options — protection contre le sniffing MIME absente/admin/, /backup/, /login//admin/index.html — Page de connexion admin accessibleLancement de Dirb pour effectuer un brute force de répertoires sur le serveur web cible.```bash dirb http://10.0.2.15
**DIRB v2.22 — Début : mer. 6 mai 2026 20:19:50 — Fin : 20:19:59 2026 (9 secondes)**
Liste de mots utilisée : `/usr/share/dirb/wordlists/common.txt` — 4612 mots testés
Répertoires et fichiers trouvés :
| URL | Code | Size |
| --------------------------------- | ---- | ----- |
| http://10.0.2.15/index.html | 200 | 10703 |
| http://10.0.2.15/server-status | 403 | 314 |
| http://10.0.2.15/admin/ | 200 | — |
| http://10.0.2.15/admin/index.html | 200 | 21 |
| http://10.0.2.15/backup/ | 200 | — |
| http://10.0.2.15/login/ | 200 | — |
| http://10.0.2.15/login/index.html | 200 | 20 |
**Attention :** le listage du répertoire `/backup/` est activé — aucun fichier index présent, le contenu du répertoire est directement navigable.
**Total téléchargé :** 13836 octets — **Trouvé :** 4 ressources
---
### 8. Analyse des journaux d'accès
Inspecté les entrées brutes du journal d'accès pour identifier le schéma d'attaque.```bash
sudo cat /var/log/apache2/access.log
Exemples d'entrées de la phase de scan Nikto (21:18:32) :``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.tar.bz2 HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10_0_2_15.gz HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.sql HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.zip HTTP/1.1" 404 527
Exemples d'entrées de la phase de scan Dirb (21:21:34) :```
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xsql HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xxx HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zimbra HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zoom HTTP/1.1" 404 472
Motif observé : Des centaines de requêtes séquentielles dans la même seconde, toutes ciblant des chemins inexistants — cohérent avec un comportement de scan automatisé.
Filtré toutes les entrées du journal d'accès provenant de l'IP de l'attaquant.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | head -30
Schémas supplémentaires observés :
- Nikto a tenté d'accéder aux fichiers de sauvegarde en utilisant l'IP du serveur comme nom de fichier (par ex., `10.0.2.15.tar.bz2`, `10.0.2.15.sql`, `10.0.2.15.zip`)
- Dirb a parcouru des listes de mots ordonnées alphabétiquement ciblant chaque répertoire découvert
- Les deux outils ont généré des requêtes à la vitesse machine — plusieurs entrées par seconde depuis la même plage de ports source
---
### 10. Distribution des codes d'état HTTP
Requêtes comptées par code de réponse HTTP pour quantifier la surface d'attaque.```bash
sudo grep " 200 " /var/log/apache2/access.log | wc -l
sudo grep " 403 " /var/log/apache2/access.log | wc -l
sudo grep " 404 " /var/log/apache2/access.log | wc -l
| Code HTTP | Signification | Nombre |
|---|---|---|
| 200 | OK — ressource trouvée et servie | 177 |
| 403 | Interdit — la ressource existe mais accès refusé | 26 |
| 404 | Introuvable — la ressource n'existe pas | 21740 |
Total d’erreurs 404 : 21 740 — la grande majorité des requêtes a ciblé des chemins qui n’existent pas, ce qui est la caractéristique d’un brute force automatisé de répertoires.
Comptage de toutes les entrées du journal d’accès provenant de l’attaquant.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | wc -l
**Total requests from 10.0.2.5: 21,962**
---
### 12. Identification des signatures d'outils
Recherche de signatures spécifiques aux scanners dans le journal d'accès.