关于Ketshash
Ketshash是一款针对NTLM安全的分析与检测工具,该工具可以帮助广大研究人员基于事件查看器日志来分析和检测可疑的特权NTLM连接,尤其是Pass-The-Hash攻击。
该工具作为“Pass-The-Hash detection”研究的一部分,以完整开源的形式发布给广大研究人员使用。
该工具可以基于下列信息来实现其功能:
1、受监控计算机上的安全事件日志(登录事件);
2、活动目录中的身份验证事件;
工具要求
该工具的使用要求用户账号拥有下列权限:
1、访问远程计算机的安全事件日志;
2、活动目录的读取权限(标准域帐户);
3、计算机在同一时间同步,否则会影响结果;
4、至少安装并配置好PowerShell 2.0;
工具下载
该工具是一个PowerShell脚本,因此我们只能在支持PowerShell 2.0+的设备上使用该工具。
广大研究人员可以使用下列命令将该项目源码克隆至本地:
工具使用
基础使用
打开PowerShell窗口,并运行下列命令:
或者,将Ketshash.ps1的内容拷贝到PowerShell会话窗口中。
除此之外,也可以直接运行下列命令来使用Ketshash:
Ketshash Runner
1、确保Ketshash.ps1在KetshashRunner.exe的同一目录下;
2、双击KetshashRunner.exe,根据需要修改设置,并点击运行;
Invoke-DetectPTH使用
参数解释
Targetcomputers:要检测NTLM连接的目标计算机数组;
TargetComputersFile:包含要检测NTLM连接的目标计算机列表的文件路径;
StartTime:检测开始的时间,默认值为当前时间;
UseKerberosCheck:检查组织DC上的TGT\TGS登录;
UseNewCredentialsCheck:检查登录类型为9的登录事件(如Mimikatz)。这是可选的,默认算法已经涵盖了它。它的存在只是为了显示另一个检测可疑NTLM连接的选项。在Windows版本10和Server 2016上,应在事件查看器中启用“Microsoft Windows LSA/操作”。在Windows 10和Server 2016上,启用“内核对象审计”将提供更准确的信息,例如写入LSASS;
LogFile:保存结果的日志文件路径;
MaxHoursOfLegitLogonPriorToNTLMEvent:自NTLM事件发生后,需要多少小时才能向后查看并搜索合法登录,默认值为向后2小时;
使用样例1(推荐)
使用样例2
工具调试
由于该工具使用线程工作,因此不太可能对主功能脚本块进行调试。但是我们可以在Detect-PTHMultithreaded之前使用Invoke-Command调试:
仅检测一个目标计算机:
将$TargetComputer从[array]修改为[string],这样就可以在脚本块中使用断点来调试了。
工具使用演示
使用演示:【点我观看】
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可证协议。
项目地址
Ketshash:【GitHub传送门】
参考资料
https://www.cyberark.com/threat-research-blog/detecting-pass-the-hash-with-windows-event-viewer
https://www.cyberark.com/resource/pass-hash-detection-using-windows-events/
http://lp.cyberark.com/rs/cyberarksoftware/images/wp-Labs-Pass-the-hash-research-01312018.pdf