Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Поиск вредоносного кода на сайте (БЕЗ СКАНЕРОВ).
Скачать бесплатно Поиск вредоносного кода на сайте (БЕЗ СКАНЕРОВ).
1.Хакерские скрипты. Чаще всего при взломе загружают файлы, представляющие собой веб-шеллы,
бэкдоры, “загрузчики”, скрипты для спам-рассылок, фишинговые страницы + обработчики форм, дорвеи и файлы-маркеры взлома.
2.Инжекты в существующих файлах. Второй по популярности тип размещения вредоносного и хакерского кода – это инжекты. В существующие файлы сайта.htaccess могут внедрять мобильные и поисковые редиректы, в php/perl скрипты инжектировать бэкдоры, в .js и .html шаблоны встраивать вирусные javascript фрагменты или редиректы на сторонние ресурсы. Возможны инжекты и в медиа-файлах, например .jpg или . Часто вредоносный код состоит из нескольких компонентов: сам вредоносный код хранится в exif-заголовке jpg файла, а исполняется с помощью небольшого управляющего скрипта, код которого не выглядит подозрительным для сканера.
3.Инжекты в базе данных. База данных является третьей мишенью для хакера. Здесь возможны статические вставки , , , , которые перенаправляют посетителей на сторонние ресурсы, “шпионят” за ними или заражают компьютер|мобильное устройство посетителя в результате drive-by атаки (атака с помощью скрытой загрузки). Кроме того во многих современных CMS (IPB, vBulletin, modx и др.) шаблонизаторы позволяют исполнять php код, а сами шаблоны хранятся в базе данных, поэтому php код веб-шеллов и бэкдоров может быть встроен непосредственно в БД.
Инжекты в кэширующих сервисах.
4.В результате некорректной или небезопасной настройки кэширующих сервисов, например, memcached, возможны инжекты в закэшированные данные “на лету”. В некоторых случаях хакер может внедрять вредоносный код на страницы сайта без непосредственного взлома последнего. Инжекты/инцицированные элементы в системных компонентах сервера.
5.Если хакер получил root доступ к серверу, он может подменить элементы веб-сервера или кэширующего сервера на инфицированные. Такой веб-сервер будет с одной стороны обеспечивать контроль над сервером с помощью управляющих команд, с другой – время от времени внедрять динамические редиректы и вредоносный код на страницы сайта. Как и в случае инжекта в кэширующий сервис, администратора сайта скорее всего не сможет обнаружить факт взлома сайта, так как все файлы и база данных будут оригинальными. Этот вариант наиболее сложный для лечения.
Итак, предположим, что сканерами вы уже проверили файлы на хостинге и дамп базы данных, но они ничего не обнаружили, а вирусный по-прежнему на странице или мобильный редирект продолжает отрабатывать при открытии страниц. Как искать дальше?
Поиск вручную
В unix сложно найти более ценную пару команд для поиска файлов и фрагментов, чем find / grep.
find . -name ‘*.ph*’ -mtime -7
найдет все файлы, которые были изменены за последнюю неделю. Иногда хакеры “скручивают” дату изменения у скриптов, чтобы таким образом не обнаружить новые скрипты. Тогда можно поискать файлы php/phtml, у которых менялись атрибуты
find . -name ‘*.ph*’ -сtime -7
< Если нужно найти изменения в каком-то временном интервале, можно воспользоваться тем же find
find . -name ‘*.ph*’ -newermt 2015-01-25 ! -newermt 2015-01-30 -ls
Для поиска в файлах незаменим grep. Он может искать рекурсивно по файлам указанный фрагмент
grep -ril ‘stummann.net/steffen/google-analytics/jquery-1.6.5.min.js’ *
При взломе сервера полезно проанализировать файлы, у которых установлен guid/suid флаг
find / -perm -4000 -o -perm -2000
Чтобы определить, какие скрипты запущены в данный момент и грузят CPU хостинга, можно вызвать
lsof +r 1 -p `ps axww | grep httpd | grep -v grep | awk ‘ { if(!str) { str= } else { str=str»,»}}END{print str}’` | grep vhosts | grep php
Анализ файлов на хостинге
1.Идем в директории upload, cache, tmp, backup, log, images, в которые что-то пишется скриптами или загружается пользователями, и просматриваем содержимое на наличие новых файлов с подозрительными расширениями. Например, для joomla можно проверить .php файлы в каталоге images:find ./images -name ‘*.ph*’Скорее всего, если что-то найдется, то это будет вредонос. Для WordPress имеет смысл проверить на скрипты директорию wp-content/uploads, backup и cache каталоги тем.
2.Ищем файлы со странными именами Например, php, fyi.php, n2fd2.php. Файлы можно искать- по нестандартным сочетаниям символов,- наличию цифр 3,4,5,6,7,8,9 в имени файлов
3.Ищем дорвеи по большому числу файлов .html или .php Если в каталоге несколько тысяч файлов .php или .html, скорее всего это дорвей.
4.Логи веб-сервера, почтового сервиса и FTP. Корреляция даты и времени отправки письма (которые можно узнать из лога почтового сервера или служебного заголовка спам-письма) с запросами из access_log помогают выявить способ рассылки спама или найти скрипт спам-рассыльщика. Анализ трансфер-лога FTP xferlog позволяет понять, какие файлы были загружены в момент взлома, какие изменены и кем. В правильно настроенном логе почтового сервера или в служебном заголовке спам-письма при правильной настройке PHP будет имя или полный путь до скрипта-отправителя, что помогает определять источник спама. По логам проактивной защиты современных CMS и плагинов можно определять, какие атаки были выполнены на сайт и сумела ли CMS им противостоять. По access_log и error_log можно анализировать действия хакера, если известны имена скриптов, которые он вызывал, IP адрес или User Agent. В крайнем случае можно просмотреть POST запросы в день взлома и заражения сайта. Часто анализ позволяет найти другие хакерские скрипты, которые были загружены или уже находились на сервере в момент взлома.
бэкдоры, “загрузчики”, скрипты для спам-рассылок, фишинговые страницы + обработчики форм, дорвеи и файлы-маркеры взлома.
2.Инжекты в существующих файлах. Второй по популярности тип размещения вредоносного и хакерского кода – это инжекты. В существующие файлы сайта.htaccess могут внедрять мобильные и поисковые редиректы, в php/perl скрипты инжектировать бэкдоры, в .js и .html шаблоны встраивать вирусные javascript фрагменты или редиректы на сторонние ресурсы. Возможны инжекты и в медиа-файлах, например .jpg или . Часто вредоносный код состоит из нескольких компонентов: сам вредоносный код хранится в exif-заголовке jpg файла, а исполняется с помощью небольшого управляющего скрипта, код которого не выглядит подозрительным для сканера.
3.Инжекты в базе данных. База данных является третьей мишенью для хакера. Здесь возможны статические вставки , , , , которые перенаправляют посетителей на сторонние ресурсы, “шпионят” за ними или заражают компьютер|мобильное устройство посетителя в результате drive-by атаки (атака с помощью скрытой загрузки). Кроме того во многих современных CMS (IPB, vBulletin, modx и др.) шаблонизаторы позволяют исполнять php код, а сами шаблоны хранятся в базе данных, поэтому php код веб-шеллов и бэкдоров может быть встроен непосредственно в БД.
Инжекты в кэширующих сервисах.
4.В результате некорректной или небезопасной настройки кэширующих сервисов, например, memcached, возможны инжекты в закэшированные данные “на лету”. В некоторых случаях хакер может внедрять вредоносный код на страницы сайта без непосредственного взлома последнего. Инжекты/инцицированные элементы в системных компонентах сервера.
5.Если хакер получил root доступ к серверу, он может подменить элементы веб-сервера или кэширующего сервера на инфицированные. Такой веб-сервер будет с одной стороны обеспечивать контроль над сервером с помощью управляющих команд, с другой – время от времени внедрять динамические редиректы и вредоносный код на страницы сайта. Как и в случае инжекта в кэширующий сервис, администратора сайта скорее всего не сможет обнаружить факт взлома сайта, так как все файлы и база данных будут оригинальными. Этот вариант наиболее сложный для лечения.
Итак, предположим, что сканерами вы уже проверили файлы на хостинге и дамп базы данных, но они ничего не обнаружили, а вирусный по-прежнему на странице или мобильный редирект продолжает отрабатывать при открытии страниц. Как искать дальше?
Поиск вручную
В unix сложно найти более ценную пару команд для поиска файлов и фрагментов, чем find / grep.
find . -name ‘*.ph*’ -mtime -7
найдет все файлы, которые были изменены за последнюю неделю. Иногда хакеры “скручивают” дату изменения у скриптов, чтобы таким образом не обнаружить новые скрипты. Тогда можно поискать файлы php/phtml, у которых менялись атрибуты
find . -name ‘*.ph*’ -сtime -7
< Если нужно найти изменения в каком-то временном интервале, можно воспользоваться тем же find
find . -name ‘*.ph*’ -newermt 2015-01-25 ! -newermt 2015-01-30 -ls
Для поиска в файлах незаменим grep. Он может искать рекурсивно по файлам указанный фрагмент
grep -ril ‘stummann.net/steffen/google-analytics/jquery-1.6.5.min.js’ *
При взломе сервера полезно проанализировать файлы, у которых установлен guid/suid флаг
find / -perm -4000 -o -perm -2000
Чтобы определить, какие скрипты запущены в данный момент и грузят CPU хостинга, можно вызвать
lsof +r 1 -p `ps axww | grep httpd | grep -v grep | awk ‘ { if(!str) { str= } else { str=str»,»}}END{print str}’` | grep vhosts | grep php
Анализ файлов на хостинге
1.Идем в директории upload, cache, tmp, backup, log, images, в которые что-то пишется скриптами или загружается пользователями, и просматриваем содержимое на наличие новых файлов с подозрительными расширениями. Например, для joomla можно проверить .php файлы в каталоге images:find ./images -name ‘*.ph*’Скорее всего, если что-то найдется, то это будет вредонос. Для WordPress имеет смысл проверить на скрипты директорию wp-content/uploads, backup и cache каталоги тем.
2.Ищем файлы со странными именами Например, php, fyi.php, n2fd2.php. Файлы можно искать- по нестандартным сочетаниям символов,- наличию цифр 3,4,5,6,7,8,9 в имени файлов
3.Ищем дорвеи по большому числу файлов .html или .php Если в каталоге несколько тысяч файлов .php или .html, скорее всего это дорвей.
4.Логи веб-сервера, почтового сервиса и FTP. Корреляция даты и времени отправки письма (которые можно узнать из лога почтового сервера или служебного заголовка спам-письма) с запросами из access_log помогают выявить способ рассылки спама или найти скрипт спам-рассыльщика. Анализ трансфер-лога FTP xferlog позволяет понять, какие файлы были загружены в момент взлома, какие изменены и кем. В правильно настроенном логе почтового сервера или в служебном заголовке спам-письма при правильной настройке PHP будет имя или полный путь до скрипта-отправителя, что помогает определять источник спама. По логам проактивной защиты современных CMS и плагинов можно определять, какие атаки были выполнены на сайт и сумела ли CMS им противостоять. По access_log и error_log можно анализировать действия хакера, если известны имена скриптов, которые он вызывал, IP адрес или User Agent. В крайнем случае можно просмотреть POST запросы в день взлома и заражения сайта. Часто анализ позволяет найти другие хакерские скрипты, которые были загружены или уже находились на сервере в момент взлома.