CyberArk 安全审计
一个基于 PowerShell 的综合安全评估工具,用于 CyberArk 特权访问管理(PAM)平台。专为进攻型安全专业人员、红队和渗透测试人员设计。
该工具旨在通过网络远程对 CyberArk 服务器运行。它不需要在 CyberArk 服务器本身上执行。所有检查均通过网络使用 PVWA API、端口扫描和 Web 测试远程执行。
此工具执行的安全检查包括:CIS 基准合规性、供应商最佳实践、黑盒测试、网络安全分析、特定 CVE 漏洞检查(包括 2025 年 CVE)、机器身份安全、机密管理、零常设权限(ZSP)评估、身份治理以及增强的安全检查。
| 特性 | 描述 |
|---|---|
| 远程审计 | 所有检查均通过网络远程执行——无需安装在 CyberArk 服务器上 |
| OPSEC 模式 | 隐身扫描,具有可配置的延迟、抖动和更低的检测特征 |
| 代理支持 | 将所有流量通过 Burp Suite、ZAP 或其他拦截代理路由 |
| 计时攻击 | 通过响应时间分析检测用户枚举和盲注入 |
| JWT 安全 | 测试 none 算法绕过、密钥混淆、弱签名算法 |
| WebSocket 测试 | 发现实时端点并测试跨站点 WebSocket 劫持 |
| WAF 绕过 | 测试编码绕过、HTTP 参数污染、请求走私 |
| User-Agent 轮换 | 随机化或自定义 User-Agent 字符串以规避指纹识别 |
| 并行执行 | 可选的并行执行以加快扫描速度 |
| 静默模式 | 减少控制台输出,适用于自动化和脚本编写 |
| 凭证安全 | 安全处理,使用后清理内存 |
| 全面报告 | HTML 面板、7 个 CSV 文件和结构化 JSON,适用于程序化使用 |
| PoC 证据 | HTML 报告中包含请求/响应概念验证,适用于渗透测试 |
| 选择性执行 | 仅运行特定的检查类别(portscan、CVE、blackbox、authenticated、network) |
| 误报减少 | 基线指纹识别以消除 SPA catch-all 误报 |
| 身份认证测试 | StartAuthentication/ForgotUsername 信息泄露和枚举检查 |
| 要求 | 最低 | 推荐 |
|---|---|---|
| PowerShell | 7.0 | 7.x(最新版) |
| .NET Framework | 4.5 | 4.8+ |
| 操作系统 | Windows 10/Server 2016 | Windows 11/Server 2022 |
| 内存 | 2 GB 可用 | 4 GB 可用 |
| 审计阶段 | 所需的访问权限 |
|---|---|
| 阶段 1(未认证) | 对 PVWA 的网络访问(HTTPS/443) |
| 阶段 2(已认证) | 具有 Vault Admin 或 Auditor 角色的 CyberArk API 凭证 |
此脚本完全自包含,仅使用原生 PowerShell 和 .NET Framework 功能。无需安装其他工具或模块。
脚本利用:
System.Net.Sockets.TcpClient、System.Net.Security.SslStream 用于网络和 TLS 分析Invoke-WebRequest、Invoke-RestMethod 用于 HTTP/API 测试System.Security.Cryptography.X509Certificates 用于证书分析打开 PowerShell 并运行:```powershell $PSVersionTable.PSVersion
确保主版本为 **7 或更高版本**。如果不是,请[下载 PowerShell 7.x](https://github.com/PowerShell/PowerShell/releases)。
> **注意:** 此脚本需要 PowerShell 7.0 或更高版本。不支持 Windows PowerShell 5.1。
### 步骤 2:下载脚本
**选项 A:克隆仓库(推荐)**```powershell
git clone https://github.com/Logisek/HuntCyberArk.git
cd HuntCyberArk
选项 B:直接下载```powershell
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Logisek/HuntCyberArk/main/CyberArk-Security-Audit.ps1" -OutFile "CyberArk-Security-Audit.ps1"
### 步骤3:设置执行策略(如果需要)
如果您遇到脚本执行错误,请临时允许执行脚本:```powershell
# Check current policy
Get-ExecutionPolicy
# Set for current session only (recommended)
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
# Or unblock the downloaded script
Unblock-File -Path .\CyberArk-Security-Audit.ps1
为了正确进行TLS测试,请确保你的PowerShell会话支持TLS 1.2+:```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
### 第5步:测试连接
确认你可以访问PVWA服务器:```powershell
# Test basic connectivity
Test-NetConnection -ComputerName pvwa.domain.com -Port 443
# Test HTTPS endpoint
Invoke-WebRequest -Uri "https://pvwa.domain.com/PasswordVault/" -UseBasicParsing -TimeoutSec 10
PowerShell 7 提供了更好的性能和更佳的 TLS 支持:```powershell
winget install Microsoft.PowerShell
## 审计阶段与身份验证要求
审计分两个阶段进行,每个阶段有不同的身份验证要求:
### 第一阶段:未经验证的检查(无需凭据)
无需任何凭据即可运行的外部/黑盒测试:
- 网络安全(端口扫描,保险库端口暴露)
- TLS/SSL 配置与证书分析
- 黑盒 Web 安全(暴露的端点、信息泄露)
- PVWA 安全标头与 Cookie 安全
- CVE 特定漏洞测试(包括 2025 年 CVE)
- API 安全测试(未经身份验证的端点)
- 组件版本检测
- 时序攻击检测
- JWT/OAuth2 安全测试
- WebSocket 端点发现
- WAF 绕过测试
- CyberArk Identity/Privilege Cloud 身份验证端点测试(StartAuthentication、ForgotUsername)
**使用场景**:渗透测试、外部安全评估、快速侦察
### 第二阶段:经过身份验证的检查(需要 CyberArk API 凭据)
需要 CyberArk REST API 访问权限的深度配置审计:
- Safe 配置与权限
- 账户与凭据管理设置
- 平台配置
- 用户账户与保险库权限
- 身份验证方法设置
- 组件健康状态
- Master Policy、PSM、CPM、PTA 配置
- 机器身份安全(服务账户、AppID)
- 秘密管理(CP/CCP 配置)
- 零常设特权(JIT 访问评估)
- 身份治理(孤立身份、权限漂移)
- 云安全(AWS/Azure/GCP 集成)
- 灾难恢复(DR 保险库、HA 集群健康)
- 合规映射(NIST、SOC 2、PCI-DSS)
- Secrets Hub 集成(云原生秘密同步)
- 远程访问 / Alero 安全
- Kubernetes 秘密安全
- DevSecOps 流水线安全
- Privilege Cloud / SaaS 特定检查
- CyberArk Identity / Idaptive 集成
- 自定义插件安全
- 备份安全
- HSM 集成
- PTA 高级检测
- 第三方集成(SIEM、ITSM、SOAR)
- 运维卫生指标
- 攻击路径模拟
- 供应链完整性
- 网络分段
**所需权限**:建议使用 Vault Admin 或 Auditor 角色
## 功能特性
### 安全检查类别
| 类别 | 控制前缀 | 描述 |
|----------|---------------|-------------|
| CIS 基准 | 1.x - 8.x | CIS CyberArk PAM 基准 v1.0 合规 |
| 供应商最佳实践 | V1.x - V8.x | CyberArk 安全加固建议 |
| 黑盒测试 | BB1 - BB11 | 无需身份验证的外部安全测试 |
| 网络安全 | NET1 - NET7 | 端口扫描与网络暴露分析 |
| TLS 安全 | TLS1 - TLS4 | SSL/TLS 配置与密码套件分析 |
| CVE 检查 | CVE1 - CVE23 | 已知 CyberArk 漏洞检测(2018-2025) |
| 安全公告 | CA25-x | CyberArk 安全公告检查 |
| API 安全 | API1 - API5 | REST API 安全测试 |
| 身份验证安全 | AUTH1 - AUTH2 | CyberArk Identity/Privilege Cloud 身份验证端点测试 |
| **高级安全** | | |
| 机器身份 | MID1 - MID9 | 服务账户、AppID 和 AIM Provider 安全 |
| 秘密管理 | SEC1 - SEC14 | 凭据提供者/CCP 和 Conjur 安全 |
| 零常设特权 | ZSP1 - ZSP5 | JIT 访问和权限评估 |
| 身份治理 | IGA1 - IGA8 | 生命周期和权限管理 |
| EPM 集成 | EPM1 - EPM6 | 端点特权管理器检查 |
| 云安全 | CLD1 - CLD6 | 安全云访问检查 |
| 灾难恢复 | DR1 - DR5 | HA 和 DR 配置 |
| 合规映射 | COMP1 - COMP4 | NIST、SOC2、PCI-DSS 对齐 |
| 审计日志 | AUD1 - AUD4 | SIEM 和日志记录验证 |
| **安全态势扩展** | | |
| Secrets Hub | SH1 - SH6 | 云秘密同步健康、延迟、版本漂移 |
| 远程访问 / Alero | RA1 - RA6 | 供应商邀请、MFA、会话限制、设备绑定 |
| Kubernetes 秘密 | K8S1 - K8S8 | Secrets Provider、RBAC、Pod 安全、Conjur 追随者 |
| DevSecOps 流水线 | DSO1 - DSO6 | CI/CD 秘密检索、扩散检测、短生命周期令牌 |
| Privilege Cloud | PC1 - PC5 | 连接器健康、租户隔离、ISP 集成 |
| CyberArk Identity | IDN1 - IDN6 | SSO 集成、自适应 MFA、会话风险评分 |
| 自定义插件 | PLG1 - PLG5 | PSM/CPM 插件安全、数字签名、ACL |
| 备份安全 | BKP1 - BKP5 | 加密、文件权限、恢复测试 |
| HSM 集成 | HSM1 - HSM4 | HSM 健康、密钥包装、分区隔离 |
| PTA 深度分析 | PTAD1 - PTAD6 | 自定义规则、ML 质量、UEBA、告警疲劳 |
| 第三方集成 | TPI1 - TPI5 | SIEM/ITSM/SOAR 连接性、凭据健康 |
| 运维卫生 | OPS1 - OPS8 | 上线队列、CPM 失败、PSM 指标、许可 |
| 攻击路径模拟 | APS1 - APS6 | PtH、NTLM 中继、Kerberoasting、权限提升 |
| 供应链完整性 | SCI1 - SCI5 | 文件哈希、补丁时效、代码签名 |
| 网络分段 | NSG1 - NSG5 | 保险库隔离、组件 ACL、东西向监控 |
### 详细检查覆盖范围
#### CIS 基准合规(1.x - 8.x)
- 专用 Vault 服务器配置
- 防火墙规则和服务加固
- Master Policy 密码设置
- 密码复杂度和过期策略
- Safe 访问和权限
- 自动密码管理
- MFA 和 LDAP 安全
- PSM 会话录制
- 审计日志和 SIEM 集成
- TLS 配置
#### 供应商最佳实践(V1.x - V8.x)
- Master Policy 设置(有效期限、一次性密码、独占访问)
- PSM 录制、按键记录、剪贴板限制
- 账户发现和上线规则
- PTA 异常检测
- 连接组件安全
- 关联账户(登录/协调)
- PVWA HTTP 安全标头
- CPM 服务配置
#### 黑盒安全测试(BB1 - BB11)
- 暴露的敏感端点(Swagger、API 文档、管理页面)
- 信息泄露(版本、堆栈跟踪)
- 默认凭据测试
- 危险 HTTP 方法(PUT、DELETE、TRACE)
- Cookie 安全属性(Secure、HttpOnly、SameSite)
- CORS 配置错误
- 备份/配置文件暴露
- 目录列表
- SSL/TLS 证书问题
- 速率限制检测
- 已知漏洞模式
#### CyberArk Identity / Privilege Cloud 身份验证安全(AUTH1 - AUTH2)
- **StartAuthentication 信息泄露**:检测敏感数据暴露,包括:
- 预认证响应中的 Session ID 暴露
- 通过身份验证挑战进行用户枚举(有效用户与无效用户)
- MFA 机制泄露(UP、SMS、EMAIL、OATH、QR 等)
- 身份验证响应中的电子邮件/PII 泄露
- Tenant ID 暴露
- 身份验证配置详情
- **ForgotUsername 端点枚举**:通过密码恢复测试用户名枚举:
- 功能可用性检测
- 有效用户与无效用户的差异响应分析
#### 网络安全(NET1 - NET7)
- **端口扫描**:全面扫描 CyberArk 特定端口
- PVWA(443、80)
- Vault(1858、1859)
- 管理(RDP、SSH、WinRM)
- 数据库(MSSQL、MySQL、PostgreSQL、Oracle)
- 协议(SMB、NetBIOS、LDAP、SNMP)
- Vault 端口(1858)安全分析
- DNS 安全配置
#### TLS/SSL 安全(TLS1 - TLS4)
- 弱协议检测(SSLv2、SSLv3、TLS 1.0、TLS 1.1)
- 密码套件强度分析
- 弱密码检测(RC4、DES、3DES、MD5、NULL、EXPORT)
- 证书验证
- 密钥大小验证
- 签名算法检查