HackTheBox-dakı Sloink maşını NFS (Network File System) xidmətinin səhv konfiqurasiyası ilə diqqət çəkir. Maşında açıq portlardan 2049-cu portda işləyən NFS xidməti bütün istifadəçilərə ev kataloqunu və backup qovluğunu açıq qoyub. Bu, hücumçuya birbaşa olaraq həssas məlumatlara çatmağa imkan verir.
İlk addım: NFS sızıntısı
İlkin skan zamanı məlum olur ki, /home və /var/backups qovluqları heç bir məhdudiyyət olmadan ixrac edilib. 'showmount' əmri ilə bu təsdiqlənir. NFS serverində root-escap zəifliyi də aşkarlanır – bu, normalda görünməyən faylları oxumağa imkan verir. 'NetExec' aləti ilə bu zəiflikdən istifadə edərək sistem faylları (/etc/passwd, /etc/shadow) endirilir.
Eyni zamanda, /home/service qovluğundakı fayllar diqqət çəkir. Xüsusilə .psql_history faylında PostgreSQL verilənlər bazasına qoşulmaq üçün istifadə olunan MD5 hash tapılır. Bu hash "CrackStation" xidməti vasitəsilə crack edilir və parolun "service" olduğu ortaya çıxır.
SSH tunnel və PostgreSQL RCE
"service" istifadəçisinin shell'i /bin/false olaraq təyin edilib – yəni birbaşa SSH interaktiv sessiyası işləmir. Lakin SSH port-forwarding işləyir. Hücumçu lokal portu (5432) maşındakı PostgreSQL Unix soketinə (/var/run/postgresql/.s.PGSQL.5432) yönləndirir. Bu tunnel vasitəsilə PostgreSQL'ə superuser (postgres) kimi qoşulmaq mümkün olur – heç bir parol tələb olunmur.
PostgreSQL'də superuser səlahiyyəti ilə COPY FROM PROGRAM əmri işə salınır və sistemdə RCE (Remote Code Execution) əldə edilir. Növbəti addımda hücumçu öz SSH açarını postgres istifadəçisinin .ssh/authorized_keys faylına yerləşdirir və beləcə stabil shell qazanır.
Root'a yüksəlmə: cron işi və SUID bash
'linpeas' skripti ilə sistemdə maraqlı bir cron tapşırığı aşkarlanır. /usr/bin/backup skripti hər dəqiqə root səlahiyyəti ilə işləyir və PostgreSQL məlumat qovluğunu (/var/lib/postgresql/14/main/) /opt/backups/current/ qovluğuna kopyalayır. Maraqlısı odur ki, məlumat qovluğu postgres istifadəçisinə məxsusdur – yəni postgres orada istədiyi faylı yarada bilər.
Hücumçu məlumat qovluğuna /bin/bash faylını SUID biti ilə kopyalayır. Cron işə düşəndə root bu faylı olduğu kimi hədəf qovluğa kopyalayır – SUID biti qalır. Nəticədə, hücumçu ./cbash -p əmri ilə root shell-inə sahib olur.
Nəticə
Sloink maşını göstərir ki, NFS kimi əsas xidmətlərin səhv konfiqurasiyası böyük təhlükəsizlik boşluqlarına səbəb ola bilər. Həmçinin, PostgreSQL'də trust autentifikasiyası, SSH port-forwarding məhdudiyyətlərinin olmaması və cron tapşırıqlarının düzgün qurulmaması zəncirvari hücuma imkan yaradır.
Mənbə: Dev.to (https://dev.to/exploitnotes/hackthebox-sloink-writeup-44ag)


