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
PXEThief — PXEThief é um conjunto de ferramentas que pode extrair senhas da funcionalidade de Implantação de Sistema Operacional do Microsoft Endpoint Configuration Manager. | Kitploit
Ferramentas/GitHubGitHub/mwr-cybersec/pxethief
Escalada de PrivilégiosReconhecimentoAtaques de SenhaExploraçãoColeta de InformaçõesPós-ExploraçãoTestes de PenetraçãoRed Teaming
GitHubmwr-cybersec/pxethief

PXEThief

PXEThief é um conjunto de ferramentas que pode extrair senhas da funcionalidade de Implantação de Sistema Operacional do Microsoft Endpoint Configuration Manager.

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

PXEThief

O PXEThief é um conjunto de ferramentas que implementa vetores de ataque discutidos na palestra do DEF CON 30 Pulling Passwords out of Configuration Manager (https://forum.defcon.org/node/241925) contra a funcionalidade de Implantação do Sistema Operacional no Microsoft Endpoint Configuration Manager (ou ConfigMgr, ainda comumente conhecido como SCCM). Ele permite a coleta de credenciais de Network Access Accounts configuradas (https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/hierarchy/accounts#network-access-account) e quaisquer Task Sequence Accounts ou credenciais armazenadas em Collection Variables do ConfigMgr que tenham sido configuradas para a coleção "All Unknown Computers". Essas contas do Active Directory são comumente excessivamente permissivas e permitem escalonamento de privilégio para acesso administrativo em algum lugar do domínio, pelo menos na minha experiência pessoal.

Provavelmente, o ataque mais sério que pode ser executado com estas ferramentas envolveria a implementação iniciada por PXE sendo suportada para "All unknown computers" em um ponto de distribuição sem senha, ou com uma senha fraca. O excesso de permissões das contas do ConfigMgr expostas ao OSD mencionado anteriormente pode então permitir que uma cadeia completa de ataque ao Active Directory seja executada com apenas acesso à rede ao ambiente alvo.

Instruções de Uso

root@kitploit:~
python pxethief.py -h 
pxethief.py 1 - Automatically identify and download encrypted media file using DHCP PXE boot request. Additionally, attempt exploitation of blank media password when auto_exploit_blank_password is set to 1 in 'settings.ini'
pxethief.py 2 <IP Address of DP Server> - Coerce PXE Boot against a specific MECM Distribution Point server designated by IP address
pxethief.py 3 <variables-file-name> <Password-guess> - Attempt to decrypt a saved media variables file (obtained from PXE, bootable or prestaged media) and retrieve sensitive data from MECM DP
pxethief.py 4 <variables-file-name> <policy-file-path> <password> - Attempt to decrypt a saved media variables file and Policy XML file retrieved from a stand-alone TS media
pxethief.py 5 <variables-file-name> - Print the hash corresponding to a specified media variables file for cracking in Hashcat
pxethief.py 6 <identityguid> <identitycert-file-name> - Retrieve task sequences using the values obtained from registry keys on a DP
pxethief.py 7 <Reserved1-value> - Decrypt stored PXE password from SCCM DP registry key (reg query HKLM\software\microsoft\sms\dp /v Reserved1)
pxethief.py 8 - Write new default 'settings.ini' file in PXEThief directory
pxethief.py 10 - Print Scapy interface table to identify interface indexes for use in 'settings.ini'
pxethief.py -h - Print PXEThief help text

pxethief.py 5 <variables-file-name> deve ser usado para gerar um 'hash' de um arquivo de variáveis de mídia que pode ser usado para ataques de adivinhação de senha com o módulo Hashcat publicado em https://github.com/MWR-CyberSec/configmgr-cryptderivekey-hashcat-module.

Opções de Configuração

Um arquivo contido na pasta principal do PXEThief é usado para definir opções de configuração mais estáticas. Estas são as seguintes:

root@kitploit:~
[SCAPY SETTINGS]
automatic_interface_selection_mode = 1
manual_interface_selection_by_id = 

[HTTP CONNECTION SETTINGS]
use_proxy = 0
use_tls = 0

[GENERAL SETTINGS]
sccm_base_url = 
auto_exploit_blank_password = 1

Configurações do Scapy

  • automatic_interface_selection_mode tentará determinar a melhor interface para o Scapy usar automaticamente, por conveniência. Ele faz isso usando duas técnicas principais. Se definido como 1, tentará usar a interface que pode alcançar o gateway padrão da máquina como interface de saída. Se definido como 2, procurará a primeira interface que encontrar que tenha um endereço IP que não seja um endereço IP de autoconfiguração ou localhost. Isso falhará ao selecionar a interface apropriada em alguns cenários, e é por isso que você pode forçar o uso de uma interface específica com 'manual_interface_selection_by_id'.
  • manual_interface_selection_by_id permite que você especifique o índice inteiro da interface que deseja que o Scapy use. O ID a ser usado neste arquivo deve ser obtido executando pxethief.py 10.

Configurações Gerais

  • sccm_base_url é útil para substituir o Management Point com o qual a ferramenta se comunicará. Isso é útil se o DNS não resolver (então o valor lido do arquivo de variáveis de mídia não pode ser usado) ou se você identificou vários Management Points e deseja enviar seu tráfego para um específico. Isso deve ser fornecido na forma de uma URL base, por exemplo, http://mp.configmgr.com em vez de mp.configmgr.com ou http://mp.configmgr.com/stuff.
  • auto_exploit_blank_password altera o comportamento do pxethief 1 para tentar automaticamente explorar um Ponto de Distribuição PXE não protegido por senha. Definir isso como 1 habilitará a exploração automática, enquanto defini-lo como 0 imprimirá a string do cliente tftp que você deve usar para baixar o arquivo de variáveis de mídia. Observe que na maioria das vezes você vai querer isso definido como 1, já que o PXE não protegido por senha faz uso de uma chave binária que é enviada na resposta DHCP que você recebe ao solicitar que o Ponto de Distribuição realize um boot PXE.

Configurações de Conexão HTTP

Não implementado nesta versão

Instruções de Configuração

  1. Crie uma nova VM Windows
  2. Instale o Python (De https://www.python.org/ ou pela loja, ambos devem funcionar bem)
  3. Instale todos os requisitos através do pip (pip install -r requirements.txt)
  4. Instale o Npcap (https://npcap.com/#download) (ou Wireshark, que vem incluído com ele) para o Scapy
  5. Faça a ponte da VM para a rede que executa um Ponto de Distribuição ConfigMgr configurado para PXE/OSD
  6. Se estiver usando pxethief.py 1 ou pxethief.py 2 para identificar e gerar um arquivo de variáveis de mídia, certifique-se de que a interface usada pela ferramenta esteja configurada para a correta; se não estiver correta, defina-a manualmente em 'settings.ini' identificando o ID de índice correto a partir de pxethief.py 10

Limitações

  • Suporte a proxy para requisições HTTP - Atualmente configurável apenas no código. O suporte a proxy pode ser habilitado na linha 35 de pxethief.py e o endereço do proxy pode ser definido na linha 693. Estou planejando mover esse recurso para ser configurável em 'settings.ini' na próxima atualização da base de código
  • Suporte a HTTPS e TLS mútuo - Não implementado no momento. No entanto, é possível usar um proxy de interceptação para lidar com isso, o que funciona bem na minha experiência; para fazer isso, você precisará configurar um proxy conforme mencionado acima
  • Suporte a Linux - O PXEThief atualmente usa pywin32 para utilizar algumas funções de criptografia incorporadas do Windows. Isso não está disponível no Linux, pois as APIs de criptografia do Windows não estão disponíveis no Linux :P O código Scapy em pxethief.py, no entanto, é totalmente funcional no Linux, mas você precisará remover (pelo menos) a inclusão de win32crypt para fazê-lo funcionar no Linux

Nota sobre Prova de Conceito

Espere encontrar problemas com o tratamento de erros nesta ferramenta; existem nuances sutis com tudo no ConfigMgr e, embora eu tenha melhorado substancialmente o tratamento de erros em preparação para o lançamento da ferramenta, isso não está de forma alguma completo. Se houver casos extremos que falhem, crie um issue detalhado ou corrija e faça um pull request :) Vou revisá-los para ver onde melhorias razoáveis podem ser feitas. Leia o código/assista à palestra e entenda o que está acontecendo se você for executá-lo em um ambiente de produção. Lembre-se dos termos de licenciamento - ou seja, o uso da ferramenta é por sua conta e risco.

Trabalhos Relacionados

Identificando e recuperando credenciais de sequências de tarefas SCCM/MECM - Neste post, explico todo o fluxo de como as políticas do ConfigMgr são encontradas, baixadas e descriptografadas após a obtenção de um certificado OSD válido. Também quero destacar as duas primeiras referências neste post, pois elas mostram pesquisas ofensivas muito interessantes do SCCM que estão em andamento no momento.

Slides do DEF CON 30 - Link para os slides da palestra.

Créditos do Autor

Copyright (C) 2022 Christopher Panayi, MWR CyberSec

Baixar ferramenta