通过 PowerShell 的潜在进程注入
编辑通过 PowerShell 的潜在进程注入
编辑检测恶意软件和安全工具常用的 Windows API 函数的使用,这些函数用于加载恶意代码或将其注入远程进程。
规则类型: 查询
规则索引:
- winlogbeat-*
- logs-windows.powershell*
严重性: 高
风险评分: 73
运行频率: 5 分钟
搜索索引时间范围: now-9m(日期数学格式,另请参阅 额外回溯时间
)
每次执行的最大警报数: 100
参考资料:
- https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-PSInject.ps1
- https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-ReflectivePEInjection.ps1
- https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1
- https://elastic.ac.cn/security-labs/detect-credential-access
标签:
- 域: 端点
- 操作系统: Windows
- 用例: 威胁检测
- 战术: 防御规避
- 战术: 执行
- 资源: 调查指南
- 数据源: PowerShell 日志
版本: 213
规则作者:
- Elastic
规则许可证: Elastic License v2
调查指南
编辑分类和分析
调查通过 PowerShell 的潜在进程注入
PowerShell 是系统管理员用于自动化、报表例程和其他任务的主要工具之一。这使得它可以在各种环境中使用,并为攻击者执行代码创建了一个有吸引力的方式。
PowerShell 还具有强大的能力,可以以简单可靠的方式与 Win32 API 进行交互,例如执行内联 C# 代码、PSReflect、Get-ProcAddress 等。
红队工具和恶意软件开发者利用这些功能开发阶段和加载器,这些阶段和加载器将有效负载直接注入内存,而无需接触磁盘,以规避基于文件的安全保护。
可能的调查步骤
- 检查触发检测的脚本内容;查找可疑的 DLL 导入、收集或数据泄露功能、可疑函数、编码或压缩数据以及其他潜在的恶意特征。
- 调查脚本执行链(父进程树)中是否存在未知进程。检查它们的执行文件是否普遍存在、是否位于预期位置,以及是否使用有效的数字签名进行签名。
- 检查来自相关 PowerShell 进程的文件或网络事件是否存在可疑行为。
- 调查过去 48 小时内与用户/主机相关的其他警报。
- 评估用户是否需要使用 PowerShell 来完成任务。
- 检查导入的函数是否已执行以及它针对哪个进程。
- 检查是否可以检索注入的代码(硬编码在脚本中或在命令行日志中)。
误报分析
- 此活动不太可能合法发生。如有必要,可以将良性真阳性 (B-TP) 添加为例外。
相关规则
- PowerShell PSReflect 脚本 - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe
响应和补救
- 根据分类的结果启动事件响应流程。
- 隔离相关主机以防止进一步的后期渗透行为。
- 使用 GPO、AppLocker、Intune 或类似软件限制 IT 和工程业务部门之外的 PowerShell 使用。
- 调查受攻击者入侵或使用的系统上的凭据泄露情况,以确保识别所有受损帐户。重置这些帐户和其他可能泄露的凭据的密码,例如电子邮件、业务系统和 Web 服务。
- 运行完整的反恶意软件扫描。这可能会揭示系统中遗留的其他工件、持久性机制和恶意软件组件。
- 确定攻击者滥用的初始向量,并采取行动以防止通过同一向量再次感染。
- 使用事件响应数据,更新日志记录和审计策略,以提高平均检测时间 (MTTD) 和平均响应时间 (MTTR)。
设置
编辑设置
必须启用PowerShell 脚本块日志记录日志记录策略。使用高级审计配置实施日志记录策略的步骤
Computer Configuration > Administrative Templates > Windows PowerShell > Turn on PowerShell Script Block Logging (Enable)
通过注册表实施日志记录策略的步骤
reg add "hklm\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" /v EnableScriptBlockLogging /t REG_DWORD /d 1
规则查询
编辑event.category:process and host.os.type:windows and powershell.file.script_block_text : ( (VirtualAlloc or VirtualAllocEx or VirtualProtect or LdrLoadDll or LoadLibrary or LoadLibraryA or LoadLibraryEx or GetProcAddress or OpenProcess or OpenProcessToken or AdjustTokenPrivileges) and (WriteProcessMemory or CreateRemoteThread or NtCreateThreadEx or CreateThread or QueueUserAPC or SuspendThread or ResumeThread or GetDelegateForFunctionPointer) ) and not file.directory: ( "C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\SenseCM" or "C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\Downloads" )
框架: MITRE ATT&CKTM
-
战术
- 名称: 防御规避
- ID: TA0005
- 参考 URL: https://attack.mitre.org/tactics/TA0005/
-
技术
- 名称: 进程注入
- ID: T1055
- 参考 URL: https://attack.mitre.org/techniques/T1055/
-
子技术
- 名称: 动态链接库注入
- ID: T1055.001
- 参考 URL: https://attack.mitre.org/techniques/T1055/001/
-
子技术
- 名称: 可移植可执行文件注入
- ID: T1055.002
- 参考 URL: https://attack.mitre.org/techniques/T1055/002/
-
战术
- 名称: 执行
- ID: TA0002
- 参考 URL: https://attack.mitre.org/tactics/TA0002/
-
技术
- 名称: 命令和脚本解释器
- ID: T1059
- 参考 URL: https://attack.mitre.org/techniques/T1059/
-
子技术
- 名称: PowerShell
- ID: T1059.001
- 参考 URL: https://attack.mitre.org/techniques/T1059/001/
-
技术
- 名称: 原生 API
- ID: T1106
- 参考 URL: https://attack.mitre.org/techniques/T1106/