渗透测试报告编写工具,软件渗透测试报告

作者:hacker 分类:网络黑客 时间:2022-07-14 17:50:17 浏览:180

内容导读:导航目录:1、如何写好一份渗透测试报告2、Python渗透测试工具都有哪些3、web渗透测试工具如何写好一份渗透测试报告当你连续奋战了好几天,终于合上了笔记本,想要出去透透风时,一个熟悉的问句传来:“你好,请问什么时候可...……

导航目录:

如何写好一份渗透测试报告

当你连续奋战了好几天,终于合上了笔记本,想要出去透透风时,一个熟悉的问句传来:“你好,请问什么时候可以交付报告?”

有成千上万的书籍讲解什么是信息安全,什么是渗透测试,也有数不清的培训课程视频。但是,我敢打赌,在这些材料中,只有不到10%是在讲写报告的事情。在一个完整的渗透测试过程中,有将近一半的时间都用在了编写报告上,这听起来很让人吃惊,但是也并不奇怪。

教会某人写报告不像教会某人 *** 一个完美的缓冲区溢出那么有意思,大部分的渗透测试人员情愿复习19次TCP数据包结构的工作原理,也不愿意写一份报告。

不管我们的渗透测试水平多么高,想要把一个很深的技术点解释的很通俗易懂,即使是完全不懂安全的人也可以理解,这是一件异常艰难的挑战。不但得学会简单明了的解释渗透测试的结果,还得控制好时间。这样做的好处很多,关系到客户会不会不断的采购你的服务。有一次,我开车到350英里以外的一家客户那里做售前,当面重新解释了渗透测试报告的本内容;如果能把测试报告写的简单明了,我就不用跑这么一趟,相当于节省了一整天的时间和一整箱汽油。

举个例子:

一个模糊不清的解释:“SSH版本应该被禁用,因为它含有高危漏洞,可能允许攻击者在 *** 上拦截和解密通信,虽然攻击者控制 *** 的风险很低,这减少了严重性。”

清楚的解释:“建议在这些设备上禁用SSH,如果不这样做,就有可能允许攻击者在当地 *** 解密和拦截通讯。”

为什么渗透测试报告如此重要?

请谨记:渗透测试是一个科学的过程,像所有科学流程一样,应该是独立可重复的。当客户不满意测试结果时,他有权要求另外一名测试人员进行复现。如果之一个测试人员没有在报告中详细说明是如何得出结论的话,第二个测试人员将会不知从何入手,得出的结论也极有可能不一样。更糟糕的是,可能会有潜在漏洞暴露于外部没有被发现。

举个例子:

模糊不清的描述:“我使用端口扫描器检测到了一个开放的TCP端口。“

清晰明了的描述:“我使用Nmap 5.50,对一段端口进行SYN扫描,发现了一个开放的TCP端口。

命令是:nmap –sS –p 7000-8000“

报告是实实在在的测试过程的输出,且是真实测试结果的证据。对客户高层管理人员(批准用于测试的资金的人)可能对报告的内容没有什么兴趣,但这份报告是他们唯一一份证明测试费用的证据。渗透测试不像其他类型的合同项目。合同结束了,没有搭建新的系统,也没有往应用程序添加新的代码。没有报告,很难向别人解释他们刚买的什么东西。

报告给谁看?

至少有三种类型的人会阅读你的报告:高级管理人员,IT管理和IT技术人员。

高级管理人员根本不关心,或者压根不明白它的意思,如果支付服务器使用SSL v2加密连接。他们想知道的答案是“我们现在到底安不安全?”

IT管理对该组织的整体安全性感兴趣,同时也希望确保其特定的部门在测试过程中都没有发现任何重大问题。我记得给三个IT经理一份特别详细的报告。阅读这份报告后有两个人脸色变得苍白,而第三个人笑着说“太好了,没有数据库的安全问题”。

IT人员是负责修复测试过程中发现的问题的人。他们想知道三件事:受影响系统的名称,该漏洞的严重程度以及如何解决它。他们也希望这些信息以一种清晰而且有组织的方式呈现给他们。更好的 *** 是将这些信息以资产和严重程度来进行划分。例如“服务器A”存在“漏洞X,Y和Z,漏洞Y是最关键的。这样IT人员就可以快速的找到问题的关键,及时修复。

当然,你可以问你的客户是否愿意对漏洞分组。毕竟测试是为了他们的利益,他们是付钱的人!一些客户喜欢有个详细说明每个漏洞的页面,并表明受漏洞影响的资产有哪些。

虽然我已经提到了渗透测试报告三种最常见的读者,但这并不是一个详尽的清单。一旦报告交付给客户,取决于他们用它干什么。它可能最终被提交给审计人员作为审计的证据。它可以通过销售团队呈现给潜在客户。“任何人都可以说自己的产品是安全的,但他们可以证明这一点?我们可以看看这里的渗透测试报告。“

报告甚至可能最终共享给整个组织。这听起来很疯狂,但它确实发生过。我执行一次社会工程学测试,其结果低于客户的期望。被触怒的CEO将报告传递给整个组织,作为提高防范社会工程攻击意识的一种方式。更有趣的是,几周后当我访问同一个公司做一些安全意识的培训。我在自我介绍时说,我就是之前那个负责社工测试的人。愤怒的目光,嘲讽的语气,埋怨我给他们所有人带来多少麻烦。我的内心毫无波动,答道:“把密码给我总比给真正的黑客好。”

报告应该包含什么?

有时候你会很幸运的看到,客户在项目计划之初就表明他们想要的报告内容。甚至有一些更为细小的要求,比如,字体大小和线间距等。但是这只是少数,大部分客户还是不知道最终要什么结果,所以下面给出一般报告的撰写程序。

封面

封面是报告的之一面窗户,封面页上包含的细节可以不那么明显。但是测试公司的名称、标志以及客户的名称应该突出显示。诸如“内部 *** 扫描”或“DMZ测试”测试标题也应该在那里,对于相同的客户执行多个测试时,可以避免混淆。测试时间也要写上,随着时间的推移,用户可以清楚的得知他们的安全状况是否得到了改善。另外该封面还应包含文档的密级,并与客户商定如何保密好这份商业上的敏感文件。

内容提要

我见过一些简直像短篇小说一样的内容提要,其实这部分一般要限制在一页纸以内。不要提及任何特定的工具、技术,因为客户根本不在乎,他们只需要知道的是你做了什么,发现了什么,接下来要发生什么,为什么,执行摘要的最后一行应该是一个结论,即明确指出是该系统是安全还是不安全。

举个例子:

一个糟糕的总结:“总之,我们发现一些地方的安全策略运作良好,但有些地方并未遵从。这导致了一定风险,但并不是致命风险。”

一个优秀的总结:“总之,我们发现了某些地方没有遵守安全策略,这给组织带来了一个风险,因此我们必须声明该系统是不安全的。”

漏洞总结

将漏洞列表放在一个页面上,这样,IT经理便可以一目了然的知道接下来要做什么。具体怎样表现出来,形式多样,你可以使用花哨的图形(像表格或图表),只要清晰明了就行。漏洞可以按类别(例如软件问题, *** 设备配置,密码策略)进行分组,严重程度或CVSS评分—— *** 很多,只要工作做得好,很容易理解。

测试团队的详细信息

记录测试过程中所涉及的每一个测试人员的名字,这是一个基本的礼节问题,让客户知道是谁在测试他们的 *** ,并提供联系方式,以便后续报告中问题讨论。一些客户和测试公司也喜欢依据测试的内容向不同的测试小组分配任务。多一双眼睛,可以从不同的角度查看系统的问题。

工具列表

包括版本和功能的简要描述。这点会涉及到可重复性。如果有人要准确复现您的测试,他们需要确切地知道您使用的工具。

工作范围

事先已经同意,转载作为参考是有用的。

报告主体

这部分才是报告的精华,报告的正文应包括所有检测到的漏洞细节,如何发现漏洞,如何利用漏洞,以及漏洞利用的可能性。无论你做的是什么,都要保证给出一个清晰的解释。我看过无数份报告,都是简单的复制粘贴漏洞扫描的结果,这是不对的。另外报告中还应包括切实贴合的修复建议。

最终交付

在任何情况下任何一份报告应该加密传输。这虽然是常识,但往往大家就会摔倒在最后的这环上。

Python渗透测试工具都有哪些

***

Scapy, Scapy3k: 发送,嗅探,分析和伪造 *** 数据包。可用作交互式包处理程序或单独作为一个库

pypcap, Pcapy, pylibpcap: 几个不同 libpcap 捆绑的python库

libdnet: 低级 *** 路由,包括端口查看和以太网帧的转发

dpkt: 快速,轻量数据包创建和分析,面向基本的 TCP/IP 协议

Impacket: 伪造和解码 *** 数据包,支持高级协议如 NMB 和 *** B

pynids: libnids 封装提供 *** 嗅探,IP 包碎片重组,TCP 流重组和端口扫描侦查

Dirtbags py-pcap: 无需 libpcap 库支持读取 pcap 文件

flowgrep: 通过正则表达式查找数据包中的 Payloads

Knock Subdomain Scan: 通过字典枚举目标子域名

SubBrute: 快速的子域名枚举工具

Mallory: 可扩展的 TCP/UDP 中间人 *** 工具,可以实时修改非标准协议

Pytbull: 灵活的 IDS/IPS 测试框架(附带超过300个测试样例)

调试和逆向工程

Paimei: 逆向工程框架,包含PyDBG, PIDA , pGRAPH

Immunity Debugger: 脚本 GUI 和命令行调试器

mona.py: Immunity Debugger 中的扩展,用于代替 pvefindaddr

IDAPython: IDA pro 中的插件,集成 Python 编程语言,允许脚本在 IDA Pro 中执行

PyEMU: 全脚本实现的英特尔32位仿真器,用于恶意软件分析

pefile: 读取并处理 PE 文件

pyda *** : Python 封装的libda ***

PyDbgEng: Python 封装的微软 Windows 调试引擎

uhooker: 截获 DLL 或内存中任意地址可执行文件的 API 调用

diStorm: AMD64 下的反汇编库

python-ptrace: Python 写的使用 ptrace 的调试器

vdb/vtrace: vtrace 是用 Python 实现的跨平台调试 API, vdb 是使用它的调试器

Androguard: 安卓应用程序的逆向分析工具

Capstone: 一个轻量级的多平台多架构支持的反汇编框架。支持包括ARM,ARM64,MIPS和x86/x64平台

PyBFD: GNU 二进制文件描述(BFD)库的 Python 接口

Fuzzing

Sulley: 一个模糊器开发和模糊测试的框架,由多个可扩展的构件组成的

Peach Fuzzing Platform: 可扩展的模糊测试框架(v2版本 是用 Python 语言编写的)

antiparser: 模糊测试和故障注入的 API

TAOF: (The Art of Fuzzing, 模糊的艺术)包含 ProxyFuzz, 一个中间人 *** 模糊测试工具

untidy: 针对 XML 模糊测试工具

Powerfuzzer: 高度自动化和可完全定制的 Web 模糊测试工具

*** UDGE: 纯 Python 实现的 *** 协议模糊测试

Mistress: 基于预设模式,侦测实时文件格式和侦测畸形数据中的协议

Fuzzbox: 媒体多编码器的模糊测试

Forensic Fuzzing Tools: 通过生成模糊测试用的文件,文件系统和包含模糊测试文件的文件系统,来测试取证工具的鲁棒性

Windows IPC Fuzzing Tools: 使用 Windows 进程间通信机制进行模糊测试的工具

WSBang: 基于 Web 服务自动化测试 SOAP 安全性

Construct: 用于解析和构建数据格式(二进制或文本)的库

fuzzer.py(feliam): 由 Felipe Andres Manzano 编写的简单模糊测试工具

Fusil: 用于编写模糊测试程序的 Python 库

Web

Requests: 优雅,简单,人性化的 HTTP 库

HTTPie: 人性化的类似 cURL 命令行的 HTTP 客户端

ProxMon: 处理 *** 日志和报告发现的问题

W *** ap: 寻找 Web 服务器和发现文件

Twill: 从命令行界面浏览网页。支持自动化 *** 测试

Ghost.py: Python 写的 WebKit Web 客户端

Windmill: Web 测试工具帮助你轻松实现自动化调试 Web 应用

FunkLoad: Web 功能和负载测试

spynner: Python 写的 Web浏览模块支持 Javascript/AJAX

python-spidermonkey: 是 Mozilla *** 引擎在 Python 上的移植,允许调用 Javascript 脚本和函数

mitmproxy: 支持 SSL 的 HTTP *** 。可以在控制台接口实时检查和编辑 *** 流量

pathod/pathoc: 变态的 HTTP/S 守护进程,用于测试和折磨 HTTP 客户端

web渗透测试工具

之一个:NST

NST一套免费的开源应用程序,是一个基于Fedora的Linux发行版,可在32和64位平台上运行。这个可启动的Live

CD是用于监视、分析和维护计算机 *** 上的安全性;它可以很容易地将X86系统转换为肉机,这有助于入侵检测, *** 流量嗅探, *** 数据包生成, *** /主机扫描等。

第二个:NMAP

NMAP是发现企业 *** 中任何类型的弱点或漏洞的绝佳工具,它也是审计的好工具。该工具的作用是获取原始数据包并确定哪些主机在 *** 的特定段上可用,正在使用什么操作系统,以及识别特定主机的数据包防火墙或过滤器的不同类型和版本正在使用。NMAP对渗透测试过程的任何阶段都很有用并且还是免费的。

第三个:BeEF工具

BeEF工具主要利用移动端的客户,它的作用是用于检查Web浏览器,对抗Web抗击。BeEF用GitHub找漏洞,它探索了Web边界和客户端系统之外的缺陷。很重要的是,它是专门针对Web浏览器的,能够查看单个源上下文中的漏洞。

第四个:Acunetix Scanner

它是一款知名的 *** 漏洞扫描工具,能审计复杂的管理报告和问题,并且通过 *** 爬虫测试你的网站安全,检测流行安全漏洞,还能包含带外漏洞。它具有很高的检测率,覆盖超过4500个弱点;此外,这个工具包含了AcuSensor技术,手动渗透工具和内置漏洞测试,可快速抓取数千个网页,大大提升工作效率。

第五个:John the Ripper

它是一个简单可快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持大多数的加密算法,如DES、MD4、MD5等。