
Инструмент для преобразования экспортированных файлов реестра Windows в файлы кустов реестра Windows, которые можно использовать для замены NTUSER.MAN.
Инструмент для незаметного добавления ключей реестра в HKCU без возможности обнаружения EDR/AV, даже если у вас нет прав администратора.
ПРИМЕЧАНИЕ: Вы сможете сделать это ТОЛЬКО ОДИН РАЗ; после того как NTUSER.MAN станет вашим новым кустом реестра, вы НЕ СМОЖЕТЕ изменить его без прав администратора, поэтому убедитесь, что в первый раз вы внесли все необходимые изменения.
reg_queryreq_query из https://github.com/trustedsec/CS-Situational-Awareness-BOF/tree/master/SA/reg_query.execute-bof --opsec Z:\path\to\reg_query.x64.o go z"" i1 z"" z"" i1output.txt. Обратите внимание, что вы должны включить все временные метки и начинать с ключа , который выглядит примерно так:HKEY_CURRENT_USER03/18/2025 14:19:51 HKEY_CURRENT_USER\
swarmer.exe из раздела релизов и запустите swarmer.exe --bof --startup-key "WhateverKeyNameYouWant" --startup-value "C:\Path\To\Your\target.exe" output.txt NTUSER.MANNTUSER.MAN обратно на целевую машину, возможно, под другим именем, если вы хотите соблюсти OPSEC.%USERPROFILE%, так что у вас должен быть файл вида C:\Users\MyUserName\NTUSER.MAN.Предположим, вы хотите добавить ключ реестра в HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, чтобы при запуске появлялся calc.
Сначала вам нужен дамп реестра ключа HKCU, который вы хотите использовать. В идеале он должен быть получен с той машины, которую вы собираетесь изменять. Вы можете создать его, выполнив reg export HKCU hkcu.reg.
Затем внесите в .reg-файл нужные изменения. В нашем примере мы просто откроем файл в блокноте и добавим дополнительную строку, как показано ниже:

ПРИМЕЧАНИЕ: Будут применены только изменения в HKEY_CURRENT_USER, это не влияет на HKLM
Далее используйте этот инструмент swarmer.exe, чтобы преобразовать измененный reg-файл в бинарный куст реестра. Пример вызова:
swarmer.exe hkcu.reg NTUSER.MAN
Если вы хотите сделать это изнутри скрипта PowerShell, вы можете вместо этого загрузить бинарник swarmer.dll из раздела релизов и запустить его с помощью команд:
Import-Module '.\swarmer.dll'
Convert-RegToHive -InputPath '.\hkcu.reg' '.\NTUSER.MAN'
Наконец, вам просто нужно поместить NTUSER.MAN (он ДОЛЖЕН называться именно так) в ваш %USERPROFILE% directory (что-то вроде C:\Users\MyUserName).
При следующем входе пользователя в систему ваши изменения реестра будут загружены.
Windows полна устаревшего наследия; здесь эксплуатируются обязательные пользовательские профили Windows. Обычно для переименования NTUSER.DAT пользователя в NTUSER.MAN нужны права администратора, но, по-видимому, нет никакой защиты, чтобы кто-то просто не подбросил туда файл с таким же именем, и он не был бы использован вместо оригинального.
Существует странная «ожидаемая» граница безопасности: для создания бинарного куста Windows на машине требуются права администратора, но в целом это слабо контролируется. swarmer (зло)употребляет Offline Registry API для управления бинарным кустом реестра при разборе экспортированного .reg-файла. Цитируем описание:
Приложения не должны использовать функции автономного реестра для обхода требований безопасности системного реестра. Для загрузки куста приложение, работающее без специальных привилегий, необходимых для функции RegLoadKey, может использовать функцию RegLoadAppKey.
Ну, очевидно, мы не собираемся следовать этому совету, поэтому теперь мы можем использовать экспорт реестра с низкими привилегиями в сочетании с нашим инструментом swarmer для создания «привилегированного» бинарного объекта реестра, который можно просто поместить в нужное место, чтобы переопределить существующий куст NTUSER.DAT.
В процессе этого мы не будем использовать НИКАКИХ традиционных API чтения/записи реестра, так что в идеале EDR не должен иметь хорошего представления о происходящем — согласно Sysinternals procmon, это не будет отображаться как фактическая запись в реестр. Если вы ОСОБЕННО параноидальны, вы также можете перенести .reg-файл на управляемую вами машину, создать с помощью этого инструмента бинарный файл куста и поместить его обратно на хост. После экспорта реестра нет необходимости взаимодействовать с хостом до тех пор, пока вы не поместите файл NTUSER.MAN.
Технически вам даже не нужно экспортировать реестр, но, вероятно, опасно пытаться заменить реестр учётной записи на что-то с другой машины, что не ТОЧНО соответствует окружению Windows, а это будет сложно гарантировать.
Этот инструмент распространяется с открытым исходным кодом под лицензией Apache.