通过Windows事件日志介绍APT-Hunter

2021-03-09 15:08:15 浏览数 (1)

APT-Hunter是用于Windows事件日志的威胁搜寻工具,该工具能够检测隐藏在Windows事件日志中的APT运动,如果您是弄威胁情报的人,那么我保证您会喜欢使用此工具的,为什么?我将在本文中讨论原因,请注意,此工具仍为测试版,并且可能包含错误。

为什么要开发此工具?

许多分析员会忽略Windows事件日志,或者不知道在何处搜索可疑活动,而且大多数分析人员都知道在发生攻击时要收集哪些事件日志。我在SOC中担任安全专家,我们向客户提供威胁搜寻,事件响应和法证服务。通常,客户没有SIEM或日志收集器,这使得收集Windows事件日志非常困难。现在,如果您使用的是APT-Hunter,则将有:

在发生重大事件之前找出你可能不知道的可疑活动。 根据先前发现的APT攻击的事件来检测系统中的横向移动。 充分利用您收集的Windows事件日志。 更快的攻击检测,这将减少响应时间,以便快速遏制和消除攻击。 输出配置与timeketch兼容,因此您可以进行时间线分析。 在一个地方配置了60个重要的用例之后,您将需要花费时间在其他数据源上。 在短时间内调查多个服务器。 如果您没有太多时间进行深入调查,它会为您提供帮助。 免费的开源工具,将为您提供无限制的服务。 您可以将其用作过滤器把严重程度从百万个事件转换成数百个事件。

APT-Hunter如何工作?

APT-Hunter具有两个部分,它们可以一起工作以帮助用户快速获取所需的数据。该工具将用于加快Windows日志分析的速度,但永远不会取代深度日志分析。

收集日志:用户可以手动收集CSV和EVTX格式的日志,也可以使用本文后面讨论的powershell脚本自动提取所需的日志。 分析CSV日志:APT-hunter使用内置库(csv)来解析CSV日志文件,然后使用Regex为APT-Hunter中使用的每个事件提取字段。用户可以使用提取的字段来创建他们的用例。 分析EVTX日志:APT-hunter使用外部库(evtx)来解析EVTX日志文件,然后使用Regex为APT-Hunter中使用的每个事件提取字段。用户可以使用提取的字段来创建他们的用例。 分析日志:(SysmonSecuritySystemPowershellPowershell_OperationalScheduledTaskWinRMTerminalServicesWindows_Defender

APT-Hunter功能

提供带有timeketch格式的输出以直接上载并开始分析时间线。 基于严重性对事件进行分类,使过滤变得容易,并专注于重要的事件。 有一个日志收集自动化脚本来收集所有必需的日志,以节省导出重要日志所需的时间。 收集并分析(SysmonSecuritySystemPowershellPowershell_OperationalScheduledTaskWinRMTerminalServicesWindows_Defender)。 该规则在进行了许多实际测试,并提供了重要信息,从而减少了检测的时间。 基于python3,可以在任何系统上运行。您可以在受影响的系统上进行实时分析,也可以使日志脱机并在任何系统上进行分析。 使用Regex进行日志解析和提取。 该工具是基于Internet上发表的研究成果以及我本人进行的测试而构建的,目的是在一个工具中收集大多数有用的用例。 包括60多个用例以及安全和终端服务日志统计信息,不久将增加更多的用例。告别记忆用例和SIEM搜索。 现在,您无需设置SIEM,日志收集器解决方案的实例来帮助您解析和提取所需的数据,也不必继续查看具有数百万个事件的表。 记录统计信息,这将有助于您发现异常情况。 易于添加新的检测规则,因为字段清除且语法易于使用。 支持将Windows事件日志导出为EVTX和CSV。 分析师可以将新的恶意可执行文件名称直接添加到list中。 提供输出为excel表,每个Log作为工作表。 此版本只是开始,更多用例即将出现。

如何使用APT-Hunter

要做的第一件事是收集日志,使用powershell日志收集器可以轻松地自动收集所需的日志,而您只需以管理员身份运行powershell脚本即可。

代码语言:javascript复制
To collect the logs in EVTX format use : 
windows-log-collector-full-v3-EVTX.ps1 

To collect the logs in CSV format use : 
windows-log-collector-full-v3-CSV.ps1

APT-Hunter使用python3构建,因此要使用该工具,您需要安装所需的库。

代码语言:javascript复制
python3 -m pip install -r Requirements.txt

APT-Hunter易于使用,您只需使用参数-h即可打印帮助以查看所需的选项。

代码语言:javascript复制
# python3 APT-Hunter.py -h

usage: APT-Hunter.py [-h] [-p PATH] [-o OUT] [-t {csv,evtx}]
                     [--security SECURITY] [--system SYSTEM]
                     [--scheduledtask SCHEDULEDTASK] [--defender DEFENDER]
                     [--powershell POWERSHELL] [--powershellop POWERSHELLOP]
                     [--terminal TERMINAL] [--winrm WINRM] [--sysmon SYSMON]

optional arguments:
  -h, --help            show this help message and exit
  -p PATH, --path PATH  path to folder containing windows event logs generated by the APT-Hunter-Log-Collector.ps1
  -o OUT, --out OUT     output file name
  -t {csv,evtx}, --type {csv,evtx}
                        csv ( logs from get-eventlog or windows event log GUI
                        or logs from Get-WinEvent ) , evtx ( EVTX extension
                        windows event log )
  --security SECURITY   Path to Security Logs
  --system SYSTEM       Path to System Logs
  --scheduledtask SCHEDULEDTASK
                        Path to Scheduled Tasks Logs
  --defender DEFENDER   Path to Defender Logs
  --powershell POWERSHELL
                        Path to Powershell Logs
  --powershellop POWERSHELLOP
                        Path to Powershell Operational Logs
  --terminal TERMINAL   Path to TerminalServices LocalSessionManager Logs
  --winrm WINRM         Path to Winrm Logs
  --sysmon SYSMON       Path to Sysmon Logs

-p:提供包含使用powershell日志收集器提取的目录的路径(windows-log-collector-full-v3-CSV.ps1windows-log-collector-full-v3-EVTX.ps1)。

-o:输出生成项目的名称

-t:日志类型(如果是CSV或EVTX)

剩余的参数,如果您想分析单一类型的日志。

范例:

代码语言:javascript复制
#python3 APT-Hunter.py  -t evtx  -p /opt/wineventlogs/  -o Project1

#python3 APT-Hunter.py  -t csv  -p /opt/wineventlogs/  -o Project1

#python3 APT-Hunter.py  -t evtx  --security evtx/security.evtx -o Project2#python3 APT-Hunter.py -t evtx -p /opt/wineventlogs/ -o Project1` `#python3 APT-Hunter.py -t csv -p /opt/wineventlogs/ -o Project1` `#python3 APT-Hunter.py -t evtx --security evtx/security.evtx -o Project2

结果分为两页:

Project1_Report.xlsx:此Excel工作将包括APT-Hunter的每个Windows日志中检测到的所有事件

Project1_TimeSketch.csv:您可以将此CSV文件上传到timeketch,以便进行时间轴分析,以帮助您了解攻击的全貌。

下面是将TimeSketch CSV文件上传到timeketch实例的截图:

下图显示了excel中的输出:

1.每个日志源中的发现。

2.终端服务的统计信息,以使用户可以交互访问或使用RDP访问服务器GUI终端。

3.成功/失败身份验证的统计信息,以便获得身份验证摘要,以帮助您检测异常或不应该登录设备的用户。

APT-Hunter检测到的事件

[T1086]使用sysmon日志检测带有可疑参数的Powershell [T1543]检测操作Windows服务的Sc.exe [T1059]检测wscript或cscript运行脚本 [T1218.005]检测到系统中正在运行的Mshta [T1053]检测计划任务操作 [T1047]使用WMI远程运行命令 [T1082]系统信息发现 [T1117]使用Regsvr32绕过应用程序白名单 禁止进程连接到互联网 检测系统中正在运行的Psexec 检测到禁止连接到互联网的进程 检测Exchange Web服务利用,例如(CVE-2020-0688) 使用安全日志检测密码喷雾攻击 使用安全日志检测通过哈希攻击 使用安全日志检测可疑的枚举用户或组的尝试 使用Powershell操作日志检测Powershell操作(包括TEMP文件夹) 使用Powershell操作日志使用多个事件ID检测可疑的Powershell命令 使用Powershell日志使用多个事件ID检测可疑的Powershell命令 使用终端服务日志从袜子代理检测连接的RDP 使用终端服务日志从公共IP检测连接的RDP 从计算机Powershell远程处理中使用WinRM启动检测连接 使用WinRM启动连接以对Powershell远程计算机进行检测 使用安全日志使用Net命令检测用户创建 使用安全日志检测在可疑位置运行的进程 使用安全日志使用令牌提升检测特权提升 使用安全日志检测可运行的可执行文件 使用安全日志检测可疑的Powershell命令 使用安全日志检测通过管理界面创建的用户 使用安全日志检测Windows关闭事件 使用安全日志检测添加到本地组的用户 使用安全日志检测用户添加到全局组的用户 使用安全日志检测用户添加到通用组的用户 使用安全日志检测从全局组中删除的用户 使用安全日志检测从通用组中删除的用户 使用安全日志检测从本地组中删除的用户 使用安全日志检测从全局组中删除的用户 检测使用安全日志删除的用户帐户 检测到的审计日志已清除。 使用安全日志检测系统审核策略更改 使用安全日志检测计划的任务创建 使用安全日志检测计划的任务删除 使用安全日志检测计划的任务更新 使用安全日志检测启用的计划任务 使用安全日志检测禁用的计划任务 检测Windows Defender使用Windows Defender日志对恶意软件采取了措施 检测Windows Defender无法使用Windows Defender日志对恶意软件采取措施 使用Windows Defender日志检测Windows Defender发现的恶意软件 使用Windows Defender日志检测Windows Defender删除的恶意软件历史记录 检测Windows Defender检测到可疑行为使用Windows Defender日志的恶意软件 使用Windows Defender日志检测禁用的Windows Defender实时保护 使用Windows Defender日志检测Windows Defender实时保护配置已更改 使用Windows Defender日志禁用检测Windows Defender扫描的恶意软件 检测使用计划任务日志注册的计划任务 检测使用计划任务日志更新的计划任务 检测使用计划任务日志删除的计划任务 检测使用系统日志清除的系统日志 使用系统日志检测TEMP文件夹中安装有可执行文件的服务 使用系统日志检测系统中安装的服务 使用系统日志检测服务启动类型已更改 使用系统日志检测服务状态已更改

将来的功能

添加更多Windows事件日志支持 添加对交换日志的支持以检测更多的交换攻击 添加对IIS日志的支持以检测更多Web应用程序攻击 添加更多统计信息以帮助发现异常 威胁情报集成 sysmon的更多用例。

项目地址

APT-Hunter

0 人点赞