Je continue de publier des solutions envoyées pour un traitement ultérieur à partir du site HackTheBox .Dans cet article, nous allons exploiter RCE dans OpenNetAdmin, nous plonger dans les configurations de serveur Web, percer le port avec SSH Forwarding, casser le mot de passe de la clé SSH et utiliser la technique GTFOBins pour augmenter les privilèges.La connexion au laboratoire se fait via VPN. Il est recommandé de ne pas se connecter à partir d'un ordinateur de travail ou d'un hôte où les données importantes pour vous sont disponibles, car vous vous retrouvez sur un réseau privé avec des personnes qui connaissent quelque chose dans le domaine de la sécurité de l'information :)Information organisationnelle, ,
Telegram . , ,
.
. , - , .
Recon
Cette machine a une adresse IP 10.10.10.171, que j'ajoute à / etc / hosts.10.10.10.171 openadmin.htb
Tout d'abord, nous analysons les ports ouverts. Puisqu'il faut beaucoup de temps pour analyser tous les ports avec nmap, je vais d'abord le faire avec masscan. Nous analysons tous les ports TCP et UDP à partir de l'interface tun0 à une vitesse de 500 paquets par seconde.masscan -e tun0 -p1-65535,U:1-65535 10.10.10.171 --rate=500
Maintenant, pour des informations plus détaillées sur les services qui fonctionnent sur les ports, nous allons exécuter une analyse avec l'option -A.nmap openadmin.htb -p22,80
Ainsi, le service exécute SSH et le serveur Web Apache. Jetez un œil à ce qui se trouve sur le site.
Nous rencontrons la page principale d'Apache. Dans de tels cas, les sites peuvent ne pas se trouver dans le répertoire personnel du service. Pour les trouver, vous devez trier les répertoires. Pour ce faire, utilisez le programme gobuster (supposément le scanner le plus rapide). Nous sélectionnons le mode d'analyse de répertoire (dir), le dictionnaire (-w), le nombre de flux (-t), les extensions de page (-x), ainsi que la sortie étendue des pages (-e) et URL (-u).gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 120 -x php,html,conf,txt -e -u http://openadmin.htb
Dans la sortie, il y a trop de réponse avec le code 403 pour les filtrer, nous indiquons les codes de réponse (-s) dont nous avons besoin.gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 120 -x php,html,conf,txt -e -u http://openadmin.htb -s “200,204,301,302,307,401”
Et nous trouvons plusieurs répertoires. Maintenant, nous allons tout faire pour découvrir ce qui s'y trouve.

Et juste sur l'un de ces sites, il y a une fonction de connexion. Mais si vous essayez de le faire, nous allons sur la page OpenNetAdmin.
Dans ce cas, comme vous pouvez le voir, la version 18.1.1 est utilisée.Point d'accès
Cherchons des exploits pour cette version.
Et pour cette version il y a un exploit RCE. Le code est déjà dans la base de données locale, jetons un coup d'œil.
Ainsi, le script prend un paramètre - c'est l'URL. (Au démarrage, j'ai eu des erreurs, vous pouvez donc ouvrir le fichier via mcedit et supprimer les caractères ^ M).
USER1
Nous sommes dans le répertoire personnel.
Et nous sommes entourés d'un grand nombre de fichiers.
Certains d'entre eux peuvent contenir des informations d'identification. Examinons tous les fichiers de noms d'utilisateur de manière récursive.
Et il n'y a aucun résultat. Mais il y aura de nombreux résultats lors de la recherche du mot «passer».
Jetez maintenant un œil à la configuration complète.
Il s'agit du mot de passe pour se connecter à la base de données. Essayons-le pour les utilisateurs. Et nous nous connectons avec succès en tant qu'utilisateur jimmy.
USER2
Tout d'abord, exécutez le script d' énumération de base LinEnum .
La conclusion doit être analysée très attentivement, chaque ligne !!! Et la seule chose à laquelle vous pouvez vous accrocher dans la sortie du script est l'appartenance à un groupe.
Jimmy et Joanna sont dans le même groupe interne. Voyons les fichiers appartenant à ce groupe.
A en juger par l'emplacement - c'est le site. Nous analysons les fichiers. Le premier à regarder est le principal.
Si nous sommes autorisés, ils nous montreront la clé SSH privée de l'utilisateur joanna. Il résulte du fichier d'index que nous irons au principal après une autorisation réussie. Il contient également un hachage de mot de passe SHA512.
Le hachage se casse facilement avec l'aide de ce site .
Reste à savoir comment se rendre sur le site. Les ports d'accès à chaque site se trouvent dans le fichier de configuration correspondant à chaque site dans le répertoire / etc / apache2 / sites-available pour apache.
Comme vous pouvez le voir, il existe une configuration interne qui nous intéresse. Maintenant, transférez le port SSH.
De la configuration, il est clair que nous pouvons accéder au site à partir de la machine locale sur le port 52846 sous le domaine internal.openadmin.htb. Laissons le port fonctionner - c'est-à-dire, redirigeons notre port local 52846 vers le port distant 52846. Cette technique est appelée redirection de port SSH.
Maintenant, sur la machine locale, faites une entrée dans le fichier / etc / hosts.127.0.0.1 internal.openadmin.htb
Et nous nous adresserons via le navigateur à l'adresse internal.openadmin.htb : 52846 / index.php.
Connectez-vous avec des informations d'identification connues et obtenez une clé SSH privée.
Nous enregistrons dans un fichier et attribuons des droits.
Mais lorsqu'ils essaient de se connecter, ils nous demandent le mot de passe de la clé, car elle est cryptée.
Nous pouvons faire défiler la clé. Pour ce faire, nous allons l'amener au format John'a, puis nous donnerons le fichier avec la clé déjà convertie au format en brute.
Et trouvez avec succès le mot de passe. Nous sommes déjà connectés avec la clé et le mot de passe.
RACINE
Une des choses à vérifier est les paramètres sudo pour exécuter des commandes sans mot de passe.
La ligne NOPASSWD indique que nous pouvons exécuter cette commande sous sudo sans mot de passe. Dans ce cas, la commande nano est invoquée. Il existe une technique telle que GTFOBins, qui permet d'utiliser divers utilitaires pour lire, écrire des fichiers ou exécuter des commandes entières. Une liste complète des utilitaires et de leurs capacités est disponible ici . Voyons comment obtenir un shell en utilisant nano.
Exécutez notre commande avec sudo.
Maintenant, en suivant l'ordre des commandes, sélectionnez l'option pour lire le fichier.
Maintenant, l'option pour exécuter des commandes.
Et entrez la dernière ligne de l'instruction.
Et nous obtenons le shell au nom de la racine.
Vous pouvez nous rejoindre sur Telegram. Vous y trouverez du matériel intéressant, des cours fusionnés ainsi que des logiciels. Créons une communauté dans laquelle il y aura des gens qui connaissent bien de nombreux domaines de l'informatique, puis nous pourrons toujours nous entraider pour tout problème informatique et de sécurité de l'information.