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

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты regipy

Инструкции по regipy

Близкие программы:

  • RegRippy (100%)
  • RegRipper (100%)
  • Registry Explorer (100%)
  • creddump (100%)
  • chntpw (100%)
  • Foremost (RANDOM - 55.7%)
  • Рекомендуется Вам:

    Comments are Closed