Diese Anleitung zeigt euch, wie ihr einen Server erstellen könnt, der für die DROWN Attack anfällig ist. Dieser Artikel behandelt jedoch nur die Erstellung des (Opfer-) Servers und NICHT den Angriff an sich.

Dieser Server ist nur für Testzwecke !!!

Er sollte NIEMALS produktiv betrieben werden.

Damit der Angriff funktionieren kann, benötigen wir eine OpenSSL Version, die noch einige Bugs enthält und einen alten Apache Server, der noch das Protokoll SSLv2 untersützt.

1. neue OpenSSL Version vom Server entfernen

Standardmäßig hat jeder Server eine aktuelle OpenSSL Version installiert. Diese muss für diesen Angriff jedoch entfern werden.

apt-get remove openssl

2. Vorbereitungen des Servers

OpenSSL Installationspaket

wget ftp://ftp.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz

Apache Installationspaket

wget http://archive.apache.org/dist/httpd/httpd-2.2.17.tar.gz

Danach benötigen wir noch eine Programme.

apt-get install gcc
apt-get install make

3. OpenSSL installieren

Nun beginnen wir die alte OpenSSL Version, die wir eben geladen haben zu installieren.

tar xfz openssl-*.tar.gz
cd openssl-*
./config --prefix=/usr
make
make install_sw

Nun sollte OpenSSL installiert sein. Mit folgenden Befehl können wir kontrollieren, ob es funktioniert hat.

openssl version

4. Apache installieren

in diesem Schritt installieren wir die alte Apache Version.

tar xfz httpd-2.2.17.tar.gz
cd httpd-2.2.17
./configure --enable-ssl
make 
make install

5. Zertifikat erstellen

Der Angriff setzt Voraus, dass der Server eine über SSLv2 verschlüsselte Verbindung verfügt. Dazu wird ein gültiges Zertifikat benötigt. Dieses erstellen wir uns nun.

openssl genrsa -out key.key 1024
openssl req -new -key key.key -out cert.csr
openssl x509 -req -days 365 -in cert.csr -signkey key.key -out cert.crt

6. Apache Konfigurieren

Damit Apache SSLv2 unterstützt, müssen wir noch die Konfiguration anpassen. Dazu öffnen wir folgende Datei.

nano /usr/local/apache2/conf/httpd.conf

In dieser Datei entfernen wir das „#“ vor der Zeile

Include conf/extra/httpd-ssl.conf

Dies bewirkt, dass diese Konfigurationsdatei ebenfalls geladen wird.

Nun müssen wir noch eine letzte Datei bearbeiten, bevor der Server funktionsfähig ist.

nano /usr/local/apache2/conf/extra/httpd-ssl.conf

Diese Datei muss wie folgt abgeändert werden:

SSLEngine on
SSLCipherSuite ALL:!ECDH:!DH:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/zertifikate/cert.crt"
SSLCertificateKeyFile "/zertifikate/key.key

Der Speicherort der Zertifikate kann bei euch anders sein.

7. Apache Server starten

Server starten
/usr/local/apache2/bin/apachectl -k start

Server stoppen
/usr/local/apache2/bin/apachectl -k stop

8. Test auf Anfälligkeit für DROWN Attack

Nun testen wir, ob der von uns erstellte Server anfällig für den DROWN Angriff ist. Dazu könnt ihr den Scanner von SSLLabs nutzen.

protokolle

ciphers

Die ersten 2 Zeilen zeigen uns, dass der Server die Verschlüsselung „SSL_CK_RC4_EXPORT40_WITH_MD5“ nutzt. Diese ist laut dem DROWN Paper anfällig für den Angriff.

Teile diesen Beitrag
Christian

Categories:

Keine Kommentare vorhanden

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.