Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
apache-web-log-analysis-lab — 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. | Kitploit
Outils/GitHubGitHub/pedrofbrm/apache-web-log-analysis-lab
Sécurité WebApprentissage et ÉducationAnalyse de JournauxLabs et Pratique
GitHubpedrofbrm/apache-web-log-analysis-lab

apache-web-log-analysis-lab

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.

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
il y a 3 moisPas encore vérifié

Laboratoire d'analyse des logs Web Apache

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.


Objectif

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.


Environnement

ComposantDétails
VM attaquanteKali Linux
VM cibleDebian 13
RéseauNAT Network (VirtualBox)
IP attaquante10.0.2.5
IP cible10.0.2.15
Serveur webApache 2.4.67
Sources de logs/var/log/apache2/access.log, /var/log/apache2/error.log
Port HTTP80

Étapes effectuées

1. Validation du service Apache

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

root@kitploit:~
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


3. Test de connectivité

Connectivité réseau vérifiée entre la machine attaquante Kali et la cible Debian.```bash ping -c 4 10.0.2.15

root@kitploit:~
**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.


5. Configuration du contenu web

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 "

Admin Panel

" | sudo tee /var/www/html/admin/index.html echo "

Login Page

" | sudo tee /var/www/html/login/index.html

root@kitploit:~
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 :

  • Serveur : Apache/2.4.67 (Debian)
  • En-tête manquant : X-Frame-Options — protection contre le clickjacking absente
  • En-tête manquant : X-Content-Type-Options — protection contre le sniffing MIME absente
  • Fuite ETag : Le serveur peut divulguer les numéros d'inode via les ETags (CVE-2003-1418)
  • Méthodes autorisées : GET, POST, OPTIONS, HEAD
  • Répertoires intéressants trouvés : /admin/, /backup/, /login/
  • Confirmé : /admin/index.html — Page de connexion admin accessible
  • Total des requêtes : 8102 en 17 secondes

7. Analyse Dirb

Lancement de Dirb pour effectuer un brute force de répertoires sur le serveur web cible.```bash dirb http://10.0.2.15

root@kitploit:~
**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

root@kitploit:~
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é.


9. Schéma de scan par IP source

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

root@kitploit:~
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 HTTPSignificationNombre
200OK — ressource trouvée et servie177
403Interdit — la ressource existe mais accès refusé26
404Introuvable — la ressource n'existe pas21740

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.


11. Total des requêtes par IP attaquante

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

root@kitploit:~
**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"

root@kitploit:~
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

root@kitploit:~
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:

Tentatives de traversée de chemin (Directory Traversal)

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._)

root@kitploit:~
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

Tentatives d'accès aux fichiers protégés

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

root@kitploit:~
#### 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)

Analyse

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.

Phase 1 — Scan de Vulnérabilités (Nikto, 21:14 à 21:18)

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.

Phase 2 — Énumération de Répertoires (Dirb, 21:19 à 21:21)

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.

Évaluation Combinée

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.


Indicateurs Clés


Recommandations Défensives

Sur la base des constatations, les contrôles suivants sont recommandés :

  • Ajouter les en-têtes de sécurité à la configuration Apache : X-Frame-Options, X-Content-Type-Options, Content-Security-Policy
  • Désactiver les en-têtes ETag pour éviter la fuite d'informations d'inode
  • Restreindre les méthodes HTTP autorisées à GET, POST, HEAD uniquement
  • Désactiver le listage des répertoires pour tous les répertoires, en particulier /backup/
  • Restreindre l'accès à /server-status au localhost uniquement
  • Mettre en œuvre une limitation de débit pour bloquer les adresses IP générant des requêtes excessives par seconde
  • Déployer un WAF (pare-feu applicatif web) pour détecter et bloquer les schémas de traversée de répertoires
  • Surveiller en continu error.log pour les événements AH10244 (chemin URI invalide)
  • Supprimer ou restreindre l'accès aux répertoires sensibles (/admin/, /backup/) de l'exposition publique
  • Masquer la version d'Apache des en-têtes de réponse HTTP (ServerTokens Prod, ServerSignature Off)

Conclusion

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.


Outils Utilisés

  • Kali Linux
  • Debian 13
  • Apache 2.4.67
  • Nikto v2.5.0
  • Dirb v2.22
  • grep, wc, cat


Laboratoire d'Analyse des Logs Web Apache

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.


Objectif

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.


Environnement


Étapes Réalisées

1. Validation du Service Apache

Confirmé que le serveur Apache était actif et en cours d'exécution sur la machine cible.```bash sudo systemctl status apache2 --no-pager

root@kitploit:~
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


3. Test de Connectivité

Connectivité réseau vérifiée entre Kali et Debian.```bash ping -c 4 10.0.2.15

root@kitploit:~
**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.


5. Création de Contenu de Test

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 "

Admin Panel

" | sudo tee /var/www/html/admin/index.html echo "

Login Page

" | sudo tee /var/www/html/login/index.html

root@kitploit:~
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 :

  • Serveur : Apache/2.4.67 (Debian)
  • En-tête manquant : X-Frame-Options — protection contre le clickjacking absente
  • En-tête manquant : X-Content-Type-Options — protection contre le reniflage MIME absente
  • Fuite d'ETag : Le serveur peut divulguer des numéros d'inode via les ETags (CVE-2003-1418)
  • Méthodes autorisées : GET, POST, OPTIONS, HEAD
  • Répertoires intéressants trouvés : /admin/, /backup/, /login/
  • Confirmé : /admin/index.html — page d'administration accessible publiquement
  • Total des requêtes : 8102 en 17 secondes

7. Analyse avec Dirb

Exé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

root@kitploit:~
**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

root@kitploit:~
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é.


9. Modèle de Scan par IP source

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

root@kitploit:~
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 HTTPSignificadoQuantidade
200OK — ressource trouvée et livrée177
403Interdit — ressource existe mais accès refusé26
404Non trouvé — ressource inexistante21.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.


11. Total des Requêtes par IP de l'Attaquant

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

root@kitploit:~
**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"

root@kitploit:~
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

root@kitploit:~
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 :

Tentatives de Path Traversal (Directory Traversal)

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._)

root@kitploit:~
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

Tentatives d'accès aux fichiers protégés

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

root@kitploit:~
#### 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)

Analyse

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.

Phase 1 — Scan de vulnérabilités (Nikto, 21h14 à 21h18)

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.

Phase 2 — Énumération de répertoires (Dirb, 21h19 à 21h21)

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.

Évaluation combinée

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.


Indicateurs clés


Recommandations défensives

Sur la base des conclusions, les contrôles suivants sont recommandés :

  • Ajouter des en-têtes de sécurité dans la configuration Apache : X-Frame-Options, X-Content-Type-Options, Content-Security-Policy
  • Désactiver les en-têtes ETag pour éviter les fuites d'informations d'inode
  • Restreindre les méthodes HTTP autorisées à GET, POST et HEAD uniquement
  • Désactiver le listage de répertoires dans tous les répertoires, en particulier /backup/
  • Restreindre l'accès à /server-status au localhost uniquement
  • Mettre en place un rate limiting pour bloquer les IP générant des requêtes excessives par seconde
  • Déployer un WAF (Web Application Firewall) pour détecter et bloquer les motifs de path traversal
  • Surveiller en continu error.log pour les événements AH10244 (URI path invalide)
  • Supprimer ou restreindre l'accès public aux répertoires sensibles (/admin/, /backup/)
  • Masquer la version d'Apache dans les en-têtes de réponse HTTP (ServerTokens Prod, ServerSignature Off)

Conclusion

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.


Outils utilisés

  • Kali Linux
  • Debian 13
  • Apache 2.4.67
  • Nikto v2.5.0
  • Dirb v2.22
  • grep, wc, cat
Télécharger l’outil
IndicateurValeur
IP de l'attaquant10.0.2.5
IP cible10.0.2.15
Port cible80 (HTTP)
Serveur webApache 2.4.67 (Debian)
Outils identifiésNikto v2.5.0, Dirb v2.22
Total des requêtes de l'attaquant21,962
Réponses HTTP 200177
Réponses HTTP 40326
Réponses HTTP 40421,740
Répertoires découverts/admin/, /backup/, /login/
Tentatives de traverséeMultiples (toutes bloquées)
Méthodes HTTP invalides testéesTRACK, DEBUG, SEARCH, INDEX
Fichiers sensibles ciblés/etc/passwd, /etc/shadow, .htpasswd, .htaccess
Exploitation réussieAucune
Fenêtre temporelle21:14 à 21:21 (2026-05-06)
ComposantDétails
VM AttaquanteKali Linux
VM CibleDebian 13
RéseauNAT Network (VirtualBox)
IP Attaquant10.0.2.5
IP Cible10.0.2.15
Serveur webApache 2.4.67
Sources de logs/var/log/apache2/access.log, /var/log/apache2/error.log
Port HTTP80
IndicateurValeur
IP de l'attaquant10.0.2.5
IP de la cible10.0.2.15
Port cible80 (HTTP)
Serveur webApache 2.4.67 (Debian)
Outils identifiésNikto v2.5.0, Dirb v2.22
Total requêtes de l'attaquant21 962
Réponses HTTP 200177
Réponses HTTP 40326
Réponses HTTP 40421 740
Répertoires découverts/admin/, /backup/, /login/
Tentatives de path traversalMultiples (toutes bloquées)
Méthodes HTTP invalides testéesTRACK, DEBUG, SEARCH, INDEX
Fichiers sensibles ciblés/etc/passwd, /etc/shadow, .htpasswd, .htaccess
Exploitation réussieAucune
Fenêtre temporelle21h14 à 21h21 (2026-05-06)