Analyse d'erreurs 404 Not Found !

Analyse d'erreurs 404 Not Found !

log web osint

Les erreurs HTTP 404 Not found désignent les erreurs reçues lorsqu'une page web n'est pas trouvée. Il s'agit en fait de données extrêment intéressantes.

Les erreurs 404 correspondent à l'erreur HTTP retournée par un serveur web quand une ressource (typiquement une page) n'existe pas. Ainsi, si on appelle https://www.leprado.com/page_qui_nexiste_pas, le serveur web retournera un code d'erreur 404.

L'analyse des erreurs 404 est importante car il peut s'agir :

  • d'erreur de configuration comme avec une mauvaise gestion de redirection, de gestion d'accents, fichiers bien connus inexistants (ex : robots.txt, sitemap.xml), etc. ;
  • de ressources renommées ou supprimées ;
  • de page qui n'ont jamais existées, c'est cette catégorie qui va nous intéresser.

Pourquoi est-ce que des pages qui n'ont jamais existées sont appelées ? Il s'agit simplement de robots qui parcourent les serveurs web à la recherche d'applications connues. Ils tentent de cartographier le web. Quelques finalités :

  • mieux connaître le web et la répartition d'applications ;
  • identifier des applications (ex : wordpress) et leurs versions pour exploiter des vulnérabilités dès leur apparition.
  • jouer des exploits directements

Remédiation

Attention, cette analyse ne montrera pas vos faiblesses, mais uniquement les faiblesses qu'il aurait pu y avoir. En effet, si vous êtes vulnérable ou si vous avez géré en interdisant l'accès, il n'y aura pas d'erreur 404.

Ainsi, faut-il traiter ces erreurs ? Oui, une veille sur ses 404 ou sur ceux des autres (voir #lognoise) est nécessaire pour apprendre des nouveaux fichiers sensibles, d'un problème de configuration, mais également car il peut s'agir d'un début d'attaque ciblé.

Si wordpress n'est pas installé, avec Fail2ban, il peut être simple d'interdire les accès aux IP essayant des wp-login.php

Je vous déconseille très fortement de traiter ces 404 automatiquement pour créer des règles d'exclusion. Par exemple en banissant automatiquement des IP aillant généré au moins 100 erreurs 404. En effet, il peut également s'agir d'une mauvaise configuration de votre site web. Veiller ces erreurs est d'autant plus utile.

Aller plus loin

 Honeypot

Un honeypot permet d'attirer toutes ces requettes pour quelles le site n'est pas directement visé. Cependant, le trafic du site peut être prétexte pour attirer des poissons qui scanneraient notre site. Un honeypot n'aurait pas nécessairement autant de trafic. Inversement,

 Google Dorks

Les pages introuvables ici, sont probablement trouvées ailleurs. C'est sur ce principe que ce sont développés les Google Dorks : recherches particulières sur Google qui aurait indexé des pages particulièrement intéressantes.

Analyse

Analysons mon fichier de logs :

Signature d'applications

à la recherche de wordpress :

wp-login.php
/blog/wp-login.php
/wordpress/wp-login.php
Ou de plugins spécifiques :
//shop/wp-includes/wlwmanifest.xml
//cms/wp-includes/wlwmanifest.xml
//wp1/wp-includes/wlwmanifest.xml
//wp2/wp-includes/wlwmanifest.xml
//site/wp-includes/wlwmanifest.xml
//sito/wp-includes/wlwmanifest.xml

Outlook web access (OWA)

/owa
/owa/
/owa/auth/logon.aspx
/owa/auth/logon.aspx?replaceCurrent=1&url=http%3A%2F%2Fmail.ty.bzh%2Fowa%2F
/owa/auth/logon.aspx?replaceCurrent=1&url=http%3A%2F%2Fowa.server02.leprado.com%2Fowa%2F
/owa/auth/logon.aspx?replaceCurrent=1&url=https%3A%2F%2Fowa.server02.leprado.com%2Fowa%2F
/owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f
/owa/auth/x.js

Sypex Dumper

/admin/dumper/sxd.js
/admin/sxd/sxd.js
/backup/sxd/sxd.js
/dumper/sxd.js
/dump/sxd.js
/sxd/sxd.js
/SypexDumper/sxd/sxd.js

Solr

/solr/admin/info/system?wt=json

Remote-sync https://atom.io/packages/remote-sync

.remote-sync.json

PHP my admin

/phpmyadmin
/phpmyadmin4.8.5/index.php
/phpmyadmin/index.php

FCKEditor

/editor-4.3.1.php
/editor/editor/filemanager/browser/default/connectors/php/connector.php?Command=GetFoldersAndFiles&Type=File&CurrentFolder=%2F
/editor/editor/filemanager/upload/php/upload.php
/editor/filemanager/upload/php/upload.php
/mambots/editors/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php?Command=GetFoldersAndFiles&Type=File&CurrentFolder=%2F
/mambots/editors/fckeditor/editor/filemanager/upload/php/upload.php
/js/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php?Command=GetFoldersAndFiles&Type=File&CurrentFolder=%2F
/js/FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php?Command=GetFoldersAndFiles&Type=File&CurrentFolder=%2F
/js/fckeditor/editor/filemanager/upload/php/upload.php
/js/FCKeditor/editor/filemanager/upload/php/upload.php
/administrator/fckeditor/editor/filemanager/upload/php/upload.php
/fckeditor/editor/filemanager/connectors/php/upload.php?Type=Media

Apache / Nginx

/server-status

Jenkins

/jenkins/login

Adminer

/adminer-3.5.1.php
/adminer-4.2.1.php
/adminer-4.2.4.php
/adminer-4.2.5.php
/adminer-4.3.1-en.php
/adminer-4.3.1.php

ThinkPHP framework MVC PHP

/thinkphp/html/public/index.php

VOIP Monitor

/voipmonitor/ioncube_phpver

Citrix

/citrix/cgi/Resources/List

D'autres applications spécifiques, pas systématiquement identifiées

 Signature plus générale

Fichiers d'environnement ou de configuration

/.env --> Fichier d'environnement utilisé par des applications (python, ansible, etc.)
/.local

Sauvegardes de site

/[0-9a-z].tar.bz2
/[0-9a-z].gz
/bak
/backup
/bk

Autres versions du site

/2018
/2019
/2020
/v[0-9]/
/web
/new
/new-site
/old
/old-index.php
/old-site
/old-wp
/test
/temp
/main
/demo
/dev

Des répertoires d'installation résiduels

/install

À la recherche de vuln

/%3C
/index.php?3x=3x (Injection SQL ?)
/index.php?s=/Index/\x5Cthink\x5Capp/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21
/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

Article précédent Article suivant