Windows Defender是一款内置在Windows操作系统的杀毒软件程序,本文旨在记录实战环境中,服务器存在Windows Defender情况下转储凭证的渗透手法,技术简单粗糙,但是有效,各位轻喷,抱拳.jpg
whoami /all
查看上一节已经给出的免杀落地的Dump程序,原理不赘述了,感兴趣的可以自己了解,使用方式如下:
DumpMinitool.exe --file xx.dmp --processId [PID] --dumpType Full
Malseclogon.exe -p [PID] -d 1 -o C:\Users\xix\Desktop\test\xx.dmp
主要分析下在转储凭证过程中Windows Defender防护手段:一是转储的应用程序本身静态指纹,二是Windows Defender监控转储lsass行为是可疑活动,三是转储完成后,Windows Defender会规则匹配可疑文件,在几秒钟后删除转储内容。前两步成败在于Dump Lsass的应用程序,所以找到一个能Dump的免杀程序至关重要。
下面介绍的就是本文核心,针对第三步,如何在webshell或者远控端拿出来我们转储,大致思路是既然Windows Defender隔离该文件且有恢复选项,那么被隔离文件一定还在机器上,但在什么路径/位置不得知,所以我们可以找到被隔离文件的位置或者命令行的恢复方法,在机器上恢复该文件。于是,我查了下微软文档,可以利用MpCmdRun.exe
通过命令行方式恢复并信任该类型文件或者指定文件名恢复单一文件。
常用参数:
#查看被隔离的文件列表:
MpCmdRun.exe -Restore -ListAll
#恢复指定名称的文件至原目录:
MpCmdRun.exe -Restore -FilePath C:\Temp\l.zip
#恢复所有文件至原目录:
MpCmdRun.exe -Restore -All
注:使用MpCmdRun.exe,需要管理员权限(BypassUAC)
Dump Lsass操作
按照文件隔离时匹配的规则恢复被隔离的文件
恢复出来的文件
需要注意的是,转储出来文件时,被识别隔离的过程中,桌面右下角会弹框提示,所以转储凭证的过程最好在管理员不在线的状况下操作。虽然上述过程中,我们得到了转储的凭证,但是Windows Defender的保护历史记录还在,管理员依然可以查看到操作Dump Lsass时的告警信息,查找资料发现,记录以特有格式存储在C:\ProgramData\Microsoft\Windows Defender\Scans\History\Service\DetectionHistory
目录下(提示:访问及操作该目录需要管理员权限),而且不是按照顺序添加记录的,随机的将记录内容保存在某一个目录文件下,删除目录下的文件,记录也就被清理了。
清理保护历史记录前
清理保护历史记录后
实战中,直接删除目录过于明显。为了操作的隐蔽性,我这里写好一个批处理文件,执行效果是操作前先检查输出一下当前文件夹下文件信息,然后根据当前机器日期遍历所有子目录匹配文件时间戳得到最新文件(即是最新的Defender记录),将其删除后再检查输出文件夹下文件情况。
以上,在攻击效果上基本可以在Windows Defender防护下“无声息”的窃取凭证。本文技术原理较为拙劣,仅在个人实用角度出发,总结记录实战思路,如果路过的师傅在实战中有更好的思路或建议,请不吝赐教,多多分享。