IT Sicherheitsperspektive: Die wichtigsten PowerShell Cmdlets zur Netzwerkkonfiguration

Mein Bloggerkollege Markus Elsberger hat bereits einen herausragenden Artikel zum Thema Netzwerkkonfiguration unter Windows mit PowerShell Cmdlets geschrieben. Dabei liefert er einen Downloadlink zu allen Kommandos in Form eines Cheatsheets:

CheatSheet – PowerShell Netzwerkkonfiguration

 

Ich möchte Markus‚ Ansatz auffassen und die CmdLets aus Sicht der IT Sicherheit betrachten, denn ich bin der Überzeugung, dass die PowerShell nach wie vor unterschätzt wird. Wer Linux einsetzt weiß um die Vorzüge der Bash Konsole.

Powershell starten

Die Powershell ist nicht identisch mit der üblichen Konsole, die mittels cmd.exe gestartet wird. Unter den neueren Betriebssystemen ist das Starten der Powershell sehr simpel:

  • Windowstaste drücken
  • Powershell eintippen
  • Windows PowerShell starten
PowerShell starten
PowerShell starten

Übersicht über aktuelle Netzwerkeinstellungen

 

get-netipconfiguration

Dieser Befehl zeigt alle Konfigurationen an. Darunter alle IP Adressen aller Netzwerkadapter. Zusätzlich werden auch konfigurierte DNS Server angezeigt. Aus Sicherheitssicht ist folgendes interessant:

  • Interfaces
  • IPv4/IPv6 Default Gateway
  • DNS Server

Interfaces

In der Regel kommen etwa zwei Interfaces ans Tageslicht, wenn der Befehl abgesetzt worden ist. Bei mir sind es vier Stück, da ich über virtuelle Maschinen interne Netzwerke habe, innerhalb derer kommuniziert werden kann.

Viel interessanter wird es, wenn Interfaces auftauchen, die man nicht kennt und dort auch nicht vermutet hat. An dieser Stelle ist große Vorsicht geboten! Unbekannte und seltsam konfigurierte Interfaces sollten genau betrachtet werden. Eventuell sogar deaktiviert. Details zu einem bestimmten Netzwerk allein zu bekommen geht über einen InterfaceIndex.

get-netipaddress -interfaceindex 1

Dadurch wird die allererst genannte Schnittstelle in allen Details dargestellt.

IPv4/IPv6 Default Gateway

Die hier konfigurierten Gateways dienen als Brücke für Verbindungen nach außen. Ein klassisches Beispiel dafür ist im Heimnetzwerk die IP Adresse des Routers. Wer eine FritzBox als sein eigen nennt wird folgende IP Adressen innerhalb seines Netzwerkes sehen (vermutlich).

IP Gerät
192.168.178.1 FritzBox (Router etc.)
192.168.178.10 Notebook

IT Sicherheit – Gefährlich wird es dann, wenn sich das Gateway aus irgendeinem Grund ändert. Denn dadurch wird die erste Ansprechstelle bei der Kommunikation einfach umgebogen auf ein anderes System. Das heißt: Wird das Gateway von außen verändert, so wird dadurch der komplette Datenverkehr über den neuen und fremden Host geleitet. Dieser kann alle mitlesen, solange er brav alles weiterleitet und sich passiv verhält.

Also Achtung vor sich ändernden Gateways.

DNS Server

Ich gehe davon aus, dass jeder Leser hier vertraut mit dem DNS Dienst ist. Falls nicht, kurz gesagt:

DNS (Domain Name System) übersetzt Domänen wie andresilaghi.com oder andrefritsche.com in eine IP Adresse, die dann angesprochen werden kann. DNS ist also eine Krücke für uns Menschen, da die meisten von uns sich IP Adressen nicht wirklich gut merken können.

IT Sicherheit – Gefährlich wird es dann, wenn der Haupt-DNS Server verändert wird. Normalerweise wird beispielsweise paypal.com richtig umgesetzt durch DNS. Dann logge ich mich ein und bezahle damit meine Rechnungen. Wenn aber der DNS Server verändert wird, so dass ein Angreifer die Übersetzung in eine IP Adresse umlenkt, so löst paypal.com bei einer völlig anderen IP Adresse. Diese spiegelt lediglich die Webseite, um meinen Usernamen und mein Passwort abzufischen. Das Ende vom Lied: Meine PayPal Nutzerdaten sind in der Hand von Betrügern.

Übersicht über Netzwerkadapter

Mit folgendem Kommando lassen sich die Informationen über Netzwerkinterfaces anzeigen lassen:

get-netipinterface

Die Liste, die hiermit erzeugt wird zeigt alle Netzwerkschnittstellen an samt Index und vielen weiteren Daten.

Ein weiteres Kommando liefert zusätzlich MAC Adressen sowie Verbindungsgeschwindigkeiten. Dazu, ob die Adapter aktiv sind oder nicht:

get-netadapter

IT Sicherheit – Gefährlich kann es vor allem dann werden, wenn Netzwerkadapter aufgelistet werden, die unbekannt sind. In diesem Fall wird es nötig genauer zu überprüfen, um was sich bei diesem Netzwerkadapter handelt. Im Zweifel muss er deaktiviert werden.

DHCP für ein Netwerkinterface aktivieren

Das Umleiten des Netzwerkverkehrs über DNS und die Veränderung des Gateways ist möglich, aber noch lange nicht alles was man tun kann. Ein Angreifer könnte über einen eigenen DHCP Dienst alle Geräte im Netzwerk über seine Leitungen umlenken und damit den Traffic des ganzen Netzwerkes lesen. Über DHCP hat er die Wahl, ob er das Gateway und/oder DNS verändern möchte, also die volle Auswahl, wie er an die Daten gelangen möchte.

set-netipinterface -interfaceindex <Nummer> -Dhcp Enabled

Hat man nun eine veränderte Einstellung und bekommt keine Verbindung zum originalen DHCP Server läss sich die Konfiguration auch manuell über ein CmdLet durchführen:

new-netipaddress -interfaceindex <Nummer> -ipaddress <IP> -defaultgateway <Gateway IP> -prefixlength <16/24/32>

Durch diesen Befehl wird die DHCP Konfiguration komplett überschrieben. Im Falle einer Manipulation kann man dadurch den Netzwerkverkehr zumindest zeitweise wieder über die richtigen Kanäle leiten.

IT-Sicherheit – Die Gefahr habe ich bereits beschrieben. Warum aber ist der Befehl wertvoll? Im Falle von Problemen bei der Netzwerkkonnektivität kann man darüber diesen Befehl eine neue Netzwerkinterface-Konfiguration beim DHCP Server abfragen. Dadurch lässt sich feststellen, ob eventuell ein anderer DHCP Server Antwort als der eigentlich bekannt.

DNS Konfiguration manuell schreiben

Um auch die DNS Settings zu überschreiben muss man einen zusätzlichen Befehl absetzen:

set-dnsclientserveraddress -interfaceindex <Nummer> -serveraddresses <DNS Server IP>

Damit das Internet und die Netzwerke effektiver arbeiten werden häufig DNS Informationen lokal auf Rechnern vorgehalten. Die Entscheidung darüber welche DNS Information gespeichert wird, bleibt Windows überlassen (obwohl es Wege gibt persistente DNS Informationen zu speichern). Folgender Befehl zeigt den sogenannten DNS Cache an:

get-dnsclientcache

Das Leeren des Caches erfolgt über folgenden Befehl:

clear-dnsclientcache

IT – Sicheheit – Das leeren des Caches hat einen Vorteil bei einem Angriff über DNS. Man löscht die dort vorhandenen, eventuell falsch angelegten Einträge. Daraufhin muss natürlich ein nicht-kompromitierter DNS Server in die Konfiguration eingetragen werden.

Fazit

Die Powershell kann so einiges, was ich früher nicht gedacht hätte. Sie ist manchmal etwas langsamer als ich es von der Bash unter Linux gewöhnt bin, aber trotzdem stark. Probiert es am Besten selbst aus. Die hier vorgestellten und weitere Befehle findet ihr entweder bei Markus Elsberger auf dem IT-Learner Blog oder auf seinem CheatSheet für die PowerShell Netzwerkbefehle.

IT-Learner Blog

CheatSheet – PowerShell Netzwerkkonfiguration

 

Beitragsbild ScreenHunger_116 von Robert – Lizenz: CC-BY 2.0

Artikel teilen:

Kommentar verfassen