Jump to content
Калькуляторы

Хакнули сервер варианты частичного обновления ПО

Ломанули сервер VDS, по отчету rkhunter, часть системных утилит подменена.

Первоначально была вычищена вся видимая зараза, мониторинг сети ничего странного не показывает. Был пересобран ssh.

 

Возможности вот так сразу переставить ОС нет, ищутся способы безопасного обновления либо частями, либо еще как то системы, поделить мыслями.

 

UPD: linux

Edited by anix

Share this post


Link to post
Share on other sites

TCPDUMP на предмет отсылки интересных сообщений с сервера + посмотрите, нет ли лишних открытых сокетов.

Share this post


Link to post
Share on other sites

TCPDUMP на предмет отсылки интересных сообщений с сервера + посмотрите, нет ли лишних открытых сокетов.

 

tcpdump ничего странного не показывает, но есть вероятность, что он и losf и netstat могут быть подменены :(

Share this post


Link to post
Share on other sites

Если дистрибутив с пакетным манагером, то переставить все пакеты (deb, rpm итп)

Share this post


Link to post
Share on other sites

Скопировать с другого сервера статически скомпонованный md5sum.

Собрать им суммы всех файлов в /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin.

Установить в VirtualBox систему с такими же версиями пакетов и сравнить суммы.

 

Со всеми остальными утилитами поступать так же - копировать извне статически скомпонованные, вплоть до sshd на отдельном порту.

Share this post


Link to post
Share on other sites

А чего за дистр? В дебиане ( и подобных) поставьте debsums, потом с ним сконтролировать пакеты и изменённые apt-get -u --purge --reinstall install package_name.

Edited by devicebusy

Share this post


Link to post
Share on other sites
Возможности вот так сразу переставить ОС нет, ищутся способы безопасного обновления ...

Я бы всё-таки переставил ОС и не мучался...

Share this post


Link to post
Share on other sites

В свое время для похожей ситуации накалякали скриптец на php, который выкачивает все установленные пакеты, которые потом всем скопом можно переуустановить :)

 

#!/usr/bin/php -f                                                                                                                   
<?                                                                                                                                  
 set_time_limit(0);                                                                                                                
 $base_repo = "http://mirror.yandex.ru/centos/4.8/os/i386/CentOS/RPMS/";                                                           
 $dag_repo = "http://apt.sw.be/redhat/el4/en/i386/dag/RPMS/";                                                                      
 $up_repo = "http://mirror.yandex.ru/centos/4.8/updates/i386/CentOS/RPMS/";                                                        

 @mkdir("rpms");                                                                                                                   

 $err = fopen("php://stderr", "w");                                                                                                


 function arr_empty($var)                                                                                                          
 {                                                                                                                                 
   return !empty($var);                                                                                                            
 }                                                                                                                                 

 exec("yum list installed",$rpm_list);                                                                                             
 array_shift($rpm_list);                                                                                                           
 foreach($rpm_list as $rpm)                                                                                                        
 {                                                                                                                                 
   $tmp = array_values(array_filter(explode(" ",$rpm),"arr_empty"));                                                               
   $t = explode(".",$tmp[0]);                                                                                                      
   $tmp[1] = preg_replace('/.*\:/',"",$tmp[1]);                                                                                    

   $rpm = $t[0]."-".$tmp[1].".".$t[1].".rpm";                                                                                      
   echo "Processing ".$rpm."...\n";                                                                                                

   exec("wget -qcO rpms/".$rpm." ".$base_repo.$rpm);                                                                               
   if(!filesize("rpms/".$rpm)>0)                                                                                                   
   {                                                                                                                               
     exec("wget -qcO rpms/".$rpm." ".$up_repo.$rpm);                                                                               
     if(!filesize("rpms/".$rpm)>0)                                                                                                 
     {                                                                                                                             
       exec("wget -qcO rpms/".$rpm." ".$dag_repo.$rpm);                                                                            
       if(!filesize("rpms/".$rpm)>0)                                                                                               
         fputs($err, $rpm." not found !!!\n");                                                                                     
     }                                                                                                                             
   }                                                                                                                               
 }                                                                                                                                 
fclose($err);                                                                                                                       
?>                               

Edited by Vicus

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this