
InfoHound — это инструмент OSINT для извлечения большого объёма данных по имени веб-домена.
Во время фазы разведки злоумышленник ищет любую информацию о своей цели, чтобы создать профиль, который впоследствии поможет ему определить возможные пути проникновения в организацию. InfoHound выполняет методы пассивного анализа (которые не взаимодействуют напрямую с целью), используя OSINT для извлечения большого объёма данных по заданному доменному имени. Этот инструмент собирает электронные письма, людей, файлы, поддомены, имена пользователей и URL-адреса, которые затем анализируются для извлечения ещё более ценной информации.
Кроме того, InfoHound использует экземпляр Ollama, что позволяет задействовать возможности LLM (больших языковых моделей). По умолчанию InfoHound применяет llama2 — предварительно обученную модель LLM, — чтобы генерировать краткие описания ролей отдельных лиц внутри организации. Эта функция даёт ценное представление об organisational структуре и облегчает идентификацию ключевых сотрудников. Более того, в рамках текущей разработки планируется внедрить дополнительные функции и улучшения, чтобы в будущем ещё больше расширить возможности инструмента.
ПРИМЕЧАНИЕ: InfoHound не требует специального оборудования для работы. Однако при использовании задач, задействующих большую языковую модель (LLM), необходимо учитывать аппаратные требования. Подробную информацию о конкретных требованиях для используемой модели LLM можно найти в официальной документации Ollama.

git clone https://github.com/Fundacio-i2CAT/InfoHound.git
cd InfoHound/infohound
mv infohound_config.sample.py infohound_config.py
cd ..
docker-compose up -d
Теперь вы можете перейти к InfoHound, открыв в браузере:
http://localhost:8000/
ПРИМЕЧАНИЕ: В файл infohound_config.py необходимо добавить API-ключи.
InfoHound имеет два типа модулей: те, которые собирают данные, и те, которые анализируют их для извлечения более значимой информации.
InfoHound позволяет создавать пользовательские модули: достаточно добавить свой скрипт в папку infohoudn/tool/custom_modules. В качестве примера добавлен один пользовательский модуль, использующий инструмент Holehe для проверки, привязаны ли найденные ранее email-адреса к учётным записям на таких сайтах, как Twitter, Instagram, Imgur и более чем 120 других.
# Import the packages you need
import trio
import httpx
import requests
from holehe import core
# Import the Django models you will work with
from infohound.models import Emails
MODULE_ID = "findRegisteredSitesHoleheCustomTask" # Set a module ID
MODULE_NAME = "Find sites with Holehe" # Set a module name
MODULE_DESCRIPTION = "Using Holehe tool, this task will find where an email has been used to create an account. Holehe checks more than 120 sites." # Set a description
MODULE_TYPE = "Analysis" # Set the type: Analysis or Retrieve
# This function is the only function it will be called by InfoHound
# Change its content and create other the functions if needed
def custom_task(domain_id):
trio.run(findRegisteredSitesHolehe, domain_id)
async def findRegisteredSitesHolehe(domain_id):
queryset = Emails.objects.filter(domain_id=domain_id)
for entry in queryset.iterator():
out = []
email = entry.email
modules = core.import_submodules("holehe.modules")
websites = core.get_functions(modules)
client = httpx.AsyncClient()
for website in websites:
await core.launch_module(website, email, client, out)
print(out)
await client.aclose()
services = []
for item in out:
if item["exists"]:
services.append(item["name"])
entry.registered_services = services
entry.save()

Хотите создать граф визуализации найденных данных? Вы можете экспортировать весь анализ домена в файл GraphML и открыть его в yED, Gephi или любом другом инструменте. В настоящее время экспортируются файлы, люди, email-адреса, социальные профили, зарегистрированные сайты и имена пользователей. URL-адреса и поддомены не включены из-за большого количества результатов.

Хотите продолжить расследование с помощью таких инструментов, как Maltego? Вы можете экспортировать весь анализ домена (включая файлы, людей, email-адреса, социальные профили, зарегистрированные сайты и имена пользователей) в совместимый с Maltego файл (CSV) и открыть его там. Файл конфигурации сопоставления столбцов Maltego (maltego_mapping.mtz) находится в корневой папке проекта. Узнайте больше об импорте в Maltego
Данный код разработан Фондом «Privada Internet i Innovació Digital a Catalunya» (i2CAT).
i2CAT — это некоммерческий центр исследований и инноваций, который способствует выполнению миссионерских задач для решения бизнес-задач, созданию решений совместно с заинтересованными сторонами, оказывающих преобразующее воздействие, расширению прав и возможностей граждан через открытые и инклюзивные цифровые социальные инновации с территориальной охватом, а также продвижению новаторских и стратегических инициатив.
i2CAT стремится передавать результаты исследовательских проектов частным компаниям для создания социального и экономического эффекта через лицензирование интеллектуальной собственности и создание стартапов.
Дополнительную информацию о проектах i2CAT и правах на интеллектуальную собственность можно найти по адресу https://i2cat.net/tech-transfer/
Данный код лицензирован на условиях AGPLv3. Информацию о лицензии можно найти по ссылке.
Если вы считаете, что эта лицензия не соответствует вашим требованиям в отношении использования, распространения или перераспределения нашего кода для вашей конкретной работы, пожалуйста, свяжитесь с менеджерами по интеллектуальной собственности в i2CAT по следующему адресу: [email protected]
| Имя | Описание |
|---|
| Получить whois-информацию | Получает информацию из регистра Whois. |
| Получить DNS-записи | Эта задача запрашивает DNS. |
| Получить поддомены | Эта задача использует Alienvault OTX API, CRT.sh и HackerTarget в качестве источников данных для обнаружения кэшированных поддоменов. |
| Получить поддомены из URL | После выполнения некоторых задач таблица URL-адресов может содержать множество записей. Эта задача проверяет все URL-адреса на наличие новых поддоменов. |
| Получить URL-адреса | Ищет все URL-адреса, кэшированные Wayback Machine, и сохраняет их в базу данных. Это впоследствии помогает обнаруживать другие сущности данных, такие как файлы или поддомены. |
| Получить файлы из URL-адресов | Проходит по таблице URL-адресов, находит файлы и сохраняет их в таблице файлов для дальнейшего анализа. Извлекаемые файлы: doc, docx, ppt, pptx, pps, ppsx, xls, xlsx, odt, ods, odg, odp, sxw, sxc, sxi, pdf, wpd, svg, indd, rdp, ica, zip, rar. |
| Найти email-адреса | Ищет email-адреса, используя запросы к Google, Bing и утечкам баз данных. |
| Найти людей по email-адресам | После нахождения email-адресов может быть полезно узнать стоящего за ними человека. Также находит имена пользователей для этих людей. |
| Найти email-адреса из URL-адресов | Иногда найденные URL-адреса могут содержать конфиденциальную информацию. Эта задача извлекает все email-адреса из путей URL. |
| Выполнить дорки | Выполняет дорки, определённые в папке dorks. Не забудьте сгруппировать дорки по категориям (имя файла), чтобы понимать их цели. |
| Найти email-адреса из дорков | По умолчанию InfoHound имеет несколько дорков для поиска email-адресов. Эта задача ищет их в результатах выполнения дорков. |
| Найти людей через Google | Использует Google JSON API для поиска людей, работающих в компании, связанной с доменом. |
| Имя | Описание |
|---|
| Проверить захват поддоменов | Выполняет проверки, чтобы определить, возможен ли захват поддомена. |
| Проверить, можно ли подделать домен | Проверяет, можно ли подделать домен из email-адресов, обнаруженных InfoHound. Это может использоваться злоумышленниками для выдачи себя за человека и отправки писем от его имени. |
| Получить профили по именам пользователей | Эта задача использует найденные имена пользователей для каждого человека, чтобы найти профили в сервисах или социальных сетях, где это имя существует. Выполняется с помощью инструмента Maigret. Стоит отметить, что если найден профиль с таким же именем, это не обязательно означает, что он принадлежит анализируемому человеку. |
| Скачать все файлы | После сохранения файлов в таблицу базы данных эта задача загружает их в папку "download_files". |
| Получить метаданные | С помощью exiftool эта задача извлекает все метаданные из загруженных файлов и сохраняет их в базу данных. |
| Получить email-адреса из метаданных | Поскольку некоторые метаданные могут содержать email-адреса, эта задача извлекает их все и сохраняет в базу данных. |
| Получить email-адреса из содержимого файлов | Обычно email-адреса могут содержаться в корпоративных файлах, поэтому эта задача извлекает все email-адреса из содержимого загруженных файлов. |
| Найти зарегистрированные сервисы с помощью email-адресов | Можно найти сервисы или социальные сети, где email-адрес использовался для создания учётной записи. Эта задача проверяет, есть ли у обнаруженного InfoHound email-адреса учётные записи в Twitter, Adobe, Facebook, Imgur, Mewe, Parler, Rumble, Snapchat, Wordpress и/или Duolingo. |
| Проверить утечки | Эта задача проверяет сервис Firefox Monitor, чтобы узнать, был ли email-адрес найден в утечке данных. Хотя это бесплатный сервис, он ограничен 10 запросами в день. Если задан API-ключ Leak-Lookup, проверка выполняется и по нему. |
| Анализ профилей на основе ИИ | Вы можете использовать задачу анализа профиля, чтобы задействовать инструмент на базе ИИ, который изучает метаданные и создаёт описание для вас. |
| Получить утёкшие пароли | Используя бесплатный сервис Proxy Nova, InfoHound может обнаруживать и отображать пароли для найденных имён пользователей, которые были скомпрометированы в прошлом. |