内容简介:处于客户的某种需求需要对windows系统进行进程监控,想了几个办法,但是走了一些弯路,不过好在还是实现了最开始想到的是hook,后记录cmd命令,后来小伙伴提示不仅仅是cmd命令。还有其他的进程信息。这类例举了一些可以依赖于系统实现和记住第三方实现的方式
处于客户的某种需求需要对windows系统进行进程监控,想了几个办法,但是走了一些弯路,不过好在还是实现了
最开始想到的是hook,后记录cmd命令,后来小伙伴提示不仅仅是cmd命令。还有其他的进程信息。这类例举了一些可以依赖于系统实现和记住第三方实现的方式
1. 系统自带的gpedit.msc
实际上,在win10、win8、win2012、win2016上面,是可以手动开启4688进程记录的,并且记录详细的命令信息。开启方法如下。
打开gpedit.msc
计算机配置 > 策略 > Windows 设置 > 安全设置 > 高级审核配置 > 详细跟踪>审核创建进程
然后到
管理 模板\系统\审核创建的进程\在创建事件的过程中包含命令行
2. 借助工具sysmon可以实现
https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
Sysmon.exe -accepteula -i -l -n Sysmon64.exe -accepteula -i -l -n
与此执行相关联的标志是:
-l:记录模块的加载。(可选)列出要跟踪的进程列表
-i: 安装服务和驱动程序。(可选)获取配置文件。
-n: 记录网络连接。(可选)列出要跟踪的进程列表。
只需键入以下命令即可查看配置: Sysmon -c
安装好以后会在%SystemRoot%\System32\Winevt\Logs\出现Microsoft-Windows-Sysmon%4Operational.evtx
此外,Sysmon还允许我们创建可自定义的配置文件,允许我们根据系统上发生的某些活动创建Windows事件日志记录。例如,您可以通过监视进程wmiprvse.exe来告诉Sysmon开始监视与WMI命令执行相关的活动。配置文件格式全部采用XML格式,因此您可以自行定制。如果您不想出于任何原因自定义XML文件,则可以从此Github资源sysmon配置下载Sysmon的特定 配置文件 列表 。下载任何配置文件后,只需将它们与-c标志一起运行,如下例所示
Sysmon64.exe -c c:\Scripts\Sysmon\scripts\T0000_wmic_remote.xml -l -n Sysmon64.exe -c c:\Scripts\Sysmon\scripts\T1138_appcompat.xml -l -
给出一个配置文件例子
<Sysmon schemaversion="3.4"> <!-- Capture all hashes --> <HashAlgorithms>*</HashAlgorithms> <EventFiltering> <!-- Event ID 1 == Process Creation. --> <ProcessCreate onmatch="include"> <ParentImage condition="end with">wmiprvse.exe</ParentImage> <ParentImage condition="contains">cmd.exe</ParentImage> <ParentImage condition="contains">wscript.exe</ParentImage> <ParentImage condition="contains">svchost.exe</ParentImage> <ParentImage condition="contains">powershell.exe</ParentImage> <ParentImage condition="contains">mshta.exe</ParentImage> <ParentImage condition="contains">office</ParentImage> <Image condition="end with">cscript.exe</Image> <Image condition="end with">wscript.exe</Image> <Image condition="end with">cmd.exe</Image> <Image condition="end with">powershell.exe</Image> <Image condition="end with">sh.exe</Image> <Image condition="end with">bash.exe</Image> <Image condition="end with">scrcons.exe</Image> <Image condition="end with">regsvr32.exe</Image> <Image condition="end with">hh.exe</Image> </ProcessCreate> <!-- Event ID 2 == File Creation Time. --> <FileCreateTime onmatch="include"/> <!-- Event ID 3 == Network Connection. --> <NetworkConnect onmatch="include"/> <!-- Event ID 5 == Process Terminated. --> <ProcessTerminate onmatch="include"/> <!-- Event ID 6 == Driver Loaded. --> <DriverLoad onmatch="include"/> <!-- Event ID 7 == Image Loaded. --> <ImageLoad onmatch="include"/> <!-- Event ID 8 == CreateRemoteThread. --> <CreateRemoteThread onmatch="include"/> <!-- Event ID 9 == RawAccessRead. --> <RawAccessRead onmatch="include"/> <!-- Event ID 10 == ProcessAccess. --> <ProcessAccess onmatch="include"/> <!-- Event ID 11 == FileCreate. --> <FileCreate onmatch="include"/> <!-- Event ID 12,13,14 == RegObject added/deleted, RegValue Set, RegObject Renamed. --> <RegistryEvent onmatch="include"/> <!-- Event ID 15 == FileStream Created. --> <FileCreateStreamHash onmatch="include" /> <!-- Event ID 17,18 == PipeEvent. Log Named pipe created & Named pipe connected --> <PipeEvent onmatch="include"/> <!-- Event ID 19,20,21, == WmiEvent. Log all WmiEventFilter, WmiEventConsumer, WmiEventConsumerToFilter activity--> <WmiEvent onmatch="include"/> </EventFiltering> </Sysmon>
正如您在上面的示例中所看到的,HashAlgorithms中的*(星号)符号 XML只是告诉Sysmon计算已执行进程的所有可能哈希值(即MD5,SHA1,SHA256和IMPHASH)。当您阅读Logstash配置部分时,您将看到如何将这些哈希值拆分到它们自己的字段以及如何在Kibana中创建每个字段的表。好吧,在流程创建部分,您可以设置流程名称的触发器,包括设置父子流程,每个触发器的条件等。Sysmon还允许您为网络连接生成其他事件,加载驱动程序并继续列表。我建议您在其他在线资源中阅读Sysmon,以便掌握Sysmon的全部功能。其中一些资源在本文末尾的参考部分中提到。
3. 开启powershell记录
可以借助wevtutil来实现
wevtutil Set-Log "Microsoft-Windows-PowerShell/Analytic" /q:true /e:true
PowerShell v3/v4 全面的日志记录
借助对 Windows 事件跟踪 (ETW) 日志、模块中可编辑的 LogPipelineExecutionDetails属性和“打开模块日志记录”组策略设置的支持,Windows PowerShell 3.0 改进了对命令和模块的日志记录和跟踪支持。 自PowerShell v3版本以后支持启用PowerShell模块日志记录功能,并将此类日志归属到了4103事件。最新的PowerShell v5 提供反混淆功能
启用脚本块日志可以以管理员权限运行PowerShell v5,并运行以下命令即可:
Install-Module -Name scriptblocklogginganalyzer -Scope CurrentUser set-SBLLogSize -MaxSizeMB 1000 Enalbe-SBL
或者通过GPO启用PowerShell脚本块日志记录功能并记录脚本文件的调用信息:
计算机配置\策略\管理模板\ Windows组件\ Windows PowerShell
先启用模块日志记录
再打开powershell脚本块日志记录
当然也可以通过修改以下注册表选项来开启:
HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging → EnableScriptBlockLogging = 1
查看powershell事件记录id4103可以看到具体执行的命令
同时sysmon也检测到了
PowerShell 5.0支持Windows 7/2008 R2及更高版本的操作系统。虽然PowerShell 5.0的许多增强日志记录功能都被反向移植到4.0版,但还是建议在所有Windows平台上安装PowerShell 5.0。 PowerShell 5.0包含4.0中未提供的功能,包括可疑的脚本块日志记录。
对策就是需要使用powershell攻击的话,采用 降级powershell 是 最靠谱 的方式
win7升级powershell
https://docs.microsoft.com/en-us/powershell/wmf/overview下载适合的版本,打补丁的时候如果失败可以考虑退出杀软
4. 开启wmi记录
fireeye的大佬写了一个来记录
https://github.com/realparisi/WMI_Monitor
使用方式
Import-Module .\WMIMonitor.ps1 New-EventSubscriberMonitor
日志记录在应用程序中,以wsh事件id为8的事件
注意:在使用脚本之前,必须以管理员身份运行PowerShell。该脚本需要PowerShell版本3或更高版本(最新版本为5),并将作为两个单独的PowerShell函数在其当前状态下运行。
参考:
https://www.fireeye.com/blog/threat-research/2016/08/wmi_vs_wmi_monitor.html
https://mp.weixin.qq.com/s/mhwLrXlxz8LzoieWsstGvQ
https://www.fireeye.com/blog/threat-research/2016/02/greater_visibilityt.htmlPS
如果把这些进程传递到某一集中中心,加上端口,服务,文件等等。再把文件和进程以及端口丢到ioc,再加上某些特征。是不是又是一个新的态势
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 新机器挂载磁盘的命令记录
- 渗透技巧——获得Powershell命令的历史记录
- 渗透技巧——获得Powershell命令的历史记录
- Ubuntu修改Docker存储目录的命令记录
- git--git tag相关命令和实践记录
- thinkphp 5.0-5.1 命令执行流水账记录
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
民事诉讼程序研究
乔罗威茨 / 吴泽勇 / 2008-6 / 40.00元
《民事诉讼程序研究》共分为诉讼程式;扩散利益、分散利益和集体利益的保护;程式样式;当事人与法官;对判決的救济;程式改革。主要內容包括:民事诉讼;英美民事诉讼程式在20世纪的若干发展;论民事诉讼法的本质和目的等。一起来看看 《民事诉讼程序研究》 这本书的介绍吧!