9 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как найти поддомен домена в считанные минуты

Как найти поддомен домена в считанные минуты?

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

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

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

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

Как все вы знаете, поддомены всегда используются главными хостами для обслуживания какой-то конкретной, выделенной категории клиентов. Чаще всего это почтовики, мобильные пользователи, товарные поддомены, страницы для разработчиков и т.п. Зачем же хакеры постоянно ищут поддомены, и почему эта задача всегда ставится во главу угла при тестировании удалённых хостов? Дело в том, что главный домен и его поддомены могут, например, располагаться на разных виртуальных серверах и даже разных странах. И, на что более всего рассчитывают хакеры, находится на разных уровнях защищённости. Нет, речь не идёт о том, что поддомены админами совершенно разбрасываются хозяевами. Однако практика показывает, что иногда ресурсы на субдоменах не своевременно обслуживаются, давая повод применять последние эксплойты и инъекции против них.

И опять же не секрет, что внутри Nmap сидит мощный брут-форс-скрипт, позволяющий перечислять поддомены и сочленяющиеся с ними IP-адреса.

С помощью этой команды скрипт dns-brute попытается пробить указанный адрес (хост) по портам (p) 80 и 443 с целью обнаружить созданные для него поддомены. В данном случае в команде предпочтительнее указывать на номера целевых портов ( nmap –script dns-brute сайт.com ) , иначе на среднестатистическом компьютере проверка затянется. Конечно же, далеко не все хосты “блещут” разнообразием поддоменов, как крупные поисковики или сайты серьёзных контор. Однако познакомившись с картой поддоменов, взломщик может продолжит работу со списком вновь обнаруженных серверов под управлением хоста в поиске “дыр”. Так, Nmap снабжается файлом dns-brute, который может содержать дополнительные указующие аргументы –script-args. Их можно указывать в команде по поиску поддоменов, и с их помощью можно контролировать количество потоков поиска, имя файла с SRV-записями и предпочтительный поиск по ним, а также кое-что ещё.

Далее. Следующая команда ищет запущенные прямо сейчас службы хоста, используя протокол DNS Service Discovery, сканируя все порты хоста:

Читать еще:  Как установить виртуальную Кали Линукс

Эти команды – не единственная возможность перечисления DNS по интересующему тестера хосту. Кроме того, в Кали Линукс существуют и другие инструменты дополнительно к Nmap, которые помогут составить отчётливую картину по дереву поддоменов сканируемого хоста. Но о таких программах позже.

Установка в Kali Linux

Настройка и запуск Redis в Kali Linux

Откройте файл /etc/redis/redis.conf

Найдите там строку:

И замените её на строку:

Запустите службу Redis

Установка зависимостей, установка и инициализация Intrigue-core

Запуск Intrigue-core:

Веб-интерфейс теперь доступен по адресу: http://localhost:7777

После перезагрузки Kali Linux нужно вручную каждый раз запускать (либо добавить в автозагрузку):

Также нужно запускать (из каталога программы):

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

Используем Fierce.

Интересный представитель доменных сканеров, но среди прочих обладает более продвинутым набором инструментов. Например, как только сканер обнаруживает реальный IP адрес, он включает обратный поиск с целью обнаружить пространство близлежащих IP адресов “вверх-вниз”. С этим брутфорс сканирование не справляется. Ну, или не всегда. А такая методика может помочь найти поддомены сайта более корректно. Для начала знакомимся со справкой ( я помогу с переводом, выдаю “как есть”):

-connect попытается установить HTTP соединения с любым из не RFC1918 (непубличным) адресов. Ответ будет содержать заголовки, но, если у компании множество целей, это может занять время. Против крупной компании с развитой сетевой инфраструктурой флаг применять не стоит, если у вас нет в распоряжении много свободного времени (на это могут уйти часыдни). Внутри заданного файла текст “Host:n” будет заменён на заданный хост. Применение:

perl fierce.pl -dns example.com -connect headers.txt

-delay время в секундах на ожидание между запросами.

-dns домен, который будет сканироваться.

-dnsfile использовать DNS серверы в текстовом файле (по одному в линию) для обратных просмотров (брут форс).

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

-file файл, куда вы запишите логи.

-fulloutput вместе с флагом -connect выведет на экран всё содержимое ответа сервера, а не только заголовки HTTP.

-help справка.

-nopattern не стоит использовать схему поиска, если вы решили отсканировать сеть на предмет ближайших к вам хостов. Вместо этого сделайте общий дамп. Это громковато, однако для поиска остальных доменов, используемых спамерами может быть полезно. К тому же число ложных срабатываний сильно возрастёт, особенно это касается крупных доменов.

-range сканирует внтренний диапазон IP адресов (должен присутствовать флаг -dnsserver). Однако, это лежит за пределами стандартной схемы поиска и просто выдаст всё, что сможет обнаружить. Применение:

Читать еще:  Как установить DVWA в Кали Линукс?

perl fierce.pl -range 111.222.333.0-255 -dnsserver ns1.example.co

-search поиск по списку. Когда Fierce попытается отработать домен по обе стороны пространства IP адресов, она может “захватить” сервера в пределах других доменов, которые принадлежат той же компании. Если обеспечить Fierce списком с разделителем в виде точки, она сообщит обо всём, что обнаружит. Это очень полезно в случае, когда корпоративные сервера имеют другие названия, отличные от публичного сайта. Применение:

perl fierce.pl -dns examplecompany.com -search corpcompany,blahcompany

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

-suppress без вывода в терминале (используется с флагом -file).

-tcptimeout установка особого промежутка на запрос (по умолчанию 10 сек.). Возможно, придётся увеличить время, если DNS сервер, к которому вы обращаетесь, медленно отвечает на запросы или у вас наблюдаются потери пакетов по естественным причинам.

-threads установка числа потоков сканирования(по умолчанию один).

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

-version выводит номер версии.

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

-wordlist использует отдельный словарь (с одним словом в строке). Применение:

perl fierce.pl -dns examplecompany.com -wordlist dictionary.txt

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

Указание API ключей в строке команды

С помощью опции —set-config можно указать API ключи непосредственно в запускаемой команде:

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

Список доступных опций для использования с данной командой:

  • virustotalApikey
  • passivetotalUsername
  • passivetotalKey
  • securitytrailsKey
  • riddlerEmail
  • riddlerPassword
  • censysUsername
  • censysSecret
  • shodanApiKey

Разрешение доменных имён в Linux

Прежде чем мы перейдём к самому файлу hosts, нужно разобраться, как происходит поиск IP-адреса для доменного имени в Linux. Я говорил, что операционная система сразу же отправляет запрос DNS-серверу, но это не совсем так. Существует определённый порядок поиска, согласно которому он выполняется. Этот порядок установлен в конфигурационном файле /etc/nsswitch.conf

Здесь нас интересует строчка hosts. В ней в порядке очередности записаны службы, которые используются для поиска IP-адреса для доменного имени. Пункт files означает использование файла /etc/hosts, а dns — сервиса доменных имён интернета. Если files расположена перед hosts, это означает, что сначала система попытается найти домен в /etc/hosts, а уже потом по DNS. По умолчанию дело обстоит именно так.

Читать еще:  Как взломать браузер через Метасплой?

Как установить Findomain

Разные способы установки Findomain описаны на странице: https://kali.tools/?p=4980

Для установки Findomain в Windows зайдите на страницу https://github.com/Edu4rdSHL/findomain/releases и скачайте файл findomain-windows.exe из самого последнего выпуска.

Простейший способ установки Findomain в любой дистрибутив Linux:

Определить IP-адрес, используя WEBRTC

Решение

Не так давно в браузеры пришла технология WebRTC (Web Real-Time Communication). Суть ее заключается в том, чтобы дать браузерам встроенную универсальную возможность, то есть без плагинов, осуществлять звонки, видеоконференции, передачу данных. Логично, что она возложена на специальный API в JS. И понятное дело, что возможность эта сможет потеснить Skype, например.

Сейчас эта технология поддерживается уже всеми топовыми браузерами (IE c 10-й версии). И даже есть примеры интеграции и использования технологии (если интересно — посмотри на хабре).

С другой стороны, у этой технологии для наших целей также есть кое-что. А именно — возможность получить IP-адрес системы. Заходит к тебе кто-то на сайт, а ты можешь узнать его IP, только используя возможности JavaScript’а. Причем, что очень важно, не IP-адрес NAT’a (вай-фай роутера или другого девайса) или IP прокси, а именно конкретного хоста в его подсети. К тому же можно получить IP-адреса всех сетевых интерфейсов. Никаких warning’ов при этом не отображается. Все тихо и незаметно.

Если кратко, то причина этой новой возможности JS в том, что хотя WebRTC и является P2P-технологией, но для нахождения хостов, для подключений между друг другом используется дополнительный сервер. Так вот, для обмена данными для подключения также был придуман протокол — SDP (Session Description Protocol). Для подключения в SDP, наряду с другой информацией, передаются и IP-адреса. Надеюсь, что не ошибся :).

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

PoC можно найти здесь.

Начнем с сервиса на 80-м порте. Там висит ничем в целом не примечательный сайт без каких-то особенных функций.

Прежде чем фаззить директории, залезем в исходный код страницы. Видим закомментированную ссылку, вероятно на французскую версию сайта.

Продолжение доступно только подписчикам

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

Подпишись на «Хакер» по выгодной цене!

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

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector