Linux Privilege Escalation
Privilege Escalation nədir?
"privilege escalation" kompüter təhlükəsizliyi və sistem idarəçiliyi terminidir. Bu termin ümumiyyətlə zərərli istifadəçi və ya proqramın mövcud imtiyazlarını artırmaqla sistemə daha yüksək səviyyəli giriş əldə etməsi prosesinə aiddir. Bu o deməkdir ki, adətən məhdud giriş icazələri olan istifadəçi və ya proqram daha yüksək icazələrə malik istifadəçi və ya sistem səviyyəsinə daxil ola bilər.
2 növü var:
Vertical Privilege Escalation
"Vertical Privilege Escalation" istifadəçinin cari icazə səviyyəsini artırmaqla daha yüksək imtiyaz əldə etməyə cəhd etməsidir.
Horizontal Privilege Escalation
"Horizontal Privilege Escalation" istifadəçi və ya tətbiqin eyni imtiyaz səviyyəsinə malik başqa istifadəçi və ya proqramın icazələrini əldə etməyə cəhd etməsidir. Bu, adətən, eyni səviyyədə digər hesabları oğurlamaq və ya istifadə etmək məqsədi daşıyır.
Privilege Escalation üçün bir çox metotdan istifadə olunur:
Cron Jobs privilege escalation
Cron Jobs nədir?
Cron (daemon/service) müəyyən vaxtda və ya hərəkətdə avtomatik icra etmək üçün planlaşdırılmış binary/scriptdən istifadə edir.Varsayılan olaraq onalar sahiblərinin imtiyazları ilə çalışır.Cron konfuqriyasıyalarının tarixləri corntablarda qeyd olunur onları oxumaq üçün “cat /etc/crontab”
əmrindən istifafə edilir.Sistemdəki hər bir istifadəçinin öz crontab faylı var və daxil olub-olmamasından asılı olmayaraq xüsusi tapşırıqları yerinə yetirə bilər.
Cron Jobs metodologiyası sadədir
1.Aktiv tapşırıqları müəyənləşdiririk
2.root imtiyazları və ya hər hansı digər istifadəçi ilə işləyən planlaşdırılmış tapşırıq olub olmadığını yoxlayın.
3.Çalışılacaq skripti dəyişdirin; bu iş sahibi imtiyazlarını əldə edin.
Praktiki
1./etc/crontap baxıb orda intervalı ən qısa olanı işi secirik və kim tərfindən icara olunduquna diqqət yertirməliyik root tərəfindən icra olunan iş secilməlidi.
Bunlardan hər hansı birini kontentini deyişib icərisinə reverse shell qoya bilərik və ya silib eyni ad ile yeni bir fayl yaradıb icine reverse shell qoya bilerik.
sonra isə öz cihazimizda nc ilə dinləmə aciriq.
Beləliklər bachup.sh faylı müəyən iterval ərzində özünü runladıqı üçün biz dinləmə acıb reverse shell ala bilidik və root olduq.
PATH privilege escalation
PATH nədir?
PATH, Kali Linux-dakı proqramların yerləşdiyi qovluqları göstərən bir mühit dəyişənidir. Komanda sətiri vasitəsilə işlətmək istədiyiniz proqramların yerləşdiyi qovluqları PATH daxilindəki təyin edilmiş yerləşmələrdə axtarır. Məsələn, bir komandanı işə saldığınız zaman, sistem bu komandanın harada olduğunu PATH daxilində göstərilən qovluqlarda axtarır axtarır. Beləliklə, hər hansı bir qovluqda yerləşən proqramları bir başa komanda sətrində işə sala bilərsiniz.
PATH ilə necə privilege escalation edə bilərik?
sistemə daxil olduqdan sonra find əmri ilə yardımıyla SUID veya 4000 icazəsinə sahib olnan fayları axtarırıq.
Yukarıdaki əmri çalıştırdıktan sonra /usr/bin/menu'nun SUID icazələrə sahip olduğunu və normalda
linux da belə bir şey olmur.Yerləşdiyi qovluqa gedib oxumaqa calışaq görəriki binary da yazılıb buna görə strings əmrindən istifadə edib oxuyuruq.Bu əmr yalnız oxuna bilən hissələri göstərir.
Göründüyü kimi bu SUİD curl əmrindən istifadə edin və biz /tmp faylda curl adın bir bədniyətli fayl yarada biləra və aşağıdakı əmr ilə /tmp-ni PATH əlavə edə bilrəik.
PATH yenə oxusaq görərik ki tmp ora əlavə olunub.
/usr/bin/menu yenidən calışdırdıqda onun icərisində curl işlədən zaman birinci /tmp icinə baxır
ona görədə bizim yaradıqımız curl istifadə edir və beləliklə biz root olduq.
sudo -l
sudo -l əmri mövcud userın root kimi runlaya biləcəyi fayları göstərir.Bu əmrin verdiyi nəticə
/etc/sudoers faylında yazılır və edit etmək üçün visudo əmrində istifadə olunur.
sudo -l əmrində göstərilən faylı icərisinə reverse shell qoyub runladıqda root kimi runladıqı üçün
dinləmə acdıqımızda root-un shellini alırıq.
SUİD icazəli faylar ilə privilege escalation
SUİD icazəli faylar ilə privilege escalation
SUİD nədir?
SUID, Unix əməliyyat sistemi içində bir faylın sahibinin yetkiləri ilə faylın işləməsini təmin edən bir funksiya olaraq qeydə alınır. Bu, normal istifadəçinin edə bilməyəcəyi xüsusi əməliyyatları icra etmək üçün imkan yaradır, lakin düzgün istifadə olunmaması təhlükəli ola bilər və təhlükəsizlik açar.
SUİD faylarını tapmaq üçün bu əmrdən istifadə olnur.
Necə privilege escalation edə bilərik?
SUID-ləri tapdıqdan sonra GTFOBins saytında axtarıb privilige etmək üçün yararlı olub olmadıqını ,yararlıdısada necə privilige edə biləcəyini göstərir
LinPEAS
linPEAS sistemi enumeration edir və Privileges etmənin yolarını göstərir.
linPEAS kali linuxun özündə olur.Tapmaq üçün bu əmri istifadə edin:
Sistemə daxil olduqdan sonra oranı linpeas ile enumeration etmək üçün birinci o sistemə linpeası yükləməliyik.Öz sisteminizdə linpeas olan yerde python server qaldırırıq.
Bu əmr 8080 portu üzərində http serveri qaldırır.
Sonra isə bu server vasitəsi ile linpeasi digər sistemə yükləməliyik.
Bunun üçün /tmp qovluquna aşaqıdakı əmri calışdırırıq./tmp getmə səbəbi ora aşaqı dərəcəli user belə fayl runlama icazəsi var.
Yükləndikdən sonra chmod ilə linpeas icazələr veririk.
Bunları etdikdən sonra linpeas işə salmaq qalır.Onun üçün bu əmri yazırıq:
Nəticə olaraq linpeas sistemi enumeration edir və imtiyaz yüksəldə biləcəyımız şeyləri göstərir.
sarı/qırmızı olanlar 95% ehdimala privilege escalation edə bimək olur.
qırmızı olanlanlarda diqqət yetirməyə dəyər.
Last updated