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 :
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 :
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.
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,
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.
Analysons mon fichier de logs :
à 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
/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/login
/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
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
/%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