mountainCredential Hunting

Lors de l'énumération d'un système, il est important de noter toutes les informations d'identification (credentials). Celles-ci peuvent être trouvées dans des fichiers de configuration (.conf, .config, .xml, etc.), des scripts shell, le fichier bash_history d'un utilisateur, des fichiers de sauvegarde (.bak), des fichiers de base de données ou même des fichiers texte. Ces informations peuvent être utiles pour escalader les privilèges vers d'autres utilisateurs ou root, accéder à des bases de données et à d'autres systèmes de l'environnement.

🌐 Répertoire /var et racine web

Le répertoire /var contient généralement la racine web du serveur web en cours d'exécution sur l'hôte. Cette racine web peut contenir des identifiants de base de données ou d'autres types de credentials exploitables pour un accès supplémentaire. Un exemple courant est la présence de credentials MySQL dans les fichiers de configuration WordPress :

⚙️ Exemple de commande

htb_student@NIX02:~$ grep 'DB_USER\|DB_PASSWORD' wp-config.php

define( 'DB_USER', 'wordpressuser' );
define( 'DB_PASSWORD', 'WPadmin123!' );

📂 Répertoires spool et mail

Les répertoires spool ou mail, s'ils sont accessibles, peuvent également contenir des informations précieuses ou des credentials. Il est courant de trouver des identifiants stockés dans des fichiers de la racine web (par exemple, chaînes de connexion MySQL, fichiers de configuration WordPress).

⚙️ Exemple de commande

htb_student@NIX02:~$ find / ! -path "*/proc/*" -iname "*config*" -type f 2>/dev/null

/etc/ssh/ssh_config
/etc/ssh/sshd_config
/etc/python3/debian_config
/etc/kbd/config
/etc/manpath.config
/boot/config-4.4.0-116-generic
/boot/grub/i386-pc/configfile.mod
/sys/devices/pci0000:00/0000:00:00.0/config
/sys/devices/pci0000:00/0000:00:01.0/config
<SNIP>

🔑 Clés SSH

Il est également utile de rechercher sur le système des clés SSH privées accessibles. Nous pouvons trouver une clé privée pour un utilisateur plus privilégié, que nous pourrions utiliser pour nous reconnecter à la machine avec des privilèges supplémentaires. Il est également possible de trouver des clés SSH permettant d'accéder à d'autres hôtes de l'environnement. Chaque fois que des clés SSH sont trouvées, vérifiez le fichier known_hosts pour identifier des cibles. Ce fichier contient la liste des clés publiques de tous les hôtes auxquels l'utilisateur s'est connecté par le passé et peut être utile pour des déplacements latéraux ou pour trouver des données sur un hôte distant à exploiter pour escalader les privilèges.

⚙️ Exemple de commande


circle-info

SSH to 10.129.61.185 (ACADEMY-LPE-NIX02) with user "htb-student" and password "Academy_LLPE!"

Find the WordPress database password.

Afin de répondre à cette question, nous nous connectons dans un premier temps à notre cible à l'aide du protocole ssh :

Afin de trouver le mot de passe de la BDD de WordPress, nous utilisons, comme vu dans le cours, la commande grep dans le répertoire /var/www/html :

La commande grep utilisée sur le fichier de configuration WordPress (wp-config.php), nous pouvons retrouver l'utilisateur de la base de données ainsi que son mot de passe associé :


Last updated