the Power in Power Users
first published on TechNet on May 01, 2006
sijoittaminen Windows käyttäjätilit Power Users security group on yhteinen lähestymistapa IT-organisaatiot ottaa saada käyttäjät vähiten etuoikeus ympäristö välttäen monia kipuja todella käynnissä kuin rajoitettu käyttäjä. Power Users-ryhmä pystyy asentamaan ohjelmistoja, hallitsemaan virta-ja aikavyöhykeasetuksia sekä asentamaan ActiveX-säätöjä, toimintoja, jotka rajoitetut käyttäjät on kielletty.
monet ylläpitäjät eivät kuitenkaan ymmärrä, että tämä valta tulee todellisen rajoitetun käyttäjän turvallisuuden hinnalla. Monet artikkelit, mukaan lukien tämä Microsoft Knowledge Base-artikkeli ja Microsoft security specialist Jesper Johansenin blogikirjoitus, huomauttavat, että käyttäjä, joka kuuluu Power Users-ryhmään, voi helposti nostaa itsensä täysin etuoikeutettuihin ylläpitäjiin, mutta en löytänyt yksityiskohtaista kuvausta korkeusmekanismeista, joihin he viittaavat. Siksi päätin tutkia asiaa.
ennen kuin saatoin aloittaa tutkimuksen, minun oli määriteltävä ongelma. Suojausvirheen, kuten puskurin ylivuotooikeuden, puuttuessa eskalaatio on mahdollista vain, jos tili voi määrittää mielivaltaisen koodin suoritettavaksi etuoikeutetumman tilin yhteydessä. Oletustilejä, joilla on enemmän etuoikeuksia kuin Tehokäyttäjillä, ovat järjestelmänvalvojat ja paikallinen järjestelmätili, jossa useat Windows-palveluprosessit toimivat. Näin ollen, jos tehokäyttäjien jäsen voi muokata jonkin näistä tileistä suorittamaa tiedostoa, määrittää yhden suoritettavista tiedostoista lataamaan mielivaltaisen DLL: n tai lisätä suoritettavan automaattisen käynnistyksen näille tileille, he voivat saada täydet hallinnolliset oikeudet.
ensimmäinen askel oli nähdä, mihin tiedostoihin ja hakemistoihin Tehokäyttäjät-ryhmällä on kirjoitusoikeus, mutta että rajoitetuilla käyttäjillä ei. Järjestelmät katsoin olivat varastossa Windows 2000 Professional SP4, Windows XP SP2, ja Windows Vista. En aio vaivautua katsomaan palvelinjärjestelmiä, koska yleisin tehokäyttäjien skenaario on työasemalla.
brute force-menetelmä sen näkemiseksi, mitä tiedostojärjestelmän objekteja Tehokäyttäjät voivat muokata, vaatii jokaisen tiedoston ja kansion käymistä ja sen käyttöoikeuksien tutkimista, mikä ei selvästikään ole käytännöllistä. Komentoriviltä cacls apuohjelma että Windows sisältää kaatopaikkoja turvallisuus kuvaajat, mutta en ole koskaan vaivautunut oppimisen turvallisuus kuvaaja kuvaus kieli (SDDL) ja jäsentäminen tuotos vaatisi kirjallisesti script. AccessEnum-apuohjelma, jonka Bryce kirjoitti, vaikutti lupaavalta ja se voi myös tarkastella rekisterin turvallisuutta, mutta sen tarkoituksena on näyttää mahdolliset käyttöoikeuksien heikkoudet, Ei tiettyjen tilien käyttöoikeudet. Lisäksi tiesin, että minun täytyy myös tutkia Windows-palveluihin sovellettavaa tietoturvaa.
päädyin siihen, että minun oli kirjoitettava uusi apuohjelma työhön, joten loin Accesschkin . Syötät AccessChk tilin tai ryhmän nimi ja tiedostojärjestelmän polku, rekisteriavain, tai Windows-palvelun nimi, ja se raportoi tosiasialliset käyttöoikeudet tilin tai ryhmän on objektin, ottaen huomioon tilin ryhmän jäsenyydet. Jos esimerkiksi Mark-tilillä olisi pääsy tiedostoon, mutta Mark kuuluu kehittäjäryhmään, jolta nimenomaisesti evätään pääsy, AccessChk näyttäisi, ettei Markilla ole käyttöoikeutta.
jotta tuloste olisi helppolukuinen AccessChk tulostaa objektin nimen viereen “W”, jos tilillä on käyttöoikeudet, joiden perusteella se voi muokata objektia, ja “R”, jos tili voi lukea objektin tietoja tai tilaa. Eri Kytkimet aiheuttaa AccessChk rekursion osaksi alihakemistoja tai rekisterin aliavaimet ja –v kytkin on se ilmoittaa erityiset käyttöoikeudet käytettävissä tilin. Kytkin lisäsin erityisesti etsiä esineitä, joiden tili on kirjoitusoikeus on-w.
aseistettu tällä uudella työkalulla olin valmis aloittamaan tutkia. Ensimmäinen tavoite oli Windows XP SP2 VMWare asennus, joka ei ole asennettu muita sovelluksia kuin VMware työkalut. Ensimmäinen suorittamani komento oli:
accesschk-ws “power users” c:\windows
tämä näyttää kaikki \Windows-kansion tiedostot ja hakemistot, joita tehokäyttäjien ryhmä voi muokata. Tietenkin, monet tiedostot \Windows ovat osa käyttöjärjestelmää tai Windows palvelut ja siksi suorittaa paikallisen järjestelmän tilille. AccessChk ilmoitti, että Tehokäyttäjät voivat muokata useimpia \Windows-hakemistoja, minkä ansiosta jäsenkäyttäjät voivat luoda tiedostoja näihin hakemistoihin. Siten Power Users-ryhmän jäsen voi luoda tiedostoja \Windows – ja \Windows\System32-hakemistoon, mikä on yleinen vaatimus huonosti kirjoitetuille vanhoille sovelluksille. Lisäksi, tehokäyttäjien on voitava luoda tiedostoja \Windows\ladatut Ohjelmatiedostot hakemistoon, jotta he voivat asentaa ActiveX-ohjaimet, koska Internet Explorer tallentaa ne kyseiseen hakemistoon. Tiedoston luominen näihin hakemistoihin ei kuitenkaan ole etuoikeussijainnin polku.
huolimatta siitä, että Tehokäyttäjät voivat luoda tiedostoja \Windowsin ja useimpien sen alikansioiden alle, Windows määrittää useimpien näiden kansioiden sisältämien tiedostojen oletussuojausoikeudet siten, että vain järjestelmänvalvojat-ryhmän jäsenillä ja Paikallisjärjestelmätilillä on kirjoitusoikeus. Poikkeuksia ovat kirjasintiedostot (.fon), monet järjestelmän lokitiedostot (.loki), jotkut ohjetiedostot (.chm), kuvia ja äänileikkeitä (.jpg, .gif, ja .wmv) ja asennustiedostot (.inf), mutta mitään näistä tiedostoista ei voi muuttaa tai korvata hallinnollisen etuoikeuden saamiseksi. Laiteajurit \Windows\System32\Drivers mahdollistaisi helpon eskalaation, mutta Tehokäyttäjillä ei ole kirjoitusoikeutta mihinkään niistä.
näin useita .exe ‘ s ja .dll on listalla, joten tutkin mahdollisia hyväksikäyttöjä. Useimmat suoritustiedostot, joihin Virrankäyttäjillä on kirjoitusoikeus, ovat interaktiivisia apuohjelmia tai toimivat alennetuilla oikeuksilla. Ellei järjestelmänvalvojaa voi huijata kirjautumaan järjestelmään vuorovaikutteisesti, näitä ei voi käyttää kohottamiseen. Mutta on yksi räikeä poikkeus: ntoskrnl.exe:
aivan oikein, Tehokäyttäjät voivat korvata tai muokata Windowsin ydinkäyttöjärjestelmätiedostoa. Viisi sekuntia sen jälkeen, kun tiedosto on muutettu, kuitenkin, Windows File Protection (WFP) korvaa sen varmuuskopio se hakee, useimmissa tapauksissa, alkaen \Windows\System32\dllcache. Tehokäyttäjillä ei ole kirjoitusoikeutta tiedostoihin dllcachessa, joten se ei voi kumota varmuuskopiota. Power Users-ryhmän jäsenet voivat kuitenkin kiertää WFP: n kirjoittamalla yksinkertaisen ohjelman, joka korvaa tiedoston, huuhtoo muokatut tiedot levylle ja käynnistää järjestelmän uudelleen ennen kuin WFP ryhtyy toimiin.
varmistin, että tämä lähestymistapa toimii, mutta jäljelle jäi kysymys, miten tätä haavoittuvuutta voidaan käyttää kohottamaan etuoikeuksia. Vastaus on yhtä helppo kuin purkulaitteen avulla löytää toiminto, jota Windows käyttää etuoikeustarkistuksiin , SeSinglePrivilegeCheck-sovellukseen ja paikata sen sisääntulokohta levyllä olevaan kuvaan niin, että se palauttaa aina TRUE-koodin, joka on tuloskoodi, joka osoittaa, että käyttäjällä on oikeus, jota tarkistetaan. Kun käyttäjä on käynnissä tällä tavalla muokatulla ytimellä, hänellä näyttää olevan Kaikki oikeudet, mukaan lukien latausohjain, omistusoikeus ja Tokenin luominen, mainitakseen vain muutamia niistä oikeuksista, joita hän voi helposti hyödyntää ottaakseen järjestelmän täyden hallinnollisen hallinnan. Vaikka 64-bittinen Windows XP estää ytimen peukaloinnin Patchguardiin, harvat yritykset toimivat 64-bittisissä Windowsissa.
Korvaa Ntoksrnl: N.exe ei ole ainoa tapa lyödä läpi hallinnollisten etuoikeuksien kautta \Windows-hakemistoon, kuitenkin. Vähintään yksi niistä DLL-järjestelmistä, joiden oletusoikeudet sallivat Tehonkäyttäjän muokkauksen, Schedsvc.dll, toimii Windows-palveluna paikallisen järjestelmän tilillä. Schedsvc.dll on DLL, joka toteuttaa Windows Task Scheduler-palvelun. Windows voi toimia menestyksekkäästi ilman palvelua, joten Tehokäyttäjät voivat korvata DLL: n mielivaltaisella DLL: llä, kuten sellaisella, joka yksinkertaisesti lisää heidän tilinsä paikalliseen Järjestelmänvalvojat-ryhmään. WFP suojaa tietysti tätäkin tiedostoa, joten sen korvaaminen vaatii kuvaamani WFP-ohitustekniikan käyttöä.
olin jo tunnistanut useita korkeussijaintivektoreita, mutta jatkoin tutkimustani tarkastelemalla tehokäyttäjien pääsyä \Program Files-hakemistoon, josta löysin samanlaisia oletusoikeuksia kuin \Windows-hakemistosta. Tehokäyttäjät voivat luoda alihakemistoja \Program-tiedostojen alle, mutta eivät voi muokata useimpia esiasennettuja Windows-komponentteja. Jälleen, poikkeuksia, kuten Windows Messenger (\Program Files\Messenger\Msmgs.exe) ja Windows Media Player (\Program Files\Windows Media Player\Wmplayer.exe) juokse vuorovaikutteisesti.
tämä ei tarkoita, etteikö \Program-tiedostoissa olisi mahdollisia aukkoja. Kun olen tutkinut viimeisimmän lähdön näin, että Tehokäyttäjät voivat muokata mitä tahansa tiedostoa tai hakemistoa luotu \Program-tiedostoja jälkeen luotujen aikana pohja Windows install. Testijärjestelmässäni \Ohjelmatiedostot\VMware\VMware Tools\Vmwareservice.Exe, kuvatiedosto VMware Windows-palvelu, joka toimii paikallisen järjestelmän tilille, oli tällainen tiedosto. Toinen hieman ironinen esimerkki on Microsoft Windows Defender Beta 2, joka asentaa palvelunsa suoritettavaksi \Program Files\Windows Defender oletussuojausasetuksilla. Näiden palvelukuvatiedostojen vaihtaminen on nopea polku järjestelmänvalvojan etuoikeuksiin ja se on jopa helpompaa kuin tiedostojen korvaaminen \Windows-hakemistossa, koska WFP ei sekaannu korvauksiin.
seuraavaksi käänsin huomioni rekisteriin ajamalla tämän komennon:
accesschk –swk “power users” hklm
Lähdeluettelo oli valtava, koska Virrankäyttäjillä on kirjoitusoikeus valtaosaan HKLM\Software keystä. Ensimmäinen alue, jota tutkin mahdollisten korotusten varalta, oli HKLM\System key, koska kirjoitusoikeus moniin sen alla oleviin asetuksiin, kuten Windows-palveluun ja ohjainkokoonpanon avaimiin HKLM\System\CurrentControlSet\Services, mahdollistaisi paikallisen järjestelmätilin triviaalin subversion. Analyysi paljasti, että Tehokäyttäjillä ei ole kirjoitusoikeutta mihinkään merkittävään kyseisen avaimen alle.
useimmat Tehonkäyttäjät-kirjoitettavat alueet HKLM: n toisen päähaaran alla, ohjelmistot, jotka liittyvät Internet Exploreriin, Exploreriin ja sen tiedostoyhdistyksiin sekä virranhallintakonfiguraatioon. Tehokäyttäjillä on myös kirjoitusoikeus HKLM\Software\Microsoft\Windows\CurrentVersion\Runiin, jolloin he voivat määrittää mielivaltaiset suoritustiedostot suoritettaviksi aina, kun joku kirjautuu interaktiivisesti, mutta tämän hyödyntäminen vaatii käyttäjältä, jolla on hallinnolliset oikeudet kirjautua järjestelmään vuorovaikutteisesti (joka järjestelmästä riippuen ei ehkä koskaan tapahdu tai tapahtuu harvoin). Ja aivan kuten \Program Files-hakemistossa, Tehokäyttäjillä on oletuskirjoitusoikeus HKLM\Software-ohjelmiston muihin kuin Windows-alavaimoihin, mikä tarkoittaa, että kolmannen osapuolen sovellukset, jotka määrittävät suoritettavia koodipolkuja järjestelmänlaajuisissa Rekisteriavaimissaan, voivat avata tietoturva-aukkoja. VMware, ainoa järjestelmään asennettu sovellus, ei.
jäljelle jäi Windows-palvelut. Ainoat palvelun käyttöoikeudet AccessChk pitää kirjoituskäyntejä ovat SERVICE_CHANGE_CONFIG ja WRITE_DAC. Käyttäjä, jolla on SERVICE_CHANGE_CONFIG, voi määrittää mielivaltaisen suoritustiedoston käynnistettäväksi palvelun käynnistyessä ja antaa WRITE_DACILLE mahdollisuuden muokata palvelun käyttöoikeuksia myöntääkseen itselleen SERVICE_CHANGE_CONFIG-käyttöoikeuden. AccessChk paljasti seuraavat minun varastossa Windows XP SP2 järjestelmä:
ajoin seuraavaksi Psservicen nähdäksesi tilin, jossa dcomlaunch-palvelu suorittaa:
siten Power Users-ryhmän jäsenet voivat yksinkertaisesti muuttaa dcomlauncherin kuvapolkua osoittaakseen omaa kuvaansa, käynnistää järjestelmän uudelleen ja nauttia hallinnollisista oikeuksista.
mahdollisesti voi olla muitakin palveluita, jotka ottavat käyttöön hyväksikäyttöjä turvallisuudessaan. Oletusoikeudet Windows-asetukset kolmannen osapuolen sovellusten luomissa palveluissa eivät salli tehokäyttäjien kirjoitusoikeutta, mutta jotkut kolmannen osapuolen sovellukset saattavat määrittää mukautettuja käyttöoikeuksia, jotta ne voivat tehdä niin. Itse asiassa, minun tuotanto 64-bittinen Windows XP asennus AccessChk paljastaa reikä, että ei vain Tehokäyttäjät voivat käyttää nostaa itse, mutta että rajoitetut käyttäjät voivat samoin:
Olin nyt päättänyt tutkimukseni päävaiheen ja juuri vahvistanut sen, mitä kaikki ovat sanoneet: Tehonkäyttäjät-ryhmän päättäväinen jäsen voi melko helposti tehdä itsestään täyden ylläpitäjän käyttämällä käyttöjärjestelmän ja kolmannen osapuolen sovellusten luomia hyväksikäyttöjä.
viimeinen askel oli nähdä, miten Microsoftin lähestymistapa Power Users-tiliin on kehittynyt ajan myötä. Tämä 1999 Microsoft Knowledge Base-artikkeli dokumentoi kuuluisan näytönsäästäjän korkeussijaintihaavoittuvuuden, joka oli olemassa Windows NT 4: ssä, mutta Microsoft sulki tuon aukon ennen Windows 2000: n julkaisua. KB: n artikkelista käy myös ilmi, että Microsoft oli ilmeisesti tietämätön muista haavoittuvuuksista, joita todennäköisesti oli olemassa. Windows 2000 SP4 sisältää myös reikiä, mutta on itse asiassa hieman turvallisempi kuin Windows XP SP2: n oletusasetukset: Tehokäyttäjillä ei ole kirjoitusoikeutta Ntoskrnl: ään.exe tai Tehtävien ajoitus-kuvatiedosto, mutta dcomlauncher-palvelun kirjoitusoikeuden sijaan ne voivat kumota WMI-palvelun, joka toimii myös Paikallisjärjestelmän tilillä.
Windows XP SP1 lisäsi enemmän tehokäyttäjien heikkouksia, kuten kirjoitusoikeuden kriittisiin järjestelmätiedostoihin, kuten Svchostiin.exe, Windows service hosting prosessi, ja lisäpalvelut, WMI ja SSDPSRV, hyödynnettävissä käyttöoikeudet. Useat palvelut jopa salli rajoitettu käyttäjät nostaa kuvattu tässä Microsoft KB artikkelissa tämän vuoden maaliskuusta.
Microsoftin uusin käyttöjärjestelmä, Windows Vista, sulkee kaikki valtavirtakäyttäjien kuvaamat haavoittuvuudet niin, että se käyttäytyy identtisesti rajattujen käyttäjien kanssa. Microsoft on siis sulkenut oven Tehokäyttäjiltä pakottaakseen IT-esikunnat turvaamaan järjestelmänsä siirtämällä käyttäjät rajoitettuihin käyttäjätileihin tai hallinnollisiin tileihin, joissa heidän on tunnustettava loppukäyttäjän kontrolli järjestelmistään.
tärkeintä on, että vaikka Microsoft voisi korjata haavoittuvuuksia löysin tutkimuksessani, ne eivät voi estää kolmannen osapuolen sovelluksia ottamasta käyttöön uusia ja samalla säilyttää kyky tehokäyttäjien asentaa sovelluksia ja ActiveX valvontaa. Opetus on, että IT-järjestelmänvalvojana sinun ei pitäisi huijata itseäsi ajattelemaan, että Power Users-ryhmä on turvallinen kompromissi matkalla toimimaan rajoitettuna käyttäjänä.
Originally by Mark Russinovich on 5/1/2006 11:01: 00 AM
Migrated from original Sysinternals.com/Blog
Leave a Reply