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.
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.