PHP-шеллы или как обезопасить свой сайт

PHP-шеллы или как обезопасить свой сайт (Часть 3)

Привет, сегодня заключительная часть из серии «PHP-шеллы или как обезопасить свой сайт». Сегодня мы будем тестировать свой сайт на наличие уязвимостей, позволяющих залить шеллы.

Вступление

Чтобы начать тестировать свой ресурс, необходимо подготовить свою машину 🙂 . Тестировать будем у себя на локалке, для этого необходимо поднять свой сервер с php + mysql (или другой связкой, все зависит от того, с помощью каких технологий создан сайт).

Можно поднимать сервер, устанавливая отдельно компоненты (php, mysql). Мы воспользуемся готовым решением, например Denwer.

Нам понадобиться сканер уязвимостей, даже если вы сканируете все «руками», я бы все же посоветовал пройтись сканером.

Установка сервера

PHP-шеллы или как обезопасить свой сайт

Итак, мы решили, что тестировать сайт будем на локальной машине. Почему именно на локальном? Причин несколько:

  • Во-первых, отклик сервера практический мгновенный, что сэкономит время.
  • Во-вторых, используя сканнер, можно случайно положить сайт 🙂 , на локалке это не так страшно

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

Идем на сайт denwer.ru, скачиваем и устанавливаем. На рабочем столе появятся три иконки : запуск, остановки и перезагрузка сервера.

PHP-шеллы или как обезопасить свой сайт

Перед запуском сервера, создайте на диске Z (стандартная буква, при установке denwer можно выбрать другую), в папке home, новую папку, где будет находиться наш сайт, а внутри еще одну - www. В папку www скопируйте сайт.

PHP-шеллы или как обезопасить свой сайт

Затем запускаем сервер и идем по локальному адресу http://localhost/Tools/phpMyAdmin/. Устанавливаем (кнопка «импорт»), заранее скаченную с удаленного сервера, БД.

PHP-шеллы или как обезопасить свой сайт

Перезагружаем сайт и обращаемся к адресу testSite.ru (все зависит от того как вы назвали папку). Если сайт работает, поздравляю вас. Идем дальше.

Выбор сканера уязвимостей.

Вообще есть очень хорошая статья на хабре, даже комментировать не буду - habrahabr.ru/post/125317/ , просто смотрите и выбирайте. Я буду использовать Acunetix Web Vulnerability Scanner.

Проверка сайта на уязвимсоти.

Запускаем Acunetix Web Vulnerability Scanner. Вбиваем адрес, жмем «старт» и ждем…

PHP-шеллы или как обезопасить свой сайт

После сканирования вы получите список уязвимостей или не получите 🙂 . В любом случае, должно быть что-то в этом духе:

PHP-шеллы или как обезопасить свой сайт

На все уязвимости высокого и среднего уровня стоит обратить внимание. Я выделил те, через которые льются шеллы. Нажав на «плюсик», можно увидеть список страниц, которые подвержены этой уязвимости, щелкнув по странице можно увидеть рекомендацию по устранению, а также как была обнаружена уязвимость.

PHP-шеллы или как обезопасить свой сайт

Далее нужно анализировать код и исправлять ошибки. Здесь я помочь не могу, т.к это задача не решается в общем виде. Можно попробовать самому залить шелл на свой сайт, заранее прочитав логии сканнера. Исправив все ошибки в коде, заливаем новую версию сайта на удаленный сервер.

Небольшие итоги.

Сегодня мы научились поднимать свой локальный сервер, побаловались со сканерами. Хочется заметить, что использовать подобные сканеры нужно только на локальном сервере. Сканировать чужие ресурсы не стоит.

Не забывайте про человеческий фактор, меняйте пароли от FTP, SSH, админок и т.д, обновляйте антивирус, т.к шеллы могут литься не только из-за уязвимостей на сайте.

На этом все, надеюсь, что ваши сайты будут всегда под надежной защитой 🙂