Ransomware WannaCry abwehren

Der weltweite Angriff des Verschlüsselungstrojaner (auch „Erpressungstrojaner“ genannt) „WannaCry“ auf Windows-Rechner ist noch nicht vorbei. Es dürfte sich um eine der grössten Attacken auf IT-Systeme bislang gehandelt haben.

Für die abwehr von WannaCry sind folgende Schritte empfohlen:

  1. Umgehend den Patch MS17-010 installieren. Wer noch Windows XP, Windows 8, oder Windows Server 2003 einsetzt, findet im Blog-Post von Microsoft TechNet zusätzliche Informationen.
  2. Folgende Ports auf der Firewall blockieren:
    TCP-Ports 137, 139, 445 und UDP-Port 137 und 138. Über diese kommuniziert WannaCry mit den Backend-Services auf den Servern der Angreifer.
  3. Das Tor-Protokoll blockieren: Der Schadcode kommuniziert mit den Command&Control-Servern der Angreifer anhand des Tor-Protokolls. Dieses muss am Sicherheits-Perimeter unterbrochen werden. Ausgehende Kommunikation blockieren, zu den bisher bekannten C&C-Server:
    cwwnhwhlz52ma.onion
    gx7ekbenv2riucmf.onion
    xxlvbrloxvriy2c5.onion
    57g7spgrzlojinas.onion
    76jdd2ir2embyv47.onion
  4. Das Protokoll Server Message Block (SMB) Version 1 (SMBv1) deaktivieren:  Es wird von Microsoft empfohlen SMBv1 zu deaktivieren, SMBv2 und SMBv3 sollte in produktiven Umgebungen nicht deaktiviert werden.

Bei Windows 8 und Windows Server 2012

Für Windows 7, Windows Server 2008 R2, Windows Vista, und Windows Server 2008

Ein Reboot des Systems ist erforderlich zur Aktivierung.

Die Deaktivierung von SMBv1 kann auch mittels Regedit vorgenommen werden.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\ParametersRegistry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled

Weitere Informationen über die Malware selbst beschreibt Microsoft im Malware Protection Center auf dem Windows Security Blog WannaCrypt ransomware worm targets out-of-date systems.

WannaCry Entschlüsseln:
Von Benjamin Delp stammt das Tool WannaKiwi. Er stützte sich auf Vorarbeiten von Adrien Guinet. Mit dem Tool lässt sich aus dem Speicher des befallenen Systems der private User-Key auslesen, der zur Verschlüsselung der Daten auf der Festplatte verwendet wurde.

Windows Print Spooler

Druckaufträge bleiben in der Druckwarteschlange hängen. Der Drucker kann von einem Computer nicht drucken, da ein Druckauftrag in der Windows-Druckwarteschlange, Print Spooler hängen geblieben ist. Dieser hängengebliebene Druckauftrag kann nicht abgebrochen oder gelöscht werden und verhindert das Drucken weiterer Druckaufträge. Durch Klicken auf Abbrechen des Auftrags in der Warteschlange geschieht nichts.

Lösung

Der Grund dafür sind in der Regel Treiberfehler. Sie können lästige Störungen der Drucker verursachen, die dann die weitere Druckausgabe blockieren. Um sie wieder loszuwerden, beendet man den Dienst für die Druckerwarteschlange Print Spooler und löscht die Aufträge manuell. Folgender Command Script beendet den Print Spooler, löscht sämtliche Printjobs und startet den Print Spooler neu.

Wer den Print Spooler aus der PowerShell zurücksetzen möchte, dem hilft der folgende PS Script.


Beide Scripts machen das selbe, zur Ausführung muss der Script als Administrator ausgeführt werden.

Selbst signierte Zertifikate

OpenSSL ist ein vielseitiges Kommandozeilen-Tool, das für eine Vielzahl von Kryptographischen Aufgaben im Zusammenhang mit Public Key Infrastructure (PKI) und HTTPS (HTTP über TLS) verwendet werden kann. Dieser Beitrag zeigt die Anwendung von OpenSSL für Zertifikate die für asymmetrische Verschlüsselung für Beta und Testaufgaben eingesetzt werden können, für interne oder in Entwicklungsumgebungen lohnen sich die mit kosten verbunden, CSR – Certificate Signing Request Zertifikate nicht, die von einem Trusted CA Zertifikatsaussteller ausgestellt werden. Hierzu in einem Beispiel die Generierung eines privaten Schlüssels mit Zertifikat Ausstellung und dessen Signierung.

Open Secure Socket Layer protocol

Selbst signiertes Zertifikat erstellen

Bei diesem Beispiel wird ein Privater Schlüssel mit einer länge von 4096 bit generiert, dieser 10 Jahre gültig ist, es werden die X509 Distinguished Key Identifier definiert, mit der Verschlüsselung des SHA256 Algorithmus, abschliessend wird das Zertifikat selbst signiert.

Das so generierte Self-signed certificat dient zur Kryptographischen Verschlüsselung für HTTPS / TLS Server und Client, Code Signing, IP End Point Security (SSL-VPN) oder für S/MIME – E-Mail.

Das Zertifikat cert.crt wird anschliessend im Zertifikatspeicher importiert, dies zu Vertrauenswürdige Stammzertifizierungsstellen und zu den Eigenen Zertifikate.

Zertifikat-Snap-In
Abbildung: Zertifikat-Snap-In

OpenSSL – Open Secure Socket Layer protocol gehört bei den meisten Linux Distributionen zum Standard, die Windows Binaries stehen auf sourceforge zur Verfügung.

Quelle: http://gnuwin32.sourceforge.net/packages/openssl.htm

Wer mit dem OpenSSL Kommandozeilen-Tool nicht vertraut ist, kann das Tool X Zertifikat – xca verwenden, dieses in einer GUI sämtliche Optionen bietet.

X Zertifikat und Key Management ist eine Schnittstelle für die Verwaltung von asymmetrischen Schlüsseln wie RSA oder DSA. Es ist für die Erstellung und Signierung von Zertifikaten gedacht. Für die kryptographischen Operationen wird die OpenSSL-Bibliothek verwendet.

Features

  • Start own PKI and create all kinds of certificates, requests or CRLs
  • Import and export in any format like PEM, DER, PKCS#7, PKCS#12
  • Use them for your IPsec, OpenVPN, HTTPs or any other certificate based setup
  • Manage your Smart-Cards via PKCS#11 interface
  • Export certificates and requests to a OpenSSL config file
  • Create Subject- and/or Extension- templates to ease issuing similar certs
  • Convert existing certificates or requests to templates
  • Get the broad support of x509v3 extensions as flexible as OpenSSL but user friendlier
  • Adapt the Columns to have your important information at a glance

Quelle: https://sourceforge.net/projects/xca/

X-Certificate-Key-management
Abbildung: X Certificate and Key management

Bevor Schlüssel und Zertifikate generiert werden können, muss eine Datenbank mit <Ctrl+N> angelegt werden. Nach dem generieren eines Privaten Schlüssels kann ein neues Zertifikat erzeugt werden. Die Privaten Schlüssel sollten Passwort geschützt aufbewahrt werden. Wird ein Privater Schlüssel für unautorisierte verfügbar, ist das Zertifikat nicht mehr sicher und muss ersetzt werden.

Schlüssel und Zertifikat überprüfen

Privat Key Prüfen und ausgeben

Zertifikat anzeigen

Certificate Signing Request Prüfen und ausgeben

Überprüfung des Privaten Schlüssels, des CSR und des Zertifikates auf Echtheit.

Wenn die Ausgabe jedes Befehls identisch ist, ist die Wahrscheinlichkeit sehr hoch, dass das Zertifikat und der CSR mit dem private Schlüssel verwandt sind.

OpenSSH on Windows

OpenSSH ist das führende Konnektivitätstool für die Remote-Anmeldung mit dem SSH-Protokoll in Unix/Linux Umgebungen. OpenSSH verschlüsselt den Datenverkehr, darüber hinaus bietet OpenSSH eine große Auswahl an sicheren Tunneling-Funktionen, mehrere Authentifizierungsmethoden und anspruchsvolle Konfigurationsoptionen.

Für die Remoteverwaltung in heterogenen Netzwerken, haben Windows und Unix/Linux nicht viel gemeinsames. Unter Unix/Linux ist der Remote-Zugriff per SSH ein Standard für Datentransfer, Remote-Terminal sowie Port-Forwarding für Remote-X. Unter Windows ist ein wirklicher Standard noch nicht erreicht, neben WinRM, PowerShell-Remote, RDS und RSAT gibt es einige mehr. Hinzugekommen ist nun auch ein Port des freien OpenSSH Client/Server Tools, dies ermöglicht weitere Integration und Verwaltung von Windows und Linux/Unix Umgebungen.

Die OpenSSH Suite ist auf Github verfügbar und besteht aktuell aus folgenden Tools:

  • Remote-Operationen werden mit ssh, scp und sftp durchgeführt
  • Key Management mit ssh-add, ssh-keygen
  • Die Service-Seite besteht aus sshd, sftp-server und ssh-agent
Win32 OpenSSH Installation

Nach dem Download das Zip-Archive in C:\Program Files\OpenSSH entpacken.

Starte PowerShell als Administrator und wechsle in den Pfad C:\Program Files\OpenSSH und führe folgende Aktion aus.

Die SSH-Host-Schlüssel generieren mit allen Schlüssel die sshd für Key-auth erwartet.

Die Firewall auf Windows Server für SSH erweitern.

Bei der Windows Workstation werden eingehende SSH Verbindungen wie folgt erlaubt.

Der SSH-Agent hält den privaten Schlüssel im Arbeitsspeicher.

Nun können SSH Verbinden aufgebaut werden.

openSSH-client

Den SSH Daemon Auto-start (Boot) aktivieren.

Ein Schlüsselpar wird wie folgt generiert.

 

 

Outlook Junk E-Mail auf Smarthost

Niemand mag SPAM, um die Flut unerwünschter E-Mails einzudämmen, müssen eingehende E-Mails mehrere Filter und sogenannte Milter durchlaufen. Eine effiziente Filter Lösung bietet der Mail Transfer Agent – Postfix, das Open Source Programm wurde 1998 von Wietse Zweitze Venema entwickelt. Postfix ist ein leistungsfähiger Mail Transfer Agent für Unix und Unix-Derivate. Die Software sollte zum Entwicklungszeitpunkt eine kompatible Alternative zu Sendmail sein. Dabei wurde bei der Entwicklung insbesondere auf Sicherheitsaspekte geachtet. Der Quellcode von Postfix steht unter der IBM Public License. Postfix MTA’s werden von vielen Internet Providern und in Großunternehmen eingesetzt.

Die Architektur von Postfix erlaubt es eine Vielzahl an Filter einzubinden, wie das unter der Apache-Lizenz stehende SpamAssassin, um unerwünschte E-Mails herauszufiltern und zu markieren, oder Greylisting um das verhalten eines Senders zu überprüfen. Zum Schutz gegen Viren und Schadcode kann Clam AntiVirus eingebunden werden – ClamAV steht unter der GNU General Public License.

Workaround

Als E-Mail Client Software in Unternehmen ist MS Outlook im Exchange betrieb weit verbreitet. Für SPAM der nicht in einem Filter abgefangen wurde, bietet Outlook die Möglichkeit unerwünschte Absender zu sperren, hierbei ist die Bezeichnung nicht gerade zutreffend, denn die sogenannten Junk E-Mails werden auf dem Server nicht gesperrt, sondern sie werden beim Empfang viel mehr in den Outlook Ordner Junk-E-Mail verschoben. Besser wäre es aber wenn der vermeintliche Absender es gar nicht schafft es zuzustellen, also es zurückgewiesen wird.

outlook-junk-emails

Hier gibt es eine Möglichkeit einzugreifen, wenn der Exchange Server wie oft die E-Mails nicht direkt aus dem Internet empfängt, sondern über einen Smarthost abwickelt. Smarthosts sind meist Linux basierte Server die mit dem Postfix MTA arbeiten.

Abbildung: Junk-E-Mail Optionen: Blockierte Abesnder
Abbildung: Junk-E-Mail Optionen: Blockierte Abesnder
Installation

Der folgende PowerShell Script ruft die Junk-E-Mail Einträge aus der Outlook Sperrliste Blockierte Absender von allen Mailboxen aus und extrahiert die formatierte Ausgabe als Windows-ANSI Text und in eine ACSII-Text Datei. Anschliessend wird die erzeugte Datei extracted_JunkEmails.asc auf den Smarthost übertragen. Die Whitelist wird in der Datei extracted-TrustedEmails.asc angelegt.

Der Script wird auf dem Exchange Server in der Exchange Management Shell als Administrator ausgeführt, geeigneterweise als Job in der Aufgabenplanung zu jeder Stunde. Bei Zeile 8 soll anstelle des Platzhalters der Benutzername gefolgt vom Name des Smarthost stehen, dies als FQDN oder host IP.

Auf dem Exchange Server wird PuTTY benötigt, nach der Installation von PuTTY 64bit dient pscp.exe (PuTTY Secure Copy) zur Übertragung der Sperrliste Blockierte Absender auf den Smarthost. Damit es zu keiner Passwort abfrage kommt, muss mit PuTTY Key Generator (puttygen.exe) ein Schlüsselpar erzeugt werden, der erzeugte Public Key wird auf dem Smarthost unter das home Verzeichnis des Benutzers in das Verzeichnis .ssh in die Datei authorized_keys kopiert. Damit ist der Script mit pscp in der lage sich beim Smarthost zu authentifizieren.

Auf dem Linux Smarthost dient ein Shell Script um die Zeilen in das Unix (LF) Format zu konvertieren. Dieser Einzeiler erzeugt die passende Ausgabe in das Postfix Verzeichnis über pipe in die Datei junkbl_access und trusted_access.

Code in eine Datei junkbl.sh einfügen und unter dem Pfad /usr/bin/ speichern.

Der Shell Script wird ausführbar gemacht.

Der stream-editor – sed konvertiert die Zeilenumbrüche, entfernt leer Zeichen und fügt am ende jeder Zeile den SMTP Error Code 550 ein, damit werden die beim versuch der Zustellung nicht erwünschten E-Mails der Sperrliste Blockierte Absender zurückgewiesen.

Die Postfix lookup tables erstellen und aktualisieren.

In der Postfix Hauptkonfiguration werden die restriction checks hinzugefügt.

Nach einem postfix reload wird die Outlook Sperrliste von Postfix angewandt.

Per cronjob soll die Sperrliste laufend aktualisiert werden, zu jeder Stunde +5 min.

Anmerkung

Bei CentOS 7 ist es erforderlich den user zur Group sftp_users hinzuzufügen, mit usermod -G sftp_users {username}, in der sshd_config muss die direktive Match Group sftp_users angewandt werden.

Wie ein Script für die Exchange Management Shell aus der Aufgabenplanung ausgeführt wird, erklärt der Beitrag Exchange MailboxStatistics Mail-Report

OpenSSH Key Bereitstellung für Auto-login PuTTY Key Generator

Eine weitere SSH Lösung bietet OpenSSH on Windows

Release Update und Bugfix auf Github