redhatInfiltrating Unix/Linux

🔎 Contexte et Intérêt

Selon une étude régulièrement mise à jour par W3Techs, plus de 70% des sites web s'appuient sur un système d'exploitation de type Unix. Cela signifie qu'en tant que pentester, il est essentiel de maîtriser l'environnement Unix/Linux pour maximiser les chances de compromission et d'éventuelle élévation latérale.

Bien que de nombreuses entreprises utilisent aujourd'hui des hébergeurs tiers ou des solutions cloud, certaines continuent à gérer elles-mêmes leurs serveurs web sur site. Dans ces cas, l'obtention d'un shell sur le système cible peut être un point d'entrée crucial pour un pivotement interne.


❓ Questions Clés à Considérer

Lorsqu'on tente d'obtenir une session shell sur une machine Unix/Linux, il est utile de se poser les questions suivantes :

  • Quelle distribution de Linux est en cours d'exécution ?

  • Quels shells et langages de programmation sont installés ?

  • Quelle est la fonction du système dans le réseau ?

  • Quelle application est hébergée ?

  • Y a-t-il des vulnérabilités connues ?

Ces interrogations orientent efficacement la phase de reconnaissance et les choix d'exploitation.


⚡️ Obtenir un Shell via une Application Vulnérable

📊 Scan Initial avec Nmap

nmap -sC -sV 10.xx.xx.xx

Extrait des résultats pertinents :

  • Port 21 (FTP) : vsftpd 2.0.8 ou plus

  • Port 22 (SSH) : OpenSSH 7.4

  • Port 80 / 443 : Apache 2.4.6 (CentOS) avec PHP 7.2.34

  • Port 3306 : MySQL

On constate donc la présence d'un serveur web sous CentOS hébergeant une application PHP.

💻 Application Détectée : rConfig

En accédant au site via navigateur, on identifie l'application rConfig (outil de gestion de configurations réseau). Il s'agit d'une cible critique car elle est conçue pour automatiser la configuration de périphériques réseau (routeurs, switchs, etc.). Un accès à cette application pourrait potentiellement compromettre tout le réseau.

Interface de connexion à rConfig

🔍 Recherche de Vulnérabilités dans rConfig

La version identifiée sur la page de connexion est 3.9.6. Une recherche sur cette version ("rconfig 3.9.6 vulnerability") renvoie vers des vulnérabilités connues, notamment :

  • Upload arbitraire de fichier

  • Exécution de commande à distance (RCE)

⚙️ Modules Metasploit Disponibles

Module intéressant :

Ce module permet l'envoi d'un fichier PHP malveillant via la fonctionnalité d'upload de l'application.


🔧 Chargement Manuel du Module (si non présent)

  1. Recherche du dossier d'exploits :

  1. Chemin typique sur Pwnbox :

  1. Copier le code Ruby (.rb) depuis GitHubarrow-up-right et placer le fichier dans le dossier ci-dessus.

  1. Mettre à jour MSF :


🚀 Utilisation de l'Exploit

Charger et configurer l'exploit

Configurer les options : RHOSTS, LHOST, LPORT, etc.

Lancer l'exploitation

Exemple de retour :


🧂 Compréhension de l'Exploitation

L'exploit réalise les étapes suivantes :

  • Vérifie la version vulnérable

  • Authentifie sur l'application

  • Upload un payload PHP

  • Déclenche l'exécution pour ouvrir une session reverse shell

  • Supprime le fichier malveillant (cleanup)

Interagir avec le shell

Permet de passer en ligne de commande classique sur la cible.


📁 Exemple de Dossier Accessible


🔐 Conclusion

L'infiltration d'une machine Unix/Linux via une application vulnérable comme rConfig repose sur une méthodologie rigoureuse : reconnaissance, identification des versions, recherche de vulnérabilités, exploitation contrôlée. Une fois la session shell obtenue, de nombreuses possibilités s'offrent à nous pour pivoter ou élever nos privilèges.


📚 Ressources Utiles


What language is the payload written in that gets uploaded when executing rconfig_vendors_auth_file_upload_rce?

Comme vu dans le cours, le pyload écrit est envoyé en PHP.


Exploit the target and find the hostname of the router in the devicedetails directory at the root of the file system.

Scan de la machine cible :

On observe alors qu'un site Web est présent sur notre cible. Nous y accédons alors :

Page de connexion de rConfig version 3.9.6

Nous observons alors la présence d'une page de connexion à rConfig, service présent sous la version 3.9.6. Nous effectuons alors des recherches de vulnérabilités possibles concernant cette version du service :

Nous obtenons alors la confirmation que cette version de rConfig est bien vulnérable.

Nous effectuons des recherches via Metasploit afin d'exploiter cette vulnérabilité :

Une fois le payload qui nous intéresse selectionné, nous pouvons le configurer et l'exécuter :

Nous avons maintenant accès à notre cible. Nous pouvons ainsi récupérer le nom de du routeur :

Nous observons dans le répertoire devicedetails deux fichiers, edgerouter-isp.yml et hostnameinfo.txt.

Nous ouvrons donc le fichier hostnameinfo.txt et lisons son contenu. Ce dernier mentionne que le nom qui doit petre donné aux fichiers yaml sont les noms des périphériques concernés.

Nous pouvons alors trouver le nom de notre routeur qui est edgerouter-isp.

Ceci peut également se confirmer en lisant le fonctenu du fichier edgerouter-isp.yml :


Last updated