Registry - Berechtigungen - alle User auflisten

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.025
Moin!

Als ich eben zufällig in der Registry unterwegs war um phantomartige Löschungen meiner Einträge zu verhindern. Also entziehe ich mal Schreibrechte.
Dabei ist mir ein User (also sein CLSID) untergekommen den es eigentlich gar nicht geben kann.

Frage daher: welches Tool kann mir alle User mit Berechtigungen in der Registry auflisten?

Mit der Intention Geister rauszuwerfen, überall.
Alle Schlüssel etc. aufzulisten für die ein User Rechte hat ist natürlich völlig überzogen; aber obere Schlüssel auf die er keine hat würden ein Nachfassen erleichtern.

CN8
 
madmax2010 schrieb:
net user /domain cumulonimbus8
Was hat das, auch «ADSISearcher», bitte mit der Registry zu schaffen, und dem Auflisten aller (unbekannten) User?

CN8
 
Er meint nicht alle User aus der Registry auslesen, sondern Auslesen aller User, die irgendwo in der Registry noch Berechtigungen haben, das können ja auch User sein, die gar nicht mehr im System vorhanden sind.
 
  • Gefällt mir
Reaktionen: cumulonimbus8
was genau dir aufgestoßen ist, kann ich anhand deiner beschreibung in textform auch noch nicht ganz nachvollziehen.

allerdings hast du in der registry ja den users-key und kannst dort die gesamtübersicht aller user überblicken.

1702662197208.png


wobei s-1-5-18 dem systemuser entspricht, s-1-5-19 dem lokalen diensteuser, s-1-5-20 dem netzwerkdiensteuser und s-1-5-500 dem inbuilt administrator

bei den meisten windowsinstallationen kommt dann noch eine id für den hauptnutzer (sei es nun ein admin oder nicht) sowie die gast id (s-1-5-501) hinzu. bei mir ist das alles deaktiviert, daher nicht vorhanden.

zunächst würde ich also prüfen ob diese obskure clsid, von der du berichtest, die du allerdings nicht erwähnst, nicht zu einem inbuilt accounttyp gehört. weiterhin wäre es hilfreich wenn du detaillierter erläutern würdest, was du mit phantomartigem löschen von einträgen meinst.

z.b. gibt es windows-interne user die bei bestimmten operationen kurzzeitig zugriff auf die registry bekommen und dann wieder verlieren. trustedinstaller, bestimmte securitybezogene accs. die starten dann mit s-1-15-.....
oft z.b. kommt vor der
Code:
S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681

also wenn du mal die id mitteilst, wird die "fehlersuche" bzw. bestimmung ob da was im argen ist einfacher.
 
  • Gefällt mir
Reaktionen: madmax2010
@Redundanz
Ich suche alle möglichen und eben unmöglichen User die in(nerhalb) der Registry Rechte an irgendwas haben.
Nicht die User die es gibt und wo diese aufgelistet werden.

Redundanz schrieb:
was genau dir aufgestoßen ist, kann ich anhand deiner beschreibung in textform auch noch nicht ganz nachvollziehen.
Ich gucke mir ‹zufällig› die Rechte für einen Key an. Und da taucht ein User auf den es nicht in HKU gibt, den es auch anderweitig nicht geben kann (wird sogar als «unbekanntes Konto» ausgewiesen).
Und wo einer da weitere, und wo dieser eine hier dann auch anderswo…

Deswegen will ich (umgekehrt formuliert) alle Berechtigungen nach ihren Usern durchforsten und dann diese User, sämtliche User, aufgelistet bekommen.
Wie ich dort ungültige User dann wegbekomme wäre der nächste Akt.

CN8
 
verstehe.
wie heißt denn die id, das ist doch kein geheimnis? daran kann man ja dann feststellen ob es ein interner user ist, der immer nur temporär zugriff bekommt, oder einer der in der vergangenheit manuell von einem admin angelegt wurde. denn wenn es ersteres ist, dann kannst du diese einträge immer wieder bekommen, z.b. nach windows updates.

zwecks auflistung über get-acl und irgendwie durch die registry-ordner loopen. also ps-skript bauen. wird etwas komplizierter, weil ich glaube dass ein paar operatoren nur mit dem filesystem funktionieren und für rekursion innerhalb des registry hives man da wahrscheinlich bisschen basteln darf.

Code:
get-acl "HKLM:SYSTEM\CurrentControlSet\Control" | Format-List | Out-File "x:\<ausgabeordner>\ausgabe.txt"
 
Redundanz schrieb:
wie heißt denn die id, das ist doch kein geheimnis?
Ich weiß es nicht, ich wills auch nicht weiter wissen - ich habe diesen User 2 Ebene höher rausgefuert und dann war er (Verebung) auch weiter unten nicht mehr da. (Laufende Nummer meine ich war eine 13 statt der berühmten 20; ich wüsste nicht, dass das ein Systemuser wäre…)

Wie überhaupt sollte ich einen unbekannten User/ID nennen könne wenn ich doch genau nach so was suche?

Dann habe ich die Zeile mal einfach ausgelöst…
Code:
Path   : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
Owner  : VORDEFINIERT\Administratoren
Group  : NT-AUTORITÄT\SYSTEM
Access : VORDEFINIERT\Administratoren Allow  FullControl
         VORDEFINIERT\Benutzer Allow  ReadKey
         VORDEFINIERT\Administratoren Allow  FullControl
         NT-AUTORITÄT\SYSTEM Allow  FullControl
         ERSTELLER-BESITZER Allow  FullControl
         ZERTIFIZIERUNGSSTELLE FÜR ANWENDUNGSPAKETE\ALLE ANWENDUNGSPAKETE Allow  ReadKey
         S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681 Allow  ReadKey
Audit  :
Sddl   : O:BAG:SYD:(A;;KA;;;BA)(A;CIID;KR;;;BU)(A;CIID;KA;;;BA)(A;CIID;KA;;;SY)(A;CIIOID;KA;;;CO)(A;CIID;KR;;;AC)(A;CIID;KR;;;S-1-15-3-1024-106536593
         6-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681)
Das ist im Grunde nutzloses Tun.
Ein Skript müsste alle Keys (und Werte…) ablaufen und dumm alle User aufsammeln. Wenns da Faule Eier gibt müsste man (Wahnsinn in Dosen denke ich) nach diesen Usern suchen; in der Hoffnung, dass sie vererben und man den Zopf oben abschendien kann. Wenn nicht muss ein bisschen »KI« einfach die nächsttiefere Ebene (und nicht tiefer) ablaufen obe ich da was findet. und dann aber diesen Treffern derne Unterbau.

Jedenfalls will ich ert mal wissen ob dort überhaupt solche Geister herumgeistern.

CN8
 
cumulonimbus8 schrieb:
Dann habe ich die Zeile mal einfach ausgelöst…
Code:
...
         S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681 Allow  ReadKey
...


da ist sie ja, genau die id, die ich oben erwähnt hatte. und hier ist die erklärung, dass es sich um eine interne windows-funktions-sid handelt.

https://learn.microsoft.com/de-de/t...security/sids-not-resolve-into-friendly-names

ich wette diese id hat in der gui das von dir erwähnte "account unknown"-präfix.
das ist microsoft-intern und daran würde ich nicht rumfummeln oder gar gegenläufig deny setzen, dann kann es bei internen vorgängen (während updates z.b.) zu problemen kommen.
 
@Redundanz
Du sagst mir Dinge die ich längst und lange weiß. Klar, dass deine Zeile auch User-Nummer-15 aufführt, und dieser ein Systemuser ist.

Es hilft mir nur nicht… Ich habe unbekannte User da drin (fürchte ich). Irgendwo da drin. Und die will ich rausfischen um überhaupt darüber in Kenntnis zu geraten.
Wie ich die loswerde ist die nächste Hürde.

CN8
 
ja perfekt!!! wenn du da unbekannte user drin hast, die gleichzeitig keine internen systemuser sind, was du ja scheinbar abgeklärt hast, oder irgendwie bereits weißt, dann brauchst du jetzt nur noch ein passendes skript und dein problem ist gelöst!

probiers mal damit.

Code:
Get-Childitem "HKLM:System" -recurse | Select-Object -ExpandProperty Name | % {$_.replace("HKEY_LOCAL_MACHINE\","HKLM:")} | get-acl | Format-List | Out-File "c:\ausgabe.txt"

den replace musst du für jeden hive anpassen, also hklm, hkcu, hkcr... weil powershell keine einheitliche registry-navigation im sinne der identifier beherrscht.
 
Redundanz schrieb:
wenn du da unbekannte user drin hast,
Ich dachte allein das hätte schon die Überschrift hergegben?! 😉

Zudem wirft die Zeile - aber das wundert mich gemäß dem Output nicht sehr - Fehler… (…und läuft immer noch)
Code:
Get-Childitem : Der angeforderte Registrierungszugriff ist unzulässig.
In Zeile:1 Zeichen:1
+ Get-Childitem "HKLM:System" -recurse | Select-Object -ExpandProperty …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...6)\#\Properties:String) [Get-Childitem], SecurityException
 SecurityException
    + FullyQualifiedErrorId : System.Security.SecurityException.Microsoft.PowerShell.Commands.GetChildItemCommand
(Der TextExtraktor der PowerToyss scheitert kläglich hier, auch an einem ScreenShot, ich hoffe das Getippte passt grundsätzlich.)

«HKEY_LOCAL_MACH...6» - gerade da wo es spannend wird kommt eine Ellipse die essentielle Informationen verdeckt während sich der rest in sinnlosem Sermon ergeht.

Natürlich ist das eine Admin-PS. Und dass ein Lesen schon an Sicherheitsverweigerung scheitert ist ein Dickes Ding.

Wäre natürlich gut zu erfahren wo ich hier geblockt werde (ich habe da nämlich noch eine andere Sache im Hinterkopf). Hat es denn nicht irgendein Tool das einem auf… entspanntere… Weits dies Infos beschafft?

Ich harre mal der Dinge die da noch kommen…

CN8


Mist…S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681
…war der der mir auffiel. 3 statt 13, die Erinnerung war Zorngeblendet. Ist aber gutartig.
Was ich mit den gelisteten TXTs mache weiß ich aber immer noch nicht recht. ich meine - womit ich die filze um auf evtl. Schlaglöcher zu stoßen.
 
Zuletzt bearbeitet:
die vereinzelten zugriffsfehler, die du rausgegriffen hast sind schlüssel auf die nur der system account zugriff hat. also höchste privilegstufe. die kann nichtmal der lokale admin öffnen oder ändern. hat im userland nichts zu suchen auch wenn man von hinten durch die brust über tools wie advancedrun code mit derartigem privileg ausführen kann.

wenn du nachwievor irgendwelche "machenschaften" oder ungereimtheiten vermutest, dann ist das für die auflistung noch etwas schlanker und ließe sich gut in ein csv pipen und dann filtern etc...

Code:
Get-Childitem "HKLM:System" -recurse | Select-Object -ExpandProperty Name | % {$_.replace("HKEY_LOCAL_MACHINE\","HKLM:")} | get-acl | Format-List | Out-String -Stream | Select-String -Pattern " S-","HKEY"

grundsätzlich ist das aber sehr quixotesk ... windmühlen und so.
 
Nicht weiter schlimm (der Systemuser war ein Irrtum; aber löschen konnte ich ihn an einer Stelle dennoch), ich habe ja nach anpassen der Syntax mir ein paar Files erzeugt.
Nur weiß ich noch nicht recht wo ich logisch ansetzen soll. der Systemuser war ein Versehen; und vielleicht muss ich mit Auslesen bewusst von mir gesperrter Keys mal einen Vergleichsoutput für die Schlagwörter erzeugen.
Da kann ich mir schon helfen mit.

CN8
 

Ähnliche Themen

Zurück
Oben