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
LDAPPER — Consultas LDAP sem sofrimento | Kitploit
Ferramentas/GitHubGitHub/shellster/ldapper
Escalada de PrivilégiosReconhecimentoAtaques de SenhaColeta de InformaçõesTestes de PenetraçãoAutenticação
GitHubshellster/ldapper

LDAPPER

Consultas LDAP sem sofrimento

Ver Repositório
11417há 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

Introdução

Esta ferramenta foi criada para resolver muitos dos problemas que eu estava enfrentando com o ldapsearch e a interação com AD em geral. Em particular, esta ferramenta aborda os seguintes problemas que eu experimentei:

  1. Incapacidade de retornar mais de mil resultados do AD. Esta ferramenta suporta paginação de registros LDAP e contorna outros bugs do AD para permitir um número arbitrário de registros seja recuperado.

  2. Incapacidade de usar credenciais NTLM de forma intuitiva para autenticar. Você pode fornecer o nome do domínio NETBIOS, nome de usuário e senha para autenticar em um DC Windows.

  3. Incapacidade de controlar precisamente o número de registros retornados, a velocidade na qual eles são retornados e o número de registros puxados por vez. Esta ferramenta permite controlar todos esses itens, incluindo adicionar atrasos entre cada chamada paginada. Além disso, múltiplos DCs podem ser especificados para consultas round-robin.

  4. Incapacidade de retornar os resultados em formas facilmente digeríveis. Esta ferramenta atualmente suporta três formatos:

  • plain: Uma versão agradável, legível, em texto, com subitens recuados.
  • json: Saída JSON, com espaço extra para fácil leitura.
  • json_tiny: Saída JSON com todo o espaço extra removido.
  1. Incapacidade de retornar apenas os atributos que você se importa. Esta ferramenta permite que você retorne todos os atributos, ou apenas os que desejar.

  2. Incapacidade de ter uma lista de consultas pré-definidas comuns salvas.

Instalação

root@kitploit:~
git clone ...
pip install -r requirements.txt

Direções

root@kitploit:~
# python3 ldapper.py
    usage: ldapper.py [-h] --domain DOMAIN --user USER --password PASSWORD
                      --server SERVER [--basedn BASEDN] --search SEARCH
                      [--maxrecords MAXRECORDS] [--pagesize PAGESIZE]
                      [--delay DELAY] [--format {plain,json,json_tiny}]
                      [--encryption {1,2,3}]
                      [--advanced [ADVANCED [ADVANCED ...]]] [--outfile OUTFILE]
                      [--engine {ldap3,impacket}]
                      [attribute [attribute ...]]

    AD LDAP Command Line Searching que não é ruim.

    positional arguments:
      attribute             Atributos a retornar (Padrão é todos para consulta personalizada. Para consultas prontas, passe um "*" para obter todos os atributos em vez dos padrões.)

    optional arguments:
      -h, --help            mostra esta mensagem de ajuda e sai
      --domain DOMAIN, -D DOMAIN
                            Domínio
      --user USER, -U USER  Nome de usuário
      --password PASSWORD, -P PASSWORD
                            Senha ou hash no formato LM:NTLM
      --server SERVER, -S SERVER
                            IP do DC ou nome resolvível
      --basedn BASEDN, -b BASEDN
                            Base DN normalmente deve ser "dc=", seguido pelo nome longo do domínio com pontos substituídos por ",dc=". Tentará derivá-lo se não for fornecido a partir do servidor LDAP.
      --search SEARCH, -s SEARCH
                            String de pesquisa LDAP ou número indicando pesquisa personalizada da lista "Custom Searches". Use "-" para ler do stdin.
      --maxrecords MAXRECORDS, -m MAXRECORDS
                            Número máximo de registros a retornar (Padrão é 100), 0 significa todos.
      --pagesize PAGESIZE, -p PAGESIZE
                            Número de registros a retornar em cada puxada (Padrão é 10). Deve ser <= max records.
      --delay DELAY, -d DELAY
                            Atraso em milissegundos entre requisições de paginação (Padrão é 0).
      --format {plain,json,json_tiny}, -f {plain,json,json_tiny}
                            Formato da saída (Padrão é "plain"), pode ser: plain, json, json_tiny
      --encryption {1,2,3}, -n {1,2,3}
                            3) Conectar à porta 636 TLS (Padrão); 2) Conectar à 389 Sem TLS, mas tentar STARTTLS e fallback conforme necessário (não disponível com impacket); 1) Conectar à 389, Forçar Texto Plano
      --advanced [ADVANCED [ADVANCED ...]], -a [ADVANCED [ADVANCED ...]]
                            Maneira avançada de passar opções para pesquisas prontas que solicitam entrada adicional (para múltiplos prompts, passe os argumentos na ordem do prompting)
      --outfile OUTFILE, -o OUTFILE
                            Arquivo de saída (se especificado, a saída será direcionada aqui em vez do stdout [Pode prevenir erros de codificação no Windows])
      --engine {ldap3,impacket}, -e {ldap3,impacket}
                            Escolha o motor a usar (Padrão é "ldap3"). VEJA NOTAS DE OPSEC!

    Pesquisas Personalizadas:
              1) Obter todos os usuários
                      1.1) Obter usuário específico (Você será solicitado pelo nome de usuário)
              2) Obter todos os grupos (e seus membros)
                      2.1) Obter grupo específico (Você será solicitado pelo nome do grupo)
              3) Obter todas as impressoras
              4) Obter todos os computadores
                      4.1) Obter computador específico (Você será solicitado pelo nome do computador)
              5) Obter Administradores de Domínio/Empresa
              6) Obter Relações de Confiança de Domínio
              7) Pesquisar por Delegações SPN Não Restritas (Potencial Escalação de Privilégios)
              8) Pesquisar por Contas onde Pré-Autenticação não é necessária. (ASREPROAST)
              9) Pesquisar por SPNs de Usuário (KERBEROAST)
                      9.1) Pesquisar por SPN de Usuário específico (Você será solicitado pelo Nome Principal do Usuário)
             10) Mostrar Todas as Senhas LAPS LA (que você pode ver)
                     10.1) Pesquisar por Senha LAPS de Estação de Trabalho específica (Você será solicitado pelo Nome da Estação de Trabalho)
            *11) Pesquisar por atributos comuns de senha em texto claro (UserPassword, UnixUserPassword, unicodePwd e msSFU30Password)
             12) Mostrar Todas as Sementes de Dois Fatores Quest (se você tiver acesso)
             13) Hash de senha SSO Oracle "orclCommonAttribute"
            *14) Hash de senha SSO Oracle "userPassword"
             15) Obter Servidores SCCM
             16) Pesquisar por Contas onde a senha não é necessária. (PasswordNotRequired)

    Itens com asterisco nunca foram testados em um ambiente onde pudessem ser verificados, então por favor me avise se funcionarem.

Exemplo

Para os propósitos destes exemplos, assuma o seguinte:

root@kitploit:~
NOME NETBIOS: EMP
NOME COMPLETO DO DOMÍNIO: EXAMPLE.LOCAL
IPs do DC: 10.0.0.2, 10.0.0.3
NOME DE USUÁRIO: bob
SENHA: password

Recuperar todos os registros retornando apenas o atributo cn:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '(cn=*)' cn

Recuperar detalhes sobre um usuário específico (será solicitado pelo nome de usuário):

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '1.1'

Recuperar detalhes sobre um usuário específico (passe o nome de usuário para não ser solicitado):

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '1.1' -a 'alice'

Recuperar os top 100 SPNs Kerberos de usuários, no máximo cinco por vez, com dois segundos de atraso entre cada requisição de página no formato JSON compacto:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 100 -p 5 -d 2000 -f json_tiny -s '(&(objectcategory=user)(serviceprincipalname=*))' serviceprincipalname userprincipalname

Recuperar manualmente todos os registros de impressoras e mostrar todos os atributos relacionados:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '(objectClass=printQueue)'

Pesquisar por Delegações SPN Não Restritas sem esforço:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s 4

Avisos de OPSEC

  1. Ao usar o motor Impacket e não fornecer um baseDN, a ferramenta tentará uma autenticação SMB e conexão ao controlador de domínio para adquirir o nome NETBIOS do domínio, a fim de derivar o baseDN. Esse comportamento pode resultar em uma detecção em um ambiente altamente sensível. Ou não use Impacket em tal ambiente, ou sempre especifique o baseDN.

  2. O Impacket fará uma conexão LDAPS completa ou uma conexão totalmente não criptografada. Ele não pode usar STARTTLS no momento, então se uma conexão LDAP em texto plano for detectada, ou tente apenas uma conexão TLS completa ou não use o motor Impacket.

  3. O Impacket não fornece o maior controle sobre a velocidade com que os registros são puxados. Portanto, a opção "--delay" está apenas parcialmente implementada. Se atrasar a puxada de registros for crítico, não use o motor Impacket.

Referências

Kerberoast: https://adsecurity.org/?p=2293

ASREPRoast: http://www.harmj0y.net/blog/activedirectory/roasting-as-reps/

Abuso de Delegação Não Restrita: http://www.harmj0y.net/blog/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/

Coisas da Oracle: https://blogs.oracle.com/mwilcox/entry/clarifying_ovd-ad_eus_password e http://onlineappsdba.com/index.php/2014/03/03/what-hashing-algorithm-oid-uses-to-store-user-password-ssha-or-md5/

Dados de Token de Segundo Fator Qwest/Defender/Oneidentity: http://support-public.cfm.quest.com/43565_Defender_5.9_AdminGuide.pdf

Senhas comuns em texto claro: https://www.blackhillsinfosec.com/domain-goodness-learned-love-ad-explorer/

Registro de Alterações

Versão 1.7

  1. Verificar contas que não precisam de senha, cortesia de @nyxgeek.

Versão 1.6

  1. Adicionado Impacket como alternativa ao LDAP3 porque LDAP3 nem sempre funciona (e Impacket também não).

  2. Removida seleção múltipla de servidores LDAP, pois esse recurso não é realmente necessário e não existe no Impacket.

  3. Refatorado tudo.

Versão 1.5

  1. Corrigido pequeno bug de paginação que podia fazer com que alguns registros não fossem retornados.

Versão 1.4

  1. Adicionado recurso de Pesquisa SCCM.

  2. Adicionada opção de arquivo de saída.

  3. Corrigidas algumas coisas no formato de saída.

Versão 1.3

  1. Adicionada capacidade de receber consulta LDAP do stdin.

  2. Automaticamente envolver a consulta em colchetes se o usuário já não tiver feito isso.

  3. Corrigido bug de suporte ao Python 2.

Planos Futuros

Se você tiver algumas enumerações de pesquisa comuns que usa, me avise para que eu possa adicioná-las à lista.

  1. Talvez criar um buscador/analisador offline de dados previamente puxados?

...

Crédito e Contato

Escrito por Shelby Spencer (shellster). Entre em contato comigo para bugs ou solicitações de funcionalidades.

Baixar ferramenta