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 /license.php
1 /media/market.php
1 /setup.php
1 /shell.php
1 /wp-admin/license.php
1 /wp-content/218.php
1 /wp-content/lib.php
1 /wp-content/plugins/dzs-videogallery/ajax.php
1 /wp-content/plugins/formcraft/file-upload/server/php/upload.php
1 /wp-content/plugins/inboundio-marketing/admin/partials/csv_uploader.php
1 /wp-content/plugins/reflex-gallery/admin/scripts/FileUploader/php.php
1 /wp-content/plugins/revslider/temp/update_extract/revslider/configs.php
1/wp-content/plugins/ultimate-product-catalogue/product-sheets/wp-links-ompt.php
1/wp-content/plugins/wp-symposium/server/php/fjlCFrorWUFEWB.php
1 /wp-content/plugins/wpshop/includes/ajax.php
1 /wp-content/setup.php
1 /wp-content/src.php
1 /wp-content/themes/NativeChurch/download/download.php
1 /wp-content/topnews/license.php
1 /wp-content/uploads/license.php
1 /wp-content/uploads/shwso.php
1 /wp-content/uploads/wp-admin-cache.php
1 /wp-content/uploads/wp-cache.php
1 /wp-content/uploads/wp-cmd.php
1 /wp-content/uploads/wp_config.php
1 /wp-content/wp-admin.php
1 /wp-update.php
1 /wso2.php
2 /wp-content/plugins/dzs-zoomsounds/ajax.php
2 /wp-content/plugins/hello.php
2 /wp-content/plugins/simple-ads-manager/sam-ajax-admin.php
3 /wp-content/plugins/dzs-zoomsounds/admin/upload.php
4 /2010/wp-login.php
4 /2011/wp-login.php
4 /2012/wp-login.php
4 /wp-content/plugins/wp-symposium/server/php/index.php
Как видим из результата, подобные обращения были. Кто-то «на удачу» пытался обратиться к хакерскому шеллу в каталоге предположительно уязвимого компонента Revolution Slider /wp-content/plugins/revslider/temp/update_extract/revslider/configs.php и к WSO Shell в корне сайта и к ряду других хакерских и уязвимых скриптов. К счастью, безуспешно.
C помощью тех же find / cat / zcat / grep можно получить список IP адресов, с которых эти запросы выполнялись, дату и время обращения. Но практической пользы в этом мало.
Больше пользы от выборки всех успешных POST запросов, так как это часто помогает найти хакерские скрипты.
find. -name «*.gz’ -exec zcat {} \; | grep «POST /.* 200»> post. txt
grep «POST /.* 200» access_log>> post. txt
cut -d «"» -f2 post. txt | cut -d ' ' -f2 | cut -d»?» -f1 | sort | uniq -c | sort -n | tail -50
Результат может выглядеть следующим образом:
2 /contacts/
3 /wp-includes/x3dhbbjdu.php
7 /
8 /wp-admin/admin.php
38 /wp-admin/async-upload.php
394 /wp-cron.php
1626 /wp-admin/admin-ajax.php
1680 /wp-login.php/
6731 /xmlrpc.php
9042 /wp-login.php
Здесь видно много обращений к wp-login.php и xmlrpc.php, а также 3 успешных POST запроса к скрипту /wp-includes/x3dhbbjdu.php, которого не должно быть в Wordpress, то есть скорее всего это хакерский шелл.
Иногда полезно посмотреть выборку всех 403 Forbidden запросов, выполненных методом POST:
find. -name «*.gz’ -exec zcat {} \; | grep «POST /.* 403»> post_403.txt
grep «POST /.* 403» access_log>> post_403.txt
cut -d «"» -f2 post_403.txt | cut -d ' ' -f2 | cut -d»?» -f1 | sort | uniq -c | sort -n | tail -50
В нашем случае это выглядело так. Не очень много, хотя это могли быть попытки эксплуатации XML RPC Pingback:
8 /xmlrpc.php
Наконец, можно выбрать TOP-50 популярных запросов к сайту за сегодня:
cut -d «"» -f2 access_log | cut -d ' ' -f2 | cut -d»?» -f1 | sort | uniq -c | sort -n | tail -50
Получаем:
6 /wp-admin/images/wordpress-logo.svg
6 /wp-admin/plugins.php
7 /wp-admin/post-new.php
8 /wp-admin/async-upload.php
9 /sitemap. xml
10 /wp-admin/users.php
13 /feed/
13 /wp-admin/
20 /wp-admin/post.php
22 /wp-admin/load-styles.php
38 /favicon. ico
52 /wp-admin/load-scripts.php
Читать дальше