Ketshash

Ketshash

一个基于事件查看器日志检测可疑特权NTLM连接的小工具,特别是Pass-the-Hash攻击。

该工具作为“通过哈希检测”研究的一部分发布 - 关于“通过哈希检测”的更多细节位于博客文章中:https://www.cyberark.com/threat-research-blog /检出通最散列与-窗口事件观看者

完整的研究可以在白皮书中找到:

https://www.cyberark.com/resource/pass-hash-detection-using-windows-events/

演示

https://fast.wistia.com/embed/iframe/e9px19i61p

要求拥有以下权限的帐户:

访问远程机器的安全事件日志

ActiveDirectory读取权限(标准域帐户)

电脑同步同步,否则会影响结果

最小的PowerShell 2.0

概观Ketshash是基于以下信息检测可疑特权NTLM连接的工具:

受监控计算机上的安全事件日志(登录事件)

来自Active Directory的身份验证事件

用法

有两个选项:

基本用法

打开PowerShell并运行:

Import-Module .\Ketshash.ps1 或将Ketshash.ps1内容复制并粘贴到PowerShell会话中

Invoke-DetectPTH

Ketshash Runner

确保Ketshash.ps1位于KetshashRunner.exe的相同目录中

双击KetshashRunner.exe,如果需要更改设置,然后按运行

调用-DetectPTH

参数:

TargetComputers - 要检测NTLM连接的目标计算机的数组。

TargetComputersFile - 用目标计算机列表检索NTLM连接的路径。

开始时间 -检测启动时的时间。默认值是当前时间。

使用KerberosCheck - 检查组织中的DC上的TGT \ TGS登录。默认是搜索源机器上的合法登录。无论如何,有或没有这个开关仍然有源机器上的事件ID 4648查询。

UseNewCredentialsCheck - 检查登录类型为9的登录事件(如Mimikatz)。这是可选的,默认算法已经覆盖它。它只是为了显示另一个选项来检测可疑的NTLM连接。在Windows 10和Server 2016上,应在事件查看器中启用“Microsoft-Windows-LSA / Operational”。在Windows 10和Server 2016上,启用“内核对象审计”将提供更准确的信息,例如写入LSASS。

LogFile - 记录文件路径以保存结果。

MaxHoursOfLegitLogonPriorToNTLMEvent - 从NTLM事件的时间开始向后查看并搜索合法登录的时间。默认值是2小时倒退。

示例(推荐):

例:

调试

因为它使用线程,所以不能调试主函数的脚本块。解决方法可以通过在Detect-PTHMultithreaded之前使用Invoke-Command:

Invoke-Command -ScriptBlock $detectPTHScriptBlock -ArgumentList $TargetComputers, $startTime, $LogFile, $UseKerberosCheck, $UseNewCredentialsCheck, $MaxHoursOfLegitLogonPriorToNTLMEvent

只检测一台目标计算机:

Invoke-DetectPTH -TargetComputers "" ...

更改$TargetComputer要[string]代替[array]。这样就可以在主函数的脚本块中使用断点。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180319B1HFVH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券