
ProfileHound — коллектор OpenGraph для BloodHound, собирающий пользовательские профили, хранящиеся на машинах домена. Принимайте обоснованные решения о добыче секретов, выявляя активные пользовательские профили на машинах домена.
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/
ProfileHound — это инструмент пост-эскалации, помогающий находить и достигать целей red teaming путём обнаружения доменных пользовательских профилей на машинах. Он использует формат OpenGraph от BloodHound для создания нового ребра HasUserProfile, которое определяет, существует ли профиль пользователя на компьютере. Это ребро позволяет операторам принимать обоснованные решения о том, какие компьютеры выбирать целью для извлечения секретов.
Для перечисления пользовательских профилей инструменту требуется административный доступ к ресурсу C$ на целевых машинах.
Огромное спасибо Remi Gascou (@podalirius) за инструменты ShareHound и bhopengraph. Я давно хотел создать инструмент для сбора этих данных, и использование этих библиотек позволило мне сосредоточиться на разработке, а не на подключении.
[!WARNING] ProfileHound находится на ранней стадии разработки, и ещё не все режимы сбора реализованы. Используйте с осторожностью в production-средах; вы принимаете на себя риски, связанные с использованием этого инструмента.
Цели пост-эксплуатации в Active Directory сместились с данных, хранящихся локально, в SaaS-приложения и облако. Чтобы доказать ценность в offsec, нужно показать, как может быть скомпрометирован доступ к этим сервисам. Во многих случаях эти сервисы используются только определёнными группами или пользователями, например HR, Finance и т. д. В некоторых сценариях доступ к отдельным SaaS-приложениям возможен только с конкретных машин.
Ребро HasSession в BloodHound отлично подходит, но оно полезно только когда пользователь выполнил вход на машину. Если пользователь не был залогинен на машине на момент сбора данных, может быть сложно определить, какой компьютер содержит секреты для дальнейшей эксплуатации. Пользовательские профили могут содержать значительный объём ценных данных: DPAPI, кэшированные учётные данные, SSH-ключи, облачные ключи и многое другое — для доступа к ним не требуется активная пользовательская сессия.

ProfileHound использует формат OpenGraph BloodHound для построения нового ребра графа HasUserProfile, определяющего, существует ли профиль пользователя на доменной машине. Это помогает операторам сосредоточиться на машинах, где профиль есть у ценного пользователя или группы.
Ребро HasUserProfile содержит свойства с датой создания и последнего изменения профиля. Эта информация помогает определить:

Кроме того, это ребро содержит метки времени создания и изменения профиля, что позволяет с помощью конкретных Cypher-запросов находить активные или давно существующие профили пользователей на определённых машинах.
Установите ProfileHound с помощью pipx (если только вы не любите зависимостный ад):
pipx install profilehound
Чтобы использовать самую свежую версию, можно установить из исходников:
pipx install git+https://github.com/m4lwhere/profilehound.git
Для контейнерного подхода соберите образ и запустите инструмент следующим образом:
docker build -t profilehound .
docker run --rm profilehound --help
docker run --rm -v ${PWD}:/profilehound profilehound --auth-user alice --auth-password whiteRabbit --auth-domain sccm.lab --dns 192.168.57.10 --auth-dc-ip 192.168.57.10
Например, для запуска с учётной записью администратора домена sccm.lab\alice и паролем whiteRabbit:
$ profilehound --auth-user alice --auth-password whiteRabbit --auth-domain sccm.lab --target 192.168.57.0/27
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/ v0.1.1
@m4lwhere
BloodHound CE OpenGraph collector for user profiles stored on domain machines.