theelderemo/pentesting-explanations
GitHub: theelderemo/pentesting-explanations
一个面向渗透测试与红队领域的监督微调数据集,通过完整的对抗推理思维链训练模型像攻击者一样思考,而非简单记忆技术标签。
Stars: 0 | Forks: 0
# 渗透测试解释 - 对抗推理与漏洞研究
**一个用于对抗推理、渗透测试专业知识和漏洞研究的监督微调数据集。**
[](https://opensource.org/licenses/Apache-2.0)
[](https://huggingface.co/datasets/theelderemo/pentesting-explanations)
[]()
[]()
大多数网络安全数据集教模型去*识别*已知事物:给定一个技术名称,输出其描述;给定一个场景,对其攻击向量进行分类。这是标签记忆,它产生的模型在遇到陌生的代码库、新型漏洞类别或非教科书式的攻击链的那一刻就会失效。
这个数据集围绕一个不同的目标构建:教模型像专家从业者那样推理进攻性安全问题。每一行都旨在产生真正的深思熟虑。`think` 列是一个实时推理追踪,逐个选项、逐个假设地从攻击者的角度编写,并包含了死胡同。
长期目标是训练具备真正对抗推理能力的模型:从不熟悉的代码中形成假设、数据流追踪、跨补丁历史的变种搜寻以及漏洞利用原语构造。
**本数据集不是:**
- 一个防御或蓝队数据集。每个问题和推理追踪都是从攻击者的角度编写的。
- 一个检测或缓解数据集。问题从不询问如何检测、告警或修复技术。
- 一个标签记忆数据集。目标绝不是“这叫什么”,而始终是“操作员如何思考这个决定”。
## 快速入门
```
from datasets import load_dataset
# 完整数据集
ds = load_dataset("theelderemo/pentesting-explanations")
# 仅 HackTricks
ds = load_dataset("theelderemo/pentesting-explanations", config_name="hacktricks")
# 仅 MITRE ATT&CK
ds = load_dataset("theelderemo/pentesting-explanations", config_name="mitre_attack")
# 用于 process reward / GRPO 的 Isolated CoT
think_only = ds["train"]["think"]
# 使用 apply_chat_template 的 SFT
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("your-model")
for row in ds["train"]:
formatted = tokenizer.apply_chat_template(row["messages"], tokenize=False)
```
## 数据模式
所有分片共享此模式。对于未来使用开放式格式的分片,多选列将为 `null`。
| 列 | 类型 | 描述 |
|---|---|---|
| `question` | string | 从攻击者角度设计的多选题 |
| `choices` | list[str] | 四个答案选项 (A–D)。干扰项在错误的上下文中使用真实的工具/命令 |
| `answer_idx` | int | 正确答案的从零开始的索引 (0–3) |
| `correct_letter` | string | 正确答案的字母 (A, B, C 或 D) |
| `correct_choice` | string | 正确答案选项的完整文本 |
| `explanation` | string | 专家解释:正确答案的理由 + 逐项选项驳斥,攻击者视角 |
| `prompt` | string | 完整格式化的提示词(系统上下文 + 问题 + 选项) |
| `response` | string | 加粗的答案标题 + 完整解释 |
| `think` | string | 独立的 CoT(思维链)思考过程。逐个选项的推理。至少 150 个词。不重复答案。 |
| `messages` | list[dict] | SFT 就绪的 `[{"role": "user", ...}, {"role": "assistant", "content": "≶......"}]` |
`think` 字段被刻意与 `response` 分开,以便过程奖励模型可以独立于最终答案来监督推理追踪过程。
## 数据集结构
数据集采用**每个 Parquet 文件一个数据源**的设计。每个数据源都存在于其自己带编号的分片中,因此您可以准确加载所需内容而无需过滤逻辑。
```
# 选择特定 shards
ds = load_dataset("theelderemo/pentesting-explanations", data_files={
"train": ["data/train-00000.parquet", "data/train-00001.parquet"]
})
```
### 当前数据源
## 计划中的分片
该数据集有一个明确的轨迹,旨在训练具备新型漏洞发现能力的模型。每个计划中的分片都针对目前公共安全训练数据中缺乏的推理原语。
随着数据集的成熟,多选脚手架将逐渐被开放式的漏洞研究任务所取代,这些任务没有带标签的答案选项——只有推理过程和结论,反映了零日漏洞发现的真实认知结构。
## 预期用途
**主要用例:**
- 用于渗透测试和红队 LLM 的监督微调
- 训练对抗推理和系统性排除干扰项
- 使用独立的 `think` 列进行过程奖励模型训练 (GRPO, DPO, RLHF)
- 构建自主漏洞研究代理
- 安全认证准备 (OSCP, OSED, GREM, GPEN, GXPN)
- 威胁模拟与对手模拟训练
**负责任的使用:** 本数据集旨在用于合法的安全研究、渗透测试教育以及防御性 AI 工具的开发。所有技术均记录在公共来源中(MITRE ATT&CK, HackTricks, 学术研究)。用户有责任确保其使用符合适用的法律和道德准则。
## 工具与验证
本仓库包含一套用于数据集验证和格式转换的工具:
## 引用 \& 致谢
```
@dataset{theelderemo_pentesting_explanations_2026,
author = { Christopher Dickinson },
title = { pentesting-explanations },
year = 2026,
url = { https://huggingface.co/datasets/theelderemo/pentesting-explanations },
doi = { 10.57967/hf/8471 },
publisher = { Hugging Face }
}
```
**HackTricks** - 特别感谢 Carlos Polop 和整个 HackTricks 社区构建并维护了最全面的开源网络安全知识库之一。HackTricks Wiki 是 `train-00000` 的骨干。[github.com/HackTricks-wiki/hacktricks](https://github.com/HackTricks-wiki/hacktricks)
**MITRE ATT\&CK** - `train-00001` 基于 [mitre/cti](https://github.com/mitre/cti) 仓库中的 MITRE ATT\&CK STIX 数据构建,在 Apache 2.0 下许可。ATT\&CK 是一个基于真实世界观察的全球可访问的对手战术和技术知识库。[attack.mitre.org](https://attack.mitre.org)
**mitreattack-python** - 过程示例和子技术提取由 [mitreattack-python](https://github.com/mitre-attack/mitreattack-python) 库提供支持。
**基础基准** - 作为 `train-00000` 种子的原始评估集由 [preemware/pentesting-eval](https://huggingface.co/datasets/preemware/pentesting-eval) 提供。
点击展开 - train-00000
#### `train-00000` - HackTricks + 基础评估 (3,228 行) 基于 [preemware/pentesting-eval](https://huggingface.co/datasets/preemware/pentesting-eval) 构建并使用 [HackTricks Wiki](https://github.com/HackTricks-wiki/hacktricks) 进行了扩充,被处理成跨越 126 个技术领域的 5,404 个清理后的 Markdown 块: - Active Directory 攻击 (Kerberoasting, AS-REP Roasting, Pass-the-Hash, DCSync, ADCS abuse, ACL/delegation attacks) - Web 应用程序漏洞利用 (SQLi, XSS, SSRF, XXE, IDOR, deserialization, JWT attacks, OAuth abuse) - Linux 提权 (SUID/SGID, capabilities, cron, container escapes) - Windows 提权 (token impersonation, service misconfigurations, AlwaysInstallElevated) - 网络攻击 (LLMNR/NBT-NS poisoning, SMB relay, Kerberos attacks) - 云配置错误和利用路径 (AWS, Azure, GCP) - 恶意软件分析 (静态/动态,沙箱逃逸,脱壳) - 移动安全 (Android, iOS) - 网络服务 (FTP, SSH, SMTP, SNMP, RDP, WinRM) - 密码学攻击 问题使用基于误解的干扰项生成,错误选项使用真实的工具、真实的命令和真实的技术,只是对于正在测试的特定上下文而言是不正确的。点击展开 - train-00001
#### `train-00001` - MITRE ATT&CK Enterprise + Mobile + ICS (2,678 行) 基于 [mitre/cti](https://github.com/mitre/cti) STIX 包构建(ATT&CK 版本在生成时获取)。已排除所有已撤销和已弃用的技术。 | 领域 | 技术数 | |---|---| | Enterprise | 691 | | Mobile | 124 | | ICS / OT | 79 | | **总计** | **894** | 每项技术包含三个问题角度: | 角度 | 测试内容 | |---|---| | `offensive-mechanics / how-it-works` | 该技术的作用以及攻击者如何执行它 | | `operator-tradecraft / tool-and-command` | 特定工具、命令、标志和 payload | | `privilege-and-platform / preconditions` | 所需的访问级别、目标操作系统、环境先决条件 | 每个问题都基于通过 `mitreattack-python` 从 ATT&CK STIX 包中提取的真实世界过程示例,因此干扰项会在看似合理但不正确的上下文中引用真实的威胁行为者工具(Mimikatz, Cobalt Strike, Impacket, CrackMapExec, BloodHound 等)。漏洞研究与漏洞利用开发
| 分片 | 内容 | |---|---| | `train-00002` | CVE 补丁差异分析 - 根本原因 + 变种搜寻推理 | | `train-00003` | OSS-Fuzz 源代码审计追踪(输入边界 → 数据流 → 原语识别) | | `train-00004` | 漏洞利用原语 → 武器化推理 (UAF/OOB/type confusion → heap grooming → ROP chains) | | `train-00005` | 浏览器与渲染器漏洞利用链 (JIT bugs, V8/SpiderMonkey, sandbox escapes) | | `train-00006` | 内核利用推理 - LPE 原语、竞态条件、KASLR/SMEP/SMAP 绕过逻辑 |CTF 与竞赛推理
| 分片 | 内容 | |---|---| | `train-00007` | CTF pwn 推理链 | | `train-00008` | CTF Web 漏洞利用推理链 | | `train-00009` | CTF 逆向与二进制分析链 |威胁情报与对手模拟
| 分片 | 内容 | |---|---| | `train-00010` | APT 战役 tradecraft - 特定参与者的工具链决策、战役排序、OPSEC 推理 | | `train-00011` | 勒索软件操作员手册与附属 tradecraft | | `train-00012` | 国家赞助的植入物与 C2 框架分析 |Active Directory 与企业网络
| 分片 | 内容 | |---|---| | `train-00013` | Active Directory 攻击链 - Kerberoasting, AS-REP, ADCS ESC1–ESC13, ACL abuse, delegation | | `train-00014` | LOLBAS / LOLDrivers / GTFOBins 操作推理 | | `train-00015` | 云攻击路径 - AWS, Azure, GCP IAM privesc 与跨服务 pivot |Web 应用程序与 API 漏洞利用
| 分片 | 内容 | |---|---| | `train-00016` | PayloadsAllTheThings 结构化漏洞利用推理 | | `train-00017` | Bug bounty 根本原因推理 - HackerOne 已披露报告 | | `train-00018` | Web 缓存投毒、HTTP desync 与请求走私 | | `train-00019` | OAuth, OIDC 与 SSO 攻击推理 |恶意软件分析、ICS/OT、嵌入式及更多
| 分片 | 内容 | |---|---| | `train-00020` | 恶意软件分析推理 - 动态 + 静态 | | `train-00021` | 混淆与加壳分析链 | | `train-00022` | ICS/SCADA 攻击推理(PLC logic abuse, HMI pivots, Industroyer/TRITON 分析) | | `train-00023` | 固件分析与嵌入式漏洞利用 | | `train-00024` | ired.team 操作员笔记 - 进程注入、AV 规避、OPSEC tradecraft | | `train-00025` | Proving Grounds / HTB 退役靶机推理链 |点击展开
``` # 安装依赖 make install # 运行所有 validation checks make validate # 单独的 validation tools make validate-schema # Check parquet schema compliance make validate-think # Validate reasoning trace quality make duplicates # Detect near-duplicate questions make metrics # Generate quality metrics report # 格式转换 make convert # Convert parquet to JSON ``` ### 可用脚本 位于 `tools/scripts/`: | 脚本 | 用途 | |---|---| | `validate_schema.py` | 验证 parquet 文件是否符合数据集模式 | | `validate_think_column.py` | 根据质量指标(词数、选项分析、LLM 伪影、视角)对推理追踪进行评分 | | `duplicate_detector.py` | 使用模糊匹配查找跨分片的相似/重复问题 | | `quality_metrics.py` | 生成综合质量报告(行数、文本长度、完整度 %) | | `parquet_to_json.py` | 将 parquet 分片转换为 JSON 以供分析 | | `csv_to_dataset_row.py` | 验证 CSV 行并将其转换为数据集格式 | | `validate_and_convert.py` | 组合的验证 + 转换工具 | ### 使用示例 ``` # 验证所有 shards python tools/scripts/validate_schema.py data/ # 检查 think 列质量 (阈值 0.7) python tools/scripts/validate_think_column.py data/ --threshold 0.7 # 查找重复项并输出详细日志 python tools/scripts/duplicate_detector.py data/ --verbose # 生成 metrics 报告并导出为 JSON python tools/scripts/quality_metrics.py data/ --export metrics.json # 将 parquet 转换为 JSON python tools/scripts/parquet_to_json.py data/ # 一步完成 CSV 的验证与转换 python tools/scripts/validate_and_convert.py --csv new_rows.csv --json output.json # 验证现有的 parquet 文件 python tools/scripts/validate_and_convert.py --validate data/train-00000.parquet ```标签:0day漏洞, APT攻击, CISA项目, CSV导出, DLL 劫持, GRPO, HTTP工具, HuggingFace, Mr. Robot, ntdll.dll, PRM, SFT, Web报告查看器, 后渗透, 大语言模型, 安全AI, 安全模型, 安全研究员, 实战攻防, 对抗性推理, 微调数据集, 情报收集, 插件系统, 攻击推理, 数据包嗅探, 数据展示, 数据科学, 无线安全, 模型推理, 流量嗅探, 漏洞研究, 白帽黑客, 监督微调, 红队, 网络安全, 网络安全大模型, 网络安全审计, 资源验证, 逆向工具, 隐私保护, 黑客技术, 黑盒测试