
ProfileHound - Collecteur OpenGraph de BloodHound pour les profils utilisateurs stockés sur les machines du domaine. Prenez des décisions éclairées sur la récupération de secrets en identifiant les profils utilisateurs actifs sur les machines du domaine.
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/
ProfileHound est un outil de post-élévation de privilèges qui aide à identifier et à atteindre les objectifs de red team en localisant les profils d'utilisateurs de domaine sur les machines. Il utilise le format OpenGraph de BloodHound pour construire une nouvelle arête appelée HasUserProfile qui détermine si un profil utilisateur existe sur un ordinateur. Cette arête permet aux opérateurs de prendre des décisions éclairées sur les ordinateurs à cibler pour récupérer des secrets.
Cet outil nécessite un accès administratif au partage C$ sur les machines cibles pour énumérer les profils utilisateur.
Un immense merci à Remi Gascou (@podalirius) pour les outils ShareHound et bhopengraph. Je souhaitais depuis un certain temps construire un outil pour collecter ces données, et l'utilisation de ces bibliothèques m'a permis de me concentrer sur le développement plutôt que sur la plomberie.
[!WARNING] ProfileHound est à un stade précoce de développement et n'implémente pas encore tous les modes de collecte. À utiliser avec prudence dans les environnements de production, vous assumez les risques liés à l'utilisation de cet outil.
Les objectifs de post-exploitation dans Active Directory sont passés des données stockées sur site aux applications SaaS et au cloud. Pour prouver notre valeur en sécurité offensive, nous devons démontrer comment l'accès à ces services peut être compromis. Dans de nombreux cas, ces services ne sont utilisés que par certains groupes ou utilisateurs, comme les RH, les finances, etc. Dans certains scénarios, certaines applications SaaS ne sont accessibles que depuis des machines spécifiques.
L'arête HasSession de BloodHound est excellente, mais elle n'est utile que lorsqu'un utilisateur est connecté à une machine. Si un utilisateur n'est pas connecté à une machine au moment de la collecte des données, il peut être difficile de trouver quel ordinateur peut contenir des secrets pour faciliter une exploitation ultérieure. Les profils utilisateur peuvent contenir une quantité importante de renseignements précieux dans DPAPI, des identifiants en cache, des clés SSH, des clés cloud, et plus encore - ces éléments ne nécessitent pas de session utilisateur active pour être accessibles.

ProfileHound utilise le format OpenGraph de BloodHound pour construire une nouvelle arête de graphe appelée HasUserProfile qui détermine si un profil utilisateur existe sur une machine du domaine. Cela peut aider les opérateurs à se concentrer sur les machines où un utilisateur ou un groupe à forte valeur possède un profil.
L'arête HasUserProfile contient des propriétés pour la date de création et la date de dernière modification du profil. Ces informations aident à déterminer :

Cette arête possède également des propriétés pour les horodatages de création et de modification du profil, ce qui permet à des requêtes Cypher spécifiques de trouver des profils utilisateur actifs ou de longue durée sur des machines spécifiques.
Installez ProfileHound avec pipx (sauf si vous aimez l'enfer des dépendances) :
pipx install profilehound
Pour utiliser la version de pointe, vous pouvez installer à partir des sources :
pipx install git+https://github.com/m4lwhere/profilehound.git
Pour une approche conteneurisée, construisez l'image et exécutez l'outil comme suit :
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
Par exemple, pour exécuter avec un compte Admin de domaine sccm.lab\alice et le mot de passe 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.