Способы оплаты Abuse

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

13.07.2021, 19:11

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

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

ПОИСК УЯЗВИМОСТЕЙ НА САЙТЕ

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

Основные этапы:

  1. разведка - поиск и сборка информации о вашей сети или серверах;
  2. сканирование - на этом этапе нужно проверить сайт на уязвимости опираясь на собранную информацию;
  3. эксплуатация - этот шаг необязательный и не всегда нужный тестировщикам на проникновение. Это необходимо, если вам нужно показать реальную опасность уязвимостей;
  4. исправление - на этом этапе нужно исправить все найденные уязвимости на вашем сайте.

Дальше рассмотрим, что следует выполнить на каждом из этапов и какие инструменты для этого нужно использовать. Лучше не устанавливать все эти программы отдельно, а использовать уже готовую среду для тестирования на проникновение - 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 вы можете в отдельной статье.

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

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

СКАНИРОВАНИЕ

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

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

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

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

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

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

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 в одной из следующих статей.

ИСПРАВЛЕНИЕ

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

ВЫВОДЫ

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