Hallo Leute,
ich hatte genau das selbe Problem, und natürlich auch am gleichen Tag.
Dieser Hack hatte es ganzschön in sich, ich habe mir mal die untiefen da angeschaut, und kann nur den Hut ziehen (würde ich auch tun, wenn ich nicht so sauer wäre...)
Also, was tun die so alles (zumindest bei mir):
1. in JEDEN Ordner mit chmod 0777 erstmal einige cryptische phps reinfriemeln, die mit base_64 codierung aufrufe zu servern in Russland machen und denen daten schicken
2. sie hackten bei mir gallerien und htm-files, die mittels inlineframes seltsame Seiten in einem nicht sichtbaren 1x1pixel grossen fenster unterbringen
3. einige hauptscripte waren unterwandert mit störcode
4. dann irgendwelche Bildchen etc.
ich habe einen Cleaner geschrieben und angepasst, der die phps rausschmeisst, denn über ftp waren einige wegen veränderter chmods nicht löschbar.
Sie hatten üblicherweise die selben Namen und werden über das .htaccess - file angestossen, daher wird mit der source auch das .htaccess gesäubert.
ich hoffe mal es hilft dem ein oder anderen weiter...
GANZ WICHTIG:
Das Ding löscht alle Dateien die den Angaben oben entsprechen, also aufpassen von wo aus ihr es aufruft. Desweiteren durchsucht der Cleaner auch unterordner, also VORSICHT!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>The Cleaner...</title>
</head>
<body>
<?
function GoCleaning (){
$dir = ("./");// aktuelles verzeichnis mit den php-plagen, ACHTUNG !!!
// ACHTUNG, durchsucht auch unterordner !!!
$dir = preg_replace("[\x5c\]","",$dir);// linuxproblem....
function cleanhack($dir){
$current_dir = @opendir($dir);
while($entryname = @readdir($current_dir)){
echo 'checking '."$dir/$entryname".'<br>';
if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")){
cleanhack("${dir}/${entryname}");
}elseif($entryname != "." and $entryname!=".."){
if (file_exists("${dir}/.htaccess")) {
$ffilename = "${dir}/.htaccess";
$fa = @fopen($ffilename, "rb");
$contentss = @fread($fa, filesize($ffilename));
fclose($fa);
if (eregi ("MultiViews","$contentss")){// dieser Eintrag stammt vom hack "mutivews" in .htaccess
$contentss = preg_replace("/Options(.*)\r\n(.*)php/","", "$contentss");// nur weg was nicht hingehört .htaccess
unlink("${dir}/.htaccess");// erstmal plätten, dann neue .htaccess
if ($contentss == "
"){}// wenn sie leer ist, lassen wir sie weg...
else{// sonst eine neue erstellen
$fb = fopen ("${dir}/.htaccess", "ab");
fputs($fb,"$contentss");
fclose($fb);
}// so, sollte alles clean sein
}
else{}// htaccess ist clean
}
// so, jetzt zu den scripten
// nehmt saures...
// alle gehören zum user apache übrigens....
if (file_exists("${dir}/includes.php")) {
@unlink("${dir}/includes.php");
}
if (file_exists("${dir}/tests.php")) {
@unlink("${dir}/tests.php");
}
if (file_exists("${dir}/report.php")) {
@unlink("${dir}/report.php");
}
if (file_exists("${dir}/links.php")) {
@unlink("${dir}/links.php");
}
if (file_exists("${dir}/messages.php")) {
@unlink("${dir}/messages.php");
}
if (file_exists("${dir}/remote.php")) {
@unlink("${dir}/remote.php");
}
if (file_exists("${dir}/common.php")) {
@unlink("${dir}/common.php");
}
if (file_exists("${dir}/finfo.php")) {
@unlink("${dir}/finfo.php");
}
if (file_exists("${dir}/contacts.php")) {
@unlink("${dir}/contacts.php");
}
if (file_exists("${dir}/time.php")) {
@unlink("${dir}/time.php");
}
if (file_exists("${dir}/system.php")) {
@unlink("${dir}/system.php");
}
if (file_exists("${dir}/commands.php")) {
@unlink("${dir}/commands.php");
}
if (file_exists("${dir}/options.php")) {
@unlink("${dir}/options.php");
}
if (file_exists("${dir}/layout.php")) {
@unlink("${dir}/layout.php");
}
if (file_exists("${dir}/properties.php")) {
@unlink("${dir}/properties.php");
}
if (file_exists("${dir}/create.php")) {
@unlink("${dir}/create.php");
}
if (file_exists("${dir}/base.php")) {
@unlink("${dir}/base.php");
}
if (file_exists("${dir}/download.php")) {
@unlink("${dir}/download.php");
}
if (file_exists("${dir}/package.php")) {
@unlink("${dir}/package.php");
}
if (file_exists("${dir}/configs.php")) {
@unlink("${dir}/configs.php");
}
if (file_exists("${dir}/date.php")) {
@unlink("${dir}/date.php");
}
if (file_exists("${dir}/options.php")) {
@unlink("${dir}/options.php");
}
if (file_exists("${dir}/guest.php")) {
@unlink("${dir}/guest.php");
}
}
}
@closedir($current_dir);
}
cleanhack($dir);
}
GoCleaning (); // Und auf gehts
echo "Fertig. <br>script edited and modified by olli112 ...<br>";
?>
</body>
</html>
GANZ WICHTIG:
Das Ding löscht alle Dateien die den Angaben oben entsprechen, also aufpassen von wo aus ihr es aufruft. Desweiteren durchsucht der Cleaner auch unterordner, also VORSICHT!