User Namespace
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
'n gebruiker namespace is 'n Linux-kernkenmerk wat isolasie van gebruiker- en groep-ID-kaartings bied, wat elke gebruiker namespace in staat stel om sy eie stel gebruiker- en groep-ID's te hê. Hierdie isolasie stel prosesse wat in verskillende gebruiker namespaces loop in staat om verskillende voorregte en eienaarskap te hê, selfs al deel hulle dieselfde gebruiker- en groep-ID's numeries.
Gebruiker namespaces is veral nuttig in containerisering, waar elke houer sy eie onafhanklike stel gebruiker- en groep-ID's moet hê, wat beter sekuriteit en isolasie tussen houers en die gasheerstelsel moontlik maak.
Wanneer 'n nuwe gebruiker namespace geskep word, begin dit met 'n leë stel gebruiker- en groep-ID-kaartings. Dit beteken dat enige proses wat in die nuwe gebruiker namespace loop, aanvanklik geen voorregte buite die namespace sal hê.
ID-kaartings kan gevestig word tussen die gebruiker- en groep-ID's in die nuwe namespace en dié in die ouer (of gasheer) namespace. Dit stel prosesse in die nuwe namespace in staat om voorregte en eienaarskap te hê wat ooreenstem met gebruiker- en groep-ID's in die ouer namespace. Die ID-kaartings kan egter beperk word tot spesifieke reekse en substelle van ID's, wat fynbeheer oor die voorregte wat aan prosesse in die nuwe namespace toegeken word, moontlik maak.
Binne 'n gebruiker namespace kan prosesse volle wortelvoorregte (UID 0) hê vir operasies binne die namespace, terwyl hulle steeds beperkte voorregte buite die namespace het. Dit stel houers in staat om met wortelagtige vermoëns binne hul eie namespace te loop sonder om volle wortelvoorregte op die gasheerstelsel te hê.
Prosesse kan tussen namespaces beweeg deur die setns()
stelselskakel te gebruik of nuwe namespaces te skep met die unshare()
of clone()
stelselskakels met die CLONE_NEWUSER
vlag. Wanneer 'n proses na 'n nuwe namespace beweeg of een skep, sal dit begin om die gebruiker- en groep-ID-kaartings wat met daardie namespace geassosieer is, te gebruik.
Deur 'n nuwe instansie van die /proc
lêerstelsel te monteer as jy die parameter --mount-proc
gebruik, verseker jy dat die nuwe monteernaamruimte 'n akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie naamruimte het.
Om die gebruikersnaamruimte te gebruik, moet die Docker-daemon begin word met --userns-remap=default
(In ubuntu 14.04 kan dit gedoen word deur /etc/default/docker
te wysig en dan sudo service docker restart
uit te voer)
Dit is moontlik om die gebruikerskaart vanaf die docker-container te kontroleer met:
Of van die gasheer met:
Ook, jy kan slegs in 'n ander prosesnaamruimte ingaan as jy root is. En jy kan nie ingaan in 'n ander naamruimte sonder 'n beskrywer wat daarna verwys nie (soos /proc/self/ns/user
).
In die geval van gebruikersname ruimtes, wanneer 'n nuwe gebruikersnaam ruimte geskep word, word die proses wat in die ruimte ingaan 'n volle stel vermoëns binne daardie ruimte toegeken. Hierdie vermoëns stel die proses in staat om bevoorregte operasies uit te voer soos montage lêerstelsels, die skep van toestelle, of die verandering van eienaarskap van lêers, maar slegs binne die konteks van sy gebruikersnaam ruimte.
Byvoorbeeld, wanneer jy die CAP_SYS_ADMIN
vermoë binne 'n gebruikersnaam ruimte het, kan jy operasies uitvoer wat tipies hierdie vermoë vereis, soos die montage van lêerstelsels, maar slegs binne die konteks van jou gebruikersnaam ruimte. Enige operasies wat jy met hierdie vermoë uitvoer, sal nie die gasheerstelsel of ander naam ruimtes beïnvloed nie.
Daarom, selfs al sal die verkryging van 'n nuwe proses binne 'n nuwe gebruikersnaam ruimte jou al die vermoëns teruggee (CapEff: 000001ffffffffff), kan jy eintlik slegs diegene wat met die ruimte verband hou gebruik (montage byvoorbeeld) maar nie elkeen nie. So, dit op sy eie is nie genoeg om uit 'n Docker houer te ontsnap nie.
hacking truuks deur PRs in te dien na die** HackTricks en HackTricks Cloud github repos.
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)