windows注册表学习
前言
windows注册表,用途十分的广泛,在权限维持中发挥了重要的作用,同时许多木马也是通过修改注册表信息,达到开机启动,隐藏进程。所以学习注册表知识十分有必要
什么是注册表
注册表本质上是一个数据库,储存了windows系统和应用程序的设置信息。
注册表结构
输入win+r打开cmd,输入regedit或者regedit.exe即可启动,启动后如图所示
注册表由键(也叫主键,项),子键(子项),项值构成,一个键就是分支中的一个文件夹,子键就是该文件夹下的子文件夹,项值就是键的定义,由名称,类型,数据构成,一个键可以有一个多个项值,如果一个相值为空就是默认值。话不多说上图
对于HKEY_CURRENT_USER这个键,他的子键为CLSID,项值有两个。
在注册表中,有四种数据类型
1.REG_SZ:字符串:文本字符串
2.REG_MULTI_SZ:多字符串值:含有多个文本值的字符串
3.REG_BINARY:二进制数:二进制值,以十六进制显示,
4.REG_DWORD:双字值;一个32位的二进制值,显示为8位的十六进制值。
可以在项值右键新建查看.
注册表里根键基本介绍
1.HKEY_USERS:HKEY_USERS仅包含了缺省用户设置和登录用户的信息。虽然它包含了所有独立用户的设置,但在用户未登录时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。
2.HKEY_CURRENT_USER:管理系统当前的用户信息。在这个根键中保存了本地计算机中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码。在用户登录Windows时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。
3.HKEY_CURRENT_CONFIG:允许软件和设备驱动程序员很方便的更新注册表,而不涉及到多个配置文件信息。 HKEY_LOCAL_MACHINE中同样的数据和任何注册表的变化都会同时的变化。HKEY_CURRENT_CONFIG包括了系统中现有的所有配置文件的细节。
4.HKEY_LOCAL_MACHINE:是一个显示控制系统和软件的处理键。HKLM键保存着计算机的系统信息。它包括网络和硬件上所有的软件设置。(比如文件的位置,注册和未注册的状态,版本号等等)这些设置和用户无关,因为这些设置是针对使用这个系统的所有用户的
5.HKEY_CLASSES_ROOT:是应用程序运行时必需的信息,和HKEY_LOCAL_MACHINE\SOFTWARE\Classes是一样的,但是在HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条理
常见攻防中利用
1.远程桌面服务
导航进入到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server,找到fDenyTSConnections,将其默认值从1改到0就可以开启远程桌面。
2.RID劫持(前文已经写过,具体可以参考前文,这里只做简单介绍)
本地管理员组 RID 始终为 500,GUEST组501,标准用户或组通常以数字 1001 开头。这可以帮助渗透测试人员和红队操作员在 RID 枚举期间区分帐户是提升的还是标准的。发现可以在注册表中进行修改,以便通过劫持有效帐户的 RID 使访客帐户成为管理员。跳转到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users,Guest 帐户的 RID 在“ 000001F5 ”键的值 F 中指定。偏移量30的十六进制值为“ 0xF501 ”,需要修改为“ 0xF401 ”(500)以劫持管理员帐户的 RID。偏移量38确定帐户是启用还是禁用(1502 禁用 - 1402 启用)
3.自启动(木马,蠕虫常会利用)
1.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run(这里用得最多),看见可疑地方删除即可.
2.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce,看见可疑地方删除即可
3.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run(与上面不同,这是对系统的操作,需要慎重)
4.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
4.隐藏账户检查
我们创建的隐藏用户,一般方法是察看不了的,但我们可以通过注册表来查看,HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names在这个目录下可以查看到我们的所有用户,包括隐藏用户(注意,SAM子键默认无法打开,需要右键修改权限)下面是演示
可以看到创建完隐藏账户后,是察看不到的,但在注册表对应位置中
出现了我们创建的隐藏账户,删除即可.
5.文件关联
文件关联可以使我们打开一种文件时,默认打开另外一种文件,比如我们可以将txt文件与木马程序绑定,这样用户在运行txt文件的时候,就会自动运行我们的木马
1、ini文件默认的打开方式。通过篡改该项可以导致打开ini 文件时自动运行恶意程序。
对应注册表项:
HKEY_ CLASSES_ RO0OT\inifile\shell\open\comnand
2、. ini文件关联,指向ini 文件默认的打开方式。通过篡改该项可以导致打开ini 文件
时自动运行恶意程序。.
对应注册表项: .
HKEY CLASSES_ R00T. ini
3、cmd文件默认的打开方式。通过篡改该项可以导致打开bat文件时自动运行恶意程序。
对应注册表项:
HKEY_ CLASSES_ R0OT\cmdfile\shell\open\comnand
4、.cmd文件关联,指向cmd文件默认的打开方式。通过篡改该项可以导致打开cmd文件
时自动运行恶意程序。.
对应注册表项:.
HKEY CLASSES_ ROOT. cmd
5、bat 文件默认的打开方式。通过篡改该项可以导致打开bat文件时自动运行恶意程序。
对应注册表项:
HKEY_ CLASSES_ _RO0OT\batfile\shell\open\command\
6.mimikaz明文抓取
在默认情况下,当系统为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,但可以通过修改注册表重新启动,实现抓取
可以参考如下文章链接:https://www.pianshen.com/article/6839367076/