Seit über drei Dekaden beschäftigt sich Attila Krick als Datenbank-Spezialist mit Datenbank-Design und -Tuning sowie der Sicherheit im und am Microsoft SQL Server. Als Developer entwirft und entwickelt er Client-/Server-Anwendungen basierend auf C# oder Visual Baisc.NET, ADO.NET Entity Framework und der Userinterface-Gestaltung per WPF. Als Scripter der ersten Stunde arbeitet er seit der Version 1.0 mit PowerShell in Aufträgen. Als Coach und Berater vermittelt er sein Wissen erfolgreich in PowerShell Seminaren an seine Teilnehmer.
Im Interview gibt er Tipps zum Umgang mit PowerShell 7
Vor kurzem ist PowerShell 7.0.0 als Release erschienen. Welche Vorteile bringt ein Umstieg auf die neue Version?
Die Liste der spürbaren Neuerungen ist sehr lang. Aber die wohl größte Änderung ist das Zusammenführen der Windows PowerShell und PowerShell Core. Das bedeutet, dass Windows- und Linux-/MacOS-Admins zukünftig eine PowerShell benutzen und Betriebssystem-übergreifend agieren können, ohne auf die speziellen Features ihrer primären OS-Welt verzichten zu müssen. Im Detail sind neue Cmdlets hinzugekommen oder Altbekannte entschiedend verbessert worden. Z.B. können Fehler mit Get-Error einfacher analysiert werden oder ForEach-Object beherrscht jetzt die parallele Verarbeitung. Auch die Script-Sprache selbst wurde erweitert, um mit $null-Werten robuster umgehen zu können oder einzeilige if-else-Konstrukte sind möglich. Auch die OOP wurde weiter ausgebaut, sodass Programmierer lauffähige Anwendungen schreiben können, ohne diese spezial für ein OS kompilieren zu müssen.
Was sind die fünf meistgenutzten Befehle in der PowerShell?
- Get-Member (Analysiert Objekte in der Pipeline darauf hin, um welche Art von Objekt es sich handelt, welche Informationen es transportiert und was man mit dem Objekt machen kann.)
- Where-Object (Filtert Objekte in der Pipeline aus.)
- ForEach-Object (Erlaubt es, mehrere Interaktionen mit einem Pipeline-Objekt umzusetzen.)
- Select-Object (Das schweizer Offiziermesser unter den Cmdlets)
- Get-Help (Hilfe zur Selbsthilfe; Wichtige und ausführliche Informationen mit Beispielen zu jedem Cmdlet)
IT Sicherheit ist dieser Tage ein großes Trendthema. Für welche Anwendungszwecke ist PowerShell als IT-Security Tool interessant?
Die Möglichkeiten der PowerShell sind, u.a. dank .NET, grenzlos. Die Bedienung ist mächtig und simpel zugleich. Daher ein idealles Werkzeug in der Security, um wiederkehrende Aufgaben zu automatisieren oder revisionsicher zu etablieren. Die PowerShell ist nur ein Werkzeug und zu welcher Baustelle wir es mitnehmen, bleibt uns überlassen. Daher deckt die PowerShell alle Security-Themen ab, wie z.B. Monitoring, PKI, Verschlüsselung, ACL, ActiveDirectory, Protokollierung und Penetration Test – um nur ein paar zu nennen.
Welche Skills werden benötigt, um mit PowerShell Penetration Tests durchführen zu können.
Penetration Tests oder Hacking ist keine Raketenwissenschaft, auch wenn es für den Laien so ausschauen mag. Das A und O ist es, für dieses Thema zu brennen. Desweiteren sollte man Spezialist auf seinem Gebiet sein wie z.B. Windows, Exchange, Active Directory, Netzwerk, WLAN, Web, .NET oder PowerShell. Damit meine ich nicht alle Themenwelten, sondern ein Gebiet reicht fürs Erste. PowerShell ist dann nur Mittel zum Zweck, um widerkehrend und automatisiert sein Gebiet mit einfachen und effektiven Mitteln zu kompromittieren, zu monitoren, auszuwerten und Schlussfolgerungen zu ziehen. Der dritte Faktor ist Zeit. Penetration Tester ist ein Full-Time-Job, da man viel Zeit im Internet verbringt, um Up-To-Date zu bleiben, neue Patches wieder zu umgehen oder Worst-Case-Szenarien und deren Abwendung durchspielt und etabliert.
Spaß für Zwischendurch: Spiele für die PowerShell?
Freunde der alten Arcade-Spiele sollten einen Blick auf ‚Powershell Space Invaders‚ werfen. Auch die Datei- und Ordnerstruktur mit Größe und Erstellungsdatum von Cortana rekursiv vorlesen zu lassen, ist immer einen Schmunzler wert.
Gibt es versteckte Funktionen (EasterEggs) in PowerShell?
Das besondere an der PowerShell ist, dass es keine verstecken Dinge (BlackBox) gibt. Alles lässt sich ab- und herleiten, was für das Verstehen und tiefer Abtauchen unabdingbar ist. Microsoft ist außerdem nicht so bekannt für Easter-Eggs, aber vielleicht wäre der God-Mode etwas für diese Kategorie:
ni „c:\temp\GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}“ -it di | % { saps $_.FullName }
Der Attila Krick PowerShell Geheimtipp:
Oft werde ich von meinen Kunden und Seminarteilnehmern gefragt, wie man eine GUI um seine PowerShell-Skripte bauen kann. Technisch ist das keine Hürde für die PowerShell, da ihr .NET zu 100% zur Seite steht u.a. WinForms und WPF. Aber ohne fundierte Kenntnisse über .NET und z.B. WPF sollten sich nur die Skripter mit einer extrem hohen Frusttrationsgrenze oder Masochisten dran wagen. Mein Tipp ist in diesen Fällen, das Skript als PowerShell-Cmdlet zu erstellen und mit Show-Command automatisch als GUI zum Ausfüllen anzeigen zu lassen. (z.B.: Show-Command Test-NetConnection).
Veranstaltungstipp:
Semicolon Remote-Vortrag: PowerShell Objeke – analysieren und sinnvoll erweitern
Dienstag, 27.10.2020- 18:00 – 19:00 Uhr