windows安全基本概念

发布时间 2023-12-15 12:41:59作者: qingshanboy

基本概念

账户安全

账号信息存储(SAM)

SAM:security account manager

SAM对账户的管理是通过安全标识进行的,每个账户的安全标识是唯一的,账户被创建时,安全标识就会产生。

SAM文件是windows的一个账户数据库,存储了登录名、密码等信息。该文件是加密存储的,只有system权限可以访问

路径:

1.C:\Windows\System32\config\SAM

2.C:\Windows\repair\SAM(SAM备份文件,当上面路径下的SAM文件出问题了可用该文件进行修复)

SAM文件使用LM或NTLM进行加密,由于LM加密强度低,Windows操作系统开始使用NTLM,并逐渐移除LM。

各个Windows版本的加密使用:

  1. Windows NT 4.0 和早期版本:
    • SAM 文件使用 LAN Manager (LM) 哈希算法。
  2. Windows 2000 和 Windows XP(包括 Service Pack 2 之前的版本):
    • SAM 文件默认使用 LM 哈希算法。
    • 但是,可以通过配置禁用 LM 哈希算法,使其只使用 NTLM 哈希算法。
  3. Windows XP Service Pack 2 和之后的版本,以及 Windows Server 2003:
    • SAM 文件默认使用 NTLM 哈希算法。
    • LAN Manager (LM) 哈希算法仍然存在于系统中,但默认情况下禁用。
  4. Windows Vista 和之后的版本:
    • SAM 文件默认使用 NTLMv2 哈希算法。
    • LAN Manager (LM) 哈希算法已被完全移除。

用户登录

Winlogon

负责管理登录相关安全性工作(用户登录、注销,启动用户shell,输入口令,更改口令,锁定解锁工作站)的组件。其要保证其安全性操作对其他进程不可见,以免其他进程取得登录安全信息。

GINA

GINA:Graphical Identification and Authentication

图形化识别和验证,登录的身份验证是在这里进行。GINA DLL可以替换,可以自己开放GINA DLL,默认是MSGINA.dll

LSA

LSA:Local Security Authority

本地安全机构

LSA是一个管理系统交互式登录的核心组件,当用户在登录界面输入账号和密码,LSA会把这些凭据给SAM,LSA把凭据与SAM数据库存储的凭据进行对比,找到了相应的账号,SAM会把该账户的SID以及其组SID返回给LSA

LSA会生成一个访问令牌(Access Tocken),其包含了账户SID以及其组SID对应的权限。登录成功凭据会被存储在,Isass.exe进程(加密存储),所以可以通过Isaa.exe来获取凭据

LSA Protection

这是一种LSA保护机制,防止Isaa.exe的内存读取和注入。设置了LSA Protection机制后,mimikatz会失效。不过mimikatz是支持绕过LSA Protection的。

远程登录鉴别协议

SMB(Server Message Block):口令明文传输

SMB是在计算机网络上用于共享文件、打印机、其他网络资源的一种协议

它可以用于访问远程资源

LM(LAN Manager):口令哈希,但易破解

NTLM(BT LAN Manager):加密强度高

LM和NTLM是身份验证协议,其hash算法用于加密用户信息

Kerberos

计算机网络认证协议,用于非安全网络的身份认证

访问控制-ACL(Access Control List)

安全描述符(SD):

1.安全标识符:SID

2.访问控制项:ACE

3.访问控制列表:DACL、SACL

DACL是对对象的访问权限进行定义,比如对文件、文件夹、注册表键的读取、写入、执行等操作的权限

比如某文件夹的属性,安全选项:

image-20231214205026386

上面图片就是一个DACL,由一些DACE组成

SACL是用于审核对对象的访问,也就是定义需要监视的事件类型。比如成功/失败的访问、修改。满足SACL的事件会被系统记录到安全日志中。

上述图基础上点击高级,审核显示的就是SACL,由SACE组成(没有添加ACE,也就是写入日志的事件条件):

image-20231214205221946

点击添加:

image-20231214205335540

用户账户控制-UAC(User Account Control)

UAC用于防止恶意程序对系统的更改,在没有管理员授权的情况下,系统会阻止程序的自动安装等操作。

具体到实例就是,平时你安装软件时,会弹出窗口,问你是否允许某程序对计算机的更改。

注册表

注册表是一个层次结构的数据库,存储系统以及应用程序的配置信息

详细:https://www.cnblogs.com/lcxblogs/p/13444855.html

注册表五根键:

  1. HKEY_CLASSES_ROOT(HKCR):这个根键包含文件关联和注册的COM组件信息。它定义了文件类型和相应的默认程序,以及COM对象的注册信息。
  2. HKEY_CURRENT_USER(HKCU):这个根键存储当前登录用户的配置信息。它包含了用户的桌面设置、壁纸、文件夹选项等个性化设置,以及用户在应用程序中保存的配置信息。
  3. HKEY_LOCAL_MACHINE(HKLM):这个根键存储计算机的全局配置信息。它包含了操作系统的设置、硬件驱动程序、安装的软件等全局性的配置数据。
  4. HKEY_USERS(HKU):这个根键包含所有用户配置信息的集合。每个用户在登录时都会有一个相应的子键,用于存储该用户的个性化设置和应用程序的配置信息。
  5. HKEY_CURRENT_CONFIG(HKCC):这个根键包含了当前硬件配置和系统配置的信息。它存储了计算机启动时所使用的硬件配置和相应的系统设置。