PoisonXploIT/Auditing_with_PowerShell

GitHub: PoisonXploIT/Auditing_with_PowerShell

一款基于PowerShell的一键式Windows企业安全审计脚本,涵盖十大审计模块,自动收集系统信息并检测妥协指标,输出多格式结构化报告。

Stars: 2 | Forks: 0

![PowerShell](https://img.shields.io/badge/PowerShell-5.1%2B-5391FE?style=flat&logo=powershell) ![License](https://img.shields.io/badge/License-MIT-green) ![Platform](https://img.shields.io/badge/Platform-Windows-0078D4?style=flat&logo=windows) # 使用说明 - 完整企业审计 ## 描述 一键执行完整企业安全审计的高级 PowerShell 脚本。它收集关键的系统信息,检测妥协指标 (IOCs),并以多种格式生成报告。 ## 快速执行 (一键) ### 方法 1: 双击 (推荐) 1. 找到文件 `Auditoria_Empresarial_Completa.ps1` 2. 在文件上**右键单击** 3. 选择 **“使用 PowerShell 运行”** 4. 如果出现安全警告,请按 **“S”** 继续 ### 方法 2: 从 PowerShell ``` # 导航到脚本所在文件夹 cd C:\ruta\del\script # 执行脚本 .\Advanced PowerShell script.ps1 ``` ### 方法 3: 远程执行 (适用于多台服务器) ``` # 在远程服务器上执行 Invoke-Command -ComputerName SERVIDOR01 -FilePath ".\Auditoria_Empresarial_Completa.ps1" # 在多台服务器上执行 $servers = Get-Content "servidores.txt" $servers | ForEach-Object { Invoke-Command -ComputerName $_ -FilePath ".\Advanced Powershell Script.ps1" } ``` ## 系统要求 ### 必备要求 - **操作系统:** Windows 10, Windows 11, Windows Server 2016/2019/2022 - **PowerShell:** 版本 5.1 或更高 - **磁盘空间:** 至少 500 MB 可用空间 (用于存放结果) ### 推荐权限 | 权限级别 | 可获取的信息 | |---------------------|------------------------| | **普通用户** | 当前进程
网络连接
可访问的文件
安全事件 (受限)
系统配置 | | **管理员** | **以上所有 +**
完整安全事件
系统配置
审计日志
驱动和内核
所有用户的信息 | **建议:** 以**管理员**身份运行以进行完整审计。 ## 脚本分析什么内容? 该脚本执行涵盖所有关键区域的 **10 个审计模块**: ### 1.系统信息 - 操作系统和版本 - 硬件 (CPU, RAM, 磁盘) - 安装日期和最后一次重启 - 时区设置 ### 2. 用户和权限 - 本地用户及其配置 - 无密码账户 (严重) - 具有管理员权限的用户 - 特权组 (RDP, Backup Operators) - 已启用但未使用的账户 ### 3. 进程和服务 - 带有数字签名的运行中进程 - 无文件路径的进程 (非常可疑) - 所有进程的命令行 - 检测编码命令 (Base64) - 自动启动的服务 - 恶意模式 (Mimikatz, Invoke-Expression 等) ### 4. 网络和连接 - 活动的 TCP/UDP 连接 - 监听端口 (攻击面) - 到可疑端口的连接 (4444, 8080 等) - 具有外部连接的系统进程 (严重) - DNS 缓存 (访问过的域名) - 网络适配器配置 ### 5. 日志和安全事件 - 登录失败的尝试 (Event ID 4625) - 被锁定的账户 (Event ID 4740) - PowerShell 事件 (ScriptBlock Logging) - PowerShell 中的编码命令 - 关键的系统应用程序事件 ### 6. 文件和持久化 - 过去 24 小时内修改的文件 - 可疑的隐藏文件 - 注册表 Run Keys 中的持久化 - 活动的计划任务 - HOSTS 文件验证 - HOSTS 中的恶意重定向 ### 7. 安全配置 - PowerShell 执行策略 - 防火墙配置文件 (启用/禁用) - 活动的防火墙规则 - Windows Defender 状态 - 防病毒签名更新 - 网络共享 - UAC (User Account Control) 配置 ### 8. LOLBAS 检测 (Living Off the Land Binaries - 被恶意使用的合法二进制文件) - certutil, regsvr32, mshta, bitsadmin 的使用 - rundll32, wmic, 带有可疑参数的 PowerShell 的使用 - 检测规避技术 ### 9. 驱动和内核模块 - 系统中安装的驱动 - 无数字签名的驱动 (可能的 rootkits) - 供应商和版本信息 ### 10. 硬件和配置 - BIOS 信息 - 物理磁盘及其健康状态 - 分区和可用空间 - 网络适配器 (硬件) - 环境变量 ## 结果结构 完成后,脚本会创建一个具有以下结构的文件夹: ``` Auditoria_fecha RESUMEN_EJECUTIVO.txt ← LEER PRIMERO AMENAZAS_DETECTADAS.json/csv/txt auditoria.log 01_Sistema/ informacion_sistema.[json|csv|txt] 02_Usuarios/ usuarios_locales.* administradores_locales.* grupo_Remote_Desktop_Users.* 03_Procesos/ procesos_activos.* procesos_sin_ruta.* ← [!] REVISAR (SOSPECHOSO) procesos_con_comandos.* servicios.* 04_Red/ conexiones_tcp.* conexiones_establecidas.* ← [!] REVISAR conexiones externas puertos_escucha.* udp_endpoints.* dns_cache.* 05_Eventos/ logins_fallidos.* ← [!] REVISAR (Ataques de fuerza bruta) cuentas_bloqueadas.* powershell_scriptblock.* eventos_aplicacion.* eventos_sistema.* 06_Archivos/ archivos_modificados_24h.* archivos_ocultos_sospechosos.* ← [!] REVISAR persistencia_run_keys.* ← [!] REVISAR (Persistencia) tareas_programadas.* archivo_hosts.* 07_Configuracion/ powershell_execution_policy.* firewall_perfiles.* firewall_reglas.* windows_defender.* recursos_compartidos.* uac_configuracion.* 08_LOLBAS/ procesos_lolbas_activos.* ← [!] REVISAR eventos_lolbas.* 09_Drivers/ drivers_instalados.* drivers_sin_firma.* ← [!] REVISAR (Posibles rootkits) 10_Hardware/ bios_info.* discos_fisicos.* volumenes.* adaptadores_red_hardware.* variables_entorno.* ``` ### 导出格式 每个模块生成 **3 个文件**,包含相同的信息但格式不同: | 格式 | 扩展名 | 推荐用途 | |---------|-----------|-----------------| | **JSON** | `.json` | 自动分析
集成 SIEM
处理脚本 | | **CSV** | `.csv` | 在 Excel 中分析
过滤和排序
执行报告 | | **TXT** | `.txt` | 人工阅读
快速检查
文档记录 | ## 结果解读 ### 严重程度级别 脚本将威胁分为 4 个级别: | 级别 | 图标 | 含义 | 需要采取的行动 | |-------|-------|-------------|------------------| | **CRITICAL** | [CRITICO] | 已确认的严重威胁 | [!] **立即调查**
可能存在活动的妥协 | | **HIGH** | [ALTO] | 高优先级威胁 | [!] **24 小时内调查**
重大风险 | | **MEDIUM** | [MEDIO] | 中等威胁 |**1 周内调查**
不安全的配置 | | **LOW** | | 低优先级威胁 | [INFO] **记录文档**
建议审查 | ### 检测到的威胁示例 #### [CRITICO] 严重 (立即行动) - **具有外部连接的系统进程** - 示例:`svchost.exe` 连接到 IP 203.0.113.42 - **行动:** 调查进程,验证是否为恶意软件 - **编码的 PowerShell 命令** - 示例:`powershell.exe -enc ` - **行动:** 解码命令,分析 payload - [OK] **Windows Defender 已禁用** - **行动:** 验证是否被攻击者禁用 #### [ALTO] 高 (优先) - **到可疑端口的连接** - 示例:连接到端口 4444 (Metasploit) - **行动:** 识别进程,验证 C2 - **无文件路径的进程** - 示例:在内存中但没有磁盘文件的进程 - **行动:** 可能的 process injection 或 hollow **无密码的用户** - **行动:** 立即设置密码 #### [MEDIO] 中 - **隐藏的可执行文件** - **带有脚本的 Run Key** - **无限制的网络共享** ## 对检测到的威胁的响应 ### 事件响应工作流 ``` 1. DETECCIÓN (Script ejecutado) ↓ 2. TRIAJE (Revisar RESUMEN_EJECUTIVO.txt) ↓ 3. ANÁLISIS (Revisar AMENAZAS_DETECTADAS.csv) ↓ 4. CONTENCIÓN (Aislar sistema si es necesario) ↓ 5. ERRADICACIÓN (Eliminar amenaza) ↓ 6. RECUPERACIÓN (Restaurar configuración segura) ↓ 7. LECCIONES APRENDIDAS (Documentar) ``` ### 针对不同威胁类型的立即行动 #### 如果检测到:“到可疑端口的连接” ``` # 1. 识别进程 Get-NetTCPConnection -RemotePort 4444 # 2. 查看进程详情 Get-Process -Id | Select-Object * # 3. 查看命令行 (Get-WmiObject Win32_Process -Filter "ProcessId=").CommandLine # 4. 捕获进程内存(可选,需要 Procdump) procdump.exe -ma proceso_sospechoso.dmp # 5. 终止进程(如果确认为恶意) Stop-Process -Id -Force ``` #### 如果检测到:“编码的 PowerShell 命令” ``` # 解码 Base64 命令 $encodedCommand = "BASE64_STRING_AQUI" [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($encodedCommand)) # 分析解码后的内容 # 如果是恶意的,检查来源和传播 ``` #### 如果检测到:“无文件路径的进程” ``` # 高度可疑 - 可能是 process injection # 1. 列出没有路径的进程 Get-Process | Where-Object { $_.Path -eq $null -and $_.Name -ne "Idle" -and $_.Name -ne "System" } # 2. 查看父进程 $proc = Get-Process -Id $parentPID = (Get-CimInstance Win32_Process -Filter "ProcessId=$($proc.Id)").ParentProcessId Get-Process -Id $parentPID # 3. 捕获内存用于取证分析 # 4. 考虑隔离系统 ``` ## 自动化和计划 ### 使用计划任务运行定期审计 ``` # 创建计划任务以每周执行审计 $action = New-ScheduledTaskAction -Execute "PowerShell.exe" ` -Argument "-ExecutionPolicy Bypass -File C:\Auditoria\Auditoria_Empresarial_Completa.ps1" $trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 2:00AM $principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest Register-ScheduledTask -TaskName "Auditoria_Seguridad_Semanal" ` -Action $action -Trigger $trigger -Principal $principal ` -Description "Auditoría de seguridad empresarial automática" ``` ### 集成 SIEM (Splunk, ELK 等) 生成的 JSON 文件可以直接发送到 SIEM: ``` # 示例:将结果发送到 Splunk $splunkUrl = "https://splunk.empresa.com:8088/services/collector" $splunkToken = "YOUR-HEC-TOKEN" Get-ChildItem -Path "Auditoria_*" -Filter "*.json" -Recurse | ForEach-Object { $jsonContent = Get-Content $_.FullName -Raw Invoke-RestMethod -Uri $splunkUrl -Method Post ` -Headers @{"Authorization" = "Splunk $splunkToken"} ` -Body $jsonContent } ``` ## 故障排除 ### 问题:“脚本未运行 - 执行策略” **解决方案:** ``` # 临时(仅限当前会话) Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass # 永久(需要管理员权限) Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned ``` ### 问题:“访问安全日志被拒绝” **解决方案:** - 以管理员身份运行 PowerShell - 右键点击 PowerShell → “以管理员身份运行” ### 问题:“脚本运行时间过长” **原因:** - 具有大量文件的系统 (修改的文件模块) - 许多活动的网络连接 **解决方案:** - 正常:在标准系统上需要 5-10 分钟 - 如果超过 30 分钟,请检查磁盘/CPU 使用率 ### 问题:“部分模块失败” **解决方案:** - 检查 `auditoria.log` 文件以查看具体错误 - 验证系统要求 (PowerShell 5.1+) - 使用管理员权限运行 ## 其他资源 ### 参考文档 - [MITRE ATT&CK Framework](https://attack.mitre.org/) - [LOLBAS Project](https://lolbas-project.github.io/) - [CIS Benchmarks](https://www.cisecurity.org/cis-benchmarks/) - [NIST Cybersecurity Framework](https://www.nist.gov/cyberframework) ### 补充工具 - **Sysinternals Suite** (Microsoft) - Autoruns, Procmon, TCPView - **VirusTotal** - 文件哈希验证 - **CyberChef** - 混淆命令解码 - **Splunk/ELK** - 集中式日志分析 ### 联系与支持 - Email: analista@sammideblas.com ## 法律注意事项 ### 授权使用 **允许:** - 在您组织的系统上进行审计 - 在明确许可的情况下分析系统 - 授权的安全评估 **禁止:** - 未经授权扫描系统 - 在未经同意的情况下用于第三方系统 - 未经授权访问网络 **此脚本用于合法的安全目的。滥用可能违反法律。** ## 更新日志 ### 版本 2.0 (2025-11-03) - 高级 IOCs (Indicadores de Compromiso) 检测 - 多格式导出 (JSON, CSV, TXT) - LOLBAS (Living Off the Land) 分析 - 编码命令检测 - 带有风险级别的执行摘要 - 10 个完整的审计模块 - 可视化进度条 - 健壮的错误处理 - 带有注释的详尽文档 ## MIT 许可证 此脚本为 Sammi De Blas Kalloub 所有 **自由分发** **有疑问?** 请联系您公司的网络安全团队 ## 许可证 MIT 许可证 -- 详情请参阅 [LICENSE](LICENSE)。
标签:AI合规, AMSI绕过, Conpot, Homebrew安装, HTML报告生成, IOC检测, Libemu, Mr. Robot, OpenCanary, PDF报告生成, PowerShell脚本, TTP检测, Windows安全, Windows 调试器, 一键审计, 企业安全, 多模态安全, 威胁检测, 安全合规, 库, 应急响应, 数字取证, 数据包嗅探, 无线安全, 服务器管理, 流量嗅探, 系统信息收集, 系统运维, 网络代理, 网络安全审计, 网络资产管理, 自动化脚本, 蓝军工具