本文目录一览:
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 客户端
自动化测试工具哪些经常用到?
持续的集成服务
过去十年来在软件开发领域到来的自动化一个更大的变化是任务自动化。在过去,像构建一个应用的特殊版本,创建文档,或者更新bug报告的状态是人为的。一些团队甚至贡献为了 启动一个版本而负责的"创建人"责任。像这些人为的任务(或者是紧紧地绑定给个人或机器)是消耗时间的,并且创建来为了避免瓶颈,比如创建人占据私人的一天并阻碍新版本被完成。
幸运的是,持续集成(CI)工具通过允许任务被标准化和自动化来挽救。持续集成服务重要地安排和执行任务,一个规则的台式电脑能做的任务并且让这些任务在目标机器上执行而不是它自己。回到创建版本的例子,取代让鲍勃为手工在他的机器上创建版本负责,一个持续集成服务能被集成去选择一个目标机器并且在那台机器上执行版本。不仅使鲍勃不需要身体上在那台版本机器出现,而且能在任意时刻发生版本创建,不管是已安排的或者是为了响应另一个动作。
举个例子,测试者爱丽丝可能想要一个基于最新改变的应用程序版本去看一个程序错误是否被修复,而且她能自己发起版本创建。这个不仅使资源从做代表性任务中自由运作起来,而且给团队在个人以外和团队流程上给予了更多的控制。你也可以把持续集成任务绑定一起给更深的线程一些任务。学习一个持续集成如何工作是对没有放很多编程的重点在自动化上很好的引子。
使用持续集成的一个途径是跑端到端的测试套装。这些测试经常需要跑数分钟甚至数小时。我使用过持续集成去自旋向上和自旋向下测试机器并且发起在那些测试机器上的测试。相对于在你自己机器上跑这些测试这是一个很大的帮助,因为它允许一个测试开发者当测试到处跑的时候去做其他的工作。持续集成的服务器控制着所有这些任务的方方面面。
一些持续集成服务的普通例子是开源工具Jenkins,基于云的Travis CI,和专属工具Bamboo,但是这些也是其他的一些。甚至更低技术是使用一个像克隆或者windows任务分配者的工具为了在单一机器上去使任务自动化。
CI对于开发软件爱好之外的编程是独立的,并且它是一个测试能确实增加价值的一个地方。
现代源码控制
我首先需要指出我爱源码。当编写代码(或者博客!)时,它是一个很有帮助而不仅是工具。对于一个编码的测试员,它是一个无需脑力者。甚至即使一个测试不编码,当测试软件时以现代 *** 使用源码控制可能是一个大的利益。
在现代 *** 中"我"的意思是什么?"我"的意思是使用源码控制1)集成其他工具,比如CI服务器或者问题追踪器,并且2)允许使用好的团队流程习惯,比如基于干线的开发。好的源码控制允许个人去分析变化和更深地挖掘软件工程正在发生什么。
一个接近源码历史和一些基本学习的测试能问出像"在应用里的哪个文件有最多的开发在它们上面工作?""哪个文件有更大的变化?""哪个变化的设置包含引起问题的代码?"等待。这个信息有助于找到步调且暗示一些事件的引发。
用CI集成源代码甚至能更加有力。在问题跟踪者的事件能使它们的状态在由开发引起的变化中更新。测试者能要求必要的需求在输入的代码被自动查找出来,比如通过自动测试或者代码模式需求。建构和部署能被改代码发起。当源码控制被很好使用,在这种情况下有很多种可能,这是一个在持续传递后隐含的概念。
举个例子,我在一个使用基于云集成服务的开源项目上工作为了检查每一个由提交者提交的交付。在这个项目里,持续集成运行所有的自动化测试并且检查所有为形式和格式增加的代码。假如一个提交造成错误的测试,或者没有满足设置的风格向导,提交失败了并且暗示了提交者和项目维持者去修改提交。这有助于提供项目历史里以统一的风格每一个提交并且暗示了提交者在增加或者更新模块中可能的微小错误。
这些目前在源码控制的热点是Git,自由和开放代码的,在它周边有着健壮的生态系统。这些也是一些其他的方面,比如Subversion,Mercurial和微软团队基金会。
遥测和监控
这是一个我并不熟悉的主题,但是它确定是测试者们感兴趣的。监控是一种 *** ,从此挂钩被放在一个应用程序里去发回关于软件是如何被使用的信息给软件创造者。这能包含正被使用的后端/服务器应用程序接口函数,并且在哪个指令,由被使用的由用户界面组成的部分和在什么频率上,等等。
这个目标不是为了发送特殊的用户信息返回给开发团队,更普通的信息是关于一个应用程序正在被用着的和如何被用的部分。这提供了终端用户在做什么的视角,他们实际上如何使用应用程序,并且特定属性如何被得到。安兰培是个微软测试,曾经简短讨论这事情的他曾做过的通过遥测和监视的一部分。
类似于最小化资源控制历史,监视能帮助你找出答案,从简单的问题中("上周多少人记录?")到更特殊的和可视化的问题("当特性X被发布时用户们如何改变他们的习惯?")。这些是帮助测试们执行更好的测试策略的种类问题,并且,总的说来,帮助团队对用户做更好的选择。
更多的信息,请检查AB测试播客页面和布伦特詹森。一个主流产品如何使用遥测技术,看一看Mozillla如何通过火狐使用监测技术。
也使用Selenium
最后一点,但这不意味着这不重要,对于使用web应用程序以及其相似的应用程序的测试者来说,Selenium WebDriver是一个很好的工具。在这一点上,WebDriver是一个用于自动驱动浏览器行为的标准工具,类似于一个人类用户如何在浏览器中用网站APP交互。它有一些语言绑定,和一些主流浏览器工作,并且是一款非常好的能被开发之一组件的可扩展性API的例子。简言之,它是一个优秀的工作。
当被灵活地使用时,WebDriver允许测试和开发去使用户体验性测试得到自动化,这个可以被放在一个持续性的可传递流程。我写了一个简单的基于网页驱动的测试,可以找到像导航到登录页面的链接的事务,而不是寻找用户名和密码场合(由于坏的部署),或者寻找一个不打开的对话当一个控制被点击成想象的(一个明显的但严重的问题)。这些是很快被找到的事情但是不能被单元测试覆盖。
WebDriver也能被用在写自动化的测试,可以被本地执行去双重检查那些不会以非预约的方式打断重要特性的变化。这些甚至是WebDriver用于扩展功能测试以外的用处。
对于对学习代码感兴趣的测试来说,WebDriver能提供一个好的学习代码的介绍。自动化测试脚本能是一个容易的 *** 去熟悉编程而不是深入挖掘代码语言鸿沟。它提供足够的架构去开始,并且仍然能够完成一些很好的测试工作。
大脑有这些概念,加强测试自动化,不管你在软件开发中的角色是什么。
自动化测试工具有哪些
自动化测试工具有如下几种:
1、WinRunner
Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。
通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。企业级应用可能包括Web应用系统,ERP系统,CRM系统等等。
2、Rational Robot
是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面IBM Rational Test Manager上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。
这种测试和管理的双重功能是自动化测试的理想开始。
3、AdventNet QEngine
AdventNet QEngine是一个应用广泛且独立于平台的自动化软件测试工具,可用于Web功能测试、web性能测试、Java应用功能测试、Java API测试、SOAP测试、回归测试和Java应用性能测试。
支持对于使用HTML、 *** P、ASP、.NET、PHP、JavaScript/VBScript、XML、SOAP、WSDL、e-commerce、传统客户端/服务器等开发的应用程序进行测试。此工具以Java开发,因此便于移植和提供多平台支持。
4、SilkTest
是业界领先的、用于对企业级应用进行功能测试的产品,可用于测试Web、Java或是传统的C/S结构。SilkTest提供了许多功能,使用户能够高效率地进行软件自动化测试。
这些功能包括:测试的计划和管理;直接的数据库访问及校验;灵活、强大的4Test脚本语言,内置的恢复系统(Recovery System);以及具有使用同一套脚本进行跨平台、跨浏览器和技术进行测试的能力。
5、QA Run
QARun的测试实现方式是通过鼠标移动、键盘点击操作被测应用,即而得到相应的测试脚本,对该脚本可以进行编辑和调试。在记录的过程中可针对被测应用中所包含的功能点进行基线值的建立,换句话说就是在插入检查点的同时建立期望值。
在这里检查点是目标系统的一个特殊方面在一特定点的期望状态。通常,检查点在QARun提示目标系统执行一系列事件之后被执行。检查点用于确定实际结果与期望结果是否相同