
Implementação do Mimikatz em Python puro
Se você gosta deste projeto, considere adquirir licenças do OctoPwn, nossa suíte completa de pentest que roda no seu navegador!
Para notificações sobre novas versões/versões e outras informações, entre no nosso Discord
Implementação do Mimikatz em Python puro. Pelo menos uma parte :)
Roda em todos os sistemas operacionais que suportam python>=3.6

Este projeto, junto com muitas outras ferramentas de pentest, roda no navegador com o poder do OctoPwn!
Confira a versão comunitária em OctoPwn - Live
Desde a versão 0.1.1, a linha de comando mudou um pouco. Não se preocupe, tenho uma WIKI incrível para você.
Instale via pip ou clonando do GitHub.
O instalador criará um executável pypykatz no diretório Scripts do Python. Você pode executá-lo a partir de lá, deve estar no seu PATH.
Cuidado, a versão master do GitHub pode falhar porque sou preguiçoso para criar um branch adequado para as novas versões. Tentarei criar um branch da versão estável.
pip3 install pypykatz
Instale pré-requisitos
pip3 install minidump minikerberos aiowinreg msldap winacl
Clone este repositório
git clone https://github.com/skelsec/pypykatz.git
cd pypykatz
Instale
python3 setup.py install
Independente de plataforma - todos os comandos têm uma versão "live" e uma normal, quando aplicável. A versão "live" usará o sistema atual e funciona apenas no Windows. Os comandos normais são independentes de plataforma.
Pode ser usado como biblioteca para seus projetos.
Pode analisar os segredos ocultos no processo LSASS. Isso é como o sekurlsa:: do mimikatz, mas com comandos diferentes.
A principal diferença aqui é que toda a lógica de análise é separada da fonte de dados, então se você definir um novo objeto leitor, pode basicamente realizar a análise do LSASS de qualquer lugar.
Fontes de dados atualmente suportadas:
seu projeto aqui sério, é super simples de integrar.Analisa as hives do registro para obter credenciais armazenadas, como hashes NT e LM, credenciais em cache de domínio (DCC/DCC2) e segredos LSA.
Fontes de dados atualmente suportadas:
seu projeto aqui sério, é super simples de integrar.DPAPI é o protetor de segredos locais de vários tipos. Atualmente, o projeto suporta a descriptografia de masterkeys, blobs DPAPI, arquivos de credenciais, arquivos de cofre (vault).
Os resultados não são 100% corretos, pois não há muita documentação sobre a maioria dessas coisas. PRs são sempre bem-vindos!
Fontes de dados atualmente suportadas:
por favor, não integre esta parte ao seu projeto, está em betaPode gerar um novo processo como qualquer usuário que tenha um processo em execução na máquina.
Pode atribuir qualquer token disponível de sua escolha à sua thread
Isso é apenas algo básico, na verdade. A razão é que odeio usar constantemente o psexec para obter um shell de sistema a partir do administrador...
sim... confira o código. tem comentários e tal...
Motivo para este parâmetro existir: Para escolher a estrutura correta para análise, precisamos das informações de timestamp do arquivo msv.dll. Infelizmente, o Rekall nem sempre tem essas informações por algum motivo, portanto a análise pode falhar.
Se a análise estiver falhando, isso pode resolver o problema.
Parâmetro: -t
Valores: 0 ou 1
Exemplo:
pypykatz.py rekall <momeory_dump_file> -t 0
Existem duas maneiras de usar a análise de memória baseada no rekall.
pypykatz rekallVocê precisará especificar o arquivo de memória para analisar.
AVISOS IMPORTANTES:
rekall agora, por favor, observe: ele DEVE ser executado em um virtualenv, e você precisará instalar o pypykatz no mesmo virtualenv!out_file e kerberos_dir!Você pode encontrar um arquivo de plugin do rekall chamado pypykatz_rekall.py na pasta plugins do pypykatz.
Você precisará copiá-lo para a pasta plugins/windows do rekall e renomeá-lo para pypykatz.py.
Depois disso, modifique o arquivo __init__.py localizado na mesma pasta e adicione a seguinte linha no final: from rekall.plugins.windows import pypykatz
Se tudo estiver correto, você pode usar o comando pypykatz diretamente da linha de comando do rekall.
Se você quiser me ajudar a levar este projeto a uma versão estável, pode enviar minidumps do processo lsass.exe para o seguinte link: https://nx5494.your-storageshare.de/s/SJteWj3PPbg8jBA IMPORTANTE: por favor NÃO envie dumps do processo lsass da sua própria máquina!!! Eu poderei ver seus segredos, incluindo hashes/senhas! Envie arquivos de dump de máquinas como sistemas de teste virtual nos quais você não se importa que alguém veja as credenciais. (se você tiver um sistema de domínio de teste onde o Kerberos esteja configurado, isso seria o melhor) Também agradeceria se você não me enviasse spam...
Para criar o mimikatz em Python, seria necessário criar definições de estrutura de uma infinidade de estruturas diferentes (confira o código original) sem a ajuda do analisador interno que você naturalmente teria ao usar um compilador nativo. Agora, o problema é que mesmo um único byte de desalinhamento fará com que a análise dessas estruturas resulte em erro. O problema gira principalmente em torno de alinhamentos 32-64, então dumps do lsass de versões do Windows de 32 bits também são apreciados!
Preciso de dados para verificar o código e administrar as mudanças necessárias nos analisadores até que tudo funcione corretamente.
Enviar problemas nesta página do GitHub não ajudaria em nada sem o arquivo real, e o GitHub não gostaria de anexos de arquivos de 40-300 MB.
A maioria dos meus grandes projetos em Python visa máxima portabilidade, ou seja, só uso pacotes de terceiros quando absolutamente necessário. Até agora, três pacotes adicionais são usados, e pretendo manter assim.
Python>=3.6
minidump
minikerberos
asn1crypto
Benjamin DELPY @gentilkiwi pelo Mimikatz
Francesco Picasso pelo plugin mimikatz.py para volatility
Alberto Solino (@agsolino) pelo impacket
Richard Moore pelo módulo AES
Todd Whiteman pelo módulo DES
David Buxton pelo script de conversão de timestamp