快速上手渗透测试报告写作:从WP到甲方报告的一站式指南
快速上手渗透测试报告写作:从WP到甲方报告的一站式指南
原创 泷羽Sec-静安 泷羽Sec-静安 2025-02-08 22:01
关注公众号泷羽Sec-静安
,回复关键词找工具+WP
获取本文分享的WP模板和工具
师傅们在渗透测试过程中肯定要写WP和报告,这里分享我个人关于怎么快速写出格式整齐,内容完整详细,方便后期复现回溯的WP或者称“渗透测试报告”的经验。
软件和工具
首先,记笔记的首选语言当然是 Markdown
,以下是两个常用的 Markdown 编辑软件推荐:
1. Vscode
Vscode 配合 markdownlint
插件和 Image preview
插件,能让你高效编辑 Markdown 文件。markdownlint
插件自带的功能可以在你复制图片时自动将图片转存到当前文件夹,并自动转换为 Markdown 格式的图片引用。Image preview
插件则可以在行号栏的左侧显示图片的缩略图,悬停时还能看到大图预览,这样就无需切换到左右预览模式,编辑 Markdown 更加便捷。如果你是团队合作,TODO Tree
插件非常实用。它能够在文档中标记待办事项,对于长时间的渗透测试,帮助你标记哪些部分还需要复测或复现,远比传统的书签管理更为高效。使用 Vscode 的另一个优势是,它不仅适合Markdown 编辑,还支持代码调试,你可以在同一个平台上同时处理不同任务,减少频繁切换工具的麻烦。
image-20250122163622073
image-20250122163707184
image-20250122163852568
image-20250122164301151
2. Typora
Typora 的最大优点就是它的 美观
,简洁的界面和即时渲染的功能让编辑体验更加流畅。虽然 Typora
和 Vscode 都是通过 Pandoc
实现导出 Word 和 PDF 的功能,导出效果几乎一致,但 Typora
通过其优雅的界面和清爽的排版,能让你在长时间的安全研究中享受更多的视觉体验,缓解疲劳。毕竟,做网络安全工作已经够辛苦了,为什么不让编辑器也“好看”点呢?关于 Typora 的具体使用,我在之前的文章
极客黑客的效率神器:Typora、Snipaste 与 Picgo 快速发布教程
中已有详细分享。
关注 泷羽Sec-静安 公众号,后台回复 找工具+20250115 获取相关软件
渗透测试报告的写作方法
其次,最重要的一点是,请务必开启 Snipaste
软件的 自动保存功能
。这个功能可以有效帮助你保存那些可能忘记保存的图片,尤其是在撰写报告时,涉及到带有 flag
、路径等证据性截图的部分。在渗透测试过程中,随时按下 F1
键并回车,软件会自动保存截图,而不会影响你的进攻节奏或思路。完成攻击并收集到必要的资产后,你可以慢慢整理并编写报告,从之前保存的截图中挑选合适的证据,而无需在渗透时同时进行报告撰写。这不仅会拖慢进攻节奏,也可能被一些格式美观问题打断思路。
在实际渗透过程中,我通常会在 VScode
中打开一个新的页面,简单写下报告的标题,接着加上一条分割线 —
,然后将相关的信息随时记录在分割线以下,不需要考虑格式是否美观。这些信息可以包括路径、网址、获取的密码、使用的进攻方式等,甚至可以放上几张有用的图片和截图,但不用刻意调整对齐和格式。简单来说,就像流水账一样,将所有信息往文档里丢就行。
当进攻目标暂时完成或可以复测时,可以适当停下来,整理之前的草稿,将分割线下的信息总结到分割线之上。整理的时候记得从自动保存的文件夹里找合适的截图,证明你的攻击成果。我推荐按照如下格式进行整理:
– 活动描述
:描述漏洞或攻击场景。
-
系统名称
:例如 XXX 系统
(最好标明上下游系统关系,我个人通常使用 A > B
表示从 A 系统进入 B 系统,这样后续画攻击路径图时会更直观)。 -
目标单位
:填入被攻击的单位名称,不是自己的单位。 -
网址
:
http://www.example.com/login.php -
漏洞名称
:例如 Windows 远程执行漏洞
或 CVE-2024-38077
(如果有 CVE 编号,优先填写编号;如果没有 CVE 编号,使用最广泛的漏洞名称)。 -
泄露资产:
公民个人信息XXX条,内网服务器用户名和密码XX条,域控主机XX台(得分点的关键,最直观的指标就是看你拿了多少条信息)。 -
待清理文件/路径
:列出可能需要清理的文件或路径,便于后续复测。(就是说你木马放哪里了) -
执行 PoC
:(可选,如果使用了某个工具,需填写工具名称并附上截图;如果是自编 PoC,无论是 HTTP 请求头还是其他攻击载荷,都应完整写出 PoC,不能仅写关键路径,要将整个 PoC 内容写全)。 -
建议意见
:关于漏洞修复的建议策略,选填,可以在最后编写。
在授权测试的场景中,除了自己撰写的 Markdown 文件,通常甲方或你的队长会提供一个 Word 模板作为参考。这个模板通常包含表格、标题、目录等格式。然而,我不建议
在测试过程中直接在 Word 模板上修改或编写报告,因为 Word 的排版问题往往会成为干扰因素。例如,网址粘贴后可能会转行,导致格式错误;或者在复制粘贴图片时,会提示图片过大需要压缩,造成不必要的麻烦。
更好的做法是,先使用上述的 Markdown 模板来写报告,完成后使用 Pandoc
将 Markdown 文件导出为 Word 格式。你可以使用以下命令将 Markdown 文件导出为 .docx
文件:
pandoc input.md -o output.docx
导出的 Word 文件可以上传到 WPS
,利用其 AI 排版功能
(请注意,高级别保密测试时不建议使用此功能)来调整格式。上传 Word 模板后,WPS 会自动根据模板的排版规则对导出的文件进行排版,生成符合模板要求的报告。
此外,Word 模板通常还会要求绘制攻击路径图。如果你渗透了一个较大的内网,并通过突破的边界作为跳板在内网中横向移动,那么绘制一张清晰的攻击路径图显得尤为重要。这张图需要展示从哪个节点进入,接着又进入了哪个节点,然后是下一步进展到的新节点。
如果你在 Markdown 编辑器中工作,我建议使用 Mermaid 语法
来简单描述攻击路径。VScode
和 Typora
都支持 Mermaid 语法,能够将其渲染为流程图,并支持将其保存为图片。如果攻击路径节点较为复杂或庞大,建议使用专业的流程图绘制工具,比如 draw.io
等,来绘制更清晰、专业的攻击路径图。
例如,使用 Mermaid 语法可以创建一个简单的攻击路径流程图:
graph LR A[外部攻击者] --> B[扫描开放端口] B --> C[发现开放的 RDP 端口] C --> D[暴力破解 RDP 密码] D --> E[获得管理员权限] E --> F[横向渗透到其他系统] F --> G[执行恶意操作] G --> H[清理痕迹]
到这一步,渗透测试的报告撰写工作基本完成了。对于大多数红队队员来说,主要的任务还是攻破目标、执行测试,而不是花费大量时间在写一份美观的报告上。本文中提到的“美观漂亮”并不是指像老学究那样精雕细琢,而是指报告要便于不同部门的使用和理解。实际上,在渗透测试的实际工作中,重点是清晰、简洁、有效的传达测试结果,而不是追求格式的完美。
在一些专业的测试场合,甲方或紫队会提供专用的测试监控软件,这些软件通常包括以下功能:监控摄像头、桌面截图、网络流量监控(特别是在涉及到保密测试时,需要注意避免连接外网),靶标单位发放(有些类似CTF赛事中的“放题”机制)、成果提交、非授权攻击行为提交等。更智能的是,许多此类工具会自动生成报告,并按节点组织,只需要简单填写相关内容(如复制之前的测试文字内容),软件就能自动生成结构化的报告。
然而,即便是自动生成的报告,通常也需要经过多轮审核和修改。首先,队长或负责人会对报告进行初步审核,随后销售、财务、文员等人员也会参与审核,最后可能还会有专家审核。在这个过程中,报告的格式会被调整和美化,以确保它符合公司或甲方的需求,最终用于财务报账、开具发票等事务。所以,作为渗透测试人员,我们不必过于纠结报告的美观和格式,而应更专注于测试的本质和结果的准确性。
总之,报告的结构、内容、清晰度是最重要的,格式问题可以交给后期的审批和修改过程来解决。最重要的是写清楚:网址
、漏洞名称
、泄露资产
、待清理文件/路径
、POC
。
日常靶机练习的WP写作方法
与上一段渗透测试报告的写法类似,只是不需要写目标单位,泄露资产和建议意见。以下是一个模板:
– 活动描述
:描述漏洞或攻击场景。
-
靶机环境描述
:例如 XXX 系统
(最好标明靶机有什么特征,比如某端口开放,用了什么组件,方便以后复盘或者遇到相似情况,直接看曾经的WP参考了直接打)。 -
网址
:
http://www.example.com/login.php -
漏洞名称
:例如 Windows 远程执行漏洞
或 CVE-2024-38077
(如果有 CVE 编号,优先填写编号;如果没有 CVE 编号,使用最广泛的漏洞名称)。 -
flag
:写flag的截图或者flag值(截图最好包含flag文件路径) -
执行 PoC
:(可选,如果使用了某个工具,需填写工具名称并附上截图;如果是自编 PoC,无论是 HTTP 请求头还是其他攻击载荷,都应完整写出 PoC,不能仅写关键路径,要将整个 PoC 内容写全)。
总结
总之,WP(工作报告)和渗透测试报告都是红队必备的技能,尽管它们在撰写过程中有所不同。WP通常是自己练习或测试时的记录,主要目的是为了学习和复盘,以便在未来的实战中遇到类似情况时,能够像参考菜谱一样迅速复现攻击手法。特别是在内网渗透中,靶机的标准性和容易程度往往比外网更高(内网里比靶机还靶机还标准的系统一抓一大把),因此在记录时应该尽可能详细,涵盖使用的工具、安装过程、攻击路径等细节。这类WP更多是为自己做的练习总结。
而对于CTF比赛或考试中的WP,则不需要过于详细。在这种情况下,重点是突出得分点和核心攻击路径,而不是逐步描述工具的安装过程或攻击的每个细节。CTF WP的目的是展示如何攻破某个特定环节并获取flag,因此只需要聚焦于关键工具、攻击路径和最终的flag,不必关注其他冗余细节。
渗透测试报告和CTF中的WP有些相似,都是针对甲方或考官的需求进行编写。报告的重点是展示你如何发现并利用漏洞,泄露了哪些数据,如何修复这些漏洞。此类报告不需要详细写出每一步的攻击细节,只需提供关键证据和漏洞分析,证明你作为红队在授权范围内成功渗透了目标系统,并给出相应的修复建议。重点是让甲方或考官了解漏洞的存在和影响,而不是“教会”他们如何防御,避免过多的细节(教会了甲方,饿死乙方)。
🔔 想要获取更多网络安全与编程技术干货?
关注 泷羽Sec-静安
公众号,与你一起探索前沿技术,分享实用的学习资源与工具。我们专注于深入分析,拒绝浮躁,只做最实用的技术分享!💻
扫描下方二维码,马上加入我们,共同成长!🌟
👉 长按或扫描二维码关注公众号
或者直接回复文章中的关键词,获取更多技术资料与书单推荐!📚