软件测试有很多种,如黑盒测试,功能测试等。
今天介绍渗透测试。
渗透测试一般在黑客中运用,黑客当然不是骇客(cracker),是有区别的。
渗透测试可以说是黑客攻击的一种,通常的黑客攻击包括预攻击、攻击和后攻击三个阶段;预攻击阶段主要指一些信息收集和漏洞扫描的过程;攻击过程主要是利用第一阶段发现的漏洞或弱口令等脆弱 性进行入侵;后攻击是指在获得攻击目标的一定权限后,对权限的提升、后面安装和痕迹清除等后续工作。与黑客的攻击相比,渗透测试仅仅进行预攻击阶段的工 作,并不对系统本身造成危害,即仅仅通过一些信息搜集手段来探查系统的弱口令、漏洞等脆弱性信息。为了进行渗透测试,通常需要一些专业工具进行信息收集。 渗透测试工具种类繁多,涉及广泛,按照功能和攻击目标分为网络扫描工具、通用漏洞检测、应用漏洞检测三类。
常用网络扫描工具
网络扫描是渗透测试的第一步,其目的在于发现目标的
操作系统类型、开放端口等基本信息,为后续的扫描工作做基础。事实上,利用操作系统本身的一些命令如 ping、telnet、nslookup等也可以对目标的信息进行判断,但是利用专业的工具可以给出更加全面和准确的判断。
NMap
NMap 是
Linux操作系统下的一款网络连接端扫描软件,其功能主要有三个:探测一组主机是否在线;扫描主机端口是否打开;判断目标操作系统。NMap的常用扫描方式有:
1) TCP connect端口扫描:-sT参数
2) 端口扫描TCP同步:-sS参数
3) 端口扫描UDP:-sU参数
4) Ping扫描:-sP参数
SuperScan
SuperScan是一款功能强大的端口扫描软件,其主要功能有:
1) 通过Ping来检验IP是否在线;
2) IP和域名相互转换;
3) 检验目标计算机提供的服务类别;
4) 检验一定范围目标计算机的是否在线和端口情况;
5) 工具自定义列表检验目标计算机是否在线和端口情况;
6) 自定义要检验的端口,并可以保存为端口列表文件;
7) 软件自带一个木马端口列表trojans.lst,通过这个列表我们可以检测目标计算机是否有木马;同时,我们也可以自己定义修改这个木马端口列表.
Wireshark
Wireshark是一个网络封包分析软件,其功能是借取流经本地网卡的有数据流量进而分析。通常的应用包括:网络管理员用来解决网络问题、网络安全工程师用来检测安全隐患、开发人员用来测试协议执行情况、用来
学习网络协议。
在渗透测试中,Wireshark通常被用于嗅探局域网内的数据传输格式,探查是否存在明文传输口令、数据传输风险等。图形界面的Wireshark 使用十分便捷,选取监听的网卡之后,主界面中会显示所有的数据流量。双击任意条目,则可以根据协议的层次拆分该数据流。Wireshark内置了基本的网 络协议,可以方便的查询包括但不局限于IP、TCP、UDP、HTTP、FTP、SMB等常见的协议内容。
由于Wireshark借取的数据是所有流经网卡的数据,在实际应用中最重要的操作是通编写过滤器获得需要的数据流量。主界面中的Filter选项可以方 便的进行过滤器的编辑,过滤包括源地址、目的地址、协议类型等配合各种逻辑运算符组成的表达式,从而根据需要快速的找到目标数据流量。
通用漏洞检测工具
在获取了目标主机的操作系统、开放端口等基本信息后,通常利用通用漏洞扫描工具检测目标系统所存在的漏洞和弱口令。通用漏洞主要指操作系统本身或者安装 的应用软件所存在的漏洞,通常是指缓冲区漏洞,例如MS-08-067、oracle的漏洞。由于系统开启了135、139、445、1433、1521 等应用程序端口,同时没有及时安装补丁,使得外来主机可以通过相应的端口发送恶意的请求从而获取不应当获得的系统权限。
在实际的应用中,如果防火墙做了良好的部署,则对外界展现的端口应该受到严格控制,相应的通用漏洞危害较小。但是如果没有在边界上进行良好的访问控制,则缓冲区溢出漏洞有着极其严重的威胁,会轻易被恶意用户利用获得服务器的最高权限。
Nessus
Nessus 是一款系统漏洞扫描与分析软件,采用B/S架构的方式安装,以网页的形式向用户展现。用户登录之后可以指定对本机或者其他可访问的服务器进行漏洞扫描。 Nessus的扫描程序与漏洞库相互独立,因而可以方便的更新其漏洞库,同时提供多种插件的扩展和一种语言NASL(Nessus Attack Scripting Language)用来编写测试选项,极大的方便了漏洞数据的维护、更新。在进行扫描完成后,Nessus还可以生成详尽的用户报告,包括脆弱性、漏洞修 补方法以及危害级别等,可以方便的进行后续加固工作。
X-Scan
X-Scan 是一款国产的漏洞扫描软件,完全免费,无需安装,由国内著名民间黑客组织“安全焦点”完成。X-Scan的功能包括:开放服务、操作系统鉴别、应用系统弱口令、IIS编码漏洞、应用漏洞检测等。
X-Scan通常被用来进行弱口令的检测,其提供的弱口令检测模块包含telnet、ftp、SQL-server、cvs、vnc、smtp、 nntp、sock5、imap、pop3、rexec、NT-Server、ssh、www,采用字典攻击的方式,配合恰当的字典生成工具可以完成大部 分常用应用软件的弱口令破解工作。X-Scan也提供漏洞检测脚本的加载方式,可以即时的更新扫描模块,同时也提供扫描结果报告功能。
Metasploit
Metasploit 是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。
事实上Metasploit提供的是一个通用的漏洞攻击框架,通过它可以方便的获取、开发针对漏洞的攻击。Metasploit将负载控制,编码器,无操 作生成器和漏洞整合在一起,成为一种研究高危漏洞的途径,它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。
对于开发者来说,需要了解缓冲区溢出的原理、需要编写的漏洞详细情况、payload生成、注入点以及metasploit的漏洞编写规则。而对于普 通的渗透测试人员,仅仅只需要安装metasploit,下载最新的漏洞库和shellcode,选择攻击目标,发送测试就可以完成漏洞检测工作。事实 上,metasploit不仅提供漏洞检测,还可以进行实际的入侵工作。由于采用入侵脚本时可能对系统造成不可预估的效果,在进行渗透测试时应当仅仅使用测试功能。
Acunetix Web Vulnerability Scanner
Acunetix Web Vulnerability Scanner是一个网站及
服务器漏洞扫描软件,它包含有收费和免费两种版本。
功能介绍:
1) AcuSensor 技术
2) 自动的客户端脚本分析器,允许对 Ajax 和 Web 2.0 应用程序进行安全性测试。
3) 业内最先进且深入的 SQL 注入和跨站脚本测试
4) 高级渗透测试工具,例如 HTTP Editor 和 HTTP Fuzzer
5) 可视化宏记录器帮助您轻松测试 web 表格和受密码保护的区域
6) 支持含有 CAPTHCA 的页面,单个开始指令和 Two Factor(双因素)验证机制
7) 丰富的报告功能,包括 VISA PCI 依从性报告
8) 高速的多线程扫描器轻松检索成千上万个页面
9) 智能爬行程序检测 web 服务器类型和应用程序语言
10) Acunetix 检索并分析网站,包括 flash 内容、SOAP 和 AJAX
11) 端口扫描 web 服务器并对在服务器上运行的网络服务执行安全检查
Web应用漏洞检测
随着信息网络的发展,人们的信息安全意识日益提升,信息系统的安全防护措施也逐渐提高。通常在服务器的互联网边界处都会部署防火墙来隔离内外网络,仅仅将 外部需要的服务器端口暴露出来。采用这种措施可以大大的提高信息系统安全等级,对于外部攻击者来说,就像关闭了所有无关的通路,仅仅留下一个必要入口。但 是仍然有一类安全问题无法避免,就是web应用漏洞。
目前的大多数应用都是采用B/S模式,由于服务器需要向外界提供web应用,http服务是无法关闭的。web应用漏洞就是利用这个合法的通路,采用 SQL注入、跨站脚本、表单破解等应用攻击方式来获取服务器的高级权限。在目前的网络环境下,威胁最大的漏洞形式就是web应用漏洞,通常是攻击者攻陷服 务器的第一步。常见的漏洞包括SQL注入、跨站脚本攻击和编码漏洞等,表单破解主要是针对服务器用户的弱口令破解。从本质上来说,应用漏洞的形成原因是程 序编写时没有对用户的输入字符进行严格的过滤,造成用户可以精心构造一个恶意字符串达到自己的目的。
AppScan
AppScan 是IBM公司出的一款Web应用安全测试工具,采用黑盒测试的方式,可以扫描常见的web应用安全漏洞。其工作原理,首先是根据起始页爬取站下所有可见的 页面,同时测试常见的管理后台;获得所有页面之后利用SQL注入原理进行测试是否存在注入点以及跨站脚本攻击的可能;同时还会对cookie管理、会话周 期等常见的web安全漏洞进行检测。AppScan功能十分齐全,支持登录功能并且拥有十分强大的报表。在扫描结果中,不仅能够看到扫描的漏洞,还提供了 详尽的漏洞原理、修改建议、手动验证等功能。AppScan的缺点在于,作为一款商业软件,价格十分昂贵。
溯雪
溯雪是一款国产软件,主要的功能是进行表单破解。由于目前的应用多数采用B/S模式,登录窗口也都采用表单提交的方式,使得基于传统协议的暴力破解软件没有用武之地。针对此类应用,采用溯雪等基于表单的暴力破解软件可以很好的进行弱口令扫描。
溯雪的工作原理是抽取目标网站中的表单元素,搜寻错误登录时的错误标志,然后采用字典填充其值并不断提交尝试获得正确的连接。
Pangolin
Pangolin是一款SQL注入测试工具,能够自动化的进行注入漏洞的检测,从检测注入开始到最后控制目标系统都给出了测试步骤,是目前国内使用率最高 的SQL注入测试软件。支持的数据库包括Access、DB2、Informix、Microsoft SQL Server 2000、Microsoft SQL Server 2005、Microsoft SQL Server 2008、Mysql、Oracle、PostgreSQL、Sqlite3、Sybase。
adiOS