|
|
|
Теперь рассмотрим устройство ветви, содержащей информацию о пользователях. Опять же на примере:
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users]
@=hex(00000018):
В поле типа параметра по умолчанию указано количество записей (фактически, это количество пользователей). Далее идут ключи с именами по RID пользователя, например:
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4]
"F"=hex: .....
"V"=hex: .....
У каждого ключа есть по два параметра:
"F"(flags) - по всей видимости содержит флаги (размер всегда 50h)
"V"(value) - соответственно прочие настройки (размер меняется)
Вот значения каких полей удалось распознать:
018: qword таймстамп последней модификации записи
(или смены пароля ?)
если 0, то надо менять пароль при
следующем логоне
030: dword RID пользователя
038: word (?) флаги (при установке в 1)
00: account disabled
03: local account
04: global account
09: password never expired
3 и 4 флаги взаимоисключающие
044: byte (?) у пользователей с правами администратора
равен 1 (к чему бы это)
первые 204 (ССh) байт занимает индекс вида
00: dword адрес параметра, относительно начала данных (CCh)
04: dword размер параметра
08: dword дополнительная информация о параметре
(обычно количество элементов, например в битовых параметрах)
Всего 17 (11h) параметров. Они бывают следующих типов (по порядку):
- структура неизвестного содержания (почти)
00: dword неизвестно
04: dword адрес блока 1
08: dword адрес блока 2
0С: dword адрес блока 3
10: dword адрес блока 4
14: данные
адреса относительно начала этой структуры
второе слово в блоках - это размер текущего блока
(по крайней мере в 3-м и 4-м)
известно, что в блоке 4 по смещению 50h (0Ch при локальном аккаунте)
находится байт (?), содержащий флаги:
02: ??? account locked out (если сброшен в 0)
06: user can't change password (если сброшен в 0)
и по смещению 54h (10h при локальном аккаунте) SID,
т.о. 6Ch (28h при локальном аккаунте) dword RID.
- имя пользователя (username)
- полное имя (fullname)
- описание (description)
- неизвестно (???)
- расширенные установки (extended settings)
terminal server имеет следующие дополнительные параметры:
CtxCfgPresent
CtxCfgFlags1
CtxCallback
CtxShadow
CtxMaxConnectionTime
CtxMaxDisconnectionTime
CtxMaxIdleTime
CtxKeyboardLayout
CtxMinEncryptionLevel
CtxWorkDirectory
CtxNWLogonServer
CtxWFHomeDir
CtxWFHomeDirDrive
CtxWFProfilePath
CtxInitialProgram
CtxCallbackNumber
- домашний каталог (homedir)
- буква для мапирования сетевого ресурса (map drive letter)
- имя логон-скрипта (logon script name)
- путь к профайлу полльзователя (user profile path)
- список серверов для коннекта (logon to)
- время, разрешенное для регистрации (logon hours bit map)
обычно содержит 168 (A8h) бит (по одному на каждый час недели)
что точно укладывается в 21 (15h) байт
- неизвестно
- кодированный пароль LanManager-а (encripted LanManager password)
- кодированный пароль WinNT (encripted WinNT password)
- предыдущие кодированные пароли WinNT
(previous encripted WinNT passwords)
- предыдущие кодированные пароли LanManager-а
(previous encripted LanManager passwords)
С адреса CCh начинаются данные.
В этом же разделе присутствует ключ, содержащий список соответствия RID имени пользователя
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names]Его подключи имеют название по имени пользователя, а параметр по умолчанию в поле типа параметра содержит RID этого пользователя, например:
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Administrator] @=hex(000001F4):