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

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

Тестирование безопасности включает очень много различных инструментов и задач. В этой статье мы постараемся охватить все аспекты поиска уязвимостей на сайте. С помощью этой инструкции вы сможете сохранить свой ресурс в безопасности.

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

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

  • Разведка — поиск и сборка информации о вашей сети или серверах;
  • Сканирование — на этом этапе нужно проверить сайт на уязвимости опираясь на собранную информацию;
  • Эксплуатация — этот шаг необязательный и не всегда нужный тестировщикам на проникновение. Это необходимо, если вам нужно показать реальную опасность уязвимостей;
  • Исправление — на этом этапе нужно исправить все найденные уязвимости на вашем сайте.

Теперь рассмотрим что нужно делать на каждом из этапов и какие инструменты для этого нужно использовать. Лучше не устанавливать все эти программы отдельно, а использовать уже готовую среду для тестирования на проникновение — Kali Linux. Это специально подготовленный дистрибутив Linux, который уже содержит все необходимые программы. Так вам не придется ничего устанавливать. Вы можете запускать систему из флешки или же установить Kali Linux на жесткий диск.

Разведка

То, что это ваша система ничего не значит, вам все равно нужно узнать какую информацию о ней могут узнать другие люди. Для этого можно применять несколько инструментов:

nmap — это один из самых популярных инструментов для сканирования сетей. С помощью него вы можете посмотреть какие сервисы запущены на сервере веб-сайта, какие порты они используют их версии, и даже версию операционной системы. Чтобы посмотреть открытые порты на своей машине выполните такую команду в терминале Kali Linux:

nmap -sS 192.168.91.249

Здесь 192.168.91.249 — это ip адрес вашего сайта. Это команда только выведет открытые порты и названия сервисов. Вы можете получить более подробную информацию, например, уже на этом этапе можно собрать много информации о системе. Например, здесь вы можете видеть, что на машине запущен SSH сервер, веб-сервер, службы обмена файлами Samba и прокси сервер на порту 3128. Все они могут быть потенциально уязвимы.

Сканер Nmap позволяет копнуть глубже, с помощью более интенсивного сканирования. Для этого используйте опцию -A:

nmap -A 192.168.91.62

Тут вы уже увидите намного больше информации, например, версии сервисов, системное время, систему управления контентом и даже версию операционной системы. Также, если будут обнаружены простые уязвимости, такие как слабый пароль FTP, то вы об этом тоже узнаете. Прочитать подробнее как пользоваться Nmap вы можете в отдельной статье.

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

  • whois — с помощью этого сервиса вы можете узнать общедоступную информацию о домене, регистратора, владельца и другую контактную информацию;
  • recon-ng — полезный инструмент для анализа, который поставляется вместе с Kali Linux;
  • Maltego Chlorine — это очень популярный инструмент с открытым исходным кодом, предназначенный для сбора информации с открытых источников;
  • Netcraft — полезный инструмент, позволяющий найти поддомены сайта;
  • hackertarget.com/reverse-ip-lookup — позволяет узнать какие еще сайты работают на вашем ip адресе.

После того, как вы завершили сбор информации на этапе разведки, нужно перейти к сканированию, непосредственно выполнить поиск уязвимостей на сайте Kali Linux.

Сканирование

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

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

Важно заметить, что атаки фаззинга работают очень громко поскольку требуют передачи большого количества данных. И скорее всего, ваша система защиты от вторжений заметит их, поэтому будьте осторожны. А теперь рассмотрим некоторые инструменты, которые можно использовать.

WPScan — это проект с открытым исходным кодом, написанный на Ruby специально для сканирования WordPress. Он очень прост в использовании и может быть полезным для сайтов, которые используют большое количество плагинов или не обновляются. Утилите не нужен исходный код, она выполняет сканирование удаленно.

Nikto — это сканер уязвимостей для веб-сайтов. Он работает намного дольше чем WPSan, но рассчитан не только на WordPress. Он включает в себя множество плагинов, и во время сканирования будет выполнено очень много запросов. Например, программа может найти файл, который будет выводить информацию phpinfo. Но Nikto генерирует очень много ложных срабатываний, поэтому вам нужно внимательно анализировать вывод.

Burp Suite — это очень мощная программа для поиска уязвимостей на сайте или в веб приложениях. Этот инструмент работает только через веб-браузер. Утилита позволяет проверить все формы, которые есть на сайте, проверить отправку разных заголовков, посмотреть ответы и запросы браузера, выполнить активное сканирование URL, выполнить статический анализ кода JavaScript, а также выполнить поиск XSS уязвимостей на сайте. Это отличный инструмент, но он может показаться сложным.

https://youtu.be/M_h_absC5yE

SQLMap — программа для поиска sql уязвимостей сайта. Вы можете  найти все возможные места, где могут быть выполнены SQL инъекции. Например, если вы предполагаете, что в параметре id может быть sql инъекция, используйте такую команду:

sqlmap -u http://example.com/?id=1 -p id

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

sqlmap --dbms=MySQL -u http://example.com/?id=1 -p id

С помощью этой команды вы можете проверить различные поля, и указывать различные параметры, такие как базы данных, таблицы или пароли.

Эксплуатация

Эксплуатация завершает поиск уязвимостей на сайте и предоставляет из себя использование уязвимостей для получения доступа к системе или данным. В целом, если вы смогли найти дырки в вашей системе безопасности и закрыть их, то больше ничего вам делать не нужно. Но иногда нужно доказать, что проблема действительно серьезна. Рекомендуется не использовать эксплуатацию уязвимостей на производственных системах. потому что это может привести к проблемам. Лучше создать виртуальную машину и уже в ней показывать все, что нужно. Вот некоторые инструменты, которые можно использовать:

  • SQLMap — очень эффективный инструмент для поиска sql уязвимостей и их эксплуатации;
  • Burp Suite — инструмент для поиска XSS уязвимостей и эксплуатации;
  • Metasploit — эксплуатация уязвимостей в системе.

Metasploit — это целая среда для проведения тестирования на проникновение, в которой содержится множество готовых эксплойтов. Вы можете найти эксплойты для установленных плагинов или обнаруженных на первом этапе сервисов. Мы более подробно рассмотрим как пользоваться Metasploit в одной из следующих статей.

Исправление

Это заключительный этап поиска уязвимостей. На основе всего того, что было найдено нужно сделать выводы и закрыть все дыры. Когда у вас есть все данные об уязвимых местах. Распределите приоритеты и исправьте все, что нашли. Если эти уязвимости смогли найти вы, значит их может найти любой другой.

Выводы

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

3 комментария

  1. Олексий Март 13, 2017 Ответить
  2. Алексей Июнь 1, 2017 Ответить
  3. Даник Май 11, 2018 Ответить

Ответить