Deploys and configures Rapid7 InsightVM Security Console and Scan Engines for authenticated/unauthenticated vulnerability scanning in enterprise networks. Useful for vulnerability management setups.
npx claudepluginhub killvxk/cybersecurity-skills-zhThis skill uses the workspace's default tool permissions.
Rapid7 InsightVM(前身为 Nexpose)是企业级漏洞管理平台,通过 Security Console 和 Scan Engines 进行本地扫描,并借助 Insight Platform 提供基于云的分析。InsightVM 利用 Rapid7 漏洞研究库、Metasploit 漏洞利用知识、全球攻击者行为数据、全网扫描遥测数据和实时报告,提供全面的漏洞可见性。本技能涵盖部署 Security Console、配置 Scan Engines、设置扫描模板、认证扫描,以及与 Insight Agent 集成实现持续评估。
Deploy and configure Rapid7 InsightVM Security Console, Scan Engines, and agents for authenticated/unauthenticated vulnerability scanning in enterprises.
Deploys and configures Rapid7 InsightVM Security Console and Scan Engines for authenticated and unauthenticated vulnerability scanning in enterprise environments.
Builds structured vulnerability scanning workflows with Nessus, Qualys, OpenVAS to discover, prioritize via CVSS, and track remediation of infrastructure vulnerabilities for SOC teams integrating with SIEM.
Share bugs, ideas, or general feedback.
Rapid7 InsightVM(前身为 Nexpose)是企业级漏洞管理平台,通过 Security Console 和 Scan Engines 进行本地扫描,并借助 Insight Platform 提供基于云的分析。InsightVM 利用 Rapid7 漏洞研究库、Metasploit 漏洞利用知识、全球攻击者行为数据、全网扫描遥测数据和实时报告,提供全面的漏洞可见性。本技能涵盖部署 Security Console、配置 Scan Engines、设置扫描模板、认证扫描,以及与 Insight Agent 集成实现持续评估。
核心管理服务器,功能包括:
注意:Security Console 不支持容器化环境。
分布式扫描组件,功能包括:
轻量级端点代理,提供:
| 模板 | 用例 | 深度 |
|---|---|---|
| 发现扫描 | 资产清单、主机枚举 | 低 |
| 完整审计(不含 Web Spider) | 标准漏洞评估 | 中 |
| 完整审计(增强日志) | 详细评估并记录详细日志 | 高 |
| HIPAA 合规 | 医疗监管合规 | 高 |
| PCI ASV 审计 | PCI DSS 外部扫描要求 | 高 |
| CIS 策略合规 | 配置基准检查 | 中 |
| Web Spider | Web 应用发现和评估 | 中 |
# 下载 InsightVM 安装程序(Linux)
chmod +x Rapid7Setup-Linux64.bin
./Rapid7Setup-Linux64.bin -c
# 验证服务运行状态
systemctl status nexposeconsole.service
# 访问 Web 界面
# https://<console-ip>:3780
初始配置:
# 在远程服务器上安装 Scan Engine
./Rapid7Setup-Linux64.bin -c
# 安装时选择"仅 Scan Engine"
# 使用共享密钥与 Security Console 配对
# 基于 Docker 的 Scan Engine 部署
docker pull rapid7/insightvm-scan-engine
docker run -d \
--name scan-engine \
-p 40814:40814 \
-e CONSOLE_HOST=<console-ip> \
-e CONSOLE_PORT=3780 \
-e ENGINE_NAME=DMZ-Scanner \
-e SHARED_SECRET=<pairing-secret> \
rapid7/insightvm-scan-engine
在 Security Console 中配对引擎:
站点配置:
名称: Production-Network
Scan Engine: Primary-Engine-01
扫描模板: 完整审计(不含 Web Spider)
包含的资产:
- 10.0.0.0/8 (内部网络)
- 172.16.0.0/12 (DMZ 网络)
排除的资产:
- 10.0.0.1 (核心路由器 - 脆弱设备)
- 10.0.100.0/24 (ICS/SCADA 网段)
计划:
频率: 每周
日期: 周日
时间: 凌晨 02:00
最大持续时间:8 小时
凭据类型: Microsoft Windows/Samba (SMB/CIFS)
域: CORP.EXAMPLE.COM
用户名: svc_insightvm_scan
密码: <服务账户密码>
认证: NTLM
权限提升:
类型: 无(使用域管理员或本地管理员)
凭据类型: Secure Shell (SSH)
用户名: insightvm_scan
认证: SSH 密钥(推荐)或密码
SSH 私钥: /opt/rapid7/.ssh/scan_key
端口: 22
权限提升:
类型: sudo
sudo 用户: root
sudo 密码: <sudo 密码>
用于均衡扫描的自定义扫描模板:
模板名称: Enterprise-Standard-Scan
服务发现:
TCP 端口: 知名端口(1-1024)+ 常见服务
UDP 端口: DNS(53), SNMP(161), NTP(123), TFTP(69)
方式: SYN 扫描(隐蔽扫描)
漏洞检查:
仅安全检查: 启用
跳过潜在: 禁用
Web 爬取: 禁用(使用单独模板)
策略检查: 启用(CIS 基准)
性能:
最大并行资产: 10
最大每秒请求数: 100
每资产超时: 30 分钟
重试次数: 2
# Windows Agent 安装(通过 GPO 或 SCCM)
msiexec /i agentInstaller-x86_64.msi /quiet /norestart `
CUSTOMTOKEN=<platform-token> `
CUSTOMCONFIG=<agent-config>
# Linux Agent 安装
chmod +x agent_installer.sh
./agent_installer.sh install_start \
--token <platform-token>
# 验证代理连通性
# 检查 InsightVM 控制台:资产 > Agent Management
修复项目:
名称: Q1-2025-关键修复
范围:
严重程度: 关键 + 高
CVSS 分数: >= 7.0
资产: Production-Network 站点
分配:
团队: 基础设施运营
截止日期: 2025-03-31
跟踪:
自动验证: 启用(在下次计划扫描时重新扫描)
通知: 逾期项发送邮件
升级: SLA 75% 时通知管理者
import requests
import json
class InsightVMClient:
"""Rapid7 InsightVM API v3 自动化客户端。"""
def __init__(self, console_url, api_key):
self.base_url = f"{console_url}/api/3"
self.session = requests.Session()
self.session.headers.update({
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
})
self.session.verify = False # 控制台使用自签名证书
def get_sites(self):
"""列出所有已配置的扫描站点。"""
response = self.session.get(f"{self.base_url}/sites")
response.raise_for_status()
return response.json().get("resources", [])
def start_scan(self, site_id, engine_id=None, template_id=None):
"""触发站点的临时扫描。"""
payload = {}
if engine_id:
payload["engineId"] = engine_id
if template_id:
payload["templateId"] = template_id
response = self.session.post(
f"{self.base_url}/sites/{site_id}/scans",
json=payload
)
response.raise_for_status()
return response.json()
def get_asset_vulnerabilities(self, asset_id):
"""检索特定资产的漏洞。"""
response = self.session.get(
f"{self.base_url}/assets/{asset_id}/vulnerabilities"
)
response.raise_for_status()
return response.json().get("resources", [])
def get_scan_status(self, scan_id):
"""检查正在运行的扫描状态。"""
response = self.session.get(f"{self.base_url}/scans/{scan_id}")
response.raise_for_status()
return response.json()
# 使用示例
client = InsightVMClient("https://insightvm-console:3780", "api-key-here")
sites = client.get_sites()
for site in sites:
print(f"站点:{site['name']} - 资产:{site.get('assets', 0)}")