
Implémentation de Mimikatz en Python pur
Si vous aimez ce projet, envisagez d'acheter des licences d'OctoPwn, notre suite complète de pentest qui fonctionne dans votre navigateur !
Pour les notifications concernant les nouvelles versions et autres informations, rejoignez notre Discord
Implémentation de Mimikatz en Python pur. Du moins une partie :)
Fonctionne sur tous les systèmes d'exploitation supportant python>=3.6

Ce projet, ainsi que de nombreux autres outils de pentest, fonctionne dans le navigateur grâce à la puissance d'OctoPwn !
Consultez la version communautaire sur OctoPwn - Live
Depuis la version 0.1.1, la ligne de commande a légèrement changé. Ne vous inquiétez pas, j'ai un super WIKI pour vous.
Installez-le via pip ou en clonant depuis github.
L'installateur créera un exécutable pypykatz dans le répertoire Scripts de Python. Vous pouvez l'exécuter depuis là, il devrait être dans votre PATH.
Attention, la version master de github peut échouer car je suis trop paresseux pour faire une branche appropriée pour les nouvelles versions. Je vais essayer de créer une branche de version stable cependant.
pip3 install pypykatz
Installer les prérequis
pip3 install minidump minikerberos aiowinreg msldap winacl
Cloner ce dépôt
git clone https://github.com/skelsec/pypykatz.git
cd pypykatz
Installer
python3 setup.py install
Indépendant de la plateforme – toutes les commandes ont une version "live" et une version normale là où applicable. La version "live" utilisera le système actuel et ne fonctionne que sur Windows. Les commandes normales sont indépendantes de la plateforme.
Peut être utilisé comme bibliothèque pour vos projets.
Permet d'analyser les secrets cachés dans le processus LSASS. Cela ressemble à sekurlsa:: de mimikatz mais avec des commandes différentes.
La principale différence ici est que toute la logique d'analyse est séparée de la source de données, donc si vous définissez un nouvel objet de lecture, vous pouvez essentiellement effectuer l'analyse de LSASS depuis n'importe où.
Sources de données actuellement prises en charge :
votre projet ici sérieusement, c'est super simple à intégrer.Analyse les ruches du registre pour obtenir les informations d'identification stockées, comme les hash NT et LM, les informations d'identification mises en cache du domaine (DCC/DCC2) et les secrets LSA.
Sources de données actuellement prises en charge :
votre projet ici sérieusement, c'est super simple à intégrer.DPAPI est le protecteur des secrets locaux de nombreux types. Actuellement, le projet prend en charge le déchiffrement des masterkeys, des blobs dpapi, des fichiers d'identification, des fichiers de coffre.
Les résultats ne sont pas corrects à 100 %, car il n'y a pas beaucoup de documentation sur la plupart de ces éléments. Les PR sont toujours les bienvenus !
Sources de données actuellement prises en charge :
s'il vous plaît, n'intégrez pas cette partie à votre projet, c'est une version bêtaPeut créer un nouveau processus en tant que n'importe quel utilisateur ayant un processus en cours d'exécution sur la machine.
Peut attribuer n'importe quel jeton disponible de votre choix à votre thread
C'est vraiment basique. La raison est que j'ai horreur d'utiliser constamment psexec pour obtenir un shell système à partir d'admin...
ouais... vérifiez le code. Il a des commentaires et tout...
Raison d'être de ce paramètre : pour choisir la bonne structure d'analyse, nous avons besoin des informations d'horodatage du fichier msv dll. Rekall n'a malheureusement pas toujours ces informations pour une raison quelconque, donc l'analyse peut échouer.
Si l'analyse échoue, cela pourrait résoudre le problème.
Paramètre : -t
Valeurs : 0 ou 1
Exemple :
pypykatz.py rekall <fichier_vidage_mémoire> -t 0
Il existe deux façons d'utiliser l'analyse mémoire basée sur rekall.
pypykatz rekallVous devrez spécifier le fichier mémoire à analyser.
AVIS IMPORTANTS :
rekall, veuillez noter : il DOIT être exécuté dans un environnement virtuel, et vous devrez installer pypykatz dans le même environnement virtuel !out_file et kerberos_dir !Vous trouverez un fichier de plugin rekall nommé pypykatz_rekall.py dans le dossier plugins de pypykatz.
Vous devrez le copier dans le dossier plugins/windows de rekall, et le renommer en pypykatz.py.
Après cela, modifiez le fichier __init__.py situé dans le même dossier et ajoutez la ligne suivante à la fin : from rekall.plugins.windows import pypykatz
Si tout va bien, vous pouvez utiliser la commande pypykatz directement depuis la ligne de commande rekall.
Si vous voulez m'aider à obtenir une version stable de ce projet, vous pouvez envoyer des minidumps du processus lsass.exe au lien suivant : https://nx5494.your-storageshare.de/s/SJteWj3PPbg8jBA
IMPORTANT : veuillez NE PAS envoyer de dumps du processus lsass de votre propre machine ! Je pourrai voir vos secrets, y compris les hash/mots de passe ! Envoyez des fichiers de dump provenant de machines comme des systèmes de test virtuels sur lesquels vous ne craignez pas que quelqu'un voie les informations d'identification. (si vous avez un système de domaine de test où Kerberos est configuré, ce serait le mieux)
J'apprécierais également que vous ne me spammiez pas...
Pour créer mimikatz en Python, il faudrait définir les structures d'une myriade de structures différentes (vérifiez le code original) sans l'aide de l'analyseur intégré que l'on obtient naturellement avec un compilateur natif. Le problème est que même un seul octet de décalage rendra l'analyse de ces structures erronée. Le problème concerne principalement les alignements 32-64 bits, donc les dumps LSASS de Windows 32 bits sont également appréciés !
J'ai besoin de données pour vérifier le code et appliquer les modifications nécessaires aux analyseurs jusqu'à ce que tout fonctionne correctement.
Soumettre des problèmes sur cette page github ne servirait à rien sans le fichier réel, et github n'aimerait pas les pièces jointes de 40 à 300 Mo.
La plupart de mes grands projets Python visent une portabilité maximale, ce qui signifie que je n'utilise des packages tiers que lorsque cela est absolument nécessaire.
Pour l'instant, trois packages supplémentaires sont utilisés, et j'ai l'intention de rester ainsi.
Python>=3.6
minidump
minikerberos
asn1crypto
Benjamin DELPY @gentilkiwi pour Mimikatz
Francesco Picasso pour le plugin mimikatz.py pour volatility
Alberto Solino (@agsolino) pour impacket
Richard Moore pour le module AES
Todd Whiteman pour le module DES
David Buxton pour le script de conversion d'horodatage