Взлом сайта на Joomla злоумышленником, как понять — где дыра?

Есть несколько сайтов на Joomla 2.5.6, недавно обнаружил, что index.php и index.html заменены на странички какого-то куцхакера из Индонезии. Я их убил, вернул старые страницы на место, но возник вопрос - как был осуществлен хак и как закрыть дыру?

Пароли сложные, и похоже сами сайты не был взломаны, а просто каким-то образом злоумышленник смог удалить из корневой папки мои файлы и закачать туда свои файлы.

Есть ли какие-то инструменты для такого анализа?
  • Вопрос задан
  • 5845 просмотров
Пригласить эксперта
Ответы на вопрос 2
Для начала - следовало запомнить дату и время изменения тех файлов. Сопоставить подключения по ssh/ftp к серверу в это время. Если явной корреляции не будет наблюдаться - проанализировать POST-запросы к серверу за последнее время, выделить из них "необычные" для вашего сайта, а лучше вести логирование POST-запросов с сохранением всех переданных параметров.

К примеру, запилить вот такой скрипт:
<?
if(isset($_POST) && count($_POST)>0){
        $data="";
        foreach($_POST as $key=>$val){
                if(is_string($val) && strlen($val)>2000 )
                        $val=substr($val,0,2000);
                $data.=$key."=>".$val."\n";
        }
        $fp=fopen("/path/to/log/dir/".$_SERVER['HTTP_HOST'].".log","a");
        fwrite($fp,date("Y-m-d H:i:s")." ".$_SERVER['REMOTE_ADDR']."\n".$data."---------------------------\n");
        fclose($fp);
        $data="";
        reset($_POST);
}


А в apache добавить:
php_admin_value     auto_prepend_file        /path/to/script.php


Таким образом, при повторной атаке, увидев время изменения своего index.php - вы сможете коррелировать время изменения index.php с определенным набором POST-запросов, тем самым проанализировав через какие "дырки" проводилась атака на сайт.
Ответ написан
Комментировать
@Bako500
Що то не працює мій сайт, які налаштування я роблю не првильно?
https://rusboxing71.ru/administrator/
FTP
u0437785
37!WdC3y

public $dbtype = 'mysqli';
public $host = 'localhost';
public $user = 'u0437785_default';
public $password = 'lJpUL2U_';
public $db = 'u0437785_default';
public $dbprefix = 'tvu0z_';
public $live_site = '';
public $secret = 'drSfTlhij55QMHEt';
public $gzip = '0';
public $error_reporting = 'default';
public $helpurl = 'https://help.joomla.org/proxy?keyref=Help{major}{m...}';
public $ftp_host = '';
public $ftp_port = '';
public $ftp_user = '';
public $ftp_pass = '';
public $ftp_root = '';
public $ftp_enable = '0';
public $offset = 'UTC';
public $mailonline = '1';
public $mailer = 'mail';
public $feed_email = 'none';
public $log_path = '/var/www/u0437785/data/www/rusboxing71.ru/administrator/logs';
public $tmp_path = '/var/www/u0437785/data/www/rusboxing71.ru/tmp';
public $lifetime = '15';
public $session_handler = 'database';
public $shared_session = '0';
public $memcache_persist = '1';
public $memcache_compress = '0';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы