Bert-JanP/Incident-Response-Powershell
GitHub: Bert-JanP/Incident-Response-Powershell
这是一个基于PowerShell的数字取证与事件响应脚本集,用于自动化收集Windows设备上的安全事件数据并支持SIEM集成。
Stars: 796 | Forks: 111
# PowerShell 数字取证与事件响应
本仓库提供基于 PowerShell 的事件响应脚本。
# DFIR 脚本
[DFIR-Script.ps1](./DFIR-Script.ps1) 脚本用于收集 Windows 设备上的取证数据。主要功能包括:
- 收集超过 25 种潜在入侵指标。
- 基于 CSV 的导出文件,便于 SIEM 集成。
- 集成 Defender for Endpoint 实时响应。
# 细粒度响应脚本
这些脚本执行特定任务,例如收集 Windows 安全事件、重置活动用户会话,或将文件夹上传到 Azure Storage Blob。部分脚本使用 API 来检索或导出数据,每个脚本中描述了所需的权限。这些脚本是为事件响应周期设计的:
| 阶段 | 描述 |
|--------|-------------|
| [获取](./Acquisition/) | 用于在事件发生期间获取数据和证据的脚本和工具。 |
| [分析](./Analysis/) | 用于分析获取的数据以识别入侵指标并了解事件范围的脚本。 |
| [遏制](./Containment/) | 用于遏制事件以防止进一步损害和扩散的脚本和方法。 |
# 相关博客:
- [事件响应第三部分:利用实时响应](https://kqlquery.com/posts/leveraging-live-response/)
- [事件响应 PowerShell V2](https://kqlquery.com/posts/incident-response-powershell-v2/)
# DFIR 脚本使用说明
## DFIR 脚本 - 提取的取证数据
[DFIR 脚本](./DFIR-Script.ps1) 从多个来源收集信息,并在当前目录下以 'DFIR-_主机名_-_年_-_月_-_日_' 命名的文件夹中组织输出。该文件夹最终会被压缩,以便远程收集。此脚本也可在 Defender For Endpoint 的实时响应会话中使用(见下文)。当以普通用户身份运行时,DFIR 脚本收集以下信息:
- 本地 IP 信息
- 打开的连接
- 自启动信息(启动文件夹和注册表 Run 键)
- 活动用户
- 本地用户
- 从 Office 应用程序建立的连接
- 活动的 SMB 共享
- RDP 会话
- 活动进程
- 活动的 USB 连接
- PowerShell 历史记录
- DNS 缓存
- 已安装的驱动程序
- 已安装的软件
- 运行的服务
- 计划任务
- 浏览器历史记录和配置文件
为获得最佳体验,请以管理员身份运行脚本,届时将额外收集以下项目:
- Windows 安全事件
- 远程打开的文件
- 卷影副本
- MPLogs
- Defender 排除项
- 所有用户的 PowerShell 历史记录
## SIEM 导入功能
取证数据以 CSV 文件形式导出,允许响应人员将其导入 Sentinel、Splunk、Elastic 或 Azure Data Explorer 等工具中进行过滤、聚合和可视化。
文件夹 *CSV Results (SIEM Import Data)* 包含所有包含取证数据的 CSV 文件:
```
Name
----
ActiveUsers.csv
AutoRun.csv
ConnectedDevices.csv
DefenderExclusions.csv
DNSCache.csv
Drivers.csv
InstalledSoftware.csv
IPConfiguration.csv
LocalUsers.csv
NetworkShares.csv
OfficeConnections.csv
OpenTCPConnections.csv
PowerShellHistory.csv
Processes.csv
RDPSessions.csv
RemotelyOpenedFiles.csv
RunningServices.csv
ScheduledTasks.csv
ScheduledTasksRunInfo.csv
SecurityEvents.csv
ShadowCopy.csv
SMBShares.csv
```
## 执行脚本
可以通过运行以下命令来执行脚本。
```
.\DFIR-Script.ps1
```
该脚本未签名,可能需要使用 -ExecutionPolicy Bypass 参数来运行脚本。
```
Powershell.exe -ExecutionPolicy Bypass .\DFIR-Script.ps1
```
## Defender For Endpoint 实时响应集成
可以将这些脚本与 Defender For Endpoint 实时响应结合使用。请确保实时响应已设置(参见文档)。由于我的脚本未签名,必须更改设置才能运行该脚本。
有一篇博客文章详细介绍了如何在实时响应中利用自定义脚本:[事件响应第三部分:利用实时响应](https://kqlquery.com/posts/leveraging-live-response/)
要在实时响应中运行未签名的脚本:
- 访问 Security.microsoft.com
- 导航至 设置 > 端点 > 高级功能
- 确保已启用实时响应
- 如需要,为服务器启用实时响应
- 启用实时响应未签名脚本执行
执行脚本:
- 转到设备页面
- 发起实时响应会话
- 将文件上传到库以上传脚本
- 将脚本上传到库后,执行:```run DFIR-script.ps1``` 以启动脚本。如果希望使用参数运行脚本,应执行 ```run DFIR-Script.ps1 -parameters "-sw 10"```
- 执行 ```getfile DFIR-DeviceName-yyyy-mm-dd``` 以将检索到的取证数据下载到本地机器进行分析。
### 文档
- [Microsoft 文档 实时响应](https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/live-response?view=o365-worldwide)
- [DFE 用户权限](https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/user-roles?view=o365-worldwide)
- [Defender For Endpoint 设置 实时响应](https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/advanced-features?view=o365-worldwide#live-response)
标签:AI合规, Libemu, 子域枚举