就我个人来看:
Selenium,好用,是免费的,而且网上教程很多,python,java等等好多语言都可以写,Selenium IDE可以录制也很方便,当然录下来的经常回放不成功,需要自己调试就是了。它是只针对Web页面/H5页面的录制或脚本编写。
QTP是收费的,我只用过一小段时间,也可以录制回放,貌似是使用VBS语言来写脚本的,据说功能比Selenium更强大,我记得它可以对windows里面的应用进行录制操作,这点Selenium不可以。
TestWriter,刚刚看了下它的环境安装说明,必须要下载Appium(移动端自动化测试工具),我还没有使用过,但是看起来它的优点是针对编码能力弱的测试人员,应该是主打录制功能吧。Appium 如果要写脚本的话使用的就是Selenium Webdirver那一套,所以会了Selenium之后使用Appium也会比较容易,就没有必要再下载TestWriter了,当然不想写代码可以试试TestWriter。TestWriter可以做移动端的自动化测试,ios的安卓的都要分别搭环境,Web端不知道可不可以。
综上所述,最简单的概括就是:Selenium简单免费,QTP强大收费,TestWriter录制不编程。
个人看法,欢迎指正和补充。
网络
Scapy, Scapy3k: 发送,嗅探,分析和伪造网络数据包。可用作交互式包处理程序或单独作为一个库
pypcap, Pcapy, pylibpcap: 几个不同 libpcap 捆绑的python库
libdnet: 低级网络路由,包括端口查看和以太网帧的转发
dpkt: 快速,轻量数据包创建和分析,面向基本的 TCP/IP 协议
Impacket: 伪造和解码网络数据包,支持高级协议如 NMB 和 SMB
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 文件
pydasm: Python 封装的libdasm
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 模糊测试工具
SMUDGE: 纯 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: 处理代理日志和报告发现的问题
WSMap: 寻找 Web 服务器和发现文件
Twill: 从命令行界面浏览网页。支持自动化网络测试
Ghost.py: Python 写的 WebKit Web 客户端
Windmill: Web 测试工具帮助你轻松实现自动化调试 Web 应用
FunkLoad: Web 功能和负载测试
spynner: Python 写的 Web浏览模块支持 Javascript/AJAX
python-spidermonkey: 是 Mozilla JS 引擎在 Python 上的移植,允许调用 Javascript 脚本和函数
mitmproxy: 支持 SSL 的 HTTP 代理。可以在控制台接口实时检查和编辑网络流量
pathod/pathoc: 变态的 HTTP/S 守护进程,用于测试和折磨 HTTP 客户端
自动化测试工具大概分2类: 负载压力测试工具和功能测试工具.
负载压力测试工具就是性能测试工具, 比较好的有LoadRunner, 功能很全. 其它的QALoad, OpenSTA, 等等, 这些不是很了解.
功能测试工具常用的就是WinRunner, QTP了, 这两个其实差不多, 如果说区别, WinRunner可能对逻辑测试上更好点. QTP在网页测试方面会强一点, 但由于HP对WinRunner已经不再提供升级服务, 因此现在一般都是用QTP.
包含以下几个流程:
信息收集
第一步做的就是信息收集,根据网站URL可以查出一系列关于该网站的信息。通过URL我们可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等等一些列的信息。
漏洞探测
当我们收集到了足够多的信息之后,我们就要开始对网站进行漏洞探测了。探测网站是否存在一些常见的Web漏洞,比如:SQL注入 。
漏洞利用
探测到了该网站存在漏洞之后,就要对该漏洞进行利用了。不同的漏洞有不同的利用工具,很多时候,通过一个漏洞我们很难拿到网站的webshell,我们往往需要结合几个漏洞来拿webshell。
内网渗透
当我们能跟内网主机进行通信后,我们就要开始进行内网渗透了。可以先使用nmap对内网主机进行扫描,探测在线的主机,并且探测其使用的操作系统、开放的端口等信息。
内网中也有可能存在供内网使用的内网服务器,可以进一步渗透拿下其权限。
痕迹清除
达到了目的之后,有时候只是为了黑入网站挂黑页,炫耀一下;或者在网站留下一个后门,作为肉鸡,没事的时候上去溜达溜达;亦或者挂入挖矿木马。
撰写渗透测试保告
在完成了渗透测试之后,就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击。
虽然执行一个渗透测试有许多明显的优点——执行渗透测试的价值在于它的结果。这些结果必须是有价值的,而且对于客户来说必须是很容易理解的。有一个常见的误解是认为渗透测试只是使用一些时髦的自动化安全工具,并处理所生成的报告。但是,成功执行一个浸透测试并不仅仅是需要安全工具。虽然这些自动化安全测试工具在实践中扮演了重要的角色,但是它们也是有缺点的。事实上,这些工具一直无法真正模拟一个高深攻击者的行为。不管安全工具完成的报告有多么全面,其中总是有一些需要解释的问题。
让我们看看构成一个良好渗透测试的一些关键因素:建立参数:定义工作范围是执行一个成功渗透测试的第一步,也是最重要的一步。这包括定义边界、目标和过程验证(成功条件)。
o遵守保密协议
选择足够的测试集:
手工的和自动的都会影响成功/效益之间的最佳平衡。
遵循正确的方法:
这并不是猜谜游戏。所有方面都需要规划、文档化和符合要求。
测试结果与建议:
这是渗透测试的一个非常重要的部分。最终的报告必须清晰地说明成果,必须将成果与潜在的风险对应。这应该会附带产生一个基于最佳安全实践方法的修正路线图。
在我们讨论浸透测试中所使用的测试策略和技术之前,让我们先看一些可能很有用的场景:
建立新的办公室
不管是建立新的公司或增加新的办公点,浸透测试都有助于确定网络基础架构中的潜在漏洞。例如,在增加新办公点时执行内部测试是非常重要的,因为它会检查网络资源的可用性,并检查这些办公点之间传输的流量类型。
部署新的网络基础架构
每一个新的网络基础架构都应该能模拟黑客行为进行全面的测试。当执行外部测试(预先不太了解基础架构)来保证边界安全性时,我们也应该执行内部测试来保证网络资源,如:服务器、存储、路由和访问设备,在边界受到攻击时仍然是足够安全的,而且基础架构是能够抗拒任何攻击的。
修改/升级现有的基础架构
。必要测试的数量取决于基础架构修改的特征和程度。细小的变化,如配置变更为特定规则,将只需要进行端口扫描来保证预期的防火墙行为,而重大的变化,如关键设备/OS版本升级,可能就需要彻底重新测试。
部署新应用当基础架构进行彻底测试之后,新的应用(不管是连接Internet的或是在Intranet中)在部署到生产环境之前也都必须进行安全性测试。这个测试需要在“实际的”平台上进行,以保证这个应用只使用预定义的端口,而且代码本身也是安全的。
修改/升级一个现有应用
随着基本架构发生变化,本质上应用也会发生变化。细小的变化,如用户帐号修改,都不需要测试。但是,重大的变化,包括应用功能变化,都应该彻底重新测试。
定期重复测试
管理安全性并非易事,而公司不应该认为渗透测试就是所有安全问题的最终解决办法。对敏感系统定期执行测试来保证不会出现不按计划的变化,一直都是一个非常好的实践方法
第一类:网络渗透测试工具
网络渗透测试工具是一种可以测试连接到网络的主机/系统的工具。通用的网络渗透测试工具有ciscoAttacks、Fast-Track、Metasploit、SAPExploitation等,这些工具各有各的特点和优势。因为网络渗透测试是一个相对广泛的概念,所以上述工具也可以包括社会工程学渗透测试模块,网络渗透测试模块和无线渗透测试模块。
第二类:社会工程学渗透测试工具
社会工程学渗透测试是利用社会工程学进行渗透测试,通常利用人们行为中的弱点来达到渗透的目的。典型的社会工程学渗透测试工具有BeefXSS和HoneyPots,这些工具诱使用户访问特定的网站,获得用户的Cookie信息,达到渗透的目的。
第三类:网站渗透测试工具
网站渗透测试是对Web应用程序和相应的设备配置进行渗透测试。在进行网站渗透测试时,安全工程序必须采用非破坏性的方法来发现目标系统中的潜在漏洞。常用的网络渗透测试工具有asp-auditor、darkmysql、fimap、xsser等。
第四类:无线渗透测试工具
无线渗透测试工具是蓝牙网络和无线局域网的渗透测试。在进行无线渗透测试时,一般需要先破解目标网络的密码,或者建立虚假热点来吸引目标用户访问,然后通过其他方式控制目标系统。常见的蓝牙网络渗透测试工具有atshell、btftp、bluediving、bluemaho等;常见的无线局域网渗透测试工具有aircack-ng、airmon-ng、pcapgetiv和weakivgeng等,这些工具实现了不同的功能,可以让安全工程师通过各种方式进行无线渗透测试。
我来说两句