Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
jackdaw — coletar coletar coletar | Kitploit
Ferramentas/GitHubGitHub/skelsec/jackdaw
Quebra de SenhasColeta de InformaçõesTestes de PenetraçãoDetecção de Anomalias
GitHubskelsec/jackdaw

jackdaw

coletar coletar coletar

Ver Repositório
58586há 1 anoRevisado 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

jackdaw

reúna, reúna, reúna jackdaw_card

O que é isto?

Jackdaw está aqui para coletar todas as informações do seu domínio, armazená-las em um banco de dados SQL e mostrar-lhe belos gráficos de como os objetos do seu domínio interagem entre si e como um potencial invasor pode explorar essas interações. Ele também vem com um recurso útil para ajudá-lo em um projeto de cracking de senhas, armazenando/consultando/relatando hashes/senhas/usuários.

Informações de uso rápido

  • Se não estiver usando coleta automática (ex: não no Windows), você precisará criar um banco de dados vazio inicial via dbinit
  • Primeiro você precisa executar enum. Isso pode ser feito automaticamente no Windows clicando duas vezes no executável, ou digitando jackdaw.exe auto.
  • Em segundo lugar, você precisará executar nest para obter a interface web. Por padrão, é servida em http://127.0.0.1:5000/nest; há uma API documentada com SWAGGER em http://127.0.0.1:5000/ui.
  • Interface web: você precisará ir para a visualização do domínio e clicar em Generate graph cache apenas uma vez para obter as informações das arestas em um arquivo de cache. Pode demorar um pouco, mas na linha de comando você verá uma barra de progresso.
  • Após o cache do gráfico ser concluído, você pode brincar com o gráfico na graph view, mas não se esqueça de selecionar o número de cache correto no canto superior esquerdo.

Truques/dicas de desempenho

Esta seção será atualizada regularmente com base no feedback dos usuários.

Coleta de dados

Nenhum conselho aqui; embora algumas melhorias possam ser feitas no código, não há nada que um genérico possa fazer.

Geração do arquivo de cache de dados do gráfico

A geração do arquivo de cache de dados do gráfico deve ser feita uma vez para cada gráfico (e apenas uma vez), o que pode demorar um pouco usando a ferramenta sqlalchemy padrão.
O desempenho e a velocidade podem ser significativamente melhorados (mais de 50x mais rápido e 20x menos memória) se você usar o backend sqlite E colocar o utilitário de linha de comando "sqlite3" em algum lugar do PATH. Eu recomendo isso para todos os usuários.

Cálculo de caminhos e carregamento de dados do gráfico

Agora vem a grande parte de compensação. A implementação inicial do Jackdaw usava o módulo networkx como backend do gráfico, pois é completamente escrito em Python. Mas isso tinha um custo realmente significativo de memória e velocidade. Para manter o Jackdaw puramente Python, esta opção ainda existe; no entanto, usar o backend igraph é agora o padrão.
Nota: igraph é uma biblioteca C++ com bindings Python. Ela tem wheels pré-compilados para Windows e principais distribuições Linux, mas se você usar o Jackdaw em outra coisa (sistemas embarcados/celulares/navegadores web), você precisará voltar para o networkx ou sofrer com o tempo de compilação de horas.

Exemplos de comandos

Enumeração automática - apenas Windows, com usuário associado ao domínio -

Não há necessidade de pré-inicializar o banco de dados, será feito automaticamente. Usando o binário distribuído, você pode apenas clicar duas vezes em jackdaw.exe
Usando como script Python: jackdaw auto

Inicialização do DB

jackdaw --sql sqlite:///<caminho completo aqui>/test.db dbinit
EM SISTEMAS LINUX, <caminho completo aqui> inclui a primeira /, então você terá //// quatro (4) traços antes do nome do arquivo. Não se assuste.

Enumeração

Enumeração completa com sspi integrado - apenas Windows

jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<dominio>\<placeholder>@10.10.10.2' 'smb+sspi-ntlm://<dominio>\<placeholder>@10.10.10.2'

Enumeração completa com nome de usuário e senha - independente de plataforma

A senha é Passw0rd!
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\victim:[email protected]' 'smb+ntlm-password://TEST\victim:[email protected]'

Enumeração apenas LDAP com nome de usuário e senha - independente de plataforma

A senha é Passw0rd!
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\victim:[email protected]'

Iniciar interface web interativa para plotar gráfico e acessar recursos adicionais

jackdaw --sql sqlite:///<CAMINHO COMPLETO PARA O DB> nest

Abra http://127.0.0.1:5000/ui para a API

Por favor, veja a seção Construindo a UI mais abaixo para aprender como construir a UI. Depois de construída:

Abra http://127.0.0.1:5000/nest para a interface de gráfico (mostra o gráfico, mas longe de estar funcional)

Funcionalidades

Aquisição de dados

via LDAP

A fase de enumeração LDAP adquire dados sobre informações de AD, objetos de Usuário, Máquina, OU, Grupo, que serão representados como um nó no gráfico e como uma tabela separada no BD. Além disso, o Descritor de Segurança de todos os objetos mencionados será analisado e as ACLs para o DACL serão adicionadas ao BD. Isso, juntamente com as informações de associação, será representado como arestas no gráfico. Além disso, consultas SQL personalizadas podem ser realizadas em qualquer um dos tipos de dados mencionados quando necessário.

via SMB

A fase de enumeração SMB adquire dados sobre compartilhamentos, grupos locais, sessões, dados NTLM conectando-se a cada máquina no domínio (que é adquirido via LDAP)

via Kerberos

O módulo Kerberos faz kerberoasting e aspreproasting automáticos

via dumps do LSASS (opcional)

O framework permite que os usuários enviem dumps de memória do LSASS para armazenar credenciais e estender a tabela de informações de sessão. Ambos serão usados como arestas adicionais no gráfico (senha compartilhada e sessão, respectivamente). O framework também usa essas informações para criar um relatório de senhas sobre credenciais fracas/compartilhadas/quebradas.

via resultados do DCSYNC (opcional)

O framework permite que os usuários enviem arquivos DCSYNC do impacket para armazenar credenciais. Isso será usado como arestas adicionais no gráfico (senha compartilhada). O framework também usa essas informações para criar um relatório de senhas sobre credenciais fracas/compartilhadas/quebradas.

via upload manual (opcional)

O framework permite estender manualmente o BD disponível em todos os aspectos. Exemplo: quando informações de sessão de usuário em um determinado computador são descobertas (fora da enumeração automática), há a possibilidade de enviar manualmente essas sessões, o que preencherá o BD e também o gráfico de resultado.

Gráfico

O framework pode gerar um gráfico usando as informações disponíveis no banco de dados e plotá-lo através da interface web (nest). Além disso, a geração do gráfico e os cálculos de caminho podem ser invocados programaticamente, seja usando a API web (endpoint /ui) ou as funções do objeto gráfico.

Detecção de anomalias

O framework pode identificar configurações incorretas comuns de AD sem geração de gráfico. Atualmente apenas através da API web.

Usuário

A detecção de anomalias de usuário envolve a detecção de permissões UAC inseguras e valores extensivos de descrição do usuário. Espera-se que este conjunto de funcionalidades cresça no futuro, à medida que novos recursos forem implementados.

Máquina

A detecção de anomalias de máquina envolve a detecção de permissões UAC inseguras, assinatura SMB não obrigatória, versão de SO desatualizada, máquinas fora do domínio. Espera-se que este conjunto de funcionalidades cresça no futuro, à medida que novos recursos forem implementados.

Cracking de senhas

O framework não realiza nenhum cracking, apenas organiza os hashes e os resultados do cracking
atualmente o foco principal está nos resultados do dcsync do impacket e do aiosmb, apenas hashes !NT e LM!
O processo de exemplo é o seguinte:

  1. Coletar credenciais como arquivo de texto via impacket/aiosmb ou como dumps de memória do processo LSASS por qualquer ferramenta que você achar adequada.
  2. Enviar as credenciais coletadas via API
  3. Consultar hashes não quebrados via API
  4. Quebrá-los (hashcat?)
  5. Enviar os resultados para o framework via API
  6. Gerar um relatório sobre os usuários quebrados/não quebrados, força da senha e compartilhamento de senhas

nota do autor: Esta funcionalidade foi implementada tanto para atacantes quanto para defensores. Pessoalmente, não vejo muito valor agregado de nenhum dos lados, pois no momento em que se obtém o hash NT de um usuário, é tão bom quanto a senha... No entanto, cada vez mais empresas estão realizando exercícios de força de senha, e esta funcionalidade as ajudaria. Quanto aos atacantes: é apenas ostentação neste ponto, mas fiquem à vontade. Talvez assustar a gerência por pontos extras.

Importante

Este projeto está em fase experimental! Isso significa várias coisas:

  1. pode falhar
  2. os controles que você está usando podem mudar no futuro (muito provável)
  3. (pior parte) O design do banco de dados não é necessariamente adequado para requisitos futuros, portanto pode mudar. Não haverá esforço para manter compatibilidade retroativa com a estrutura de BD da fase experimental!

Parte técnica

Backend do banco de dados

Jackdaw usa o módulo ORM SQLAlchemy, que lhe dá a opção de usar qualquer backend de BD SQL que você desejar. Os testes são feitos principalmente no SQLite por razões óbvias. Não haverá comandos específicos de backend usados neste projeto que o limitem.

Construindo a UI

ISTO SÓ É NECESSÁRIO SE VOCÊ INSTALAR VIA GIT E/OU ALTERAR ALGO NO CÓDIGO DA UI
A UI foi escrita em React. Antes da primeira utilização/instalação, você deve construí-la. Para isso, você precisará ter nodejs e npm instalados. Então:

  1. Vá para jackdaw/nest/site/nui
  2. Execute npm install
  3. Execute npm run build

Depois de concluído o acima, a UI está pronta para ser usada.

Créditos

"Se vi mais longe, foi por estar de pé sobre ombros de gigantes."

Pela ideia original

Equipe do BloodHound

Pelo cálculo de arestas ACL

@dirkjanm (https://github.com/dirkjanm/)

Pela excelente UI

Zsolt Imre (https://github.com/keymandll)

Pelas partes de coleta de dados

por favor, veja a seção de créditos nos módulos aiosmb e msldap

Caso eu tenha esquecido de mencionar alguém, por favor, envie um PR

Baixar ferramenta