01、简介
Skeleton Key(万能密码),是一种可以对域内权限进行持久化的操作手法,通过将Skeleton Key注入到lsass进程,无需重启域控即可生效,而且能够在不影响当前域用户正常登录的情况下,让所有域用户使用同一个万能密码进行登录。另外,它只存在于内存中,如果域控制器重启,注入的 Skeleton Key 将会失效。
如何发现Skelenton Key的后门行为,基于AD Event日志通过对照攻击方法来寻找入侵痕迹,找出其中的攻击行为,提取攻击特征,以制定告警规则。
02、攻击过程
(1)尝试以当前用户身份,查看当前网络资源的连接为空,列出域控C盘共享目录中的文件显示拒绝访问,表示当前用户无权限。
(2)在域控制器以管理员权限打开mimikatz,使用 mimikatz 完成注入 Skeleon Key 的操作,将 skeleton key 注入域控制器的 lsass.exe 进程。如下图:显示已注入成功,此时会在域内所有帐户添加一个skeleton key,默认密码为“mimikatz”。
//提升权限
mimikatz # privilege::debug
//注入 skeleton key
mimikatz # misc::skeleton
(3)使用域内管理员帐户和skeleton key尝试与域控制器成功建立连接,可列出域控制器C盘共享目录中的文件。
net use \\win-dc01\c$ /user:"evil\administrator" "mimikatz"
(4)微软在2014年3月12日添加了LSA保护策略,用来防止对进程lsass.exe的代码注入,这样一来就无法使用mimikatz对lsass.exe进行注入。启用 LSA 保护,只需要在注册表中添加一个值,重启服务器即可。
注册表位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
(5)绕过LSA 保护
在win2012上,mimikatz通过导入驱动文件mimidrv.sys后,可绕过LSA 保护。
mimikatz # privilege::debug
mimikatz # !+
mimikatz # !processprotect /process:lsass.exe /remove
mimikatz # misc::skeleton
03、攻击检测
当攻击者尝试加载mimidrv.sys驱动时,将会生成4697事件,这个行为可作为安全日志中最为明显的特征进行识别检测。
4697事件:当系统中安装了新服务时,将会生成此事件,包含安装服务的帐户名,安装服务的名称以及创建服务时文件的路径。
安全规则: