ld.so privesc exploit example
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Aşağıdaki bölümde, ortamı hazırlamak için kullanacağımız dosyaların kodunu bulabilirsiniz.
Bu dosyaları makinenizde aynı klasörde oluşturun
Kütüphaneyi derleyin: gcc -shared -o libcustom.so -fPIC libcustom.c
libcustom.so
'yu /usr/lib
'ye kopyalayın: sudo cp libcustom.so /usr/lib
(root yetkileri)
Çalıştırılabilir dosyayı derleyin: gcc sharedvuln.c -o sharedvuln -lcustom
libcustom.so'nun /usr/lib'den yüklenip yüklenmediğini ve ikili dosyayı çalıştırıp çalıştıramadığınızı kontrol edin.
Bu senaryoda birinin /etc/ld.so.conf/ içinde savunmasız bir giriş oluşturduğunu varsayacağız:
Kırılgan klasör /home/ubuntu/lib (yazılabilir erişimimizin olduğu yer). Aşağıdaki kodu o yolun içinde indirin ve derleyin:
Artık yanlış yapılandırılmış yol içinde kötü niyetli libcustom kütüphanesini oluşturduğumuza göre, bir yeniden başlatma veya root kullanıcısının ldconfig
komutunu çalıştırmasını beklememiz gerekiyor (eğer bu ikiliyi sudo olarak çalıştırabiliyorsanız veya suid biti varsa, bunu kendiniz çalıştırabileceksiniz).
Bu gerçekleştiğinde, sharevuln
yürütülebilir dosyasının libcustom.so
kütüphanesini nereden yüklediğini yeniden kontrol edin:
Gördüğünüz gibi, /home/ubuntu/lib
'den yüklüyor ve eğer herhangi bir kullanıcı bunu çalıştırırsa, bir shell çalıştırılacaktır:
Bu örnekte ayrıcalıkları yükseltmediğimizi, ancak yürütülen komutları değiştirerek ve kök veya diğer ayrıcalıklı kullanıcıların savunmasız ikili dosyayı yürütmesini bekleyerek ayrıcalıkları yükseltebileceğimizi unutmayın.
Önceki örnekte, bir yöneticinin /etc/ld.so.conf.d/
içindeki bir yapılandırma dosyasına ayrıcalıksız bir klasör ayarladığı bir yanlış yapılandırmayı taklit ettik.
Ancak, /etc/ld.so.conf.d
içindeki bazı yapılandırma dosyalarında yazma izinleriniz varsa, /etc/ld.so.conf.d
klasöründe veya /etc/ld.so.conf
dosyasında aynı zafiyeti yapılandırabilir ve bunu istismar edebilirsiniz.
ldconfig
üzerinde sudo ayrıcalıklarınız olduğunu varsayalım.
ldconfig
'e konfigürasyon dosyalarının nereden yükleneceğini belirtebilirsiniz, bu nedenle ldconfig
'in keyfi klasörleri yüklemesini sağlamak için bunu avantaja çevirebiliriz.
Şimdi, "/tmp" yüklemek için gereken dosya ve klasörleri oluşturalım:
Şimdi, önceki istismarda belirtildiği gibi, kötü niyetli kütüphaneyi /tmp
içinde oluşturun.
Ve sonunda, yolu yükleyelim ve ikili dosyanın kütüphaneyi nereden yüklediğini kontrol edelim:
Gördüğünüz gibi, ldconfig
üzerinde sudo ayrıcalıklarına sahip olduğunuzda aynı güvenlik açığını istismar edebilirsiniz.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)