regipy
Описание regipy
Regipy — это библиотека Python для анализа автономных кустов реестра. У regipy много возможностей:
- Её можно использовать как библиотеку. В этом случае она может применяться для:
- Рекурсивного поиск по кусту реестра из корня или по заданному пути и с возможностью получить все подразделы и значения
- Считывать определённые подключи и значения
- Завершить транзакций в кусте реестра в соответствии с журналами
- Можно использовать как инструменты командной строки. Программа может:
- Выгрузить весь куст реестра в json
- Завершить транзакций в кусте реестра в соответствии с журналами
- Сравнить кусты реестра
- Выполнить извлечение информации с помощью плагинов
Домашняя страница: https://github.com/mkorman90/regipy
Автор: Martin Korman
Лицензия: MIT
Справка по regipy
В пакет regipy включены следующие утилиты.
registry-diff
Сравнивает содержимое кустов и ищет различия.
Использование:
registry-diff [ОПЦИИ] ПУТЬ_ДО_ПЕРВОГО_КУСТА ПУТЬ_ДО_ВТОРОГО_КУСТА
Опции:
-o Файл вывода результатов -v, --verbose Вербальность --help Показать справку и выйти.
registry-plugins-run
Запускает в отношении указанного куста плагин для обработки или сразу все подходящие для обработки данного типа кустов плагины, если плагин не указан явно.
Использование:
registry-plugins-run [ОПЦИИ] ПУТЬ_ДО_КУСТА
Опции:
-o ФАЙЛ Путь до файла, куда будет сохранён результат работы плагинов [обязательно] -p, --plugins ТЕКСТ Плагин или список плагинов для выполнения, список можно разделить запятой -t, --hive-type ТЕКСТ Здесь можно указать тип куста, если по каким-либо причинам он не может быть автоматически идентифицирован -r, --partial_hive_path ТЕКСТ Путь, с которого фактически начинается частичный куст, например: -t ntuser -r "/Software" означает, что это на самом деле это куст HKCU, который начинается с HKCU/Software. -v, --verbose Вербальность --help Показать справку и выйти.
registry-dump
Сохраняет куст целиком на диск в указанном формате
Использование:
registry-dump [ОПЦИИ] ПУТЬ_ДО_КУСТА
Опции:
-o ФАЙЛ -p, --registry-path ТЕКСТ Путь в реестре откуда начать обработку -t, --timeline Создаёт только временную шкалу CSV -l, --hive-type ТЕКСТ Указывает тип куста, если по каким-либо причинам он не может быть идентифицирован -r, --partial_hive_path ТЕКСТ Путь, с которого фактически начинается частичный куст, например: -t ntuser -r "/Software" означает, что это на самом деле это куст HKCU, который начинается с HKCU/Software. -v, --verbose Вербальность --help Показать справку и выйти.
registry-parse-header
Разбирает заголовок куста и выводит сводную информацию.
Использование:
registry-parse-header [ОПЦИИ] ПУТЬ_ДО_КУСТА
Опции:
-v, --verbose Verbosity --help Show this message and exit.
registry-transaction-logs
Дописывает незавершённые транзакции в кусте реестра.
Использование:
registry-transaction-logs [ОПЦИИ] ПУТЬ_ДО_КУСТА
Опции:
-p ФАЙЛ [требуется] -s ФАЙЛ -o ФАЙЛ -v, --verbose Вербальность --help Показать справку и выйти.
С опцией -p указывается путь до файла лога, например, -p ntuser.dat.log1; с опцией -s указывается путь до второго лога, например -s ntuser.dat.log2; с опцией -o указывается новый файл, который был составлен программой, например, -o recovered_NTUSER.dat.
registry-plugins-list
Выводит список всех доступных плагинов для обработки данных в кустах реестров.
Использование:
registry-plugins-list [ОПЦИИ]
Опции:
--help Показать справку и выйти.
Список плагинов regipy
Имя плагина Совместимый куст Описание ----------------------------- ----------------- --------------------------------------------------------------------------------- word_wheel_query ntuser Парсит артефакты word wheel query artifact image_file_execution_options software Retrieve image file execution options - a persistence method profilelist_plugin software Parses information about user profiles found in the ProfileList key print_demon_plugin software Get list of installed printer ports, as could be taken advantage by cve-2020-1048 ntuser_installer_classes ntuser Список установленного программного обеспечения services system Перечисляет службы из куста SYSTEM computer_name system Получает имя компьютера shimcache system Parse Shimcache artifact installed_software_ntuser ntuser Получает список установленных программ и даты их установки software_classes_installer software Список установленного программного обеспечения installed_software software Получает список установленных программ и даты их установки last_logon_plugin software Получает последнего выполнившего вход имя пользователя terminal_services_history ntuser Получает историю RDP подключений amcache amcache Parse Amcache typed_urls ntuser Получает список URL из истории IE ras_tracing software Retrieve list of executables using ras uac_plugin software Get the status of User Access Control active_control_set system Get information on SYSTEM hive control sets user_assist ntuser Parse User Assist artifact safeboot_configuration system Получает конфигурацию о безопасной загрузке safeboot software_plugin software Retrieve values from known persistence subkeys in Software hive timezone_data system Получает информацию о часовом поясе background_activity_moderator system Получает имя компьютера routes system Получает список маршрутов ntuser_persistence ntuser Retrieve values from known persistence subkeys in NTUSER hive
Руководство по regipy
Страница man отсутствует.
Примеры запуска regipy
Парсинг заголовков куста:
registry-parse-header ~/Documents/TestEvidence/Registry/SYSTEM
Пример вывода:
╒════════════════════════╤══════════╕ │ signature │ b'regf' │ ├────────────────────────┼──────────┤ │ primary_sequence_num │ 11639 │ ├────────────────────────┼──────────┤ │ secondary_sequence_num │ 11638 │ ├────────────────────────┼──────────┤ │ last_modification_time │ 0 │ ├────────────────────────┼──────────┤ │ major_version │ 1 │ ├────────────────────────┼──────────┤ │ minor_version │ 5 │ ├────────────────────────┼──────────┤ │ file_type │ 0 │ ├────────────────────────┼──────────┤ │ file_format │ 1 │ ├────────────────────────┼──────────┤ │ root_key_offset │ 32 │ ├────────────────────────┼──────────┤ │ hive_bins_data_size │ 10534912 │ ├────────────────────────┼──────────┤ │ clustering_factor │ 1 │ ├────────────────────────┼──────────┤ │ file_name │ SYSTEM │ ├────────────────────────┼──────────┤ │ checksum │ 0 │ ╘════════════════════════╧══════════╛ [2019-02-09 13:46:12.111654] WARNING: regipy.cli: Hive is not clean! You should apply transaction logs
При разборе заголовка куста также выполняется проверка контрольной суммы и транзакции.
Сохранение всего куста в файл
Команда, выгружающая на диск весь куст (это может занять продолжительное время):
registry-dump ~/Documents/TestEvidence/Registry/NTUSER-CCLEANER.DAT -o /tmp/output.json
Обработка подходящими плагинами
Запуск плагинов для извлечения информации из куста SYSTEM и сохранение результатов в файл plugins_output.json:
registry-plugins-run ~/Documents/TestEvidence/Registry/SYSTEM -o /tmp/plugins_output.json
Тип куста будет определён автоматически, и будут запущены соответствующие плагины.
Сравнение кустов реестра
Команда сравнивает кусты реестра одного и того же типа и выводит полученные данные в файл в формате CSV (если -o не указано, вывод будет выведен на экран):
registry-diff NTUSER.dat NTUSER_modified.dat -o /tmp/diff.csv
Пример вывода:
[2019-02-11 19:49:18.824245] INFO: regipy.cli: Comparing NTUSER.DAT vs NTUSER_modified.DAT ╒══════════════╤══════════════╤════════════════════════════════════════════════════════════════════════════════╤════════════════════════════════════════════════╕ │ difference │ first_hive │ second_hive │ description │ ╞══════════════╪══════════════╪════════════════════════════════════════════════════════════════════════════════╪════════════════════════════════════════════════╡ │ new_subkey │ │ 2019-02-11T19:46:31.832134+00:00 │ \Software\Microsoft\legitimate_subkey │ ├──────────────┼──────────────┼────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────┤ │ new_value │ │ not_a_malware: c:\temp\legitimate_binary.exe @ 2019-02-11 19:45:25.516346+00:00 │ \Software\Microsoft\Windows\CurrentVersion\Run │ ╘══════════════╧══════════════╧════════════════════════════════════════════════════════════════════════════════╧════════════════════════════════════════════════╛ [2019-02-11 19:49:18.825328] INFO: regipy.cli: Detected 2 differences
Утилита registry-dump также может выводить временную шкалу вместо JSON, для этого добавьте флаг -t.
Восстановление куста реестра, используя журналы транзакций:
registry-transaction-logs NTUSER.DAT -p ntuser.dat.log1 -s ntuser.dat.log2 -o recovered_NTUSER.dat
После восстановления сравните кусты с помощью registry-diff, чтобы увидеть, что изменилось.
Установка regipy
Установка в Kali Linux
sudo apt install python3-pip sudo pip3 install regipy
Установка в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S regipy
Информация об установке в другие операционные системы будет добавлена позже.
Comments are Closed