Windows 8.1 / 10 fährt nicht herunter (no shut down)

Methode 1:

  1. mit der Maus (oben rechts) die Charms bar öffnen
  2. Die Lupe anklicken
  3. als Suchbegriff „Power“ eingeben – Suchbereich „Einstellungen“
  4. „Netzschalterverhalten ändern“ anklicken
  5. „Schnellstart aktivieren (empfohlen)“ deaktivieren
    Sollte sich diese Option nicht auswählen lassen, dann im Fenster oben „Einige Einstellungen sind momentan nicht verfügbar“ anklicken
  6. Windows neu starten

Methode 2:

  1. Taste WIN + X drücken
  2. Eingabeaufforderung (Administrator) auswählen
  3. „bdedit /set disabledynamictick yes“ ausführen
  4. Windows neu starten

Schutz vor Ransomware

1. Backup, Backup, Backup (offline-Backup!)

2. Kontrolle der Backup-Ereignisse

3. Sensibilisierung der Mitarbeiter (Phishing, etc)

4. keine unbekannten Links öffnen – unsichere Websites vermeiden

5. Anzeige der DAteierweiterungen einschalten um Script-Dateien zu erkennen (.vbs, .scr, …)

6. Patches/Updates von Windows / Browser / Virenschutz / Java / Adobe automatisieren

7. zuverlässige Antiviren-Software verwenden

8. keine unbekannten Programme ausführen

9. Java Script im Internet Explorer deaktivieren

Während ich diesen Artikel schreibe, habe ich gelesen, dass sich die Ransomware Teslacrypt auch über infizierte Webseiten (Hauptsächlich wohl auf Joomla basierend) verbreitet. Dies geschieht via JavaScript:

Um Java Script zu deaktivieren, kann eine weitere GPO erzeugt werden, diesmal mit deaktivierten Benutzerkonfigurationseinstellungen:

Java Script

Jetzt kann die GPO bearbeitet und zu folgendem Punkt navigiert werden:

  • Computerkonfiguration
  • Richtlinien
  • Administrative Vorlagen
  • Windows-Komponenten
  • Internet Explorer
  • Internetsystemsteuerung
  • Sicherheitsseite
  • Internetzone

In der Zone “Internet” lässt sich jetzt “Active Scripting” deaktivieren:

Java Script

Jetzt kann die GPO wieder getestet werden, und danach mit der Domain verknüpft werden:

Java Script

10. Softwareeinschränkung konfigurieren

Viren und Trojaner gehen oft nach dem gleichen Muster vor, irgendeine Schwachstelle wird ausgenutzt, der Virus/Trojaner wird nachgeladen und ausgeführt, häufig geschieht das Ausführen aus einem temporären Ordner oder aus den APPDATA Ordern, daher kann man auch hier ansetzen.

Wieder eine neue GPO erzeugen, Benutzerkonfigurationseinstellungen deaktiviert

Softwareeinschränkung

Die GPO kann jetzt editiert werden und die Softwareeinschränkung aktiviert werden:

Softwareeinschränkung

Jetzt können unter zusätzliche Rgelen die Einschränkungen aktiviert werden:

Softwareeinschränkung

Wie oben werden nun die folgenden Pfadregeln konfiguriert:

  • %appdata%\*.exe
  • %appdata%\*\*.exe
  • %localappdata%\*.exe
  • %localappdata%\*\*.exe
  • %temp%\*exe
  • %temp\*\*.exe

Softwareeinschränkung

Anwendungen aus den Verzeichnissen werden nun nicht mehr ausgeführt:

Softwareeinschränkung

Auch hier gilt wieder, GPO testen und erst dann an die Domain oder OU zuweisen.

Hier sind 3 GPOs die Windows Clients vor Infektionen mit Ransomware schützen können. Natürlich gelten die folgenden Grundsätze:

  • Der Benutzer ist KEIN lokaler Administrator
  • Die Windows Firewall ist aktiviert
  • Der Virenschutz ist aktuell (Aktuell heißt in diesem Fall, die Signaturen sind nicht älter als 12 Stunden)
  • Die Windows UAC ist aktiviert

11. Makros deaktivieren

Derzeit verbreitet sich Locky hauptsächlich über Word Dokumente die via E-Mail zugeschickt werden, Das Word Dokument enthält dann ein Makro, welches den eigentlichen Schadcode nachlädt. Mittels GPOs lassen sich Makros deaktivieren. Dazu müssen die entsprechenden Vorlagen für Office runtergeladen werden:

Hier mal das Beispiel für Office 2016:

Die EXE-Datei entpackt nur die Vorlagen, diese müssen jetzt noch an den entsprechenden Ort kopiert werden. Also entweder in dem lokalen Policy Store auf dem DC oder dem Central Store.

In diesem Fall werden die Verzeichnisse und Dateien aus der entpackten EXE nach C:\Windows\PolicyDefinitions (lokaler Speicher) kopiert:

image

In der Gruppenrichtlinienverwaltung kann jetzt eine neue GPO angelegt werden und die Computerkonfigurationseinstellungen deaktiviert werden:

Markos

Innerhalb der GPO können nun die Makros abgeschaltet werden:

Markos

Sobald die GPO mit einer gewissen Anzahl an Benutzern getestet wurde, kann die GPO an alle Benutzer zugewiesen werden.

Markos

Hier gilt es die GPO vorher zu testen, vieleicht brauchen ja bestimmte Benutzer oder Abteilungen Makros für Ihre tägliche Arbeit. Das lässt sich dann entsprechend filtern.

 

Der oben angeführte Text sowie die Screenshots sind ein Auszug aus einem Blog von Franky’s Web (https://www.frankysweb.de/clients-vor-infektion-mit-ransomware-schuetzen-locky-cryptolocker/)

Mehrere Benutzer gleichzeitig in einer Domäne anlegen

Um mehrere Benutzer in eine Domäne einzubinden, kann man sich mit einem kleinen Script behelfen. Damit dies funktioniert, bedarf es jedoch einiger Vorbereitungsarbeiten:

1. Vorbereitung

 

  • CSV-Datei mit den Benutzern
    Man benötigt eine Excel-Tabelle, in der die jeweiligen Daten der anzulegenden Benutzer eingetragen sind. Diese speichert man als users.csv ab.
  • Um per Powershell überhaupt scripts laufen lassen zu können, müssen wir die Execution-Policy ändern. Dazu geben wir in einer Powershell-Sitzung folgenden Befehl ein: set execution-policy remotesigned und bestätigen mit Y. Nach der Ausführung des Scripts sollte dieser wert unbedingt wieder auf seinen Standard zurück gestellt werden. Dies funktioniert mit dem PS-Befehlt set execution-policy restricted.

2. Das Script

  • Das hier gezeigte Script ist sehr strukturiert aufgebaut, benötigt jedoch einer kurzen bearbeitung auf die jeweilige Domäne bzw. auf die Excel-Tabelle.
$objOU=[ADSI]”LDAP://OU=People,DC=sysadmingeek,DC=com”
 $dataSource=import-csv “users.csv”
 foreach($dataRecord in $datasource) {
 $cn=$dataRecord.FirstName + ” ” + $dataRecord.LastName
 $sAMAccountName=$dataRecord.FirstName + “.” + $dataRecord.LastName
 $givenName=$dataRecord.FirstName
 $sn=$dataRecord.LastName
 $sAMAccountName=$sAMAccountName.ToLower()
 $displayName=$sn + “, ” + $givenName
 $userPrincipalName=$sAMAccountName + “@sysadmingeek.com”
 $objUser=$objOU.Create(“user”,”CN=”+$cn)
 $objUser.Put(“sAMAccountName”,$sAMAccountName)
 $objUser.Put(“userPrincipalName”,$userPrincipalName)
 $objUser.Put(“displayName”,$displayName)
 $objUser.Put(“givenName”,$givenName)
 $objUser.Put(“sn”,$sn)
 $objUser.SetInfo()
 $objUser.SetPassword(“P@assw0rd”)
 $objUser.psbase.InvokeSet(“AccountDisabled”,$false)
 $objUser.SetInfo()
 }

 

3. Das Script im Detail

  • $objOU=[ADSI]”LDAP://OU=People,DC=sysadmingeek,DC=com
    Hier gehört der Pfad der Unterorganisation für die neuen Benutze sowohl die Domäne eingetragen. Ein Beispielwert wäre hier: OU=Mitarbeiter,DC=Unternehmen,DC=local
  • $dataSource=import-csv “users.csv
    Hier gibt man den Pfad der zu bearbeitenden .csv-Datei an
  • $cn=$dataRecord.FirstName + ” ” + $dataRecord.LastName
    Hier wird der erste EIntrag der Benutzer gesetzt. Hier darauf achten, dass in der .csv-Datei sowohl eine mit dem Eintrag FirstName als auch dem Eintrag LastName in der ersten Zeile existiert. Bsp:
    A1 = „LastName“, A2 = „FirstName“
    B1=“Mustermann“, B2=“Max“
  • $sAMAccountName=$dataRecord.FirstName + “.” + $dataRecord.LastName
    Hier wird der Account anhand des Vor- Und Nachnamens erstellt. Dieser wird anschließend noch auf lowercase konvertiert.
    Bsp: max.mustermann
  • $userPrincipalName=$sAMAccountName + “@sysadmingeek.com
    hier muss die vollständige Domöne angegeben werden Bsp: Unternehmen.local
  • $objUser.SetPassword(“P@assw0rd”)
    Hier das Standard-Passwort für den ersten Login angeben.

4) Das fertig bearbeitete Script gehört nun als .ps1 und legen es in den selben Ordner wie die .csv Datei. Mit einem Rechtsklick darauf und „Mit Powershell ausführen“. lassen wir das Script laufen. Die neuen Benutzer sollten jetzt unter der im Script angegebenen OU erstellt worden sein.

IP-Range Scan in Powershell

Wenn man auf einem System unterwegs ist, auf dem kein IP-Scanner installiert ist, so genügt folgender Powershell-Befehl, um sich eine Übersicht der aktiven Hosts zu machen:

1..254 | % { $ping.send(„192.168.0.$_“) | select address, status } > file.txt

Dies Scant den IP-Bereich von 192.168.0.1 – 192.168.0.254 und speichert die Ausgabe in der Date file.txt.

Also Information sei noch gesagt, dass dieser Durchlauf nur eine IP-Adresse nach der anderen überprüft und somit im Vergleich zu anderen IP-Scannern sehr langsam ist.