Published On: 29. November 2022Categories: Wissen

Die Gefahr durch den Einsatz der PowerShell

Die PowerShell von Microsoft wird immer wichtiger für Firmen. Sie wird oft genutzt zum Managen und Konfigurieren der Microsoft Azure Cloud oder zur Automatisierung von IT-Prozessen im Unternehmen.

Nahezu jeder IT Administrator hat bereits ein oder mehrere PowerShell-Scripte geschrieben, die im produktiven Einsatz sind. Umso erschreckender ist jedoch zu erleben, das viele Firmen sich der Gefahr und des Risikos nicht bewusst sind, den der Einsatz der PowerShell mit sich bringt.

Zum einen erleben wir, das die PowerShell selbst bei Kunden nicht gesichert ist und jegliche Art von Codeausführung zugelassen wird und zum anderen den fahrlässigen Umgang mit Scripten im Produktiveinsatz.

Codeausführung fast immer möglich

Es gibt eine sehr große Anzahl an Möglichkeiten die Execution Policy zu steuern oder zum Umgehen.

Copy to Clipboard

Dieses Wissen machen sich Hacker zu nutzen und können über die PowerShell, welches direkten Windows API Zugriff bietet, hervorragend Ihre Systeme Angreifen. Aus diesem Grunde gibt auch eine große Auswahl an PowerShell-Frameworks wie:

  • PowerSploit
  • PowerShell Empire
  • Mimikatz
  • AutoRDPwn
  • Nishang Framework

Für Ihre Sicherheit ist es wichtig zu verstehen, wie Sie die Execution Policies korrekt konfigurieren und so Ihr Unternehmen schützen.

Der Umgang mit PowerShell Code

In den meisten Firmen wird die PowerShell nicht als „Entwicklung“ angesehen sondern mehr als schwarze Box, mit deren Hilfe wissende Admin-Koryphäen wundersame Dinge möglich machen. Somit werden jedoch auch die minimum Standards der Entwicklung im Umgang mit PowerShell nicht berücksichtigt.

In unserer täglichen Arbeit stoßen wir so auf lange, unkommentierte Scripte, die bereits von mehreren Admins und Azubis angepasst wurden, jeder mit seinem eigen Style und Copy-Past-Code aus dem Internet. Diese Scripte liegen auf dem lokalen Notebook des Admins oder einem Team-Laufwerk gemeinsam mit 17 anderen Versionen des Scriptes.
Das diese Scripte funktionieren ist meist ein glücklicher Umstand als echtes können. Wenn sie dann nicht mehr funktionieren werden wir oft dazu gerufen.

Wenn es um die Entwicklung eine Produktes geht, haben Firmen viele Vorgaben. PowerShell code darf hingegen jeder schreiben wie er möchte. Oft werden diese Scripte dan als Logon-Script oder über Endpoint Management Lösungen eingebunden.

Wie sieht der Umgang mit PowerShell-Scripten bei Ihnen aus?

Prüfen Sie, in welchem Level Sie bereits angelangt sind:

  • copy and paste code
  • Code einrücken
  • Dokumentieren
  • Wiederholende Teile in Funktionen auslagern
  • Entwicklungsumgebung und Plugins nutzen
  • Reihenfolge im Dateiaufbau beachten
  • „Happy Patch Coding“ vermeiden
  • Zentrale Code-Teile in Module auslagern
  • Code Verwaltungs System (GIT) einführen
  • Coding Guidelines entwickeln
  • Branching Modell entwickeln
  • Code Testbar entwickeln
  • Dev-OPS Prozess einführen
  • Automatisiertes Qualitätssicherung implementieren
  • Automatisiertes Unit Testing durchführen
  • Code Signieren
  • Code Execution steuern

Wenn Sie das nächste Level erreichen wollen, empfehlen wir unsere PowerShell-Kurse

Leave A Comment