
ProfileHound - Coletor OpenGraph do BloodHound para perfis de usuário armazenados em máquinas do domínio. Tome decisões informadas sobre roubo de segredos identificando perfis de usuário ativos em máquinas do domínio.
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/
ProfileHound é uma ferramenta pós-escalada para ajudar a encontrar e atingir objetivos de red teaming, localizando perfis de usuários de domínio em máquinas. Ela usa o formato BloodHound OpenGraph para construir uma nova aresta chamada HasUserProfile, que determina se um perfil de usuário existe em um computador. Essa aresta permite que operadores tomem decisões informadas sobre quais computadores mirar para saquear segredos.
Esta ferramenta requer acesso administrativo ao compartilhamento C$ nas máquinas alvo para enumerar perfis de usuário.
Um enorme agradecimento a Remi Gascou (@podalirius) pelas ferramentas ShareHound e bhopengraph. Eu queria construir uma ferramenta para coletar esses dados há um tempo e usar essas bibliotecas me permitiu focar em construir em vez de conectar canos.
[!WARNING] ProfileHound está em estágios iniciais de desenvolvimento e nem todos os modos de coleta foram implementados ainda. Use com cautela em ambientes de produção, você assume o risco de usar esta ferramenta.
Os objetivos pós-exploração no Active Directory mudaram de dados armazenados localmente para aplicações SaaS e nuvem. Para provar valor em segurança ofensiva, precisamos demonstrar como o acesso a esses serviços pode ser comprometido. Em muitos casos, esses serviços são usados apenas por certos grupos ou usuários, como RH, Finanças, etc. Em alguns cenários, certas aplicações SaaS só podem ser acessadas de máquinas específicas.
A aresta HasSession do BloodHound é ótima, mas só é útil quando um usuário está logado em uma máquina. Se um usuário não estiver logado no momento da coleta de dados, pode ser difícil encontrar qual computador pode conter segredos para facilitar explorações adicionais. Perfis de usuário podem conter uma quantidade significativa de inteligência valiosa dentro de DPAPI, credenciais em cache, chaves SSH, chaves de nuvem e muito mais — esses não exigem uma sessão de usuário ativa para acessar.

ProfileHound usa o formato OpenGraph do BloodHound para construir uma nova aresta de grafo chamada HasUserProfile, que determina se existe um perfil de usuário em uma máquina do domínio. Isso pode ajudar operadores a focar em máquinas onde um usuário ou grupo de alto valor possui um perfil.
A aresta HasUserProfile contém propriedades para a data de criação e última modificação do perfil. Essas informações ajudam a determinar:

Esta aresta também possui propriedades para os timestamps de criação e modificação do perfil, permitindo consultas Cypher específicas para encontrar perfis de usuário ativos ou de longo prazo em máquinas específicas.
Instale ProfileHound usando pipx (a menos que você goste do inferno das dependências):
pipx install profilehound
Para usar a versão mais recente (bleeding edge), você pode instalar a partir do código fonte:
pipx install git+https://github.com/m4lwhere/profilehound.git
Para usar uma abordagem containerizada, construa a imagem e execute a ferramenta com o seguinte:
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
Por exemplo, para executar usando uma conta de Administrador de Domínio sccm.lab\alice com senha whiteRabbit:
$ profilehound --auth-user alice --auth-password whiteRabbit --auth-domain sccm.lab --target 192.168.57.0/27
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/ v0.1.1
@m4lwhere
Coletor OpenGraph do BloodHound CE para perfis de usuário armazenados em máquinas do domínio.