PSConf Europe 2017 (PreConference) – PowerShell Security Fundamentals

von David des Neves

Ein direkter Blogeintrag von der PSConf. Ich tippe mit und blogge die relevanten Punkte direkt nach den Sessions.

Ein spannender Punkt zum Ausspähen von Credentials ist Mimikatz.

Security ist relevant, da laut Symantec 95% der PS Scripts zum Ausspähen verwendet werden.

In Win10 wird PowerShell 2.0 und die aktuelle Version von PowerShell ausgeliefert – kann man aber abwählen. Möglicherweise notwendig, wenn man Windows PE nutzt. Es gibt Tools (PSAttack) welche PowerShell 2 nutzen, weil da nur sehr wenig mitgeloggt werden kann.

Remoting

Mit Winrm get winrm/config kann man die Remoting Config überprüfen.

Wer macht Remoting? Admins und Support, die Berechtigungen werden über Just Enough Admin (JEA) gesteuert werden.

Execution Poliy

Ist kein Sicherheits Feature, sondern eher eine Hilfe um Fehler zu vermeiden.Das Signieren der Scripts ist empfohlen und das Ausrollen per GPO. ABER: Zum Ändern der Executionpolicy muss man nicht Admin sein.

Signing

Signieren um gegen ungewollte Änderungen, gegen Änderungen von Dritten gesichert.

Pass the Hash auslesen des credential hashes und schauen, dass man mit diesen zu immer höheren Rechten kommt. Mit Credential Guard werden die Hashes in einem eigenen Bereich gespeichert, der nicht den Hash zur Verfügung stellt, sondern nur noch, ob dieser korrekt oder falsch ist. Damit bekommt man den Hash nicht mehr in die Hand.

Anti-Maleware Scan Interface (AMSI)

Analysiert Scripts (PowerShell, VBScript, JScript), ob diese “böse” sind.

Constrained Languare Mode schränkt die Möglichkeiten von PowerShell stark ein. Der Device Guard kann man einstellen, das man nur Installationen von SCCM zulässt und geht dabei über den Applocker hinaus. Als Bild: Device Guard ist der Türsteher eine Disco – Applocker der Barmann.

Constrained Language Applocker

Eventuelle Umgehungsversuche werden mitgeloggt => Event forwarding für gewisse Ereignisse (8007), um all diese Scripts zentral nachverfolgen zu können. Vermutlich auch in Hinsicht auf OMS ganz interessant.

Logging

Es gibt 3 Arten vom Logging:

  • Module logging
  • Transcription
  • Scriptblock Logging

SIEM – Zentrales Logging

Laut Microsoft sollten alle 3 geloggt werden, beginnend mit script block logging. Protected Event Logging, um alle Events an einen zentralen Ort zu bekommen und zu erhalten, damit es ein Angreifer nicht löschen kann.

JEA – Juast Enough Administration

Ein Teil von JEA ist eine allgemeine Security Verbesserung.

Es wird ein konkreter Plan beschrieben, um die Sicherheit zu erhöhen (Build visibility and control of admin activity) – wir überspringen das aus Zeitmangel.

Just Enough Information (JEI) – der Support Mitarbeiter darf zB Passwörter zurücksetzen, aber kein dir, Get-host, … zu machen.

Schönen Tag!