ld.so privesc exploit example
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
U sledećem odeljku možete pronaći kod datoteka koje ćemo koristiti za pripremu okruženja
Kreirajte te datoteke na vašem računaru u istom folderu
Kompajlirajte biblioteku: gcc -shared -o libcustom.so -fPIC libcustom.c
Kopirajte libcustom.so
u /usr/lib
: sudo cp libcustom.so /usr/lib
(root privilegije)
Kompajlirajte izvršnu datoteku: gcc sharedvuln.c -o sharedvuln -lcustom
Proverite da li se libcustom.so učitava iz /usr/lib i da li možete izvršiti binarnu datoteku.
U ovom scenariju pretpostavićemo da je neko kreirao ranjivu stavku unutar datoteke u /etc/ld.so.conf/:
Vulnerabilna fascikla je /home/ubuntu/lib (gde imamo pravo pisanja). Preuzmite i kompajlirajte sledeći kod unutar te putanje:
Sada kada smo napravili zlu libcustom biblioteku unutar pogrešno konfigurisane putanje, treba da sačekamo na ponovno pokretanje ili da root korisnik izvrši ldconfig
(u slučaju da možete da izvršite ovu binarnu datoteku kao sudo ili da ima suid bit, moći ćete da je izvršite sami).
Kada se to dogodi, ponovo proverite odakle sharevuln
izvršna datoteka učitava libcustom.so
biblioteku:
Kao što možete videti, učitava se iz /home/ubuntu/lib
i ako bilo koji korisnik to izvrši, izvršiće se shell:
Napomena da u ovom primeru nismo eskalirali privilegije, ali modifikovanjem izvršenih komandi i čekanjem da root ili drugi privilegovani korisnik izvrši ranjivi binarni fajl moći ćemo da eskaliramo privilegije.
U prethodnom primeru smo simulirali pogrešnu konfiguraciju gde je administrator postavio folder bez privilegija unutar konfiguracionog fajla unutar /etc/ld.so.conf.d/
.
Ali postoje i druge pogrešne konfiguracije koje mogu izazvati istu ranjivost, ako imate dozvole za pisanje u nekom konfiguracionom fajlu unutar /etc/ld.so.conf.d
, u folderu /etc/ld.so.conf.d
ili u fajlu /etc/ld.so.conf
možete konfigurisati istu ranjivost i iskoristiti je.
Pretpostavimo da imate sudo privilegije nad ldconfig
.
Možete naznačiti ldconfig
odakle da učita konf fajlove, tako da možemo iskoristiti to da nateramo ldconfig
da učita proizvoljne foldere.
Dakle, hajde da kreiramo potrebne fajlove i foldere za učitavanje "/tmp":
Sada, kao što je naznačeno u prethodnom eksploitu, napravite zlu biblioteku unutar /tmp
.
I konačno, učitajmo putanju i proverimo odakle se binarni fajl učitava biblioteku:
Kao što možete videti, imajući sudo privilegije nad ldconfig
, možete iskoristiti istu ranjivost.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)