Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cypherhound — Sua ferramenta de terminal companheira baseada em modelos para BloodHound | Kitploit
Ferramentas/GitHubGitHub/fin3ss3g0d/cypherhound
ReconhecimentoColeta de InformaçõesTestes de PenetraçãoUtilitários e Frameworks
GitHubfin3ss3g0d/cypherhound

cypherhound

Sua ferramenta de terminal companheira baseada em modelos para BloodHound

Ver Repositório
4543641há 8 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CypherHound

logo

Uma aplicação de terminal em Python3 que contém cyphers Neo4j para conjuntos de dados do BloodHound com um script para automatizar a importação deles no BloodHound CE.

Exemplos de Saída

Terminal

demo

Relatório HTML

report summary

Relatório HTML (continuação)

details sample

Porquê?

O BloodHound é uma ferramenta essencial para todo tester de penetração. No entanto, existem alguns efeitos colaterais negativos baseados no seu design. Abordarei os maiores pontos problemáticos que experimentei e o que esta ferramenta pretende resolver:

  1. As minhas ferramentas pensam em listas - até que as minhas ferramentas analisem gráficos JSON exportados, preciso de resultados de grafos num formato linha a linha .txt para realmente atacar coisas a partir de outras ferramentas
  2. Copiar/colar resultados de grafos - isto está relacionado ao primeiro, mas precisamos realmente explicar este?
  3. Os grafos podem ser demasiado grandes para desenhar - Grandes ambientes AD, múltiplos caminhos mais curtos a serem desenhados no mesmo grafo, etc. A informação contida em qualquer grafo pode ajudar os nossos objetivos como atacante e precisamos de ser capazes de visualizar todos os dados de forma eficiente.
  4. Executar manualmente cyphers personalizados consome tempo - vamos automatizar isso :)

Esta ferramenta pode fornecer um valor significativo tanto para equipas vermelhas como azuis.

Funcionalidades

Retome o controlo dos seus dados BloodHound com o CypherHound!

  • Ler templates de cypher a partir de um ficheiro YAML
    • Definir cyphers para pesquisar com base na entrada do utilizador (específicos para utilizador, grupo e computador)
    • Cyphers com regex definido pelo utilizador
  • Exportação definida pelo utilizador de todos os resultados
    • Exemplos fornecidos em formato amigável para grep/cut/awk
    • Exportar qualquer combinação de cyphers para um relatório HTML moderno e elegante
  • Executar as mesmas consultas a partir da GUI do BloodHound CE
    • Conversor YAML -> JSON e importador automatizado de consultas para o BloodHound CE
    • Script importador de customqueries.json do BloodHound Legacy para o BloodHound CE incluído

Instalação

Certifique-se de ter o python3 instalado e execute:

python3 -m pip install -r requirements.txt

Utilização

Inicie o programa com: python3 cypherhound.py -c config.json -y queries.yaml

config.json

O programa lerá um ficheiro de configuração no formato json. Um exemplo deste ficheiro é mostrado abaixo:

{
    "user": "neo4j",
    "pwd": "password",
    "database": "neo4j"
}

onde:

  • user é o seu nome de utilizador Neo4j
  • pwd é a sua palavra-passe Neo4j
  • database é a sua base de dados Neo4j

Formato YAML

O programa lê consultas de um ficheiro YAML no formato abaixo. O ficheiro ad-queries.yaml foi fornecido como exemplo contendo consultas relacionadas com o Active Directory. msg_template não é necessário para consultas de caminhos mais curtos, mas estas devem retornar a variável que contém o caminho

queries:
- group: general
  desc: List all AddKeyCredentialLink privileges for owned principals
  cypher: |-
    MATCH (n {owned: true})-[r:AddKeyCredentialLink]->(m)
    RETURN n.name AS n_name, m.name AS m_name, labels(m) AS labels_m, labels(n) AS labels_n
    ORDER BY n.name
  msg_template: |-
    {{ n_name }} ({{ labels_n[0] }}/{{ labels_n[1] }}) has AddKeyCredentialLink over {{ m_name }} ({{
    labels_m[0] }}/{{ labels_m[1] }})

Uma tabela com a descrição dos pares chave/valor pode ser vista abaixo:

ChaveDescrição
groupO grupo a que esta consulta pertence, os grupos são definidos pelo utilizador, ex: "general"
descA descrição da consulta
cypherA consulta em si no formato Neo4j
msg_templateTemplate Jinja2 para a saída do terminal baseado nas variáveis do cypher, use aliases para as variáveis do Neo4j para evitar que o Jinja tente renderizar como variáveis aninhadas

Parâmetros Dinâmicos no Cypher (Jinja2 params.*)

O programa usa Jinja2 para renderizar o Cypher. Defina parâmetros em tempo de execução com o comando set e faça referência a eles no YAML como {{ params.<chave> }}.

CLI

set <chave> <valor...> # ex: set user [email protected]
unset <chave> # opcional
show # opcional

Exemplo YAML

- group: user
  desc: List all privileges for this user
  cypher: |-
    MATCH (n:User)-[r]->(m)
    WHERE n.name =~ '((?i){{ params.user }})'
    RETURN n.name AS n_name, TYPE(r) AS rel_type, labels(m) AS labels_m, m.name AS m_name
    ORDER BY TYPE(r)
  msg_template: |-
    User {{ n_name }} has {{ rel_type }} over {{ m_name }} ({{ labels_m[0] }}/{{ labels_m[1] }})

Padrões Comuns de Parâmetros

Chave do parâmetroExemplo de valorUso no Cypher
params.user[email protected]= {{ params.user }}
params.user_regex(?i)john\.doe(@example\.com)?=~ '{{ params.user_regex }}'
params.groupDomain [email protected]= {{ params.group }}
params.prefixACME-STARTS WITH {{ params.prefix }}

Formato JSON

Este repositório fornece um script query-importer.py para automatizar a importação de consultas na interface do BloodHound CE a partir de um ficheiro JSON. O ficheiro bh_query_converter.py também foi fornecido para converter um ficheiro YAML destinado à aplicação de terminal para o formato JSON esperado pelo query-importer.py e pelo BloodHound CE. Um exemplo do formato JSON necessário pode ser visto abaixo:

Baixar ferramenta