Заметки на полях: Recon Mindmap
Каждый раз, когда начинаем новую RedTeam кампанию, возникает небольшое чувство прострации - ты знаешь кучу инструментов, которые могут помочь тебе найти домены, ip-адреса, людей, почтовые ящики, пароли, социальные сети и т.д. Но с чего начать? В какой последовательности все применять, чтобы не запутаться в этом объеме информации, которой порой очень-очень много и она, конечно же, дублируется и не вся является актуальной?
Сегодня мы делимся с вами своим опытом и чудесным mindmap от @slashcrypto. По ссылке ниже вы найдете mindmap в хорошем качестве и описание каждого этапа.
Как работаем мы. Основная наша задача - найти домены и подсети, которые принадлежат сегменту сети компании. Т.е. нас в первую очередь интересуют не хостеры, а, грубо говоря, купленные внешние IP-адреса или сегменты сети. Хостинги, облачные провайдеры, добавляются в отдельный список, который прорабатывается позднее.
1.Мы находим основной домен компании. Чаще всего он либо закрыт какой-нибудь CDN, либо находится на хостинге - т.е. нам надо собирать поддомены для того, чтобы найти подсети компании
2. Ищем поддомены и другие связанные с компанией домены (пул инструментария у каждого свой, удобный конкретно ему, поэтому примеры приводить не будем. Про osint у нас был в свое время пост https://t.me/mis_team/180). Главное, что должно быть после данного этапа - список доменов (и поддоменов конечно) с IP-адресами.
3.Далее происходит анализ полученного списка (да, иногда он может быть просто огромным. Тут у каждой команды свои методы обработки. Мы используем аналитическую систему "Лавр", разработанную нашей компанией). Разбиваем полученный список на подсети по диапазонам. Например, если у нас есть IP-адреса 81.81.81.37 и 81.81.81.137 - мы их относим к одному диапазону. (Цифры в примере взяты из головы).
Если вдруг у нас попались внутренние IP-адреса (да, такое тоже бывает) - их выделяем в отдельный список - они нам пригодятся в дальнейшем. После того как мы получим доступ во внутреннюю сеть - в первую очередь на доступность проверяются этот список.
4. Дальше все диапазоны проверяются на принадлежность компании. И составляется несколько списков - подсети, которые принадлежат непосредственно компании и список хостов, которые находятся в облаке. Часто из пары IP-адресов мы выходим на целые подсети.
5. В первую очередь работа идет со списком, который принадлежит компании. Тут все зависит от масштабов компании, но, по нашему опыту, RedTeam заказывают крупные компании, у которых достаточно большой пул внешних IP-адресов. Как мы работаем с этим списком? Дальше нам необходимо разделить адреса внутри каждого сегмента - выделить веб-приложения в отдельный список и составить список с другими открытыми портами (ssh, telnet и т.д.). Почему нельзя было выделить веб-приложения раньше, когда составляли список доменов? Потому что не у всех веб-приложений в сети есть домен, либо мы его не нашли по словарю (встречаются домены 4, а иногда и 5 уровня, некоторые из них найти действительно сложно).
6. Дальше по веб-приложениям запускается фаззинг, находятся все формы, которые можно побрутить, запускается скан на наличие уязвимостей.
7. Список с не веб-портами чаще всего отдается сетевому сканеру на быстрый скан на наличие уязвимостей. Дальше будет уже работа с результатами этого скана - где-то требуется ручная, более глубокая проработка, а где-то нет никакого смысла смотреть вручную.
8. Список хостов, которые находятся в облаке также обрабатывается на предмет того, к какому облаку относится и происходит тестирование облачного сервиса - об инструменте для пентеста облачных сервисов у нас также был отдельный пост -
https://t.me/mis_team/167
Это основные этапы, которые мы делаем. Дальше сценарии могут развиваться в зависимости от того, где и какая уязвимость была найдена. Чаще всего бывает, что есть сразу несколько векторов развития дальнейшей атаки, которые надо отработать.
Мы поделились своим опытом. Делимся еще ссылкой (https://www.offensity.com/de/blog/just-another-recon-guide-pentesters-and-bug-bounty-hunters/), как и обещали.