快捷搜索:  网络  后门  扫描  渗透  CVE  木马  黑客  as

行使DiskShadow服务完成免杀持久化控制和活动目录数据库提取

01.jpg

早在二月份,我就发表了《行使Vshadow服务完成免杀持久化控制和活动目录数据提取》的研究文章,因为Vshadow功能触及卷影拷贝创建操作,容易被攻击者行使,比较故意思。老实说,Vshadow的免杀持久化滥用可能还不如何,其替换产品DiskShadow的这方面情形又怎么样呢?在这篇文章中,我会先容DiskShadow服务现行的,用于免杀、持久化控制以及数据提取的后渗透排泄可行使性,和一些详细的安全防护措施。

PS:本文仅用于手艺讨论与分享,严禁用于任何非法用途

DiskShadow服务先容

DiskShadow.exe是一个命令行工具,用于治理卷影复征服务 (Volume shadow copy Service,VSS) ,而使用VSS可在特定卷上确立数据拷贝时间点以备后期执行数据丢失后的数据恢复,DiskShadow使用类似于DiskRaid或DiskPart的交互式命令诠释器。Diskshadow 作为硬件卷影复制方案的首个内部 VSS 要求程序包含在 Windows Server 2008 、2012以及2016体系版本中,行使Diskshadow能够创建并治理硬件以及软件卷影副本。另外,DiskShadow功能还包含脚本模式。(详细参考 微软官网说明)

02.png

DiskShadow功能治理下的VSS服务需要UAC抬举的特权走访权限,黑客技术,然则普通用户也能够使用其中的一些功能命令,所以,对于命令执行以及免杀持久化来说,DiskShadow也是一个不错的选择。

DiskShadow 执行命令

作为应用特征,交互式命令解析器以及脚本模式都能支持EXEC命令,且特权用户以及非特权用户,都可以在交互模式或脚本文件中调用命令以及批处理脚本,以下列演示功能。

Note:下列触及到的实例都是在最新装置或更新的Windows Server 2016上的非特权/非治理员帐户体系中完成的,所有操作依靠于体系版本设置,若要成功复现,请确保体系以及应用进程的完备性。

交互模式

在下列实例中,一个端庄常使用户能在DiskShadow环境中调用calc.exe:

03.png

脚本模式

在下列实例中,一下端庄常使用户通过调用脚本文件diskshadow.txt,来完成对calc.exe以及notepad.exe的启动:

diskshadow.exe /s c:\test\diskshadow.txt

04.png

就像Vshadow同样,DiskShadow.exe可以生成本人的子进程,并且,子进程结束以后DiskShadow.exe还能继续运行。

05.png

自启动式的持久化&免杀

因为DiskShadow是Windows体系经过署名认证的文件,所以我们结合别的一些持久化以及免杀的AutoRuns实例,来看看能有什么启示,我们会在接下来的实例中,更新脚本创建RunKey以及义务计划。

前期预备

由于上述我们用到的DiskShadow功能都是“窗口响应”式的(譬如会弹出命令窗口),所以我们需要更改脚原先调用执行外部命令且类似pass-thru的操作,另外,还要及时关闭DiskShadow父进程以及后续的攻击载荷(Payload)。某些情形下,要是响应窗口时间过长,那么这类手艺的隐蔽性就不太好,然则,要是这类窗口是在用户登录时的提示,那么就有可能被用户直接忽略掉。

起首,我们来更改脚本diskshadow.txt来完成基本的程序调用,为完成命令交互,我们必须引用初始的EXEC命令情势:

EXEC “cmd.exe” /c c:\test\evil.exe

接下来,往注册表中加入下列持久化隐蔽键值:

- Run Key Value -

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v VSSRun /t REG_EXPAND_SZ /d “diskshadow.exe /s c:\test\diskshadow.txt”

- User Level Scheduled Task -

schtasks /create /sc hourly /tn VSSTask /tr “diskshadow.exe /s c:\test\diskshadow.txt”

06.png

以后,我们可以看看其运行结果。

AutoRuns – 从注册表键值看隐蔽结果

在创建了持久化隐蔽键值以后,在关上体系自启动功能选择登录一栏后可以发现,我们的键值是隐蔽的。默认情形下,此视图中的Windows署名验证是不显示的:

07.png

然则在取销“隐躲微软项目”的选定以后,可以看到我们在AutoRuns下的定义的自启动项目:

08.png

AutoRuns – 从义务计划中看隐蔽结果

与创建注册表键值相同,在义务计划栏的默认显示下,我们创建的义务计划是隐躲的:

09.png

一样在取销“隐躲微软项目”的选定以后,可以看到我们在AutoRuns下的定义的自启动项目:

10.png

提取活动目录数据

由于DiskShadow本身就是一个卷影复制治理工具,那么,我们可以来看看卷影复制功能下,是怎么样来对活动目录数据库ntds.dit进行数据提取的。NTDS.DIT是一个二进制文件,就等同于内陆计算机的SAM文件,它的存放地位是%SystemRoot%\ntds\NTDS.DIT,这内里包含的不只是Username以及HASH,还有OU、Group等等。

在下列应用中,我们假设活动目录域控制器已被攻击者成功拿下控制,并能有用在特权用户环境中以脚本模式执行DiskShadow命令。起首,我们要预备脚本,我们会先对包含活动目录数据库的目标磁盘驱动器号进行踩点侦测,了解未被体系磁盘使用的驱动器号。下列就是脚本diskshadow.txt的内容:

set context persistent nowriters
add volume c: alias someAlias
create
expose %someAlias% z:
exec "cmd.exe" /c copy z:\windows\ntds\ntds.dit c:\exfil\ntds.dit
delete shadows volume %someAlias%
reset

在该脚本中,我们为C盘空间创建了一个持久性的卷影复本,然后配置体系可见驱动器别名为Z,以此为掩护执行复制操作完成敏感文件获取。通过磁盘加载过程,我们就能确定目标文件的拷贝路径,在卷影复本删除之前,我们需要把这个目标文件拷贝到“exfil”目录之下。(DiskShadow命令参考手册)

注意,我们还可以通过指定卷影设备名称/唯一标识符来拷贝目标文件,这类方式隐蔽性较好,但照样要确保目标文件标签以及UUID的正确性,和脚本的有用性,这类方式更适合交互式模式。

DiskShadow的命令以及终极执行结果以下:

type c:\diskshadow.txt

diskshadow.exe /s  c:\diskshadow.txt

dir c:\exfil

11.png

除了提取活动目录数据库数据之外,我们还可以提取目标体系的注册表设置单元(HIVE)信息:

reg.exe save hklm\system c:\exfil\system.bak

12.png

当以上ntds.dit以及system.bak文件从目标体系成功提取出来后,我们用脚本SecretsDump.py,就可以成功还原出文件中的NTLM哈希:

secretsdump.py -ntds ntds.dit -system system.bak LOCAL

13.png

DiskShadow与Vshadow的行使性比较

DiskShadow.exe以及Vshadow.exe功能类似,但在应用服务中也存在本质不同,可以根据需求和实际环境来选择使用。

操作体系包含性比较

自 Windows Server 2008最先的操作体系中就内置了DiskShadow.exe,而Vshadow.exe只是在Windows SDK中才有,要是目标体系中装置有Windows SDK,我们就可采用Vshadow.exe,但在一些实际的操作体系环境中,用DiskShadow.exe照样相对于较好。

功能以及实用性比较

在普通用户环境中,我们可以非特权情形下使用DiskShadow的部分功能,在我之前发布的Vshadow测试场景中,Vshadow可能会受到权限的影响制约导致某些功能没法正常使用。而相反,DiskShadow在命令的交互结果上愈加天真可靠。

命令行应用比较

Vshadow对“命令行”的友爱度相对于较好,这一点上DiskShadow则需要交互式命令或脚本文件来完成某些功能。所以,在一些具备对目标体系遥程控制的路子管道下(如backdoor),DiskShadow命令完成可能会受到制约,而且其在目标体系中创建文件或脚本的方式可能会被检测到。因此,在一些安全性请求较高的体系环境中,Vshadow的行使要相对于较隐蔽有用。

自启动持久化以及免杀比较

在之前我发表的 Vshadow行使文章中提到,Vshadow是由微软署名证书进行验证的,也就是说,要是在自启动项监测栏中,要是没配置隐躲微软署名的话它可能会被发现,而这一点上DiskShadow则是由体系证书验证的,能够在某种程度上完成隐蔽,相对于较好。

提取活动目录数据库比较

假设在当条件取操作无效的情形下(如卷影磁盘名不是我们想要的),而DiskShadow又只有脚本模式一种可行使方式,那么可能需要别的附加手段来完成AD数据库提取。除了创建以及运行脚本文件之外,逻辑驱动器可能需要映照到目标机器上才能复制ntds.dit,这存在一些安全危害,这类情形下Vshadow的处理要相对于较好。

总结

总的来说,DiskShadow似乎更具渗透排泄行使的操作以及实用性,然则Vshadow以及别的VSS要领也是不错的。而对于防御DiskShadow攻击来说,蓝队以及安全治理人员可能考虑采用下列措施:

监测卷影复征服务VSS,尤为是随机的卷影创建/删除以及别的触及活动目录数据库文件ntds.dit的可疑举动;

监测 System Event ID 7036(卷影复征服务运行事故)下的可疑实例,和VSSVC.exe进程的调用;

监测Diskshadow.exe进程以及其子进程的创建举动;

监测进程完备性,要是Diskshadow.exe进程为中等完备性状态,则可能存在安全危害;

监测服务终端的Diskshadow.exe实例创建事故,除非营业需要,否则Diskshadow.exe进程不应该出现在Windows操作体系中;

监测新的逻辑驱动器映照事故;

实行应用程序白名单机制,对应用程序运行实行权限控制,防止Diskshadow.exe进程的命令执行;

做好信息安全防护,提高员工安全意识!

*参考来源:bohops,FreeBuf小编clouds编译,

您可能还会对下面的文章感兴趣: