HackTheBox. Procédure pas à pas d'OpenAdmin. RCE dans OpenNetAdmin et GTFOBins dans nano

image

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

image

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

image

Ainsi, le service exécute SSH et le serveur Web Apache. Jetez un œil à ce qui se trouve sur le site.

image

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

image

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”

image

Et nous trouvons plusieurs répertoires. Maintenant, nous allons tout faire pour découvrir ce qui s'y trouve.

image

image

image

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.

image

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.

image

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.

image

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).

image

USER1


Nous sommes dans le répertoire personnel.

image

Et nous sommes entourés d'un grand nombre de fichiers.

image

Certains d'entre eux peuvent contenir des informations d'identification. Examinons tous les fichiers de noms d'utilisateur de manière récursive.

image

Et il n'y a aucun résultat. Mais il y aura de nombreux résultats lors de la recherche du mot «passer».

image

Jetez maintenant un œil à la configuration complète.

image

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.

image

USER2


Tout d'abord, exécutez le script d' énumération de base LinEnum .

image

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.

image

Jimmy et Joanna sont dans le même groupe interne. Voyons les fichiers appartenant à ce groupe.

image

A en juger par l'emplacement - c'est le site. Nous analysons les fichiers. Le premier à regarder est le principal.

image

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.

image

Le hachage se casse facilement avec l'aide de ce site .

image

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.

image

Comme vous pouvez le voir, il existe une configuration interne qui nous intéresse. Maintenant, transférez le port SSH.

image

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.

image

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.

image

Connectez-vous avec des informations d'identification connues et obtenez une clé SSH privée.

image

Nous enregistrons dans un fichier et attribuons des droits.

image

Mais lorsqu'ils essaient de se connecter, ils nous demandent le mot de passe de la clé, car elle est cryptée.

image

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.

image

Et trouvez avec succès le mot de passe. Nous sommes déjà connectés avec la clé et le mot de passe.

image

RACINE


Une des choses à vérifier est les paramètres sudo pour exécuter des commandes sans mot de passe.

image

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.

image

Exécutez notre commande avec sudo.

image

Maintenant, en suivant l'ordre des commandes, sélectionnez l'option pour lire le fichier.

image

Maintenant, l'option pour exécuter des commandes.

image

Et entrez la dernière ligne de l'instruction.

image

Et nous obtenons le shell au nom de la racine.

image

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.

All Articles