В мире информационной безопасности часто задаются вопросом об исследовании открытых источников на получение личной информации — будь то защищающая сторона (например, для контроля периметра, выявления открытых уязвимостей) или пентестеры (поиск точки входа, аудит периметра и т. д.). Рассмотрим один из таких источников — hunter.io, — работу с которым мы оптимизировали, написав под него новую библиотеку. Подробности и ссылка на GitHub под катом.
Есть множество способов узнать конфиденциальную информацию (например, поддомены или адреса электронной почты), а также инструментов, позволяющих найти адреса, когда-либо появлявшиеся в открытом доступе. Все способы различаются по:
- методу представления (например, cloud-based, on-premise, гибридные),
- доступу (web-view, API и т. п.),
- стоимости (платные, бесплатные).
Сервис hunter.io — это инструмент поиска адресов корпоративной почты, с помощью которого можно получить контактную информацию по доменам. Такие сведения необходимы, чтобы далее проверить найденные email'ы на компрометацию, например, на сайте haveibeenpwned.com.
Hunter.io способен обработать и извлечь необходимые данные из 67 миллионов открытых источников с помощью 5 ключевых методов:
- Domain Search: поиск email по домену или названию организации
- Email Finder: поиск отдельного сотрудника по имени и компании
- Email Verifier: подтверждение работоспособности и актуальности почты
- Email Count: позволяет узнать количество email для одного домена или для одной компании
- Account Information: управление личным аккаунтом (например, остаток запросов)
Для автоматизации процесса поиска и включения его в уже существующие сервисы, разработанные на языке программирования Go (Golang), мы создали библиотеку «gohunter», прототипом которой послужила библиотека «pyhunter» (https://github.com/VonStruddle/PyHunter), написанная на Python 3 и использующая API hunter.io.
Не будем тут обсуждать, почему мы выбрали именно Go (Golang) — статей на Хабре множество — просто возьмем это за аксиому.
Первоначально для получения информации из командной строки с hunter.io мы использовали скрипт «pyhunter» (https://github.com/n4xh4ck5/pyhunter), выполняющий поиск email только по домену. Сейчас написанная нами библиотека ищет не только по домену, но и по названию организации, а также проверяет email на актуальность и указывает на источники.
Таким образом, библиотека представляет собой клиент для методов, доступных в сервисе hunter.io. Такие методы обращаются к HTTP API hunter.io (версии 2 или v2) и получают ответ в формате JSON, что удобно для поиска и отбора нужной информации. Не благодарите.
Ссылки:
1. Исходники
2. Описание на godoc.org
Автор: Solar_JSOC