Анализ периметра при аудите безопасности сайтов

Анализ инфраструктуры атакуемого сайта

Эта статья посвящена инструменту XRay, предназначенному для выявления субдоменов и сбору информации о них.

Имеется множество инструментов разного уровня для пассивного и активного сбора информации, в том числе множество уже рассмотрено на страницах HackWare.ru. Инструментов для перечисления субдоменов тоже предоставлено — только на страницах HackWare.ru за последнее время было рассмотрено три отличных инструмента, каждый со своими особыми функциями и преимуществами:

И тем не менее программа XRay уникальна и имеет несколько потрясающих преимуществ:

  • для найденных субдоменов продолжается сбор информации, в том числе с использованием сервисов Shodan и ViewDNS
  • к найденным данным предоставляется очень удобный веб-интерфейс с возможностью искать по любым полям собранной информации

Как установить XRay в Kali Linux

Вначале необходимо установить компилятор Go. Для этого перейдите к статье «Установка Go (компилятора и инструментов) в Linux» и выберите вариант «Ручная установка самой последней версии компилятора Go».

После установки компилятора Go достаточно выполнить команды:

go get github.com/evilsocket/xray
rm -rf /home/git/go/pkg/dep/sources/https---go.googlesource.com-text/
cd $GOPATH/src/github.com/evilsocket/xray/
make
mv build/xray /usr/bin/
xray -h

API ключи для XRay

Инструмент XRay можно использовать вовсе без каких-либо API ключей, но я бы настоятельно рекомендовал получить их для Shodan, поскольку многая функциональность зависит от них. К тому же, API ключи Shodan можно использовать бесплатно — для целей этой статьи не нужен платный тарифный план.

API ключ Shodan

Параметр с указанием API ключа shodan.io является необязательным ( -shodan-key KEY ), тем не менее, если его не указать, то не будут собраны отпечатки служб и будет показано намного меньше информации (фактически, функции XRay в этом случае сведутся к DNS перечислению субдоменов).

API ключи ViewDNS

Если указан параметр с API ключом ViewDNS ( -viewdns-key KEY ), то также будут получены исторические данные о хостах.

Бесплатно даются API только на 250 запросов — у меня этот лимит кончился во время первого же запуска XRay. Причём лимит является не возобновляемым — то есть это не лимит на 1 день или на 1 месяц — когда 250 запросов закончатся, то они заканчиваются навсегда (либо нужно переходить на платный тарифный план).

Вопросы анонимности

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

Возможно, вам стоит задуматься о проксировании всего процесса для сокрытия своего IP.

Составление карты сети целевого сайта

Для запуска XRay нужно указать две обязательные опции:

  • -domain с именем начального домена, для которого будут собираться данные о субдоменах
  • -wordlist с именем файла словаря, в котором содержится список субдоменов для брут-форса

Программа XRay поставляется с несколькими словарями, вы найдёте их в папке /home/git/go/src/github.com/evilsocket/xray/wordlists/:

  • all.lst
  • default.lst
  • top1mil-20000.lst
  • top1mil-5000.lst
  • top1mil.lst

Эти же словари доступны онлайн: https://github.com/evilsocket/xray/tree/master/wordlists

Скопируйте интересующий вас словарь в текущую папку:

cp /home/git/go/src/github.com/evilsocket/xray/wordlists/default.lst .

Или просто скачайте нужный словарь, если вы не можете найти его на локальной системе (следующая команда скачивает словарь default.lst со списком субдоменов):

wget https://raw.githubusercontent.com/evilsocket/xray/master/wordlists/default.lst

Запускаем программу следующим образом:

sudo xray -domain ebay.com -wordlist default.lst -shodan-key API_КЛЮЧ_SHODAN -viewdns-key API_КЛЮЧ_VIEWDNS

Следующие ключи являются опциональными, но рекомендуется указать -shodan-key:

  • -shodan-key API_КЛЮЧ_SHODAN
  • -viewdns-key API_КЛЮЧ_VIEWDNS

Сразу после запуска программа сообщает что:

@ Saving session to ebay.com-xray-session.json
@ Web UI running on http://127.0.0.1:8080/

Это означает, что прогресс текущей сессии сохраняется в файл ebay.com-xray-session.json.

Также там сказано, что графический пользовательский веб-интерфейс расположен по адресу http://127.0.0.1:8080/. Мы к нему вернёмся, но давайте изучим последующую информацию, которую выводит программа:

Пример такой строки:

50.81 % completed, 11.15 req/s, 503 unique targets found so far ...

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

Анализ периметра сайта перед взломом

Теперь перейдём к веб-интерфейсу, для этого откройте в любом веб-браузере http://127.0.0.1:8080/.


Для каждого найденного субдомена выводиться такая информация как:

  • IP адрес
  • имя хоста, которое привязано к этому IP адресу
  • субдомен (часто не совпадает с именем хоста)
  • открытые порты
  • дополнительная информация

Дополнительная информация может включать такие поля как:

  • amazon:bucket
  • html:title (заголовок)
  • http:disallow (закрытые от индексации файлы и папки из файла robots.txt)
  • http:poweredby (программное обеспечение, на котором работает сервер)
  • http:redirect (адрес, куда перенаправляет страница)
  • http:server (сервер, примеры: cloudflare, Microsoft-IIS/10.0, nginx, Apache, envoy
  • Apache-Coyote/1.1, openresty)
  • https:chain (информация об SSL сертификатах)

Пример вывода дополнительной информации (обнаружены закрытые от индексации пути, показана примерная версия сервера):

http:disallow 	*rt=nc, /ebayadvsearch/
http:server 	Apache-Coyote/1.1
https:chain[0] 	C=US/O=eBay, Inc./OU=Site Operations/L=San Jose/P=California/CN=bulksell.ebay.com
https:chain[1] 	C=US/O=DigiCert Inc/OU=/L=/P=/CN=DigiCert SHA2 Secure Server CA

В следующем примере также от индексации закрыты ряд путей, выявлен редирект на другой адрес, показана примерная версия сервера)

http:disallow 	/, /help/confidence/, /help/policies/, /disney/, ...
http:redirect 	http://pages.ebay.com/messages/page_not_responding.html?eBayErrorEventName=p4ewgjflhso%3F%3Cumjg%7D34%2B630%3F42%3D-2019.11.05.03.26.00.766.MST
http:server 	Apache-Coyote/1.1

В этом примере вывода найдена используемая технология ASP.NET:

http:poweredby 	ASP.NET
http:redirect 	https://admin.manage.microsoft.com/
http:server 	Microsoft-IIS/10.0
https:chain[0] 	C=US/O=Microsoft Corporation/OU=Microsoft Corporation/L=Redmond/P=WA/CN=manage.microsoft.com
https:chain[1] 	C=US/O=Microsoft Corporation/OU=Microsoft IT/L=Redmond/P=Washington/CN=Microsoft IT TLS CA 2

Веб-интерфейс очень удобен для поиска и анализа информации. Искать можно по любому полю.

Пример поиска по слову «poweredby» для показа детальной информации об используемых технологиях, если она была найдена:

Поиск по слову «Forbidden»:

Поиск по слову «login»:

Поиск по имени или по части имени субдомена:

Можно искать по IP адресу или по части IP адреса:

Можно даже использовать * (звёздочку) в качестве подстановочного символа:

IP адреса являются ссылками на сайт shodan.io, где вы можете получить более подробную информацию о данном хосте.

Найдены даже субдомены на локальных адресах вида 10.*.*.*:

Среди субдоменов есть такие, где запущен SSH сервер:

Кстати, можно выполнять поиск и по номеру открытого порта.

Помните, что файлы с результатами сохраняются в текущей рабочей директории с именами вида *-xray-session.json.

Как продолжить сбор информации о хостах в XRay

Сбор информации при использовании большого словаря субдоменов затягивается на длительное время. Если вы прервали процесс до его завершения, то вы можете продолжить его снова в любой момент. Для этого просто запустите команду ещё раз:

sudo xray -domain ДОМЕН -wordlist СЛОВАРЬ -shodan-key API_КЛЮЧ_SHODAN -viewdns-key API_КЛЮЧ_VIEWDNS

Как войти в веб-интерфейс XRay без повторного запуска брут-форса

Если команда XRay завершила свою работу, то будет создан файл с именами вида *-xray-session.json. Этот файл хранит все собранные данные. Поэтому если вы сохранили этот файл и вновь хотите продолжить анализ с помощью веб-интерфейса XRay, то просто запустите исходную команду:

sudo xray -domain ДОМЕН -wordlist СЛОВАРЬ -shodan-key API_КЛЮЧ_SHODAN -viewdns-key API_КЛЮЧ_VIEWDNS

Программа XRay проверит, что все данные уже собраны и не будет запускать брут-форс, но при этом запустит веб-интерфейс.

Опции XRay

Вы можете изменить IP адрес и порт пользовательского веб-интерфейса, можете поменять расположение файла, куда сохраняются данные с помощью опций XRay. Все опции инструмента XRay рассмотрены на странице: https://kali.tools/?p=5062.

Рекомендуется Вам:

Добавить комментарий

Ваш e-mail не будет опубликован.