前言
有小伙伴对Windows系统注册表不太清楚,总感觉不常用到但又无所不在,今天带大家来看一下有关Windows注册表的内容,并且给出了几个应用实例大家可以练习练习
Windows注册表
(一) 简介:
注册表是windows系统中具有层次结构的核心数据库,存储的是数据对Windows上运行的应用程序和服务至关重要。注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件。
(二) 开启 注册表编辑器
WIN+R 输入--> regedit
(三) cmd命令行中reg注册表命令
REG Operation [Parameter List] Operation [ QUERY | ADD | DELETE | COPY | SAVE | LOAD | UNLOAD | RESTORE | COMPARE | EXPORT | IMPORT | FLAGS ]
返回代码: (除了 REG COMPARE)
0 - 成功 1 - 失败
要得到有关某个操作的帮助,请键入: REG Operation /?
(四) 注册表位置
windows 注册表的位置:C:WindowsSystem32config
(五) 注册表结构
注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来的,就像磁盘文件系统的目录结构一样。每个键包含一组特定的信息,每个键的键名都是和它所包含的信息相关联的。注册表的根键共有5个,且全为大写
键值 与 类型:
键值由三部分组成: 名称、类型、数据
键值类型由常用的6种组成
字符串值(REG_SZ)
二进制值(REG_BINARY)
32位值(4个字节)(REG_DWORD)
64位值(5个字节)(REG_QWORD)
多字符串值(REG_MULTI_SZ)
可扩充字符串值(REG_EXPAND_SZ)
应用
一、修改注册表实现应用程序开机自启动
windows 提供了专门的开机自启动注册表。每次开启时,它都会在这个注册表键下遍历键值,获取到键值中的程序路径,并创建进程启动程序。因此只需要将需要设置自启动的程序的路径添加到这个注册表中,便可以实现程序开启自启动功能。
常见的开机自启动注册表路径:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun
注意:
要修改HKEY_LOCAL_MACHINE 主键的注册表需要管理员权限
-
reg命令实现
一个bat脚本的路径是:C:ScriptsMyScript.bat
@echo off
reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionRun" /v "MyScript" /t REG_SZ /d "C:ScriptsMyScript.bat"
-
命令解释:
@echo off
:这行命令用于关闭命令提示符窗口中的命令回显。这样,在运行批处理文件时,命令本身不会在窗口中显示,只显示命令的结果。
reg add
:这是用于添加注册表项的主要命令。
"HKCUSoftwareMicrosoftWindowsCurrentVersionRun"
:这是要添加的注册表键的路径,HKCU
代表HKEY_CURRENT_USER
,表示当前用户的注册表配置单元。
/v "MyScript"
:/v
参数用于指定要添加或修改的注册表值的名称。在这里,MyScript
是自定义的值名称,可以根据需要修改。
/t REG_SZ
:/t
参数用于指定注册表值的数据类型。REG_SZ
表示这是一个以空字符结尾的字符串,通常用于存储文本信息,如文件路径等。
/d "C:ScriptsMyScript.bat"
:/d
参数用于指定注册表值的数据。在这里,就是批处理文件的完整路径。
二、修改注册表实现用户注销(将这个bat丢到自启动里进行无限循环注销操作)
reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer" /v "ForceLogoff" /t REG_DWORD /d 1 /f
-
命令解释
reg add
:这是用于添加注册表项的命令。
"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer"
:这是要添加或修改的注册表键的路径。
/v "ForceLogoff"
:/v
参数用于指定要添加或修改的注册表值的名称。这里的ForceLogoff
是我们设置的用于强制注销的键值名称。
/t REG_DWORD
:/t
参数用于指定注册表值的数据类型。REG_DWORD
是双字节数据类型,通常用于存储整数等数据,这里用于存储注销相关的设置。
/d 1
:/d
参数用于指定注册表值的数据。将ForceLogoff
的值设置为1
,表示启用强制注销功能。
/f
:这个参数表示强制写入,即使目标注册表项已经存在也会进行修改。
触发注销操作
-
在修改上述注册表项后,注销操作并不会立即自动执行。可以通过以下几种方式来触发注销:
重新启动Explorer.exe
进程:在任务管理器中,找到Explorer.exe
进程,右键单击它并选择 “结束任务”。然后在任务管理器的 “文件” 菜单中选择 “新建任务(运行…)”,在输入框中输入 “Explorer.exe” 并回车,这样会重新加载Explorer.exe
,系统可能会根据注册表设置进行注销操作。
当然必须有在命令行执行
taskkill /f /im Explorer.exe
-- 进程终止
start explorer.exe
-- 进程启动
这两个命令就完成了explorer.exe 进程的重启操作
三、修改注册表实现服务开启-(RDP远程桌面为例)
-
可以先检查一下rdp的服务状态,在cmd命令行中
sc query termservice
-
使用reg开启RDP服务
reg add "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
-
命令解释
-
reg add
:这是用于添加或修改注册表项的命令。 -
"HKLMSYSTEMCurrentControlSetControlTerminal Server"
:这是注册表中的路径,HKLM
代表HKEY_LOCAL_MACHINE
,这是系统级别的注册表配置单元,其中包含了系统范围的配置信息。 -
/v fDenyTSConnections
:/v
表示指定要修改的注册表值的名称。fDenyTSConnections
这个值用于控制是否允许远程桌面连接。当它的值为0
时,表示允许连接;当它的值为1
时,表示禁止连接。 -
/t REG_DWORD
:/t
表示指定数据类型,REG_DWORD
是双字节数据类型,用于存储整数等数据。 -
/d 0
:/d
表示指定要设置的数据。这里将fDenyTSConnections
的值设置为0
,即允许远程桌面连接。 -
/f
:这个参数表示强制写入,即使目标注册表项已经存在也会进行修改。
文章精选
OSCP培训咨询
还在为自己的网安未来焦虑吗,不管是学习渗透技术还是想要实力证明来这儿就对了!!拿到OSCP稳稳红队中级,这就是实力的证明。没有基础也没有关系,边练边学将实战练起来到最后还能把证考了,想要干红队必考必考!!含金量极高,扫描图中二维码或者加下方微信咨询。。
vx:liuyu3366520
内部帮会
可以加入一下我们的帮会,是真正的红队大佬创建的,里面会定时丢些网上没有的工具(比如安卓远控7.4,不过现在已经删除了,有时限,加入的记得看好时间),现在只要99就可以终身,后面人多了就会涨价了
其中:有大量关于网络安全的电子书籍,各个帮会成员全网收集的各付费网安学习资料
还有大量最新公开、内部整理5000+POC合集,优质渗透利用工具。
进入帮会更多精彩内容,优质工具。
原文始发于微信公众号(泷羽Sec-Blanks):Windows注册表小课堂---干货知识与应用实例
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论