二、windows系统服务和注册表
1.0 服务
什么是服务:可以在计算机启动时自动启动,可以暂停和重新启动的而且不显示任何用户界面。
1、可以用services.msc打开可视化界面进行查看和管理,也可以用CMD命令行进行操作。
1.1服务常用操作
服务的状态修改、启动停止、删除增加和查看
#可以查看服务有用法,sc.exe是一个运用配置服务的工具
sc.exe
#1、更改启动状态(手动启动:demand,禁用:disable)
sc config [服务名称] start= demand
#例如将远程注册表表登陆功能修改为手动RemoteRegistry
C:\Windows\system32>sc config RemoteRegistry start=demand
[SC] ChangeServiceConfig 成功
#2、停止或启动服务
sc stop/start [服务名称]
#例:启用和停止远程注册表功能
C:\Windows\system32>net start RemoteRegistry
Remote Registry 服务正在启动 .
Remote Registry 服务已经启动成功。
C:\Windows\system32>net stop RemoteRegistry
Remote Registry 服务正在停止.
Remote Registry 服务已成功停止。
#3、发布一个服务和删除一个服务
C:\Windows\system32>sc create demo binpath= c:/windows/system32/shell.exe type=
own start= auto displayname= WindwosShell
[SC] CreateService 成功
C:\Windows\system32>sc delete demo
[SC] DeleteService 成功
#4、可以用net start查看开启了那些服务
C:\Windows\system32>net start
已经启动以下 Windows 服务:
Application Information
Background Tasks Infrastructure Service
Base Filtering Engine
COM+ Event System
命令成功完成。
1.2 服务安全
1、服务是一种允许用户执行各种任务和管理功能的机制,然而也带来安全威胁。
2、例如:特权升级、远程代码执行、信息泄漏、恶意软件传播。
3、处于安全考虑,我们要时刻关注运行的服务,是有陌生的服务运行,发现及时禁用掉。
4、导出运行的服务列表,及时作对比,看是否有增加。
5、攻击者很可能会将恶意代码或程序伪装成服务运行。
1.3 服务优化
- 禁用不必要的服务
- 使用系统配置实用程序 手动优化
- 使用第三方工具
- 定期更新和修补程序
- 优化关键服务性能
- 监视和诊断服务问题
- 注意安全性
- 备份服务列表
注:优化winsows服务需要谨慎操作,以免影响系统的正常的运行。优化之前建立了解每个服务的用途和影响。
2.0 注册表
1、windows注册表是一个分层数据库,用于存储低级别的设置、是操作系统和应用程序的核心数据库。
2、注册表包含有关操作系统、已安装的应用程序以及每个用户和应用程序的单独设置的重要配置信息。控制着Windows的启动、硬件驱动程序的装载及一些Windows的应用程序的运行,从而在整个系统中起着核心作用。
3、备份注册表相当重要,在系统出问题时可以通过导入注册表来恢复系统,避免系统重装。
4、通过regedit或regedit.exe打开注册表管理。
2.1 注册表的目录结构
序号 | 根键名 | 存放数据 |
---|---|---|
1 | HKEY_CLASSES_ROOT | 启动应用程序所需的全部信息 |
2 | HKEY_CURRENT_USER | 当前登陆用户的配置信息,包括环境变量,个人程序及桌面设置,与4、HKEY_USERS\ .DEFAULT几乎一样 |
3 | HKEY_LOCAL_MACHINE | 本地计算机的系统信息,硬件和操作系统,安全数据和计算机专用的各类软件设置信息 |
4 | HKEY_USERS | 所有用户的配置数据 |
5 | HKEY_CURRENT_CONFIG | 当前硬件的配置信息,从3里面映射出来 |
2.2 注册表安全
2.2.1影子用户:
用户数据路径:
计算机\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users
#创建影子用户
net user admin$ /add
#将影子用户账户加入管理员组
net localgroup administrators admin$ /add
1 此时创建的用户,用命令行net user是查不到的,用net localgroup administrator 可以查到。用可视化的用户管理界面也能看到。
2 进上述路径,导出下图的文件注册数据,和一个权限高的数据。
3 将2注册文件的F值换成3文件的数据。
4 通过命令行删除**admin$**的账户,导入修改后的1,2文件。
#删除账号命令
net user admin$ /del
此时除了注册表里的文件,其他地方都不能查看到admin$的文件,无论管理员账号密码如何更改,都可以用改影子账户完成登陆和远程登陆。
2.2.2 映象劫持
映象劫持路径
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
例如:将Wechat.exe指向CMD.exe,每当点击微信就会打开CMD。操作就是添加二进制数据debugger键指向要运行程序。
2.2.3 注册表远程登陆
开启远程登陆服务
C:\Windows\system32>net start RemoteRegistry
Remote Registry 服务正在启动 .
Remote Registry 服务已经启动成功。
当不用到远程注册表功能时应该用net stop RemoteRegistry关闭该服务。
2.2.4 其他安全
自动运行路径
计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
里面的run表示自动运行程序,runonce表示仅运行一次的程序,时候检查有那些程序在自动运行,不认识的自动运行直接删除掉。