ETWProcessMon2用于通过ETW监控进程/线程/内存/Imageloads/TCPIP
作者:Sec-Labs | 发布时间:
项目介绍
ETWProcessMon2用于通过ETW监控进程/线程/内存/Imageloads/TCPIP,并通过VirtualMemAlloc事件(内存中)检测远程线程注入和有效载荷等。
项目地址
https://github.com/DamonMohammadbagher/ETWProcessMon2
ETWProcessMon2(v2.1)
ETWProcessMon2 (ver2) 用于通过 ETW 监控进程/线程/内存/图像加载/TCPIP + 通过 VirtualMemAlloc 事件(内存中)等检测远程线程注入和有效负载检测。
笔记:ETWProcessMon2.1 (v2.1) is new version of code, in this new version VirtualMemAlloc Events removed from source code & now Code Performance is very fast/good (this version ETWProcessMon2.1 will work with ETWPM2Monitor2 v2.1 very good for Technique/Payload Detection via ETW Events)
注意:if your "Windows Defender Anti-virus" have/had problem with ETWPM2Monitor2.exe you should Disable AV to use this Tool (Real-time should be off also Tamper Protection should be off, ...),有时 ETWPM2Monitor2.exe 会被 AV 崩溃,因此您应该在没有防病毒软件(禁用 AV)的 Windows 中测试这些工具(ETWPM2Monitor2.1、SysPM2Monitor2.7)
ETWProcessMon2.exe
“ETWProcessMon”是通过 ETW 监控进程/线程/内存/图像加载/TCPIP 事件的简单工具,使用此代码,您可以监控新进程,还可以查看新线程(线程启动事件)+远程线程注入技术检测(这意味着您的新线程由另一个进程创建到目标进程中),也可以使用此代码监视所有进程的内存中的 VirtualMemAllocation 事件(有时这对于内存中的有效负载检测非常有用)您还可以看到每个进程的 ImageLoads &您也可以看到每个进程的 TCPIP 发送事件。
在这个简单的示例中,您可以看到我们如何使用 ETWProcessMon/2 v1/v1.1 或 v2.1 通过异常 ETW VirtualMemAlloc 事件和线程启动事件进行负载检测或信标检测。
ETWProcessMon.exe v1.0/v1.1/v2.0 与 ETWProcessMon2.exe v2.1 通过 VirtualMemAlloc ETW 事件进行信标检测….

ETWProcessMon.exe v1.0/v1.1/v2.0 与 ETWProcessMon2.exe v2.1 通过 VirtualMemAlloc ETW 事件进行信标检测….

同样在下一张图片中,您可以看到我们在 ETWProcessMon v1.0、v1.1 和 v2.0 制作的“ETWProcessMonlog.txt”文件中可以找到的内容,但在 ETWProcessMon2.exe v2.1 中我们没有此文本日志文件,例如,您可以在带有睡眠命令的 Cobaltstrike v4.4 中看到(它将在内存中加密/解密 MZ 标头)您将在本例“记事本”中看到目标进程的异常 ETW VirtualMemAlloc 事件,如您所见睡眠设置为 2,然后我们每 2 秒为进程记事本的相同 StartAddress(内存中)有一个 ETW VirtualMemAlloc 事件。(每个 ETW 事件的增量时间为 2 秒,因为睡眠设置为 2 秒)
ETWProcessMon.exe v1.0/v1.1 用于通过 VirtualMemAlloc ETW 事件进行信标检测….

当您将延迟执行(DelayExecution,SleepEx API)从 2 更改为 4 时,您将在内存中每 4 秒(增量时间)为记事本进程(实时)提供 ETW VirtualMemAlloc 事件
ETWProcessMon.exe v1.0/v1.1 用于通过 VirtualMemAlloc ETW 事件进行信标检测….

在这个简单的示例中,您可以看到我们如何使用 ETWProcessMon2.exe v2.1 + ETWPM2Monitor2.exe v2.1 通过 ETW 事件进行技术检测和有效负载检测,在这种情况下,系统调用技术由 ETW 事件和 ETWPM2Monitor2 v2.1 检测
ETWProcessMon2.exe v2.1 + ETWPM2Monitor2 v2.1 用于通过 ETW 事件进行技术检测….

注意:VirtualMemAlloc for (Payload-Detection) + ImageLoad & Remote-Thread-Injection Detection for (Technique-Detection) 对蓝队/防御者很有用,创建了新代码“VirtualMemAllocMon.exe”,在此代码中你可以监控所有 VirtualMemAlloc 事件对于不使用“ETWProcessMon2.exe”的所有进程获取更多信息=>(https://github.com/DamonMohammadbagher/ETWProcessMon2/tree/main/VirtualMemAllocMon)
注意:在 ETWProcessMon2 (v2.0) 中,NewProcess 事件 + 远程线程注入检测事件 + TCPIP 发送事件都将保存在 Windows 事件日志中,您可以使用 EventViewer 查看它们,VirtualMemAlloc 事件 + 远程线程注入检测事件也将保存在文本“ETWProcessMonlog.txt”日志文件中也(同时)。所以在这个版本 2 中,我们有两种类型的事件日志文件 => 1.“windows 事件日志 [ETWPM2]”,2.“ETWProcessMonlog.txt”。
注意:ETWProcessMon2.1 (v2.1) 是新版本的代码,在这个新版本中,VirtualMemAlloc Events 从源代码中删除,这意味着现在我们没有 VirtualMemAlloc Events 的文本日志文件,现在代码性能非常快/好(这个版本的 ETWProcessMon2.1 将与 ETWPM2Monitor2 v2.1 一起工作,非常适合通过 ETW 事件进行技术/有效载荷检测)但是如果你想要 ETW 的 VirtualMemAlloc 事件,你可以使用 VirtualMemAllocMon.exe v1.1 C# Source code 这是基于 ETW 的内存扫描器VirtualMemAlloc 事件。
注意:ETWProcessMon2.exe (v2.1) & ETWPM2Monitor2.exe (v2.1) 发布在“bin”目录中。(2022 年 2 月 8 日)
事件日志 [ETWPM2] 中的 ETW 事件:
[Information] Event ID 1 => NewProcess event
[Warning] Event ID 2 => Remote-Thread-Injection Detection event
[Information] Event ID 3 => TCPIP Send event
构建项目注意:您应该在 ETWProcessMon2 的项目中安装此 nuget
PM> Install-Package Microsoft.Diagnostics.Tracing.TraceEvent -Version 2.0.69
or
PM> Install-Package Microsoft.Diagnostics.Tracing.TraceEvent -Version 2.0.70
md5 信息 [ETWProcessMon2.exe],“exe 文件在 github 中不安全,因此请自行使用 C# 源制作您自己的 exe 文件 [我推荐]”:
b913a0d66d-750478c5a8-1d557aad377d => ETWProcessMon2.exe
951aef1888-093fca9e67-d881615ed10b => ETWProcessMon2.exe (v2.1) 16,May,2022
视频:
视频:https://www.youtube.com/watch?v=DMtMTkAfFNo
此视频适用于(版本 1),ETWProcessMon.exe v1 下载和(详细步骤)=> https://github.com/DamonMohammadbagher/ETWNetMonv3
视频 [3],[第 15 章第 2 部分的视频 3]:(视频是关于 C# + ETW 与 Process Hollowing、DInvoke(系统调用)、从内存加载 dll/函数、Classic-RemoteThreadInjection)
C# + ETW 与一些线程/进程/代码注入技术 (CH15-Part2):
链接 1 => https://www.youtube.com/watch?v=d1a8WqOvE84
link2 => https://share.vidyard.com/watch/4kB2Xy1bLfhRxaTD6pwaLD
VirtualMemAllocMon.exe v1.1 & VirtualMemAllocMon.exe v2.0
VirtualMemAllocMon 用于通过 ETW 监视 VirtualMemAlloc 事件,当您的代码调用某些本机 API(如“VirtualAllocEx”)时,此事件将通过 ETW 发生。(所有进程的 VirtualMemAlloc 事件 [内存中] 的有效负载检测)。
“VirtualMemAllocMon”是通过 ETW 监视所有进程中的 VirtualMemAlloc 事件的简单工具,使用此代码,您可以监视每个进程的新 VirtualMemAlloc 事件,目标是有效负载检测,我的重点是“本地创建线程”和“远程线程注入” + Meterpreter payload & Pe "MZ header" in-memory 由 Meterpreter x64 payload 或 Cobaltstrike x86 payload 生成。这段代码有时对防御者和蓝队有用,但渗透测试者/红队也可以使用它。
md5信息:
25d54c2073-74411e9f4f-7488ee33cc78 => VirtualMemAllocMon.exe (v1.1) 16,May,2022
d42ca87133-977815440d-be8bd04c9589 => VirtualMemAllocMon.exe (v2.0.0.1) 16,May,2022
VirtualMemAllocMon v2.0 和 VirtualMemAlloc ETW 事件

VirtualMemAllocMon v1.1 & VirtualMemAlloc ETW 事件 + 内存地址(ProcessHacker & Pe Header)

有关此代码的更多信息和带有图片的详细信息 => https://github.com/DamonMohammadbagher/ETWProcessMon2/tree/main/VirtualMemAllocMon
SysPM2Monitor2.7.exe
此工具 [SysPM2Monitor2 v2.7] 用于监控 Sysmon 事件日志,此代码几乎与 ETWPM2Monitor2.exe 代码相同,但在这种情况下,此代码与 Sysmon 事件集成,因此在这种情况下我们没有所有 ETW 事件,但我们有此工具中的 ETW VirtualMemAllocMon 代码因此我们同时拥有 Sysmon 日志 + ETW VirtualMemAlloc 日志(通过 ETW VirtualMemAlloc 事件的内存扫描器)…
链接: https: //github.com/DamonMohammadbagher/ETWProcessMon2/tree/main/SysPM2Monitor2.7
笔记:"sysmonconfig-export.xml" file was my rules for test sysmon so you should use these rules in this file for sysmon but only Event IDs 1,3,8,25 are important for this tool and you do not need other events IDs for running SysPM2Monitor2.7 so you can use your own rules with these Events IDs too.
Sysmon 配置 => https://github.com/SwiftOnSecurity/sysmon-config
SysPM2Monitor2.7 [v 2.7.12.58](2022 年 2 月 28 日)

重要的:this Code will use memory scanner "VirtualMemAllocMon.exe" v1.1 so before run SysPM2Monitor2.7 you need copy/paste this exe to \SysPM2Monitor2.7\Bin\Debug\VirtualMemAllocMon\Debug\ folder you can download/compile source code for VirtualMemAllocMon v1.1 from here => https://github.com/DamonMohammadbagher/ETWProcessMon2/tree/main/VirtualMemAllocMon or you can use exe file in github.
VirtualMemAllocMon.exe v1.1 => https://github.com/DamonMohammadbagher/ETWProcessMon2/tree/main/VirtualMemAllocMon
重要的:this Code will use memory scanners "pe-sieve64.exe" & "hollows_hunter64.exe",so before run SysPM2Monitor2.7 you need download/paste these exe files to \SysPM2Monitor2.7\Bin\Debug\ folder then you can run SysPM2Monitor2.7.exe , you can download these files from here link1: https://github.com/hasherezade/pe-sieve link2: https://github.com/hasherezade/hollows_hunter.
视频 1 : https://www.youtube.com/watch?v=E7mB1we9GhU
视频 2:https ://www.youtube.com/watch?v=Q8fSpUXR2kw
md5信息:
3d81808d17-7d0fb89ed8-1b20e2d03f36 => SysPM2Monitor2_7.exe [v2.7.20.70]
注意:SysPM2Monitor2_7.exe 会将所有系统/检测日志保存到 Windows 事件日志名称“SysPM2Monitor2_7”。
[information] EventId 1 is for Scanned events.
[warning] EventId 2 is for Terminated, Suspended, Scanned & Found events.
[warning] EventId 4 is for Found Shell events.
逐步运行SysPM2Monitor2_7.exe
step1: config your Sysmon rules
step2: make folder "c:\test"
step3: copy/paste SysPM2Monitor2_7.exe to test folder
step4: download/paste memory scanners Pe-sieve64.exe/hollows_hunter64.exe to the test folder.
step5: download/paste ETW Memory scanner VirtualMemAllocMon.exe v1.1 to folder "c:\test\VirtualMemAllocMon\Debug\"
step6: SysPM2Monitor2_7.exe (Run as Admin)
用法:
SysPM2Monitor2_7.exe (Run as admin)
ETWPM2Monitor2.exe (v2.1)
“ETWPM2Monitor2”[v2.1] 是用于实时事件日志监视器的简单 C# 代码,但此代码仅适用于由“ETWProcessMon2.exe”创建的日志名称“ETWPM2”,因此您需要以管理员身份运行“ETWProcessMon2.exe”( step1) 在使用“ETWPM2Monitor2.1.exe”之前(step2)监视由“ETWProcessMon2.exe (v2.1)”制作的窗口事件日志。
此工具 [ETWPM2Monitor version2] 用于监视 ETW 事件日志 [日志名称:ETWPM2],由 ETWProcessMon2.exe 制作,目标是监视 RemoteThreadInjection 技术(通过 ETW 进行技术检测和有效负载检测)。
! Note: ETWPM2Monitor2 v2.1 is new version of code & you can use this code with ETWProcessMon2.1 (v2.1),
! this version ETWPM2Monitor2 v2.1 will work with ETWProcessMon2.1 and both are
! very fast for (Remote-Thread-Injection) Technique/Payload Detection via ETW Events)
+ code performance now is good and "a lot bugs" fixed. New Memory Scanner Added to source code, CobaltStrikeScan.exe, C# code made by Apr4h.
+ last source/exe update(47) v2.1.47.480 [Oct 31, 2022]...
视频:https://www.youtube.com/watch?v=DMtMTkAfFNo
注意:“ETWPM2Monitor2 v2.1”代码在这里发布 => https://github.com/DamonMohammadbagher/ETWProcessMon2/tree/main/ETWPM2Monitor2
注意:EventIDs 1、2、3、4、5、255,这些事件将由 ETWPM2Monitor2.1 保存在 Windows 事件日志名称“ETWPM2Monitor2”中:
[Information] Event ID 1 : Detected + Scanned but not found
[Warning] Event ID 2 : Detected + Scanned & Found or Suspended or Terminated via ETW Injection Events
[Informarion] Event ID 3 : Detection for Meterpreter Traffic only via ETW Tcp Events
[Warning] Event ID 4 : Detection for Shell Activity via ETW New Process Events
[Informarion] Event ID 5 : ETWPM2 (Injection Events) Tab : TargetProcess, InjectorProcess, MZ header in bytes + Injection Bytes
md5 信息 [ETWPM2Monitor2.exe],“exe 文件在 github 中不安全,因此请自行使用 C# 源制作您自己的 exe 文件 [我推荐]”:
bc42bb0ace-5de9f8ed08-e26c46503614 => ETWPM2Monitor2.exe (v2.1) [v2.1.47.480] 31,Oct,2022
ETWPM2Monitor2 v2.1 [v2.1.41.380]

ETWPM2Monitor2 v2.1 [v2.1.33.194]

ETWPM2Monitor2 v2.1 [v2.1.18.84]

注意:使用“ETWPM2Monitor2 v2”代码,我们有“Pe-sieve64.exe”作为内存扫描器,因此要使用您需要下载这些 exe 文件并将它们粘贴到与 ETWPM2Monitor2.exe 相同的文件夹中,我用 Pe-sieve64.exe 测试了 ETWPM2Monitor2 (版本 0.2.9.6)。
关于 (ETWPM2Monitor2.exe & ETWProcessMon2.exe) + VirtualMemAlloc ETWProcessMon2 制作的 ETW 事件的相关文章:
链接 1: https: //www.linkedin.com/pulse/etwpm2monitor2-remote-thread-injection-detection-etw-mohammadbagher
链接2:https://damonmohammadbagher.github.io/Posts/12aug2021x.html
有关 (VirtualMemAllocMon.exe & ETWProcessMon2.exe) + VirtualMemAlloc ETW 事件的相关视频由 ETWProcessMon2 制作:
视频2:
ETWPM2Monitor2 视频(第 2 版)=> https://www.linkedin.com/posts/damonmohammadbagher_etwprocessmon2-etwpm2monitor-v2-almost-activity-6828777557819752448-6dbv/
使用此应用程序,您可以使用“ETWProcessMon2.exe”制作的“EventIDs 1,2 & 3”观看[实时 ETW 事件]
[Information] Event ID 1 => NewProcess event
[Warning] Event ID 2 => Remote-Thread-Injection Detection event
[Information] Event ID 3 => TCPIP Send event
在此工具中,您可以使用过滤器非常简单地实时观看这些事件(按 EventID 过滤),也可以将过滤后的事件保存到文本文件中。
构建项目注意:如果构建项目名称“ETWPM2Monitor”有错误,请阅读此页面=> [ https://github.com/DamonMohammadbagher/ETWProcessMon2/tree/main/ETWPM2Monitor#readme ]
注意:使用“ETWProcessMon2”,您可以在 Windows 事件日志中创建 ETW 事件,因此您也可以通过 Windows EventViewer 观看它们,但是使用此工具,您可以实时查看它们(新事件刷新的结果),这将帮助您作为 Defender/Blue Teamer用于 RemoteThredInjection Detection + TCPIP 流量等。
注意:运行“ETWPM2Monitor.exe”后,此代码将显示所有 3 个没有过滤器的 EventIDs 1、2、3,但您可以使用过滤器菜单来更改它非常简单。
注意:过滤器 [EventIDs 1,2] 如果您想知道创建了哪个进程以及在执行有效负载后进行了哪些 RemoteThreadInjection Detection 等…
注意:Filter [EventIDs 2,3] 如果你想知道是好的,在 RemoteThreadInjection 之后你会有 TCPIP Network Traffic (Send Traffic)。
注意:这个 ETWPM2Monitor 是 [测试版本] & 这个代码需要测试更多 & 更多 ;)
新视频 ETWPM2Monitor v1.2:
视频链接2:https ://share.vidyard.com/watch/PjBybo5BNHbfCXazoLmN6f
用法:
step1: [win, Run As Admin] ETWProcessMon2.exe > Save_all_outputs.txt
step2: [win, Run As Admin] ETWPM2Monitor2.exe
ETWPM2Monitor2 v2.1 [v2.1.15.53](代码的最后更新和所有检测现在将保存到 Windows 事件日志 [ETWPM2Monitor2])

ETWPM2Monitor2 v2.1 [v2.1.11.35](通过 [EventID 1] 和 Meterpreter 流量数据包通过 [EventID 3] 检测 shell 的 Cmd.exe)

ETWPM2Monitor2 & 通过 ETW 事件与内存扫描器 Pe-sieve64.exe(ProcessHollowing 技术检测)集成

通过 ETW 事件进行 ETWPM2Monitor2 和 RemoteThreadInjection 检测

ETWPM2Monitor v1.2 [测试版本1.2.10.18]
1.ETWPM2Monitor v1.2 & Remote-Thread-Injection (经典)


2.ETWPM2Monitor v1.2 & Process Hollowing (C#)



ETWProcessMon2.exe
- ETWProcessMon2.cs (ETWProcessMon v2)
注意:“此代码测试了针对一些新/旧方法的检测,例如用于 Process Hollowing 的 C# 代码、DInvoke(系统调用)、从内存加载 dll/函数 [32BIT]、Classic-RemoteThreadInjection、APC 队列代码注入、Process-Ghosting、Process [Minjector] 的挖空和工艺 Doppelganging,…”
注意:在 EventViewer 中,您应该将日志名称“ETWPM2”的日志限制 [最大日志大小] 至少从 1mb 更改为 10mb,否则事件日志将被覆盖 ;)
用法:
step1: [win, Run As Admin] ETWProcessMon2.exe
example 1: ETWProcessMon2.exe
example 2: ETWProcessMon2.exe > Save_all_outputs.txt
Note: in "example 2" you can have all outputs in text file [Imageload/TCPIP/NewThreads events + Injection Detection + Details etc] also at the same time VirMemAlloc events + Injections Detection events saved into log file ETWProcessMonlog.txt
Note: also in this ver2 NewProcess/Remote-Thread-Injection events + TCPIP Send Events will save in Windows Event Logs (log name => ETWPM2).

通过事件日志(ETWPM2 事件)检测 ETWProcessMon2.exe 和远程线程注入

Note: about Debug info => TID 228 Injected to Notepad:4060 by this process "NativePayload_TId.exe:3972"
Note: about Debug info => TID::TIDWin32StartAddress:ParentThreadID:ParentID/Injector
通过事件日志(ETWPM2 事件)检测 ETWProcessMon2.exe 和远程线程注入
ETWProcessMon2.exe & TCPIP 通过事件日志发送事件(ETWPM2 事件)
带有“ETWProcessMonlog.txt”的所有进程中的 ETWProcessMon2.exe 和 VirtualMemAlloc 事件(文本日志文件 + VirtualMemAlloc 事件)
注意:您可以在回调 API 函数技术 (CBT) 中看到,我们没有用于在目标进程中执行有效负载的远程线程注入,但是通过 ETW 制作的 VirtualMemAlloc 事件,您可以在目标进程等中找到 Meterpreter 有效负载(有效负载检测)。