
Implementación de Mimikatz en Python puro
Si te gusta este proyecto, considera comprar licencias de OctoPwn, nuestro conjunto completo de herramientas de pentesting que se ejecuta en tu navegador.
Para notificaciones sobre nuevas versiones/lanzamientos y otra información, únete a nuestro Discord
Implementación de Mimikatz en Python puro. Al menos una parte :)
Se ejecuta en todos los SO que soporten python>=3.6

Este proyecto, junto con muchas otras herramientas de pentesting, se ejecuta en el navegador con el poder de OctoPwn.
Prueba la versión comunitaria en OctoPwn - Live
Desde la versión 0.1.1, la línea de comandos cambió un poco. No te preocupes, tengo una WIKI increíble para ti.
Instálalo mediante pip o clonándolo desde GitHub.
El instalador creará un ejecutable de pypykatz en el directorio Script de Python. Puedes ejecutarlo desde allí, debería estar en tu PATH.
Ten cuidado, la versión master de GitHub podría fallar porque soy perezoso para hacer una rama adecuada para las nuevas versiones. Sin embargo, intentaré crear una rama de la versión estable.
pip3 install pypykatz
Instalar requisitos previos
pip3 install minidump minikerberos aiowinreg msldap winacl
Clonar este repositorio
git clone https://github.com/skelsec/pypykatz.git
cd pypykatz
Instalarlo
python3 setup.py install
Independiente de la plataforma: todos los comandos tienen una versión "live" y una normal cuando corresponda. La versión "live" usará el sistema actual y solo funciona en Windows. Los comandos normales son independientes de la plataforma.
Se puede usar como biblioteca para tus proyectos.
Puede analizar los secretos ocultos en el proceso LSASS. Esto es similar a sekurlsa:: de mimikatz pero con diferentes comandos.
La principal diferencia aquí es que toda la lógica de análisis está separada de la fuente de datos, por lo que si defines un nuevo objeto lector, básicamente puedes realizar el análisis de LSASS desde cualquier lugar.
Fuentes de datos actualmente compatibles:
tu proyecto aquí en serio, es súper sencillo de integrar.Analiza las colmenas del registro para obtener credenciales almacenadas, como hashes NT y LM, credenciales en caché del dominio (DCC/DCC2) y secretos LSA.
Fuentes de datos actualmente compatibles:
tu proyecto aquí en serio, es súper sencillo de integrar.DPAPI es el protector de secretos locales de muchos tipos. Actualmente, el proyecto admite descifrar claves maestras, blobs DPAPI, archivos de credenciales, archivos de bóveda.
Los resultados no son 100% correctos, ya que no hay mucha documentación sobre la mayoría de estas cosas. ¡Los PR siempre son bienvenidos!
Fuentes de datos actualmente compatibles:
por favor no integres esta parte en tu proyecto, está en betaPuede generar un nuevo proceso como cualquier usuario que tenga un proceso ejecutándose en la máquina.
Puede asignar cualquier token disponible de elección a tu hilo
Esto es solo algo básico realmente. La razón es que odio usar constantemente psexec para obtener un shell de sistema desde admin...
sí... revisa el código. tiene comentarios y cosas...
Razón de la existencia de este parámetro: para elegir la estructura correcta para el análisis, necesitamos la información de la marca de tiempo del archivo dll msv. Rekall, lamentablemente, no siempre tiene esta información por algún motivo, por lo que el análisis puede fallar.
Si el análisis está fallando, esto podría solucionar el problema.
Parámetro: -t
Valores: 0 o 1
Ejemplo:
pypykatz.py rekall <momeory_dump_file> -t 0
Hay dos formas de usar el análisis de memoria basado en rekall.
pypykatz rekallDeberás especificar el archivo de memoria a analizar.
AVISOS IMPORTANTES:
rekall ahora, ten en cuenta: DEBE ejecutarse en un virtualenv, ¡y necesitarás instalar pypykatz en el mismo virtualenv!out_file y kerberos_dir!Puedes encontrar un archivo de complemento de rekall llamado pypykatz_rekall.py en la carpeta plugins de pypykatz.
Deberás copiarlo en la carpeta plugins/windows de rekall y renombrarlo como pypykatz.py.
Después de esto, modifica el archivo __init__.py ubicado en la misma carpeta y agrega la siguiente línea al final: from rekall.plugins.windows import pypykatz
Si todo está bien, puedes usar el comando pypykatz directamente desde la línea de comandos de rekall.
Si quieres ayudarme a llevar este proyecto a una versión estable, puedes enviar minivolcados del proceso lsass.exe al siguiente enlace: https://nx5494.your-storageshare.de/s/SJteWj3PPbg8jBA
IMPORTANTE: por favor NO envíes volcados del proceso lsass de tu propia máquina. ¡Podré ver tus secretos, incluidos hashes/contraseñas! Envía archivos de volcado de máquinas como sistemas de prueba virtuales en los que no te importe que alguien vea las credenciales. (si tienes un sistema de dominio de prueba donde kerberos esté configurado, sería lo mejor).
También agradecería que no me spammees...
Para crear mimikatz en Python, uno tendría que definir las estructuras de una cantidad ingente de estructuras diferentes (revisa el código original) sin la ayuda del analizador incorporado que obtendrías naturalmente al usar un compilador nativo. El problema es que incluso una desalineación de un solo byte hará que el análisis de estas estructuras falle. El problema gira principalmente en torno a las alineaciones de 32-64 bits, ¡así que también se agradecen los volcados de lsass de versiones de Windows de 32 bits!
Necesito datos con los que pueda verificar el código y aplicar los cambios necesarios en los analizadores hasta que todo funcione correctamente.
Enviar incidencias en esta página de GitHub no ayudaría en absoluto sin el archivo real, y a GitHub no le gustarían archivos adjuntos de 40-300 MB.
La mayoría de mis grandes proyectos de Python buscan la máxima portabilidad, lo que significa que solo uso paquetes de terceros cuando es absolutamente necesario. Hasta ahora se utilizan tres paquetes adicionales, y tengo la intención de mantenerlo así.
Python>=3.6
minidump
minikerberos
asn1crypto
Benjamin DELPY @gentilkiwi por Mimikatz
Francesco Picasso por el plugin mimikatz.py para volatility
Alberto Solino (@agsolino) por impacket
Richard Moore por el módulo AES
Todd Whiteman por el módulo DES
David Buxton por el script de conversión de marcas de tiempo