Miten muutan rekisterin oikeuksia Powershellilla

Windowsin rekisteri voi olla kultakaivos hyökkääjille ja tietämättömille työntekijöille. Ei ole olemassa paikkaa, joka sopisi paremmin käyttöön tietoturvahaavoittuvuuksia tai täysin mokata Windows-järjestelmä kuin Rekisteri.

rekisteriavainten käyttöoikeuksien hallitsemiseksi turvallisuus-ja vianetsintätarkoituksia varten voit käyttää muutamia eri menetelmiä. Tässä artikkelissa opit PowerShell. Käyttämällä pari PowerShell cmdlets ja hieman .NET magic, voit lukea ja käsitellä rekisterin käyttöoikeuksia harkintasi mukaan.

mikä on Rekisterilupa?

tässä artikkelissa rekisterioikeus on joukko kulunvalvontamerkintöjä (ACEs), jotka muodostavat kulunvalvontalistan (ACL). Nämä ACL: t koskevat sitten rekisteriavainta.

ACLs on yleinen termi monien siinä olevien entiteettien joukossa, eivätkä rekisteriavaimille annetut ACL: t eroa toisistaan. ACL määrittelee, mitä ja miten tili voi käyttää kyseistä rekisteriavainta.

rekisterin käyttöoikeudet (ACL) määrittelevät, millä tilillä voi käyttää tiettyä rekisteriavainta ja millaisia oikeuksia kyseisellä tilillä on.

rekisteriavaimen käyttöoikeuksien löytäminen

aloita etsimällä rekisteriavainta, jonka käyttöoikeuksia haluat muuttaa. Minä satunnaisesti valita yksi polku *HKCU:. Voit valita minkä tahansa avaimen haluat kokeilla tätä.

ennen kuin mitään muuttaa, on hyvä katsoa, mikä on nykyinen eturistiside ja tehdä varmuuskopio, jos asiat menevät pieleen. PowerShell tarjoaa cmdlet nimeltään Get-Acl, joka tekee juuri niin.

PS> $acl = Get-Acl 'HKCU:\AppEvents\EventLabels\ActivatingDocument'
PS> $acl.Access
RegistryRights : ReadKey
AccessControlType : Allow
IdentityReference : APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES
IsInherited : False
InheritanceFlags : ContainerInherit
PropagationFlags : None
--snip--

nyt kun sinulla on olemassa oleva eturistiside, voit muuttaa sitä. Jos olet huolissasi, voit jopa tallentaa ACL tiedostojärjestelmään Export-CliXml cmdlet, mutta se on toinen päivä.

voit nähdä esimerkin Export-CliXml cmdletin käytöstä objektien tallentamiseen levylle täällä.

luot eturistisiteen Powershellilla

yllä olevassa osiossa nappasit eturistisiteen Get-Acl: llä. Koska käytät rekisteriä, tämä kyseinen ACL captured toimii vain rekisterin kanssa. Päivittää ACL, sinun täytyy lisätä sääntö (ACE) ACL, joka on tarkoitettu rekisterin.

kun määrität Windowsin rekisterin käyttöoikeuksia Powershellissa, sinun on luotava järjestelmä.Security.AccessControl.RegistryAccessRule object. Tämän objektin avulla voit määritellä kriteerit kuten pääasiallinen (käyttäjä, ryhmä, jne.) että tämä ässä koskee, käyttöoikeustaso, ja jos aiot sallia tai kieltää, että pääsy.

oikeuden määrittely

ensimmäinen vaihe on antaa asianmukaiset oikeudet rekisteriavaimelle. Valittavana on 14 eri oikeutta. Tutustu taulukkoon tässä Microsoft doc löytää oikea etsit.

voit löytää kaikki mahdolliset oikeudet kirjoittamalla :: ja painamalla välilehtinäppäintä. PowerShell käy läpi kaikki käytettävissä olevat oikeudet.

Creating the RegistryAccessRule Object

kun sinulla on oikea nimi, Sinun on luotava RegistryAccessRule-objekti. Tällä objektilla on kolme argumenttia, jotka sinun täytyy siirtää sille:

  • identiteetti (Windows-tili)
  • oikeus (jolla on useita eri objekteja tämän luomiseksi)
  • Salli tai kiellä tämä oikeus

ensin Luo henkilöllisyys luomalla järjestelmä.Security.Keskeinen.NTAccount objekti kulkee tunnistetiedot kuten alla.

$idRef = ("HOSTNAME\username")

seuraavaksi luodaan järjestelmä.Security.AccessControl.Rekisterioikeudet vastustavat jonkin yllä olevan taulukon oikeuksista käyttämistä.

$regRights = ::FullControl

määrittelevät nyt perintö-ja lisäysliput. Täällä voit valita None, ContainerInherit, tai ObjectInherit. Lisätietoa näistä vaihtoehdoista löydät täältä.

seuraavan pätkän perintöasetukseksi on asetettu Ei mitään, eli se ei peri mitään oikeuksia päärekisteriavaimeltaan.

$inhFlags = ::None
$prFlags = ::None

kun olet asettanut perintö-ja etenemisliput, aseta sitten kulunvalvontatyyppi enum.

$acType = ::Allow

luo lopuksi RegistryAccessRule-objekti käyttäen kaikkia juuri keräämiäsi objekteja.

$rule = New-Object System.Security.AccessControl.RegistryAccessRule ($idRef, $regRights, $inhFlags, $prFlags, $acType)

sinulla on nyt $ – sääntömuuttujassa määritelty Rekisteröintisääntö. Tarvitset tätä seuraavassa osiossa.

lisäämällä ACL

seuraava vaihe on lisätä edellisessä osiossa luomasi RegistryAccessRule nykyiseen ACL: ään käyttämällä aiemmin nappaamaasi ACL-objektia koskevaa AddAccessRule () – menetelmää.

PS> $acl.AddAccessRule($rule)

olemassa olevan ACL: n korvaaminen

Vaihtoehtoisesti voit myös korvata olemassa olevan ACL: n kokonaan käyttämällä SetAccessRule () – menetelmää.

PS> $acl.SetAccessRule($rule)

eturistiside

mutta et ole vielä valmis! Et ole sitonut uutta eturistiriitaa rekisteriavaimeen. Jos haluat käyttää uutta ACL: ää rekisteriavaimeen, Käytä komentoa Set-Acl. Voit käyttää Set-Acl-komentoa siirtämällä tallennetun ACL: n $acl: ssä suoraan Set-Acl: ään osoittaen samalla avainta, johon haluat käyttää sitä.

haluat asettaa eturistisiteen samalle avaimelle, josta keräsit alkuperäisen eturistisiteen. Anna avainpolku Set-Acl: n Polkuparametrille sen soveltamiseksi.

$acl | Set-Acl -Path 'HKCU:\AppEvents\EventLabels\ActivatingDocument'

ACL lisättyä rekisterin pääsysääntöä on sovellettu alkuperäiseen rekisteriavaimeen. Voit nyt varmistaa muutoksen tapahtuneen soittamalla uudelleen Get-Acl: ään ja varmistamalla, että IdentityReference -, Registryrright-ja AccessControlType-ominaisuudet ovat odotustesi mukaiset.

PS> (Get-Acl 'HKCU:\AppEvents\EventLabels\ActivatingDocument').Access
RegistryRights : FullControl
AccessControlType : Allow
IdentityReference : <hostname>\Administrator
IsInherited : False
InheritanceFlags : None
PropagationFlags : None

Summary

tässä blogikirjoituksessa opit, miten tallentaa, muuttaa ja toimittaa Ässät rekisteriavaimen ACL: ään. Käytit Get-Acl PowerShell cmdletiä löytääksesi olemassa olevat ACL: t ja Set-Acl cmdlet: tä muuttaaksesi niitä. Näiden kahden cmdletin käyttäminen on lähes kaikki, mitä tarvitset toimiaksesi rekisterin käyttöoikeuksien kanssa Powershellissa.

Leave a Reply

Sähköpostiosoitettasi ei julkaista.