渗透测试中注册表常用操作

概念

注册表是一个系统定义的数据库,应用程序和系统组件在其中存储和检索配置数据。在注册表中存储的数据根据Microsoft Windows版本不同而不同。应用程序使用注册表API来检索、修改或删除注册表数据。

5个根键

根键 说明
HKEY_CURRENT_USER 包含当前登录的用户的配置信息的根目录。用户的文件夹、屏幕颜色和控制面板设置都存储在此处。 此信息与用户配置文件相关联。 该键有时缩写为 HKCU。
HKEY_USERS 包含计算机上所有当前加载的用户配置文件。 HKEY_CURRENT_USER是HKEY_USERS的一个子项。 HKEY_USERS有时缩写为 HKU。
HKEY_LOCAL_MACHINE 包含针对任何用户的计算机 (配置) 。 此键有时缩写为 HKLM。
HKEY_CLASSES_ROOT 是HKEY_LOCAL_MACHINESoftware的一个子项 。 此处存储的信息确保在使用 Windows 资源管理器打开文件时打开正确的程序。 该键有时缩写为 HKCR。 从 Windows 2000 开始,此信息存储在密钥和HKEY_LOCAL_MACHINE HKEY_CURRENT_USER下。 HKEY_LOCAL_MACHINESoftwareClasses该密钥包含可应用于本地计算机上所有用户的默认设置。 该 HKEY_CURRENT_USERSoftwareClasses 键包含覆盖默认设置并仅应用于交互式用户的设置。 the HKEY_CLASSES_ROOT key provides a view of the registry that merges the information from these two sources. HKEY_CLASSES_ROOT为为早期版本的 Windows 设计的程序提供此合并视图。 若要更改交互式用户的设置,必须在以下位置进行更改 HKEY_CURRENT_USERSoftwareClasses ,而不是HKEY_CLASSES_ROOT。 若要更改默认设置,必须在下进行更改 HKEY_LOCAL_MACHINESoftwareClasses 。 如果将密钥写入注册表项下的HKEY_CLASSES_ROOT,系统会将信息存储在 HKEY_LOCAL_MACHINESoftwareClasses 下。 如果将值写入 HKEY_CLASSES_ROOT 下的项,并且该密钥已存在,则系统会将信息存储在其中 HKEY_CURRENT_USERSoftwareClasses ,而不是存储在下 HKEY_LOCAL_MACHINESoftwareClasses 。
HKEY_CURRENT_CONFIG 包含有关本地计算机在系统启动时使用的硬件配置文件的信息。

注册表配置单元及支持文件

注册表配置单元 支持文件
HKEY_LOCAL_MACHINESAM Sam、Sam.log、Sam.sav
HKEY_LOCAL_MACHINESecurity Security、Security.log、Security.sav
HKEY_LOCAL_MACHINESoftware Software、Software.log、Software.sav
HKEY_LOCAL_MACHINESystem System、System.alt、System.log、System.sav
HKEY_CURRENT_CONFIG System、System.alt、System.log、System.sav、Ntuser.dat、Ntuser.dat.log
HKEY_USERSDEFAULT Default、Default.log、Default.sav

安全上的相关操作

RDP相关

查看远程连接端口 0xd3d为3389

REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /V PortNumber

开启远程连接,默认为3389端口

REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f 

权限维持

给当前用户添加自启动

reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun" /v Pentestlab /t REG_SZ /d "C:Userspentestlabpentestlab.exe"
reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce" /v Pentestlab /t REG_SZ /d "C:Userspentestlabpentestlab.exe"
reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices" /v Pentestlab /t REG_SZ /d "C:Userspentestlabpentestlab.exe"
reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce" /v Pentestlab /t REG_SZ /d "C:Userspentestlabpentestlab.exe"

给所有用户添加自启动

reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"
reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"
reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"
reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"

绕过UAC

具有autoElevate属性的白名单程序,在运行时权限自动提升。寻找白名单在运行时访问了哪些注册表,根据路径修改相关启动程序。
如:
在CompMgmtLauncher.exe启动的过程中,有一个关键的操作就是它会先读取注册表HKCUSoftwareClassesmscfileshellopencommand的数据。打开系统注册表编辑器regedit.exe,查看相应路径下的注册表,发现该注册表路径确实不存在。所以,如果自己构造该注册路径,写入启动程序的路径,这样,CompMgmtLauncher.exe便会启动该程序。

原文地址:https://www.cnblogs.com/g0udan/p/14469424.html