Любой поиск уязвимостей начинается с разведки и сбора информации. Разведка может быть активной: перебор файлов и директорий сайта, использование сканеров уязвимостей, ручной анализ приложения; или пассивной: с использованием различных поисковых систем и интернет-сервисов. В этой статье мы рассмотрим инструменты Kali Linux, а также онлайн-ресурсы, которые можно использовать для анализа защищенности веб-приложений.

Информация предоставлена исключительно в ознакомительных целях. Не нарушайте законодательство!

Пассивная разведка

Для пассивного сбора информации характерно то, что этапы его проведения невозможно обнаружить, так как фактически нельзя определить, с какого узла производится сбор информации. При пассивном сборе используются службы Whois, анализ DNS, исследование публичных интернет-ресурсов, поисковые системы и интернет-сервисы, социальные сети и многое другое.

2IP или аналоги

Различные онлайн-сервисы, предоставляющий информацию об операционной системе, браузере, месте расположения и интернет-провайдере, а также непосредственно об IP-адресе. Сервис предоставляет доступ к инструментам, которые могут оказаться хорошим подспорьем при проведении тестирования на проникновение. На 2IP можно узнать IP-адрес объекта по доменному имени, проверить DNS записи домена, определить используемую CMS, наличие сайта в веб-архивах и т.д.

Shodan

Это поисковая система, разработанная веб-девелопером Джоном Мазерли и ориентированная, прежде всего, на поиск устройств, подключённых к интернету. Shodan предоставляет информацию об устройствах (маршрутизаторах, коммутаторах, настольных компьютерах, серверах и т.д.) и сервисах. Поисковая система опрашивает порты, захватывает полученные баннеры и индексирует их, чтобы найти необходимую информацию. Ценность Shodan, как инструмента тестирования на проникновение, заключается в том, что он предоставляет ряд удобных фильтров:

  • Страна. Поиск осуществляется по двухбуквенному коду страны. Например, запрос apache country: RU покажет вам серверы Apache в России.
  • Имя хоста. Отображаются результаты по любой части имени хоста или имени домена. Например, при запросе apache hostname: .ru отобразятся серверы Apache в домене .ru.
  • net. Выводятся результаты по определённому диапазону IP-адресов или подсети.
  • os. Находит указанные операционные системы.
  • Порт. Осуществляется поиск конкретных услуг. Shodan имеет ограниченную коллекцию портов: 21 (FTP), 22 (SSH), 23 (Telnet) и 80 (HTTP).

HackerTarget

Сервис позволяет произвести сканирование на наличие уязвимостей на основе инструментов с открытым исходным кодом. HackerTarget может осуществлять 12 различных типов сканирования (сканирование внешних портов, сканирование уязвимостей с помощью OpenVAS, сбор информации о домене, тесты безопасности WordPress, Joomla и Drupal), доступных для сканирования Free.Perform. Информация, собранная при помощи HackerTarget, может быть использована для расширения зоны атаки при выявлении уязвимостей на сервере.

HackerTarget 1


HackerTarget 2


HackerTarget 3


HackerTarget 4

На HackerTarget есть платные пакеты, которые расширяют возможности сервиса. После оплаты предоставляются следующие инструменты:

  • Nmap — сканирование любого IP-адреса, лимит сканирования до 2048 адресов в день, сканирование портов без ограничений, запуск сканирования по расписанию.
  • OpenVas — Сканирование с помощью инструмента до 512 IP-адресов и составление отчётов в PDF, HTML, XML. Для тарифа PRO+ доступно сканирование по расписанию.
  • Доступ к сканеру уязвимостей веб-серверов Nikto, тестированию с помощью SQLmap, расширенный инструментарий для WhatWeb/Wappalyzer, сканирование CMS WordPress, Joomla, Drupal, а также тестирование SSL/TLS.

Google dorks

Операторы расширенного поиска Google используются, как правило, вместе с другими инструментами тестирования на проникновение для сбора анонимной информации, сопоставления сетей, а также сканирования и перечисления портов. Google dorks может предоставить пентестеру широкий спектр конфиденциальной информации, такой как страницы входа администратора, имена пользователей и пароли, конфиденциальные документы, военные или правительственные данные, корпоративные списки рассылки, данные банковских счетов и многое другое. Использование Google dorks позволяет фильтровать информацию примеру по типу уязвимости, по типу CMS, ошибкам, на которые не все обращают внимание. Среди всех операторов расширенного поиска Google наиболее интересны следующие:

  • site — поиск осуществляется по конкретному сайту;
  • inurl — указатель на то, что искомые слова должны быть частью самого веб-адреса;
  • intitle — оператор поиска в заголовке веб-страниц;
  • ext или filetype — поиск файлов определённого типа по расширению.

Также при составлении запроса не стоит забывать про операторы, которые задаются спецсимволами:

  • «|» — вертикальный слеш, он же оператор OR (логическое или). Указывает, что нужно показать результаты, содержащие хотя бы одно из слов, перечисленных в запросе.
  • «""» — кавычки. Указывает на поиск точного соответствия.
  • «-» — минус. Используется для очистки поисковой выдачи и исключает из неё результаты с указанными после минуса словами.
  • «*» — звездочка, или астериск. Используется в качестве маски и означает «что угодно».

Пример: site:pentestit.ru inurl:/uploads, если требуется найти все ссылки, содержащие «/upload» на сайте pentestit.ru.

theHarvester

theHarvester — это инструмент для сбора e-mail адресов, имён поддоменов, виртуальных хостов, открытых портов/банеров и имён работников из различных открытых источников (поисковые системы, сервера ключей pgp). Это простой, но эффективный на ранних этапах тестирования на проникновение инструмент позволяет узнать, какую информацию могут собрать о компании через интернет.

Инструмент использует следующие источники:

Пассивные:

  • google: поисковая машина Google — www.google.com;
  • googleCSE: пользовательский поиск Google;
  • google-profiles: поисковая система Google, специфичный поиск по профилям Google;
  • bing: поисковая система Microsoft — www.bing.com;
  • bingapi: поисковая система Microsoft, через API (нужно добавить ваш ключ в файл discovery/bingsearch.py);
  • dogpile: поисковая система Dogpile — www.dogpile.com;
  • pgp: сервер ключей pgp — mit.edu;
  • linkedin: поисковая система Google, специфичный поиск по пользователям Linkedin;
  • vhost: поиск Bing по виртуальным хостам;
  • twitter: Twitter аккаунты, связанные с указанным доменом (используется поиск Google);
  • googleplus: пользователи, которые работают в целевой компании (использует поиск Google);
  • yahoo: поисковая система Yahoo;
  • baidu: поисковая система Baidu;
  • shodan: поисковая система Shodan, ищет порты и банеры обнаруженных хостов (http://www.shodanhq.com/).

Активные:

  • Перебор DNS: этот плагин запустит перебор по словарю;
  • Обратное преобразование DNS: обратное преобразование обнаруженных IP-адресов для поиска имён хостов;
  • DNS TDL расширение: перечисление по словарю TLD;

Модули, для работы которых требуются API ключи:

  • googleCSE: нужно создать Google Custom Search engine(CSE) и добавить ваш Google API ключ и CSE ID в плагин (discovery/googleCSE.py);
  • shodan: нужно ввести ваш API ключ в discovery/shodansearch.py.

Ключи:
-b — позволяет указать источники в которых он будет искать. Возможные источники поиска:google, googleCSE, bing, bingapi, pgp, linkedin, google-profiles, people123, jigsaw, twitter, googleplus или все сразу — all;
-v — проверить хост в DNS и искать виртуальные сервера имеющие тот же адрес;
-f — записать результаты в HTML и XML файлы;
-n — сделать рекурсивные запросы к всем найденным диапазоном адресов;
-c — провести брутфорс доменных имен по словарю;
-e — использовать указанный DNS сервер;
-h — проверить найденные хосты через SHODAN.
Так же можно ограничить или расширить глубину поиска:
-l — глубина поиска (по умолчанию 100);
-s — пропустить первые n запросов.

Активная разведка

DIRB

DIRB представляет собой cканер для поиска директорий веб-приложения. В основе работы инструмента лежит поиск по словарю, при помощи которого формируются запросы к веб-серверу и осуществляется анализ ответов.

DIRB поставляется с набором настроенных на атаку словарей для простого использования, но можно задействовать и свой словарь. DIRB полезен там, где классические сканеры уязвимостей веб-приложений бессильны, так как он ищет специфические веб-объекты. При работе с инструментом можно использовать ключи:
-c — установить cookie для HTTP запроса. Может быть полезно, если веб-приложение для работы требует определенные cookie;
-a — установка пользовательского user-agent;
-u <пользователь:пароль> — HTTP аутентификация.

Nmap

Nmap (Network Mapper) — это утилита с открытым исходным кодом для исследования сети и проверки безопасности. Зачастую используется для инвентаризации сети, управления расписанием служб обновлений и мониторинга аптайма хостов или служб. Nmap был создан для быстрого сканирования больших сетей, но также хорошо работает и в отношении единичных хостов. Nmap запускается на всех популярных операционных системах, а официальные исполнимые пакеты доступны для Linux, Windows и Mac OS X. Достоинствами Nmap можно назвать:

  • Гибкость. Nmap поддерживает множество техник для составления карты сети, заполненной IP-фильтрами, межсетевыми экранами, роутерами и другими преградами, а также различные механизмы сканирования портов (TCP и UDP), определение операционных систем, определение версий и др.
  • Мощность. Изначально Nmap использовалась для сканирования больших сетей, состоящих из сотен машин.
  • Кроссплатформенность. Поддерживаются большинство операционных систем, включая Linux, Microsoft Windows, FreeBSD, OpenBSD, Solaris, IRIX, Mac OS X, HP-UX, NetBSD, Sun OS, Amiga и другие.
  • Простота в использовании. Nmap включает в себя широкий набор функций различной степени сложности, он может быть полезен и для опытных пентестеров, и для новичков. Доступны как традиционная версия командной строки, так и графическая версия (GUI).
  • Nmap — бесплатный инструмент. Утилита доступна для свободной загрузки и поставляется с полным исходным кодом, который можно изменить и распространять его на основе лицензии.
  • Для Nmap разработана подробная документация.
  • Поддержка Nmap осуществляется сообществом разработчиков и пользователей.

При работе с утилитой можно использовать следующие ключи:
-sU — UDP-сканирование;
-O — определение версии операционной системы, основывается на TTL;
-Pn — позволяет рассматривать все хосты, как если бы они были онлайн;
-sC: — запуск стандартного набора скриптов, эквивалентно опции --script=default.

DMitry

Эта утилита командой строки для UNIX/(GNU)Linux, написанная на языке C. Приложение позволяет собрать максимально возможное количество информации о хосте. В базовую функциональность входит сбор информации о поддоменах, адресах электронной почты, сканировании портов TCP, поиск Whois и другое.

Среди особенностей Dmitry можно выделить следующие:

  • Проект с открытым исходным кодом;
  • Выполняет ряд поисков Whois;
  • Выполняет поиск поддоменов для целевого хоста;
  • Выполняет поиск адресов электронной почты для целевого хоста;
  • Выполняет сканирование портов TCP на целевом хосте;
  • Модульное построение программы позволяет настраивать набор используемых модулей.

Sparta

Инструмент, предназначенный для автоматизации проведения активной разведки. Инструмент имеет GUI интерфейс, что позволяет на интуитивном уровне разобраться с работой программы.

После указания хоста для тестирования, инструмент запустит последовательно несколько сценариев сбора информации, начиная от сканирования портов с помощью Nmap и заканчивая проверкой сканером уязвимостей веб-серверов Nikto, а также созданием скриншотов веб-страниц. При необходимости найденные сервисы можно передать во встроенный механизм брутфорса для подбора пароля к учётным записям пользователей.

WhatWeb

Программа предназначена для идентификации веб-стайтов и позволяет ответить на вопрос «Чем является этот веб-сайт?». WhatWeb распознает веб-технологии, в том числе системы управления контентом (CMS), платформы для ведения блогов, пакеты статистики/аналитики, библиотеки JavaScript, веб-серверы и встроенные устройства.

WhatWeb может быть незаметным и быстрым, тщательным и медленным. Чтобы контролировать компромисс между скоростью и достоверностью, WhatWeb поддерживает уровни агрессивности через ключ -a. Уровень агрессивности по умолчанию называется «незаметный», он является самым быстрым и требует только один HTTP-запрос к веб-сайту. Его можно использовать для сканирования публичных веб-сайтов. Более агрессивные режимы 3 и 4 были созданы для использования при проведении тестирования на проникновение. Также можно указать --user-agent, чтобы установить пользовательский user-agent, а также условия для осуществления перехода с помощью ключей --follow-redirection и --max-redirects. Поддерживается аутентификация на сайте и использование пользовательских cookie. WhatWeb поддерживает только basic auth.

WPScan

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

Функционал инструмента позволяет устанавливать пользовательский user-agent или использовать функцию --random-user-agent для попытки обхода средств защиты. Для более глубокого изучения целевой CMS можно использовать ключ --enumiration с аргументами для запуска определения версии, главной темы оформления сайта, перечисления установленных плагинов и перечисления пользователей методом перебора.

Функция --plugins-detection aggressive является более агрессивной и требует больше времени.

Nikto

Сканер уязвимостей веб-серверов Nikto предназначен для поиска различных дефолтных и небезопасных файлов, конфигураций и программ на веб-серверах любого типа. Сканер исследует веб-сервер для поиска потенциальных проблем и уязвимостей безопасности, включая:

  • Неверные настройки сервера и программного обеспечения;
  • Дефолтные файлы и программы;
  • Небезопасные файлы и программы;
  • Устаревшие службы и программы.

Одной из самых востребованных опций сканера можно назвать -Tuning, которая модернизирует сканирование сервера, позволяя искать различные инъекции (4, 9), осуществлять обход аутентификации (a), идентификацию программного обеспечения (b) и многое другое. Например, для поиска XSS уязвимости можно воспользоваться следующей командой:
# nikto -host site.lan -Tuning 4 -C none

О Pentestit

Анализ защищенности веб-приложений — одно из основных направлений деятельности нашей компании, коллектив которой представлен специалистами с опытом работы в сфере более 10 лет.

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

На этом базовую разведку и сбор информации можно завершить и перейти к следующему этапу проведения тестирования на проникновение. На основе собранной информации выстраиваются векторы для проведения последующих атак.