ld.so privesc exploit example
Bereid de omgeving voor
In de volgende sectie vind je de code van de bestanden die we gaan gebruiken om de omgeving voor te bereiden
Hierdie lêer definieer die funksies en strukture vir die libcustom
biblioteek.
Hier is 'n voorbeeld van 'n eenvoudige C-program wat 'n aangepaste biblioteek, libcustom.so, gebruik:
Hierdie program bevat 'n enkele funksie, custom_function()
, wat 'n eenvoudige boodskap na die uitvoer skryf. Hierdie funksie sal gebruik word in die volgende voorbeeld om die priviligie-escalasie te demonstreer.
Skep daardie lêers op jou rekenaar in dieselfde vouer
Kompileer die biblioteek:
gcc -shared -o libcustom.so -fPIC libcustom.c
Kopieer
libcustom.so
na/usr/lib
:sudo cp libcustom.so /usr/lib
(root privs)Kompileer die uitvoerbare lêer:
gcc sharedvuln.c -o sharedvuln -lcustom
Kontroleer die omgewing
Kontroleer dat libcustom.so vanaf /usr/lib gelaai word en dat jy die binêre lêer kan uitvoer.
Uitbuiting
In hierdie scenario gaan ons aanneem dat iemand 'n kwesbare inskrywing geskep het binne 'n lêer in /etc/ld.so.conf/:
Die kwesbare gids is /home/ubuntu/lib (waar ons skryftoegang het). Laai die volgende kode af en stel dit saam binne daardie pad:
Nou dat ons die kwaadwillige libcustom-biblioteek binne die verkeerd gekonfigureerde pad geskep het, moet ons wag vir 'n herlaai of vir die root-gebruiker om ldconfig
uit te voer (as jy hierdie binêre lêer as sudo
kan uitvoer of as dit die suid-bit
het, sal jy dit self kan uitvoer).
Sodra dit gebeur het, herkontroleer waar die sharevuln
uitvoerbare lêer die libcustom.so
-biblioteek laai vanaf:
Soos u kan sien, laai dit dit vanaf /home/ubuntu/lib
en as enige gebruiker dit uitvoer, sal 'n skulp uitgevoer word:
Let wel dat ons in hierdie voorbeeld nie voorregte verhoog het nie, maar deur die opdragte wat uitgevoer word te wysig en te wag vir die root- of ander bevoorregte gebruiker om die kwesbare binêre lêer uit te voer, sal ons in staat wees om voorregte te verhoog.
Ander verkeerde konfigurasies - Dieselfde kwesbaarheid
In die vorige voorbeeld het ons 'n verkeerde konfigurasie vervals waar 'n administrateur 'n nie-bevoorregte vouer binne 'n konfigurasie-lêer binne /etc/ld.so.conf.d/
ingestel het.
Maar daar is ander verkeerde konfigurasies wat dieselfde kwesbaarheid kan veroorsaak, as jy skryfregte het in 'n konfigurasie-lêer binne /etc/ld.so.conf.d
, in die vouer /etc/ld.so.conf.d
of in die lêer /etc/ld.so.conf
, kan jy dieselfde kwesbaarheid konfigureer en uitbuit.
Uitbuiting 2
Stel dat jy sudo-voorregte het oor ldconfig
.
Jy kan ldconfig
aandui waar om die konf-lêers vanaf te laai, sodat ons dit kan benut om ldconfig
willekeurige vouers te laat laai.
So, laat ons die lêers en vouers skep wat nodig is om "/tmp" te laai:
Nou, soos aangedui in die vorige uitbuit, skep die skadelike biblioteek binne /tmp
.
En uiteindelik, laai die pad en kyk waar die binêre lading die biblioteek vandaan:
Soos u kan sien, kan u dieselfde kwesbaarheid uitbuit deur sudo-voorregte oor ldconfig
te hê.
Ek het nie 'n betroubare manier gevind om hierdie kwesbaarheid uit te buit as ldconfig
gekonfigureer is met die suid-bit. Die volgende fout verskyn: /sbin/ldconfig.real: Kan nie tydelike kaslêer /etc/ld.so.cache~ skep nie: Toestemming geweier
Verwysings
Dab-masjien in HTB
Last updated