基于AD Event日志检测LSASS凭证窃取攻击

2022-12-02 6,822

01、简介

简单介绍一下,LSASS(本地安全机构子系统服务)在本地或域中登录Windows时,用户生成的各种凭证将会存储在LSASS进程的内存中,以便用户不必每次访问系统时重新登录。

攻击者在获得起始攻击点后,需要获取目标主机上的相关凭证,以便通过用户凭证进行横向移动,这个技术点最容易关联到的就是获取LSASS内存中保存的用户凭证。

一般LSASS窃取凭证有两种方式,第一种就是直接从LSASS内存解析获取密码,第二种是将LSASS进程转储到本地进行离线解析。

02、LSASS窃取凭证

(1)mimikatz

mimikatz仅需一行命令,就可以直接从lsass内存中提取用户hash。

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" > log.txt

在众多的Windows安全日志中,通过监测访问lsass,exe的进程,可发现异常进程,因此可以将事件ID:4663 作为关键日志特征。

事件ID:4663 显示已使用访问权限,4663是没有失败事件的,可以看到进程名mimikatz.exe 尝试访问内存对象lsass.exe。

(2)Procdump转储

procdump是微软官方提供的一个小工具,可以将lsass.exe进程转储为dump文件,将lsass.dmp文件下载到本地进行离线破解。

Procdump64.exe -accepteula -ma lsass.exe lsass.dmp

在Windows事件ID:4663 中,可以看到进程名Procdump64.exe 尝试访问内存对象lsass.exe。

(3)MSF中的mimikatz

MSF加载mimikatz模块,抓取明文密码

meterpreret > load mimikatz
meterpreret > wdigest

在Windows事件ID:4663 中,可以看到进程名shell.exe 尝试访问内存对象lsass.exe。

(4)CS模块获取用户哈希

使用hashdump或logopasswords 获取用户密码哈希值

在Windows事件ID:4663 中,可以看到进程名rundll32.exe 尝试访问内存对象lsass.exe。

03、LSASS凭证窃取攻击检测

基于几种常见的LSASS进程窃取凭证的方式以及识别到的AD Event日志特征,可以实时监测异常进程访问lsass,exe,找到哪个用户什么时间执行了异常进程访问了lsass.exe进程,从而实现LSASS凭证窃取攻击的检测。

eventtype=wineventlog_security  EventCode=4663 Object_Name="*lsass.exe"
| regex process="^((?!MsMpEng|vmtoolsd|VsTskMgr|WmiPrvSE).)*$"| stats count  min(_time) as  start_time max(_time) as end_time by  dest user Object_Name Process_Name
| eval start_time=strftime(start_time,"%Y-%m-%d %H:%M:%S")| eval end_time=strftime(end_time,"%Y-%m-%d %H:%M:%S") |eval message="在"+start_time+"到"+end_time+"时间内,服务器:"+dest +" 检测到lsass窃取凭证,进程名:" +Process_Name+" 操作账号:"+user+" 操作次数:"+count+"次"
|table  start_time end_time dest  message user

安全告警效果如下图:

本文作者:Bypass007

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/192703.html

Tags:
评论  (0)
快来写下你的想法吧!

Bypass007

文章数:94 积分: 218

一个网络安全爱好者,对技术有着偏执狂一样的追求。

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号