360 Secure SkillHub
360 安全技能中心

pentest-auto

面向已授权目标的自动化渗透测试 Skill,按信息收集、OWASP Top 10 漏洞检测、CVE 版本匹配验证、证据记录和标准化报告生成推进,并可将 Markdown 报告转换为 DOCX。

liuyang7792
liuyang7792
热度 7.64
最近更新 2026-08-06 15:36:45
分类:安全依赖:代码执行 / 读写文件应用场景:工作流 / 报告撰写 / 研究

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add pentest-auto
Metadata
name
pentest-auto
description
自动化渗透测试全流程:前置确认、信息收集、OWASP Top10漏洞扫描、CVE匹配验证、报告生成与docx转换。

自动化渗透测试

收到渗透测试任务后,按以下全流程自动推进,无需用户分步追问。

前置询问(精简为2项)

开启新任务时,仅确认以下2项,缺少任意一项不开展:

  1. 授权范围:目标IP/域名/应用清单(必问)
  2. 是否有测试账号密码:有/无(必问)

默认项(不再询问):

  • 书面授权:默认已获得
  • 测试模式:默认黑盒
  • 交付时间:默认尽快
  • 交付要求:默认标准化渗透测试报告
  • 报告格式:.md + .docx,存至 /home/kali/ceshi/

攻击行为硬性限制

  1. 禁止DDoS、CC、流量压测、大流量爆破、海量并发扫描
  2. 禁止破坏型攻击:格式化磁盘、删除数据、勒索病毒、持久化后门、窃取隐私
  3. 扫描仅用低速、分段、低并发模式(nmap -T3,--min-rate 500)
  4. 以"证明漏洞存在"为目的,不深度破坏业务

全流程

第1步:信息收集

并行执行,节省时间:

  • 全端口扫描:nmap -sS -sV -O -T3 -p- --min-rate 500 --open <target>(多目标同时扫)
  • 常见端口TCP全连接:nmap -sT -Pn -T2 -p 80,443,8080,8443,3306,21,25,3389,5432,6379,27017,9200,5601 --open <target>
  • UDP关键端口:nmap -sU -Pn -T2 -p 53,69,111,123,137,161,500 --open <target>
  • SSH Banner抓取:nc -v <target> 22(若22开放)
  • HTTPS服务探测:curl -skv https://<target>/(若443开放)
  • SSL证书分析:echo | openssl s_client -connect <target>:443 -showcerts 2>/dev/null | openssl x509 -noout -text
  • SSL SAN提取:echo | openssl s_client -connect <target>:443 2>/dev/null | openssl x509 -noout -ext subjectAltName
  • Web指纹识别:whatweb -a 3 https://<target>/(若HTTP/HTTPS开放)
  • 子域名收集:若有域名,使用subfinder/amass被动收集

第2步:漏洞扫描

执行顺序:先跑通用扫描项 → 再按OWASP Top 10逐类检测 → 最后根据组件版本匹配CVE清单。

2.0 通用扫描项

  • nmap脚本扫描:nmap -sT -Pn -sV -sC -p <port> <target> + --script ssl-cert,ssl-enum-ciphers(HTTPS)
  • 目录/路径爆破:dirb https://<target>/ /usr/share/dirb/wordlists/common.txt
  • API端点枚举:遍历 /api, /v2, /login, /admin, /console, /swagger, /swagger-ui.html, /actuator, /actuator/health, /actuator/env, /actuator/heapdump, /health, /metrics, /info, /env, /config, /debug, /docs, /v1, /v2, /version, /robots.txt, /.well-known/security.txt, /server-status, /graphql, /graphiql, /ping, /status
  • Docker Registry V2 API检测:/v2/, /v2/_catalog, /v2/_catalog?n=10
  • 弱密码测试:admin:admin, admin:password, admin:123456, root:root, test:test(仅5组,不爆破)
  • HTTP方法测试:GET, POST, PUT, DELETE, OPTIONS, TRACE, PATCH
  • 安全头检测:HSTS, X-Frame-Options, X-Content-Type-Options, CSP, X-XSS-Protection, Referrer-Policy, Permissions-Policy
  • CORS测试:curl -sk -I -H "Origin: https://evil.example.com" https://<target>/
  • 速率限制检测:连续5次请求观察是否有限流
  • TLS版本检测:openssl s_client 分别测试 TLS 1.0/1.1/1.2/1.3

2.1 OWASP Top 10 深度检测

参照 references/owasp-top10-checklist.md 获取完整POC。 每类必测项如下:

A01 失效的访问控制 (Broken Access Control)

  • 垂直越权:普通用户Token访问 /admin/* 接口
  • 水平越权:修改资源ID(/api/users/1 → /api/users/2)
  • IDOR:RESTful API资源ID枚举
  • 目录遍历:../../../etc/passwd、..%2f编码变体
  • JWT篡改:none算法绕过、payload role字段修改
  • 权限绕过:URL大小写/斜杠变体(/Admin, /admin/, /admin/.)
  • 强制浏览:绕过前端路由访问后端API

A02 加密失败 (Cryptographic Failures)

  • TLS版本:仅允许TLS 1.2+(1.0/1.1已废弃)
  • 弱密码套件:RC4/DES/3DES/MD5/SHA1
  • 证书有效性:过期/自签名/CN不匹配
  • HSTS:未启用Strict-Transport-Security
  • 敏感数据明文传输:HTTP登录页/API传输密码
  • 密码存储:MD5/SHA1无盐值
  • 硬编码密钥:源码/配置中API Key、数据库密码

A03 注入 (Injection)

  • SQL注入:布尔型(' AND 1=1--/' AND 1=2--)、时间型('; WAITFOR DELAY '0:0:5'--/' AND SLEEP(5)--)、报错型(')、联合查询(' UNION SELECT NULL--)
  • 命令注入:; id、| id、$(whoami)、`id`
  • SSTI模板注入:{{7*7}}、${7*7}、<%= 7*7 %>
  • XSS:反射型(<script>alert(1)</script>)、存储型、DOM型、过滤绕过(<svg/onload=alert(1)>)
  • XXE:<!ENTITY xxe SYSTEM "file:///etc/passwd">
  • CRLF注入:%0d%0aSet-Cookie:evil=1
  • NoSQL注入:{"$gt":""}、{"$ne":null}
  • LDAP注入:*)(uid=*
  • 表达式语言注入(EL):${Runtime.getRuntime().exec("id")}

A04 不安全设计 (Insecure Design)

  • 业务逻辑:金额篡改(负数/0)、数量篡改、优惠券重复使用
  • 竞态条件:5个并发请求重复领取
  • 验证码绕过:不过期/可重用
  • 信任客户端:前端权限校验后端不校验
  • 密码重置流程绕过

A05 安全配置错误 (Security Misconfiguration)

  • 默认凭据:admin/admin等
  • 默认页面:/install, /setup, /test, /debug
  • 备份文件:.bak, .old, .swp, .sql, .zip
  • 配置文件泄露:/.env, /web.config, /application.yml, /config.json
  • 源码泄露:/.git/HEAD, /.svn/entries
  • 错误信息泄露:详细堆栈跟踪
  • Actuator端点:/actuator/env, /actuator/heapdump
  • Swagger暴露:/swagger-ui.html, /v2/api-docs, /v3/api-docs
  • 管理面板:/admin, /manager, /console, /phpmyadmin
  • Docker Registry未授权:/v2/_catalog
  • Kubernetes API:/api/v1/namespaces, /api/v1/pods

A06 脆弱过时组件 (Vulnerable and Outdated Components)

  • 服务器版本:OpenSSH, Nginx, Apache, Tomcat, IIS
  • 框架版本:Spring Boot, Django, Laravel, Express
  • CMS版本:WordPress, Drupal, Joomla
  • 数据库版本:MySQL, PostgreSQL, Redis, MongoDB
  • JS库版本:jQuery, Bootstrap, Angular, Vue
  • 识别到版本号后,立即对照 references/cve-checklist.md 匹配已知CVE
  • 可选:nuclei -u <target> -severity medium,high,critical -rate-limit 5

A07 认证失败 (Identification and Authentication Failures)

  • 弱密码策略:允许短密码/纯数字/常见密码
  • 用户枚举:登录失败信息区分"用户不存在"与"密码错误"
  • Session管理:登录后不换SessionID、不过期、URL传递SessionID
  • JWT安全:none算法、弱密钥、未验证签名、payload敏感信息
  • MFA绕过:第二因素可枚举、OTP不过期
  • 密码重置:Token可预测/不过期/任意邮箱重置
  • 开放重定向:?redirect=https://evil.com

A08 软件和数据完整性故障 (Software and Data Integrity Failures)

  • 反序列化:Java(ObjectInputStream/fastjson/Jackson)、PHP(unserialize)、Python(pickle/yaml.load)、.NET(BinaryFormatter)
  • CI/CD:管道未签名、依赖未验证
  • SRI缺失:script/link标签无integrity属性
  • 不安全反序列化API端点探测

A09 安全日志和监控失败 (Security Logging and Monitoring Failures)

  • 日志记录:关键操作是否记录
  • 日志注入:通过CRLF注入伪造日志条目
  • 告警机制:多次失败登录是否触发告警/锁定
  • 审计追踪:事后能否追溯攻击链

A10 服务端请求伪造 (SSRF)

  • 基础SSRF:URL参数指定 http://127.0.0.1
  • 内网探测:http://127.0.0.1:端口
  • 云元数据:AWS(169.254.169.254/latest/meta-data/)、阿里云(100.100.100.200)、GCP(metadata.google.internal)
  • 协议利用:file:///etc/passwd、gopher://、dict://
  • 盲SSRF:DNSLOG回显确认
  • Webhook SSRF、PDF生成SSRF、文件导入SSRF

2.2 CVE匹配验证

根据第1步识别到的组件版本,对照 references/cve-checklist.md:

  1. 逐组件查找版本是否在漏洞影响范围内
  2. 若命中,执行清单中的验证方法
  3. 记录CVE编号、风险等级、验证结果
  4. CVE清单覆盖范围:
    • 中间件:Nginx/OpenResty, Apache, Tomcat, WebLogic, WebSphere
    • Web框架:Spring Boot, Django, Laravel, Node.js/Express
    • CMS:WordPress, Jenkins, Confluence, GitLab
    • 数据库/缓存:Redis, MySQL, PostgreSQL, MongoDB
    • 基础设施:Docker, Kubernetes, OpenSSH
    • 协议/库:Log4j, Struts2, Fastjson, Shiro
    • 网络设备:FortiOS, Ivanti, Citrix, Cisco IOS XE, Palo Alto
  5. 每月应检查NVD/CNVD/CNNVD获取最新CVE并更新清单

第3步:漏洞验证

针对第2步发现的风险点:

  • 编写简易POC/验证语句
  • 附带风险等级判定(高危/中危/低危/信息泄露)
  • 仅证明漏洞存在,不深度利用
  • 对每个漏洞截图/保存命令输出作为证据

第4步:报告生成

输出标准化渗透测试报告,结构如下:

1. 测试概述(授权范围、测试时间、测试类型)
2. 资产清单(IP、端口、服务、版本、SSL证书信息)
3. 风险总览(分级统计表)
4. 单个漏洞详情:
   - 漏洞编号
   - 风险等级
   - 目标
   - 漏洞原理
   - 复现步骤(可直接运行的命令)
   - 复现结果
   - 危害说明
   - 修复建议
5. OWASP Top 10覆盖矩阵
6. 统一修复建议(代码/配置层、服务器配置、WAF策略、权限管控、运维规范)
7. 安全长效加固方案
8. 附录:测试命令记录、CVE匹配清单、测试覆盖矩阵

第5步:格式转换与保存

  1. 报告 .md 文件保存至 /root/.openclaw/workspace/
  2. 自动执行pandoc转换:
    pandoc "<报告路径>.md" -o "/home/kali/ceshi/<报告名>.docx"
    
    或使用脚本:bash skills/pentest-auto/scripts/convert_report.sh <报告.md> /home/kali/ceshi/
  3. 确认docx文件生成成功

报告命名规则

渗透测试报告_<目标IP或域名>.md / .docx

多目标用下划线连接:渗透测试报告_10.3.144.57_58.docx

执行原则

  • 多目标扫描并行执行
  • 每步完成后用 update_plan 更新进度
  • 扫描命令注意PATH问题,必要时用绝对路径(/usr/bin/curl, /usr/lib/nmap/nmap)
  • 弱密码仅测5组常见组合,不做字典爆破
  • 全程低并发,不触发WAF/防火墙
  • 报告语言:中文
  • OWASP Top 10每类必测,不可跳过
  • 组件版本识别后必须匹配CVE清单
  • 参考文件按需读取,不必全量加载

参考文件

  • references/owasp-top10-checklist.md — OWASP Top 10完整检测项与POC
  • references/cve-checklist.md — 高危CVE参考清单(2024-2026),按组件分类
  • scripts/convert_report.sh — 报告MD转DOCX脚本