Скачать книгу

access_log.1.gz | grep «POST /’> post_today. txt

      Для анализа подозрительной активности желательно использовать выборку по всем доступным логам. Поэтому далее в примерах будем использовать команду find, которая выполнит поиск всех файлов, а затем выполнит для каждого соответствующую команду (например, zcat).

      Как определить попытки взлома или поиска уязвимых скриптов?

      Например, можно найти все обращения к несуществующим скриптам. php во всех доступных логах.

      grep ’php HTTP.* 404» access_log

      find. -name «*.gz’ -exec zcat {} \; | grep ’php HTTP.* 404»

      (вместо -exec можно использовать xarg для вызова zcat.)

      Еще можно поискать все неуспешные обращения к скриптам php (к которым был закрыт доступ).

      find. -name «*.gz’ -exec zcat {} \; | grep ’php HTTP.* 403»

      Здесь мы ищем запросы, в которых встречается расширение php и статус 403.

      Далее посмотрим по всем доступным логам число успешных обращений к скриптам, отсортируем их по числу обращений и выведем ТОП-50 самых популярных. Выборку сделаем в три шага: сначала выполним поиск по access_log, затем по всем access_log.*.gz, выведем результаты в файл, а затем используем его для сортировки.

      find. -name «*.gz’ -exec zcat {} \; | grep ’php HTTP.* 200»> php. txt

      grep ’php HTTP.* 200» access_log>> php. txt

      cut -d «"» -f2 php. txt | cut -d ' ' -f2 | cut -d»?» -f1 | sort | uniq -c | sort -n | tail -50

      Для сайта на Wordpress результат может выглядеть так:

      (примеры для Wordpress приведены исключительно для иллюстрации, в действительности описанный подход и команды не ограничиваются данной CMS. Приведенные команды можно использовать для анализа журналов веб-сервера сайтов, работающих на любых php фреймворках и системах управления (CMS), а также просто на php скриптах.)

      1 /wp-admin/edit.php

      1 /wp-admin/index.php

      1 /wp-admin/update-core.php

      1 /wp-admin/upload.php

      2 /wp-admin/users.php

      3 /wp-admin/plugins.php

      4 /wp-includes/x3dhbbjdu.php

      4 /wp-admin/profile.php

      4 /wp-admin/widgets.php

      38 /wp-admin/async-upload.php

      58 /wp-admin/post-new.php

      1635 /wp-admin/admin-ajax.php

      6732 /xmlrpc.php

      14652 /wp-login.php

      Из результата видно, что к файлу wp-login.php было более 14000 обращений, что ненормально. Судя по всему на сайт была (или еще идет) брутфорс атака с попыткой подобрать доступ к панели администратора.

      Большое число обращений к xmlrpc.php также может свидетельствовать о подозрительной активности. Например, через сайт могут атаковать (DDOS’ить) другие Wordpress сайты при наличие XML RPC Pingback Vulnerability.

      Еще в списке подозрительными выглядят успешные обращения к /wp-includes/x3dhbbjdu.php, так как такого файла в стандартном Wordpress быть не может. При анализе он оказался хакерским шеллом.

      Таким образом буквально за несколько секунд можно можно получить статистику по обращениям к скриптами, определить аномалии и даже найти часть хакерских скриптов без сканирования сайта.

      Теперь давайте посмотрим, не было ли попыток взлома сайта. Например, поиска уязвимых скриптов или обращения к хакерским шеллам. Найдем все запросы к файлам с расширением. php со статусом 404 Not Found:

      find. -name «*.gz’ -exec zcat {} \; | grep ’php HTTP.* 404»> php_404.txt

      grep ’php HTTP.* 404» access_log>> php_404.txt

      cut -d «"» -f2 php_404.txt | cut -d ' ' -f2 | cut -d»?» -f1 | sort | uniq -c | sort -n | tail -50

      На этот раз результат может быть таким:

      1 /info.php

      1

Скачать книгу