freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用Ketshash检测可疑的特权NTLM连接
2023-01-27 11:20:18
所属地 广西

关于Ketshash

Ketshash是一款针对NTLM安全的分析与检测工具,该工具可以帮助广大研究人员基于事件查看器日志来分析和检测可疑的特权NTLM连接,尤其是Pass-The-Hash攻击。

该工具作为“Pass-The-Hash detection”研究的一部分,以完整开源的形式发布给广大研究人员使用。

该工具可以基于下列信息来实现其功能:

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

2、活动目录中的身份验证事件;

工具要求

该工具的使用要求用户账号拥有下列权限:

1、访问远程计算机的安全事件日志;

2、活动目录的读取权限(标准域帐户);

3、计算机在同一时间同步,否则会影响结果;

4、至少安装并配置好PowerShell 2.0;

工具下载

该工具是一个PowerShell脚本,因此我们只能在支持PowerShell 2.0+的设备上使用该工具。

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/cyberark/ketshash.git

工具使用

基础使用

打开PowerShell窗口,并运行下列命令:

Import-Module .\Ketshash.ps1

或者,将Ketshash.ps1的内容拷贝到PowerShell会话窗口中。

除此之外,也可以直接运行下列命令来使用Ketshash:

Invoke-DetectPTH <arguments>

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(推荐)

Invoke-DetectPTH -TargetComputers "MARS-7" -LogFile "C:\tmp\log.txt"

使用样例2

Invoke-DetectPTH -TargetComputers "ComputerName" -StartTime ([datetime]"2017-12-14 12:50:00 PM") -LogFile "C:\tmp\log.txt" -UseKerberosCheck -UseNewCredentialsCheck

工具调试

由于该工具使用线程工作,因此不太可能对主功能脚本块进行调试。但是我们可以在Detect-PTHMultithreaded之前使用Invoke-Command调试:

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

仅检测一个目标计算机:

Invoke-DetectPTH -TargetComputers "<computer_name>" ...

将$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

# NTLM
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录