Hack The Box - Walkthrough AI. SQLi dans le texte API à atteindre, le transfert SSH et RCE dans JDWP

image

Je continue de publier des solutions envoyées pour un traitement ultérieur à partir du site HackTheBox . J'espère que cela aidera au moins quelqu'un à se développer dans le domaine de la sécurité de l'information. Dans cet article, nous allons nous familiariser avec la conversion de texte en voix et trouver l'injection SQL dans l'API, envoyer un port via SSH et également effectuer RCE à l'aide du protocole Java Debug Wire pour le débogage à distance.

La connexion au laboratoire se fait via VPN. Il est recommandé de ne pas se connecter à partir d'un ordinateur professionnel 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
Surtout pour ceux qui veulent apprendre quelque chose de nouveau et se développer dans l'un des domaines de l'information et de la sécurité informatique, j'écrirai et parlerai des catégories suivantes:

  • PWN;
  • cryptographie (Crypto);
  • technologies de réseau (réseau);
  • reverse (Reverse Engineering);
  • stéganographie (Stegano);
  • recherche et exploitation des vulnérabilités WEB.

En plus de cela, je partagerai mon expérience en criminalistique informatique, analyse de logiciels malveillants et micrologiciels, attaques sur les réseaux sans fil et les réseaux locaux, réalisation de pentests et écriture d'exploits.

Afin que vous puissiez vous renseigner sur les nouveaux articles, logiciels et autres informations, j'ai créé une chaîne dans Telegram et un groupe pour discuter de tout problème dans le domaine de l'ICD. Aussi, je considérerai personnellement vos demandes, questions, suggestions et recommandations personnelles et répondrai à tout le monde .

Toutes les informations sont fournies à des fins éducatives uniquement. L'auteur de ce document n'assume aucune responsabilité pour tout dommage causé à quelqu'un du fait de l'utilisation des connaissances et des méthodes obtenues à la suite de l'étude de ce document.

Intelligence


Balayage de port


Cette machine a une adresse IP de 10.10.10.163, que j'ajoute à / etc / hosts.

10.10.10.163 ai.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 1000 paquets par seconde.

 masscan -e tun0 -p1-65535,U:1-65535 10.10.10.163 --rate=1000 

image

Ensuite, vous devez collecter plus d'informations sur les ports connus. Pour ce faire, utilisez nmap avec l'option -A.

 nmap -A ai.htb -p22,80 

image

Comme indiqué dans le rapport nmap, SSH et un serveur Web s'exécutent sur l'hôte. En allant sur le site et en parcourant un peu les pages, nous sélectionnons la plus intéressante - dans le formulaire d'envoi d'un fichier WAV.

image

Mais juste au cas où, j'ai vérifié les répertoires avec gobuster. Dans les paramètres, spécifiez le nombre de flux 128 (-t), URL (-u), dictionnaire (-w) et extensions qui nous intéressent (-x).

gobuster dir -t 128 -u ai.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html, php, conf, txt

image

La page db.php n'a rien donné, mais intelligence.php nous fournit des informations sur le site.

image

Le site utilise un interprète vocal. Autrement dit, le fichier que nous envoyons sera interprété en texte. Testons l'hypothèse avec l' interpréteur de texte en ligne suivant dans WAV .

image

image

Les hypothèses sont correctes - le site interprète le texte.

Point d'entrée


Pour une raison quelconque, j'étais sûr de SSTI, mais après l'échec, en nous souvenant de db.h, nous vous enverrons un devis. Mais l'envoi ne fonctionne pas, car le site utilise l'API, qui interprète les caractères différemment. La liste complète se trouve ici .

image

image

Et nous obtenons l'erreur SQL. Maintenant, faites l'injection.

UTILISATEUR


image

image

image

image

Et de la même manière, nous obtenons le mot de passe.

image

Et avec les informations d'identification, nous nous connectons via SSH.

image

RACINE


Comme d'habitude, nous énumérons à l'aide du script LinEnum.

image

Après avoir vu la sortie du script, nous nous arrêtons à un processus intéressant qui s'exécute en tant que root - un programme Java.

image

Mais plus intéressant, le programme prend en charge une connexion au port 8000.

image

Ceci est également confirmé par la liste des substances actives.

image

Vous pouvez également voir qu'il utilise le Java Debug Wire Protocol (JWDB), un protocole de communication entre le débogueur distant et la JVM. Après avoir recherché les exploits, nous trouvons un script qui aide à faire RCE .

image

Ce script prend comme argument l'adresse d'hôte, le port et la commande à exécuter.

image

Commençons par le port 8000.

 ssh -L 8000:localhost:8000 alexa@10.10.10.163 

Une console ssh standard s'ouvrira dans cette fenêtre, mais maintenant tous les appels vers le port 8000 de l'hôte local seront automatiquement transférés vers le port 8000 de la machine distante.

Vérifions: dans un autre terminal, nous essayons de nous connecter à ce port en utilisant jdb.

image

Depuis que la connexion passe, nous écrirons un shell inversé sur l'hôte, qui sera exécuté en équipe.

image

Exécutez le script téléchargé avec tous les paramètres nécessaires.

image

Et après le message concernant la commande exécutée avec succès, nous observons la connexion.

image

Comme vous pouvez le voir, nous avons obtenu un accès administratif.

Vous pouvez nous rejoindre sur Telegram . Créons une communauté dans laquelle il y aura des gens qui connaissent bien de nombreux domaines de l'informatique, puis nous pouvons toujours nous entraider pour tout problème informatique et de sécurité de l'information.

Source: https://habr.com/ru/post/fr485522/


All Articles