Jump to content

daabm

Expert Member
  • Gesamte Inhalte

    5.200
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von daabm

  1. https://evilgpo.blogspot.com/2015/04/wer-bin-ich-und-was-darf-ich.html

     

    Wir haben ne Master-GPO, die für 46 Security Privileges lokale Gruppen definiert. Die können dann komfortabel über GPP Local Users and Groups verwaltet werden. Und da wiederum kann man mit WMI-Filtern ebenso komfortabel SID-basiert Gruppen/User auslesen, falls erforderlich. In den eigentlichen Security Privileges stehen nur die zwangsweise erforderlichen Einträge (manchmal muß SERVICE drinstehen, manchmal Administrators) sowie diese jeweiligen lokalen Gruppen.

     

    Funktioniert prima :-)

    • Danke 1
  2. vor 5 Stunden schrieb ineedhelp:

    Ein Paar Änderungen habe ich vorgenommen.

     

    Kein Thema - wir haben so ein selbstgeschriebenes Remote Management Tool, das die Ausführung einzeiliger (!) ShellExecs erlaubt - und der Return muß in StdOut abgeliefert werden. Die Breite ist beschränkt auf ne Standard-Konsole (80 Zeichen, danach wird abgeschnitten). Das schränkte die Formatierungsmöglichkeiten ziemlich ein :-)

     

    Und wir haben zwar AppLocker mit Ausnahmen, aber wir haben keine zusätzlichen Regeln, die diese Ausnahmen zulassen, daher kann ich nicht wirklich helfen. Vielleicht hilft https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/applocker/test-an-applocker-policy-by-using-test-applockerpolicy

  3. Wenn Du das $userobject erstellst, hast Du ein Objekt. Das fügst Du Deinem Array hinzu. Dann änderst Du Eigenschaften davon - im Array ist aber immer noch das eigentliche Objekt. Und wenn Du das erneut hinzufügst, ist es jetzt halt zweimal drin. Du mußt schon bei jedem neuen User eine neue Instanz erstellen...

     

    Insofern: @testperson hat's schon richtig beschrieben.

    Nachtrag: Das gleiche "Problem" hat man auch, wenn man Kopien von Objekten erstellen möchte.

    $MyObject = [PSCustomObject]@{
        Name = "Test"
    }
    $MyCopy = $MyObject
    $MyCopy.Name = "Geändert"
    
    $MyObject.Name
    
    $MyCopy2 = $MyObject.PSObject.Copy()
    $MyCopy2.Name = "Geändert"
    
    $MyObject.Name

     

    Viele glauben, daß $MyObject.Name immer noch "Test" wäre. Ist es aber nicht, denn $MyObject ist identisch mit $MyCopy. In der Variablen steckt das gleiche Objekt. Du mußt ein neues Objekt erstellen, entweder wie in meinem Beispiel durch Kopieren oder wie bei Dir durch ::new()

    • Like 1
  4. Und damit wir da jetzt weiterkommen:

     

    powershell "$Results=[Collections.Arraylist]::new();$ApplockerPolicies=Get-AppLockerPolicy -Effective;Foreach($ApplockerPolicy in $AppLockerPolicies){Foreach($RuleCollection in $ApplockerPolicy.RuleCollections){Foreach($Rule in $RuleCollection){Try{$UserOrGroup=$Rule.UserOrGroupSid.Translate([System.Security.Principal.NTAccount]).Value}Catch{$UserOrGroup=$Rule.UserOrGroupSid.Value};Switch($Rule.GetType().Name){'FileHashRule'{$RuleValue=$Rule.HashConditions;break};'FilePublisherRule'{$RuleValue=$Rule.PublisherConditions;break};'FilePathRule'{$RuleValue=$Rule.PathConditions;break};Default{$RuleValue='*** Unknown rule type ***'}};$Result = [PSCustomObject]@{Name=$Rule.Name;Description=$Rule.Description;RuleType=$RuleCollection.RuleCollectionType;Account=$UserOrGroup;Type=$Rule.GetType().Name;Action=$Rule.Action;Value=$RuleValue -join ','};[Void]$Results.Add($Result)}}};$Results"

     

    Sammelt alle aktiven Applocker-Regeln (allerdings ohne evtl. vorhandene Ausnahmen - dann wäre der Output etwas unübersichtlich geworden).

    Am 5.3.2024 um 09:33 schrieb ineedhelp:

    Lässt sich feststellen, warum diese Anwendungen gestartet wurde bzw. von welchem Programm diese Anwendungen gestartet wurden?

     

    Nur wenn Du Auditing auf "Process Creation" aktivierst. Viel Spaß beim Auswerten :engel:

  5. Wo ich mir diesen OP grad noch mal durchlese - das scheitert ja schon daran, daß es keine Authentifizierung für Remotezugriffe in einem Netzwerk-Range gibt. Entweder das System ist in der Domäne und ich hab einen entsprechend berechtigten User, es ist in einer Workgroup und ich hantiere mit dezentralen ("verteilten") Credentials oder ich habe einen Agent darauf laufen... Alles diffus, ich pflück mir jetzt mal eine ☁️

  6. Hab die Woche schon zweimal den Vollautomat entkalkt... Beide Male nicht rechtzeitig dazu gekommen, Step 2 einzuleiten (Wasserbehälter spülen und mit Wasser füllen) -> Abbruch -> "Dringend entkalken". Heute endlich geschafft mit einer Fake-Entkalkung nur mit Wasser. Zum Glück können die Dinger noch nicht feststellen, ob wirklich Entkalker im Wasser ist :-)

    • Haha 2
×
×
  • Neu erstellen...