
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.
#### Signature Nikto```bash
sudo grep "nikto" /var/log/apache2/access.log | head -5
Résultat:``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "PUT /nikto-test-pk9VPSjF.html HTTP/1.1" 405 590 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
Nikto a créé un fichier de test (`nikto-test-pk9VPSjF.html`) via une requête PUT pour vérifier les permissions d'écriture sur le serveur.
#### Signature Dirb```bash
sudo grep "DirBuster\|dirb" /var/log/apache2/access.log | head -5
Résultat :``` 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:32 -0300] "GET /login/dirb HTTP/1.1" 404 472
Le propre nom de Dirb apparaît dans la liste de mots qu'il utilise, laissant une signature claire dans les journaux.
---
### 13. Analyse des journaux d'erreurs
Consulté le journal d'erreurs Apache pour les événements de sécurité côté serveur déclenchés par le scan.```bash
sudo cat /var/log/apache2/error.log
Critical events found:
Nikto a tenté d'accéder à des fichiers système sensibles en traversant les limites de répertoire :``` [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../../../etc/shadow) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini) [client 10.0.2.5] AH10244: invalid URI path (/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../boot.ini) [client 10.0.2.5] AH10244: invalid URI path (/../../../../winnt/repair/sam._)
Cibles incluses : `/etc/passwd`, `/etc/shadow`, `boot.ini`, `win.ini`, base de données SAM Windows — toutes les cibles classiques de traversée de chemin.
#### Méthodes HTTP invalides
Nikto a testé des méthodes HTTP non standard pour identifier les mauvaises configurations :```
[client 10.0.2.5] AH00135: Invalid method in request DIWHWPJH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request DEBUG / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request TRACK / HTTP/1.0
[client 10.0.2.5] AH00135: Invalid method in request SEARCH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request INDEX / HTTP/1.1
Les deux outils ont tenté d'accéder aux fichiers de configuration protégés par Apache :``` [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htaccess [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/server-status [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/admin/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/login/.htpasswd
#### Traversée de chemin spécifique à VMware
Nikto a également testé l'exposition de l'infrastructure VMware :```
[client 10.0.2.5] AH10244: invalid URI path (/sdk/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/vmware/hostd/vmInventory.xml)
Les journaux d'accès et d'erreurs ont révélé un schéma d'attaque automatisé en deux phases provenant d'une seule adresse IP (10.0.2.5) ciblant le serveur web Apache sur le port 80.
Nikto a effectué 8 102 requêtes en 17 secondes, testant des vulnérabilités web connues, des en-têtes de sécurité manquants, des méthodes HTTP dangereuses et des vecteurs de traversée de répertoires. Le journal des erreurs a capturé plusieurs tentatives d'accès à /etc/passwd, /etc/shadow, boot.ini et aux fichiers SAM Windows — toutes bloquées par la validation d'URI d'Apache. Nikto a également tenté une requête PUT pour créer un fichier de test sur le serveur, confirmant qu'il testait les permissions d'écriture.
Dirb a testé 4 612 mots de sa liste de mots courante contre la racine et chaque sous-répertoire découvert. Cela a généré l'essentiel des 21 740 erreurs 404 observées. Dirb a identifié avec succès /admin/, /backup/ et /login/ comme répertoires valides. Le répertoire /backup/ s'est avéré avoir le listage des répertoires activé — une configuration erronée significative qui permettrait à un attaquant de parcourir son contenu directement.
La concentration de 21 962 requêtes HTTP provenant d'une seule adresse IP source en environ 7 minutes, combinée à la présence de tentatives de traversée de répertoires, de méthodes HTTP invalides et de signatures spécifiques aux outils dans les journaux d'accès et d'erreurs, constitue une preuve claire d'une activité de reconnaissance web automatisée.
Aucune exploitation réussie n'a été observée. Toutes les tentatives de traversée de répertoires ont été rejetées par le moteur de validation d'URI d'Apache. L'accès aux fichiers protégés (.htpasswd, .htaccess, server-status) a été refusé par la configuration du serveur.
Sur la base des constatations, les contrôles suivants sont recommandés :
X-Frame-Options, X-Content-Type-Options, Content-Security-Policy/backup//server-status au localhost uniquementerror.log pour les événements AH10244 (chemin URI invalide)/admin/, /backup/) de l'exposition publiqueServerTokens Prod, ServerSignature Off)Ce laboratoire a démontré comment les outils de scan web automatisés laissent des schémas distincts et identifiables à la fois dans les journaux d'accès et d'erreurs Apache. En corrélant le volume d'erreurs 404, la présence de tentatives de traversée de répertoires dans error.log, les requêtes de méthodes HTTP invalides et les signatures spécifiques aux outils dans les chemins de requête et les chaînes user-agent, il a été possible de reconstruire la chronologie complète de l'attaque et d'identifier les outils utilisés — sans aucune connaissance préalable des actions de l'attaquant.
L'exercice renforce l'importance de la surveillance des journaux du serveur web, de la configuration des en-têtes de sécurité et des contrôles d'accès aux répertoires en tant que pratiques fondamentales de la Blue Team pour les infrastructures exposées au web.
Laboratoire Blue Team axé sur l'analyse des logs du serveur Apache pour détecter les scans web, l'énumération de répertoires et les tentatives de traversée de répertoires.
Installer et exposer un serveur web Apache dans un environnement de laboratoire isolé, simuler des scans automatisés à l'aide d'outils largement utilisés dans les tests de sécurité, et analyser les logs générés d'un point de vue Blue Team — en identifiant les schémas d'attaque, les signatures d'outils et les indicateurs d'activité de reconnaissance malveillante.
Confirmé que le serveur Apache était actif et en cours d'exécution sur la machine cible.```bash sudo systemctl status apache2 --no-pager
Resultado : `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 de la cible
L'adresse IP de la machine Debian cible a été identifiée.```bash
ip a
IP de la cible: 10.0.2.15/24 — interface enp0s3
Connectivité réseau vérifiée entre Kali et Debian.```bash ping -c 4 10.0.2.15
**Résultat :** 4 paquets transmis, 4 reçus, 0% de perte. RTT min/moy/max : 0.495/1.288/2.139ms.
---
### 4. Test d'Apache dans le Navigateur
Accédé au serveur Apache depuis le navigateur de Kali pour confirmer la disponibilité du service HTTP.```
http://10.0.2.15
Résultat : Page par défaut d'Apache2 Debian chargée avec succès — confirmant que le serveur web était accessible et répondait aux requêtes HTTP.
Des répertoires et des pages de test ont été créés 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 "
Répertoires créés: `/admin`, `/backup`, `/login`
---
### 6. Scan avec Nikto
Nikto a été exécuté contre le serveur web cible pour simuler un scan automatisé de vulnérabilités.```bash
nikto -h http://10.0.2.15
Nikto v2.5.0 — Début : 2026-05-06 20:16:56 — 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 reniflage MIME absente/admin/, /backup/, /login//admin/index.html — page d'administration accessible publiquementExécution de Dirb pour effectuer une attaque par force brute de répertoires sur le serveur web cible.```bash dirb http://10.0.2.15
**DIRB v2.22 — Début: Wed May 6 20:19:50 2026 — Fin: 20:19:59 2026 (9 secondes)**
Wordlist utilisée: `/usr/share/dirb/wordlists/common.txt` — 4612 mots testés
Répertoires et fichiers trouvés:
| URL | Code | Taille |
| --------------------------------- | ---- | ------ |
| 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 |
**Avertissement:** Le répertoire `/backup/` a la liste activée — sans fichier d'index, le contenu du répertoire peut être navigué directement.
**Total téléchargé:** 13836 bytes — **Trouvés:** 4 ressources
---
### 8. Analyse du Journal d'Accès
Inspection des entrées brutes du journal d'accès pour identifier le schéma d'attaque.```bash
sudo cat /var/log/apache2/access.log
Entradas da fase de scan do 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
Entrées de la phase de scan de 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 dirigées vers des chemins inexistants — comportement cohérent avec un balayage automatisé.
Toutes les entrées du journal d'accès provenant de l'IP de l'attaquant ont été filtrées.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | head -30
Padrões adicionais observados:
- O Nikto tentou acessar arquivos de backup usando o IP do servidor como nome de arquivo (ex: `10.0.2.15.tar.bz2`, `10.0.2.15.sql`, `10.0.2.15.zip`)
- O Dirb iterou por wordlists em ordem alfabética direcionando cada diretório descoberto
- Ambas as ferramentas geraram requisições em velocidade de máquina — múltiplas entradas por segundo na mesma faixa de porta de origem
---
### 10. Distribuição de Códigos de Status HTTP
Contabilizadas as requisições por código de resposta HTTP para quantificar a superfície de ataque.```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
| Código HTTP | Significado | Quantidade |
|---|---|---|
| 200 | OK — ressource trouvée et livrée | 177 |
| 403 | Interdit — ressource existe mais accès refusé | 26 |
| 404 | Non trouvé — ressource inexistante | 21.740 |
Total d'erreurs 404 : 21.740 — l'écrasante majorité des requêtes étaient dirigées vers des chemins inexistants, ce qui est la caractéristique déterminante d'un brute force automatisé de répertoires.
Toutes les entrées du journal d'accès provenant de l'attaquant ont été comptabilisées.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | wc -l
**Total de requisições de 10.0.2.5: 21.962**
---
### 12. Identification de signature des outils
Recherche de signatures spécifiques des scanners dans le journal d'accès.
#### Signature du Nikto```bash
sudo grep "nikto" /var/log/apache2/access.log | head -5
Résultat:``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "PUT /nikto-test-pk9VPSjF.html HTTP/1.1" 405 590 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
Nikto a créé un fichier de test (`nikto-test-pk9VPSjF.html`) via une requête PUT pour vérifier les permissions d'écriture sur le serveur.
#### Signature de Dirb```bash
sudo grep "DirBuster\|dirb" /var/log/apache2/access.log | head -5
Résultat :``` 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:32 -0300] "GET /login/dirb HTTP/1.1" 404 472
O próprio nome do Dirb aparece na wordlist que ele utiliza, deixando uma assinatura clara nos logs.
---
### 13. Analyse du Log d'Erreurs
Inspecté le log d'erreurs d'Apache pour identifier des événements de sécurité générés par le scan.```bash
sudo cat /var/log/apache2/error.log
Événements critiques rencontrés :
Nikto a tenté d'accéder à des fichiers sensibles du système en traversant les limites de répertoire :``` [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../../../etc/shadow) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini) [client 10.0.2.5] AH10244: invalid URI path (/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../boot.ini) [client 10.0.2.5] AH10244: invalid URI path (/../../../../winnt/repair/sam._)
Les cibles comprenaient : `/etc/passwd`, `/etc/shadow`, `boot.ini`, `win.ini`, la base SAM de Windows — toutes des cibles classiques de path traversal.
#### Méthodes HTTP invalides
Nikto a testé des méthodes HTTP non standard pour identifier des configurations incorrectes :```
[client 10.0.2.5] AH00135: Invalid method in request DIWHWPJH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request DEBUG / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request TRACK / HTTP/1.0
[client 10.0.2.5] AH00135: Invalid method in request SEARCH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request INDEX / HTTP/1.1
Les deux outils ont tenté d'accéder à des fichiers de configuration protégés par Apache :``` [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htaccess [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/server-status [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/admin/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/login/.htpasswd
#### Path Traversal Spécifique pour VMware
Nikto a également testé l'exposition de l'infrastructure VMware :```
[client 10.0.2.5] AH10244: invalid URI path (/sdk/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/vmware/hostd/vmInventory.xml)
Les logs d'accès et d'erreurs ont révélé un schéma d'attaque automatisé en deux phases, provenant d'une seule adresse IP (10.0.2.5) ciblant le serveur Apache sur le port 80.
Nikto a effectué 8 102 requêtes en 17 secondes, testant des vulnérabilités web connues, des en-têtes de sécurité manquants, des méthodes HTTP dangereuses et des vecteurs de path traversal. Le log d'erreurs a enregistré de multiples tentatives d'accès à /etc/passwd, /etc/shadow, boot.ini et à la base SAM de Windows — toutes bloquées par la validation d'URI d'Apache. Nikto a également tenté une requête PUT pour créer un fichier de test sur le serveur, confirmant qu'il vérifiait les permissions d'écriture.
Dirb a testé 4 612 mots de sa wordlist commune contre le répertoire racine et chaque sous-répertoire découvert. Cela a généré la majeure partie des 21 740 erreurs 404 observées. Dirb a identifié avec succès /admin/, /backup/ et /login/ comme répertoires valides. Le répertoire /backup/ a été trouvé avec le listage activé — une configuration incorrecte significative qui permettrait à un attaquant de naviguer dans son contenu directement.
La concentration de 21 962 requêtes HTTP provenant d'une seule IP source en environ 7 minutes, combinée à la présence de tentatives de path traversal, de requêtes avec des méthodes HTTP invalides et de signatures spécifiques d'outils dans les logs d'accès et d'erreurs, constitue une preuve claire d'activité automatisée de reconnaissance web.
Aucune exploitation réussie n'a été observée. Toutes les tentatives de path traversal ont été rejetées par le mécanisme de validation d'URI d'Apache. L'accès aux fichiers protégés (.htpasswd, .htaccess, server-status) a été refusé par la configuration du serveur.
Sur la base des conclusions, les contrôles suivants sont recommandés :
X-Frame-Options, X-Content-Type-Options, Content-Security-Policy/backup//server-status au localhost uniquementerror.log pour les événements AH10244 (URI path invalide)/admin/, /backup/)ServerTokens Prod, ServerSignature Off)Ce laboratoire a démontré comment les outils de scan web automatisé laissent des motifs distincts et identifiables dans les logs d'accès et d'erreurs d'Apache. En corrélant le volume d'erreurs 404, la présence de tentatives de path traversal dans error.log, les requêtes avec des méthodes HTTP invalides et les signatures spécifiques d'outils dans les chemins de requête et les chaînes user-agent, il a été possible de reconstruire la chronologie complète de l'attaque et d'identifier les outils utilisés — sans aucune connaissance préalable des actions de l'attaquant.
L'exercice renforce l'importance de la surveillance des logs des serveurs web, de la configuration des en-têtes de sécurité et des contrôles d'accès aux répertoires en tant que pratiques fondamentales de Blue Team pour l'infrastructure exposée au web.
| Indicateur | Valeur |
|---|
| IP de l'attaquant | 10.0.2.5 |
| IP cible | 10.0.2.15 |
| Port cible | 80 (HTTP) |
| Serveur web | Apache 2.4.67 (Debian) |
| Outils identifiés | Nikto v2.5.0, Dirb v2.22 |
| Total des requêtes de l'attaquant | 21,962 |
| Réponses HTTP 200 | 177 |
| Réponses HTTP 403 | 26 |
| Réponses HTTP 404 | 21,740 |
| Répertoires découverts | /admin/, /backup/, /login/ |
| Tentatives de traversée | Multiples (toutes bloquées) |
| Méthodes HTTP invalides testées | TRACK, DEBUG, SEARCH, INDEX |
| Fichiers sensibles ciblés | /etc/passwd, /etc/shadow, .htpasswd, .htaccess |
| Exploitation réussie | Aucune |
| Fenêtre temporelle | 21:14 à 21:21 (2026-05-06) |
| Composant | Détails |
|---|
| VM Attaquante | Kali Linux |
| VM Cible | Debian 13 |
| Réseau | NAT Network (VirtualBox) |
| IP Attaquant | 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 |
| Indicateur | Valeur |
|---|
| IP de l'attaquant | 10.0.2.5 |
| IP de la cible | 10.0.2.15 |
| Port cible | 80 (HTTP) |
| Serveur web | Apache 2.4.67 (Debian) |
| Outils identifiés | Nikto v2.5.0, Dirb v2.22 |
| Total requêtes de l'attaquant | 21 962 |
| Réponses HTTP 200 | 177 |
| Réponses HTTP 403 | 26 |
| Réponses HTTP 404 | 21 740 |
| Répertoires découverts | /admin/, /backup/, /login/ |
| Tentatives de path traversal | Multiples (toutes bloquées) |
| Méthodes HTTP invalides testées | TRACK, DEBUG, SEARCH, INDEX |
| Fichiers sensibles ciblés | /etc/passwd, /etc/shadow, .htpasswd, .htaccess |
| Exploitation réussie | Aucune |
| Fenêtre temporelle | 21h14 à 21h21 (2026-05-06) |