Hoşgeldin Misafir

Linux Yetki Yükseltme #1

Conrado Sol

29 Nis 2026
63 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Okuyacağınız konu bölüm bölüm anlatıma tabi tutulacaktır, "Linux Yetki Yükseltme" konusuna giriş yapıyorum, iyi okumalar.

Yetki yükseltme saldırganın sınırlı kullanıcı haklarından yola çıkarak sisteme tam erişim elde etmesini sağlayan bir süreçtir kısa tabiriyle.

1*vjRN7eF6ksxgHy6Lky8IYA.png


Konu serisinin devamında; sudo suit, cronjob, capability, kütüphaneler ve kernel zafiyetleri, servisleri konularını ele alacağım, bunlarla birlikte araç ve teknikleri de değinmekte fayda olacağının kanısındayım.

Linux'ta root hesap, işletim sistemine tam seviyede erişim sağlar. Bu doğrultuda amacımıza ulaşmak için ilk öncelikle bilgi toplama yani Enumeration işlemi yapmamız lazımdır.

1738971757248


Bilgi toplama recon işlemlerinde temel olarak İşletim Sistemi Sürümünü bilmemiz lazımdır işin doğasına bakarsak;
Ubuntu, Fedora vs...

Sadece İşletim Sistemi Sürümünü bilmek yeterli değildir, Çekirdek Sürümü bilmek bazen bizlere public exploietler bulmamızı sağlayabilir. Fakat nasıl kullanıldığına GitHub başta olmak üzere forum sayfaları ve açık kaynak araştırması yapmamız işlemimizin devamlılığı açısından faydalı olacaktır aksi taktirde Kernek exploitleri sistem kararsızlığına ve çökmesine neden olabilir.

linux-kernel-derlemesi-prensipleri-1.png


Sunucuda hangi sistemlerin çalıştığını bilmek daha doğru bir ifade ile root olarak çalışan servisler bizler için kritiktir. Root olarak çalışıyor ve yanlış yapılandırılmışsa, yükseltme saldırısı işlemlerimizde hedefimiz olabilir.

Şimdi kısaca bazı başlıklara değinmek isterim, konu hakkında bilgi sahibi olmayan kişiler için,

Process yani Listeleme yapmak için şu parametreyi kullanacağız;

ps aus | grep root

burada ps kullanmamın nedeni tüm süreçler hakkında bilgi verir.

linux-list-processes-e1769425723432.jpg


Arkadaşlar, sisteme giriş yapan kullanıcıları bilirsek, lateral yani yanal hareket ile diğer kullanıcılar hakkında da bilgi elde edebiliriz.

Sisteme erişim sağladığımız da teme kullanım parametrelerin iş gördüğü durumlar oluyor, ls -la komutu ile dizin içeriklerini görüntüleyebiliriz.

Şunu söylemek istiyorum konu devamlılığı açısından mevcut kullanıcıya ait bir ssh anahtarı bulursak, makinede ssh oturumu açabiliriz. SSH anahtarları sisteme erişmek içinde kullanılabilir.

Örn. parametre; ls -l .ssh

14-6.png


Şimdi bilmemiz gereken bir başka kavrama daha değinelim, Bash Geçmişi;

Sayın okuyucular, kullanıcıların bash geçmişini kontrol etmekte önemlidir, çünkü komut satırında bir parolaları iletiyor, git deposu, cron işleri ve daha fazlasını yapabilir.Kullanıcının ne yaptığını bilmek için bizler history parametresini kullanalım;

history-default-behaviour.png


Bir başka bilmeniz gereken kavram, sudo kullanıcı ayrıcalığı

Sistemde bir kullanıcı root olarak komut çalıştırabilir, ayrıca sudoers kayıtları komutun parolarsız çalıştırılabilmesi için konfigüre edilebilir arkadaşlar.

maxresdefault.jpg


Bir başka üzerinde durmamız gereken konu, yapılandırma dosyaları sayın okuyucular bu dosyalar önemli bilgiler içerebilir. Kullanıcı adları, parolalar vs., .conf , .config uzantılarla biten tüm dosyalarda arama yapabiliriz.
gaLlvRh.png

Gelelim shadow dosyasına, /etc/shadow dizinindeki shadow dosyası okunabiliyorsa, tüm kullanıcılar için parola haslarını görebiliriz. Bu hashlar brüte force saldırılarına uğrayabilir.

The-SUID-on-usr-bin-passwd-file-and-etc-shadow.png


cat /etc/shadow parametresi ile dizine ve dosyaya erişim sağlayabiliriz.

Passwd dosyasına değineyim, bazen hash ve parola doğrudan passwd dosyasında bulunabilir, tüm kullanıcılar tarafından okunabilir durumları olabilir, arkadaşlar. Çevrimdışı brute force saldırıları yapabiliriz arkadaşlar.

Cron jobs değinelim şimdi, aslında zamanlanmış görevdir kısaca. Genellikle bakım ve yedekleme faaliyetlerini görür.

cat /ect/crontab parametresi ile dizin ve dosyaya erişim sağlayabiliriz.

Dosya sistemlerine üzerinde durayım şimdi, ek bir sürücü veya bağlanmamış dosya, sistemi keşfeder ve bağlayabilirsek, hassas dosya parola görüntüleyebiliriz.

lsblk parametresi ile görüntüleyelim;

Size-column-in-bytes-1024x708.webp


SETUID ve SETGID izinleri üzerinde durayım şimdi;

Kullanıcılara root erişim izni vermek zorunda kalmadan bir kullanıcının bir komutu root olarak çalıştırmasına izin vermek için SUID ve SGID izinleri kullanılabilir. SUTID yada SGID izinleri verilmiş birçok binary dosya root kabul elde etmek için kullanılabilir.

images

images


Bilmenizi istediğim bir husus daha, Yazılabilir dizinleri bulmak hayati önem taşır arkadaşlar.

Sisteme araçlar indirmeniz gerekiyorsa hangi dizinlerin yazılabilir olduğunu recon yapmamız önemli arkadaşlar. Bir CronJob yani zamanlanmış görevin dosyalarını keşfedebilir ayrıca yetki yükseltme de işlemini gerçekleştirebiliriz arkadaşlar.

find / -path /proc -prune -o -type d -perm -o+w 2>/dev/null bu parametreyi yazdığınız da şu şekilde bir çıktı alabileceksiniz;
Kod:
kali@kali:~$ find / -path /proc -prune -o -type d -perm -o+w 2>/dev/null
/tmp
/var/tmp
/dev/shm
/run/lock

Son olarak üzerinde durmak istediğim bir husus daha var, Yazılabilir dosyaları bulmak

Yapılandırma dosyalarının değiştirilmesi sistemin doğru çalışmaya devam etmesi için tehlikeli olsa da küçük bir değişikliğin daha fazla erişim sağlayabileceği durum olabilir. Ayrıca zamanlanmış görevleri kullanarak root olarak çalıştırılan tüm komut dosyaları bir yetki yükseltme için biraz değiştirebiliriz arkadaşlar

find / -path /proc -prume -o -type f -perm -o+w 2>/dev/null bu parametreyi yazdığınızda şu şekilde bir çıktı alacaksınız;
Kod:
kali@kali:~$ find / -path /proc -prune -o -type f -perm -o+w 2>/dev/null
/etc/cron.d/backup_script.sh <-- TEHLİKE: Herkes bu scripti değiştirebilir!
/opt/app/config.conf
/var/www/html/index.php

Bugün anlatmak istediklerim bu kadardı, konu kendi bakış açımla yazılmıştır, bu şekilde bir giriş yapmak istedim konu ile alakalı olarak yorum kısmında fikirlerinizi değerlendirmekle birlikte beyin fırtınası yapabiliriz, hepinize iyi hafta sonları diliyorum.