pypykatz

Password Attacks v0.6.13 · 02.01.2026 активный

Реализация Mimikatz на чистом Python без нативных зависимостей: работает на Linux, Mac и Windows; извлекает учётные данные из дампов LSASS, реестровых кустов SAM/SECURITY/SYSTEM и файлов DPAPI.

v0.6.13
02.01.2026 current
Добавлен 26.06.2026 · Обновлён 26.06.2026 · Password Attacks
Установка
# pip
pip install pypykatz

# pipx
pipx install pypykatz

# Пример: разбор LSASS дампа
pypykatz lsa minidump lsass.dmp

# Пример: offline SAM/SYSTEM
pypykatz registry --sam SAM SYSTEM
переведено ИИ

Поддерживаемые версии Python Twitter

:triangular_flag_on_post: Спонсоры

Если вам нравится этот проект, рассмотрите возможность приобретения лицензий на OctoPwn, наш полный набор средств для пентеста, работающий в вашем браузере!
Для уведомлений о новых сборках/релизах и другой информации перейдите в наш Discord

pypykatz

Реализация Mimikatz на чистом Python. Как минимум, её часть :)
Работает на всех ОС, поддерживающих python>=3.6 pypy_card

:triangular_flag_on_post: Работает в браузере

Этот проект, как и многие другие инструменты для пентестеров, работает в браузере благодаря OctoPwn!
Ознакомьтесь с community-версией на OctoPwn - Live

ВИКИ

Начиная с версии 0.1.1, командная строка немного изменилась. Не переживайте, у меня есть для вас отличная ВИКИ.

Установка

Установите его через pip или клонируя репозиторий с github.
Установщик создаст исполняемый файл pypykatz в каталоге Scripts вашего Python. Вы можете запускать его оттуда, и он должен быть в вашем PATH.
Имейте в виду, что версия master на github может не работать, потому что мне лень делать нормальную ветку для новых версий. Я постараюсь создать ветку для стабильной версии.

Через PIP

pip3 install pypykatz

Через Github

Установите предварительные зависимости

pip3 install minidump minikerberos aiowinreg msldap winacl

Клонируйте этот репозиторий

git clone https://github.com/skelsec/pypykatz.git
cd pypykatz

Установите его

python3 setup.py install

Возможности

Общее

Кроссплатформенность - все команды имеют версии "live" (прямая работа) и обычную, где это применимо. Версия "live" будет использовать текущую систему и работает только на Windows. Обычные команды являются кроссплатформенными.
Может использоваться как библиотека для ваших проектов.

Обработка LSASS

Может разбирать секреты, скрытые в процессе LSASS. Это подобно секции sekurlsa:: в mimikatz, но с другими командами.
Основное отличие здесь в том, что вся логика разбора отделена от источника данных. Поэтому, если вы определите новый объект-ридер, вы по сути сможете выполнять разбор LSASS из любого места.

Поддерживаемые источники данных:
1. live - напрямую читает память процесса LSASS
2. minidump - обрабатывает файл minidump, созданный путем дампа процесса LSASS
3. rekall (форк volatility) - обрабатывает по сути ЛЮБЫЕ дампы памяти Windows, которые умеет разбирать rekall
4. pcileech - больше не поддерживается 5. remote - это другой проект. Будет реализовано :) 6. ваш проект здесь серьезно, интеграция очень проста.

Обработка реестра

Разбирает кусты реестра для получения сохраненных учетных данных, таких как хэши NT и LM, кэшированные учетные данные домена (DCC/DCC2) и секреты LSA.

Поддерживаемые источники данных:
1. live - имеет две техники для разбора реестра напрямую. Первая работает в памяти и не обращается к диску, вторая делает дампы кустов и разбирает их с помощью офлайн-парсера
2. офлайн (файлы кустов)
3. ваш проект здесь серьезно, интеграция очень проста.

Функции DPAPI - MASTERKEY/BLOB/VAULT/CREDENTIAL

DPAPI является защитником множества локальных секретов. В настоящее время проект поддерживает расшифровку мастер-ключей, блобов dpapi, файлов учетных данных, файлов хранилищ (vault).
Результаты не являются на 100% точными, поскольку по большинству этих вещей недостаточно документации. PR приветствуется!

Поддерживаемые источники данных:
1. live - получает мастер-ключи напрямую из LSASS -ИЛИ- пользовательские/машинные ключи из реестра напрямую и расшифровывает файл мастер-ключа. 2. файлы кустов (офлайн) - пользовательские/машинные ключи из реестра и расшифровывает файл мастер-ключа
3. действительные учетные данные (офлайн) - может расшифровывать файлы мастер-ключей, позволяя вам ввести правильный SID и пароль. 4. пожалуйста, не интегрируйте эту часть в свой проект, это бета

Под пользователей

Может порождать новый процесс от имени любого пользователя, у которого есть процесс, работающий на машине.
Может назначить любой доступный маркер (токен) по выбору вашему потоку.
Это на самом деле базовая вещь. Причина в том, что я ненавижу постоянно использовать psexec, чтобы получить системную оболочку из-под администратора...

Прочее

да... смотрите код. там есть комментарии и так далее...

Опции команды Rekall

Переопределение временной метки

Причина существования этого параметра: Для выбора правильной структуры для разбора нам нужна информация о временной метке файла dll msv. К сожалению, rekall не всегда имеет эту информацию по какой-то причине, поэтому разбор может завершаться неудачей.
Если разбор завершается неудачей, это может решить проблему.

Параметр: -t
Значения: 0 или 1
Пример:

pypykatz.py rekall <momeory_dump_file> -t 0

Использование Rekall

Есть два способа использовать разбор памяти на основе rekall.

Через команду pypykatz rekall

Вам нужно будет указать файл памяти для разбора.

Через командную строку rekall

ВАЖНЫЕ ЗАМЕЧАНИЯ: 1. Если вы только сейчас решаетесь установить rekall, учтите: ОН ДОЛЖЕН запускаться в виртуальном окружении (virtualenv), и вам нужно будет установить pypykatz в том же виртуальном окружении!
2. командная строка rekall не подходит для отображения всей информации, полученной из памяти, вы должны использовать командные ключи out_file и kerberos_dir!

Вы можете найти файл плагина rekall с именем pypykatz_rekall.py в папке plugins проекта pypykatz.
Вам нужно будет скопировать его в папку plugins/windows rekall и переименовать в pypykatz.py.
После этого измените файл __init__.py``, расположенный в той же папке, и добавьте следующую строку в конец:from rekall.plugins.windows import pypykatzЕсли все в порядке, вы сможете использовать командуpypykatzнепосредственно из командной строкиrekall```.

НУЖНА ПОМОЩЬ

Если вы хотите помочь мне довести этот проект до стабильного релиза, вы можете отправить минидампы процесса lsass.exe по следующей ссылке: https://nx5494.your-storageshare.de/s/SJteWj3PPbg8jBA ВАЖНО: пожалуйста, НЕ отправляйте дампы процесса lsass вашего собственного компьютера!!! Я смогу увидеть ваши секреты, включая хэши/пароли! Отправляйте файлы дампов с машин, например, виртуальных тестовых систем, на которых вам не важно, что кто-то увидит учетные данные. (если у вас есть тестовая доменная система, где настроен Kerberos, это было бы идеально)
Также я буду признателен, если вы не будете спамить меня...

Зачем мне нужны эти файлы дампов?

Для создания mimikatz на Python пришлось бы создавать определения структур для огромного количества различных структур (см. оригинальный код) без помощи встроенного парсера, который вы получаете естественным образом, используя нативный компилятор. Теперь, проблема в том, что даже рассогласование в один байт приведет к ошибке при разборе этих структур. Проблема в основном касается выравнивания 32/64 бит, поэтому дампы lsass с 33-битных версий Windows тоже приветствуются!

Итог

Мне нужны данные, на которых я могу верифицировать код и вносить необходимые изменения в парсеры, пока все не начнет работать нормально.
Создание issues на этой странице github не поможет вообще без реального файла, а github не любит вложения размером 40-300Мб.

Предварительные требования

Большинство моих крупных python-проектов нацелены на максимальную переносимость, то есть я использую сторонние пакеты только там, где это абсолютно необходимо.
На данный момент используются три дополнительных пакета, и я намерен сохранить так и дальше.

Python>=3.6
minidump
minikerberos
asn1crypto

Благодарности

Benjamin DELPY @gentilkiwi за Mimikatz
Francesco Picasso за плагин mimikatz.py для volatility
Alberto Solino (@agsolino) за impacket

Криптография

Richard Moore за модуль AES
Todd Whiteman за модуль DES

Утилиты

David Buxton за скрипт конвертации временных меток

Комментарии
Войдите, чтобы оставить комментарий