安全工具

——

打印本文             

1.Wireshark 

目前Wireshark是全世界最广泛的网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。

Wireshark不是入侵侦测系统(Intrusion Detection System,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出流通的封包资讯。 Wireshark本身也不会送出封包至网络上。

Wireshark工作流程主要包括下面七步。

(1)确定Wireshark的位置。如果没有一个正确的位置,启动Wireshark后会花费很长的时间捕获一些与自己无关的数据。

(2)选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。

(3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。

(4)使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤。

(5)使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。

(6)构建图表。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。

(7)重组数据。Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是一个重组一个完整的图片或文件。由于传输的文件往往较大,所以信息分布在多个数据包中。为了能够查看到整个图片或文件,这时候就需要使用重组数据的方法来实现。

Wireshark的获取方式建议如下。

可以从通过网站https://www.wireshark.org/download.html同时获取源文件和二进制发行版。选择您需要下载的链接,然后选择源文件或二进制发行包所在的镜像站点。下载过程中需要注意事项:

(1)下载所有需要的文件,一般来说,除非已经下载Wireshark,如果想编译Wireshark源文件,可能需要下载多个包。

(2)网站上有多个二进制发行版可用,应该选择适合您平台的版本。


2.Nmap

Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的,随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。Nmap源码开放,在GPL License的范围内可以自由的使用,方便移植,可以用于扫描互联网上大规模的计算机。支持数十种不同的扫描方式,支持多种目标对象的扫描。支持主流操作系统:Windows、Linux、Unix、MacOS等等。

最新版的Nmap可以通过https://nmap.org下载。

Nmap提供默认的操作能覆盖大部分功能,例如,基本端口扫描命令格式:nmap targetIP,全面的扫描nmap –A targetIP。Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部Nmap参考书籍。

Nmap包含四项基本功能:主机发现(Host Discovery)、端口扫描(Port Scanning)、版本侦测(Version Detection)、操作系统侦测(Operating System Detection)。而这四项功能之间,又存在大致的依赖关系(通常情况下的顺序关系,但特殊应用另外考虑),首先需要进行主机发现,随后确定端口状况,然后确定端口上运行具体应用程序与版本信息,然后可以进行操作系统的侦测。在四项基本功能的基础上,Nmap提供防火墙与IDS(Intrusion Detection System,入侵检测系统)的规避技巧,可以综合应用到四个基本功能的各个阶段;另外Nmap提供强大的NSE(Nmap Scripting Language)脚本引擎功能,脚本可以对基本功能进行补充和扩展。

一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。


3. Metasploit

Metasploit是一个编写、测试和使用exploit代码的理想环境。这个环境为渗透测试、shellcode编写和漏洞研究提供了一个可靠的平台。Metasploit主要是由面向对象的Ruby编程语言编写的,并带有由C语言,汇编程序和Python编写的可选组件。当H.D.Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。

Metasploit作为一个缓冲区溢出测试使用的辅助工具,也可以说是一个漏洞利用和测试平台。它集成了各平台上常见的溢出漏洞和流行的shellcode,并且不断更新,使得缓冲区溢出测试变得方便和简单。

Metasploit下载地址为:https://www.metasploit.com,包括开源版本(Metasploit Framework)和商业版本(Metasploit Pro)

Metasploit Framework作为一款开源的安全漏洞检测工具,是一个免费的、可下载的框架,功能包括智能开发,代码审计,Web应用程序扫描,社会工程等,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并对系统安全性进行评估,提供真正的安全风险情报。通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。

Metasploit的框架性结构使其具有良好的可扩展性。控制接口负责发现漏洞,攻击漏洞,提交漏洞,然后通过一些接口加入攻击后处理工具和报表工具。Metasploit框架可以从一个漏洞扫描程序导入数据,使用关于有漏洞主机的详细信息来发现可攻击漏洞,然后使用有效载荷对系统发起攻击。所有这些操作都可以通过Metasploit的Web界面进行管理,而它只是其中一种管理接口,另外还有命令行工具可以使用。


4. Nessus

Nessus 作为一款优秀的系统漏洞扫描与分析软件,在全世界用户数量众多。Nessus采用客户/服务器体系结构,客户端提供了运行在X Window 下的图形界面,接受用户的命令与服务器通信,传送用户的扫描请求给服务器端,由服务器启动扫描并将扫描结果呈现给用户;扫描代码与漏洞数据相互独立,Nessus 针对每一个漏洞有一个对应的插件,漏洞插件是用NASL(NESSUS Attack Scripting Language)编写的一小段模拟攻击漏洞的代码,这种利用漏洞插件的扫描技术极大的方便了漏洞数据的维护、更新;Nessus 具有扫描任意端口任意服务的能力;以用户指定的格式(ASCII 文本、html 等)产生详细的输出报告,包括目标的脆弱点、怎样修补漏洞以防止黑客入侵及危险级别。

Nessus官网下载地址:https://www.tenable.com/products/nessus

Nessus具有如下特色:

(1)提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库;

(2)不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上摇控,进行系统的漏洞分析扫描;

(3)其运作效能能随着系统的资源而自行调整。如果将主机加入更多的资源(例如加快CPU速度或增加内存大小),其效率表现可因为丰富资源而提高;

(4)可自行定义插件(Plug-in);

(5) NASL(Nessus Attack Scripting Language) 是由 Tenable 所开发出的语言,用来写入Nessus的安全测试选项;

(6)完整支持SSL (Secure Socket Layer)。

Nessus对个人用户是免费的,只需要在官方网站上注册即可,对应商业用户是收费的。


5. Nexpose

Nexpose 是一款极佳的漏洞扫描和漏洞评估工具,涵盖了很多统计功能,可以生成非常详细的漏洞扫描报告,包含漏洞的详细信息,甚至可以给出哪那些漏洞可以被Metasploit爆破,哪些漏洞在Exploit-db里面有爆破方案。可以通过更新其漏洞数据库,确保扫描到最新的漏洞。

Nexpose官网下载地址:https://www.rapid7.com/products/nexpose

Nexpose核心功能包括:资产管理、风险分析、漏洞监测、合规性检测、任务管理和综合管理等。

(1)资产管理

资产发现:支持手动和自动的资产发现,支持通过DHCP/AD域/vSphere等平台动态识别资产信息。

资产标签:支持定义资产标签,包括资产重要程度、资产责任人资产组、资产所属业务系统以及动态资产组。

资产特征识别:支持对资产进行特征识别,包括资产IP地址、系统类型、版本信息。

(2)风险分析

风险特征分析:支持对发现的安全漏洞进行特征分析,提供漏洞详细描述、漏洞编号、漏洞特征等漏洞分析数据。

风险威胁分析:支持对发现的安全漏洞进行威胁分析,提供漏洞利用场景说明、已知漏洞利用代码、漏洞威胁影响等分析数据。

风险汇总分析:支持对资产、任务进行综合风险分析,提供风险赋值、风险警告、风险处置建议等汇总分析数据。

(3)漏洞监测

主机系统漏洞监测:支持对常见主机系统进行漏洞监测,包括Windows常见操作系统类型、Linux常见操作系统类型、Unix常见操作系统类型等。

数据库系统漏洞监测:支持对常见的数据库系统进行监测,包括Oracle常见版本、Mysql常见版本、SQL Server常见版本等。

中间件漏洞监测:支持对常见中间件进行漏洞监测,包括Apache常见版本、Tomcat常见版本、IIS常见版本、Nginx常见版本等。

漏洞监测数量:支持对常见漏洞库平台收录的系统安全漏洞进行监测,包括CVE、CNNVD、OSVDB等,并定期更新出现的安全漏洞。

(4)合规性检测

主机系统漏洞检测:支持对常见主机系统进行漏洞检测,包括Windows常见操作系统类型、Linux常见操作系统类型、Unix常见操作系统类型等。

数据库系统漏洞检测:支持对常见的数据库系统进行检测,包括Oracle常见版本、Mysql常见版本、SQL Server常见版本等。

中间件漏洞检测:支持对常见中间件进行漏洞检测,包括Apache常见版本、Tomcat常见版本、IIS常见版本、Nginx常见版本等

(5)任务管理

监测任务创建:支持通过创建任务来执行扫描计划。

监测任务定制:支持对监测任务的细节进行定制,包括监测资产、监测模板、监测引擎、监测计划等信息。

(6)综合管理

平台管理:支持平台管理功能,提供可视化管理接口,便捷的管理操作。

用户管理:支持平台用户管理,提供用户角色和权限管理功能。

综合报表:支持对监测结果进行综合报表,报表内容全面,涵盖所有发现的漏洞和风险,支持自定义报表和预定义报表。

安全接口:支持提供安全接口与第三方平台进行数据交互,支持第三方对交互数据解析。

安全审计:支持安全审计功能,对用户的登录、操作、分析等操作进行审计记录。


6. Burp Suite

Burp Suite是一款集成化的渗透测试工具,它集合了多种渗透测试组件,使我们能够自动化或手工完成对web应用的渗透测试和攻击。在渗透测试中,使用Burp Suite将使得测试工作变得更加容易和方便,使得渗透测试工作变得轻松和高效。

Burp Suite是由Java语言编写而成,而Java自身的跨平台性,使得软件的学习和使用更加方便。Burp Suite需要手工配置一些参数,触发一些自动化流程,然后才会开始工作。

Burp Suite官网下载地址:https://portswigger.net/burp,有社区版、商业版和企业版

Burp Suite可执行程序是Java类型的jar文件,如果只是需要了解基本功能,可以下载免费版。免费版的Burp Suite会有许多限制,很多的高级工具无法使用,如果想使用更多的高级功能,需要付费购买专业版。

Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。Burp Suite主要拦截http和https协议的流量,通过拦截,Burp Suite以中间人的方式,可以对客户端请求数据、服务端返回做各种处理,以达到安全评估测试的目的。在日常工作中,我们可以通过代理的设置,做到对Web浏览器的流量拦截,并对经过Burp Suite代理的流量数据进行处理。


7.SQLMap

SQLMap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。

SQLMap官网下载地址:http://sqlmap.org/

SQLMap支持五种不同的注入模式:

(1)基于布尔的盲注,即可以根据返回页面判断条件真假的注入;

(2)基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;

(3)基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;

(4)联合查询注入,可以使用union的情况下的注入;

(5)堆查询注入,可以同时执行多条语句的执行时的注入。


8.LoadRunner

LoadRunner是原Mercury公司产品,2006年Mercury被HP收购,2016年被MicroFocus收购。LoadRunner是一种高规模适应性的自动负载测试工具,它能预测系统行为,优化性能,实现对整个企业应用架构的测试。LoadRunner支持脚本录制,也支持编程,它通过模拟实际用户的操作行为和实行实时性能监控,来帮助客户更快的确认和查找问题,能支持广泛的协议和技术,为客户的特殊环境提供特殊的解决方案。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试。LoadRunner是商业软件,社区版本一台机器最多能开50并发,在Win10系统上controller需要授权码才能打开。

LoadRunner官网下载地址:

https://www.microfocus.com/zh-cn/products/loadrunner-professional/overview

LoadRunner Professional(商业版)支持对各种应用程序环境和协议的性能测试,包括 Web/移动、Web 服务、MQTT、HTML5、WebSocket、RDP、数据库、远程终端仿真器、Citrix、Java、.NET、Oracle 和 SAP。脚本和调试引擎利用数据扩展和关联工作室,减少编制脚本所需时间。LoadRunner Professional 提供了 IDE 与开发环境的集成;让开发人员可以使用 LoadRunner Professional 引擎运行单元测试。开发人员可以直接在 IDE 中创建 LoadRunner Professional 脚本,从而可以在应用程序生命周期中进行更早的性能测试。LoadRunner Professional 重现真实的业务流程。可以轻松修改脚本,模拟真实的用户行为。它模拟成千上万个并发虚拟用户(使用最少的硬件),将准确的工作负载应用于任何应用程序,并捕获最终用户对业务流程和交易的响应时间,从而确保应用程序满足要求。无论在何处运行应用程序,都可以减少配置时间,提高效率。使用云测试,可以快速扩展测试,满足应用程序的需求,从而降低管理专用计算机的成本和开销。无缝地利用公共云根据性能测试需求进行扩展,无需复杂的网络配置。

LoadRunner主要功能包括:

(1)虚拟用户

使用LoadRunner的Virtual User Generator,能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,可以在Windows、UNIX 或Linux 机器上同时产生成千上万个用户访问,所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。

用Virtual User Generator 建立测试脚本后,可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试应用程序,从而反映出被测系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。

(2)真实负载

Virtual users 建立起后,需要设定负载方案,业务流程组合和虚拟用户数量。用LoadRunner的Controller,能很快组织起多用户的测试方案。Controller 的Rendezvous 功能提供一个互动的环境,在其中既能建立起持续且循环的负载,又能管理和驱动负载测试方案。

可以利用日程计划服务来定义用户在什么时候访问系统以产生负载。这样就能将测试过程自动化。同样还可以用Controller 来限定负载方案,在这个方案中所有的用户同时执行一个动作,如登陆到一个库存应用程序来模拟峰值负载的情况。另外,还能监测系统架构中各个组件的性能,包括服务器、数据库、网络设备等,来帮助客户决定系统的配置。

(3)定位性能

LoadRunner内含集成的实时监测器,在负载测试过程的任何时候,都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括Application Server,Web Server,网路设备和数据库等的实时性能。这样,就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。

利用LoadRunner的ContentCheck TM ,可以判断负载下的应用程序功能正常与否。ContentCheck 在Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。可以通过实时浏览器从终端用户角度观察程序性能状况。

(4)分析结果

一旦测试完毕后,LoadRunner收集汇总所有的测试数据,并提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner的Web 交易细节监测器,可以了解到将所有的图像、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,可以将网络延时进行分解,以判断DNS 解析时间,连接服务器或SSL 认证所花费的时间。通过使用LoadRunner的分析工具,能很快地查找到出错的位置和原因并做出相应的调整。

(5)重复测试

负载测试是一个重复过程。每次处理完一个出错情况,都需要对应用程序在相同的方案下,再进行一次负载测试。以此检验所做的修正是否改善了运行性能。LoadRunner完全支持EJB 的负载测试。这些基于Java 的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,可以在应用程序开发的早期就确认并解决可能产生的问题。

利用LoadRunner,可以很方便地了解系统的性能。Controller 允许重复执行与出错修改前相同的测试方案。基于HTML 的报告能够提供一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。报告是基于HTML 的文本,便于随时查阅。


9.Fortify

Fortify是Micro Focus旗下AST (应用程序安全测试)产品 ,其产品组合包括:Fortify Static Code Analyzer提供静态代码分析器(SAST),Fortify WebInspect是动态应用安全测试软件(DAST),Software Security Centre是软件安全中心(SSC)和 Application Defender 是实时应用程序自我保护(RASP)。 Fortify为 25 种以上主要语言及其框架准确支持,并由业界领先的软件安全研究 (SSR) 团队提供灵活的更新支持。在 Eclipse 或 Visual Studio IDE 中使用 Security Assistant,利用开发人员的安全“拼写检查器”实时查找并修复安全漏洞。游戏化培训可支持开发人员创建安全代码。覆盖广泛的漏洞,包括 SAST 800 多种漏洞,同时符合 OWASP Top 10、CWE/SANS Top 25、DISA STIG 和 PCI DSS 等标准。

Fortify 能够提供静态和动态应用程序安全测试技术,以及运行时应用程序监控和保护功能。为实现高效安全监测,Fortify具有源代码安全分析,可精准定位漏洞产生的路径,以及具有1分钟1万行的扫描速度。

(1)Fortify静态应用安全测试软件

Fortify SCA 是一款静态应用程序安全性测试 (SAST) 产品,可供开发团队和安全专家分析源代码,检测安全漏洞,帮助开发人员更快更轻松地识别问题并排定问题优先级,然后加以解决。

(2)WebInspect动态应用安全测试软件

Micro Focus Fortify WebInspect是一款动态应用程序安全测试工具,可利用动态扫描程序来扫描当今主流的技术框架和 Web 技术,提供动态应用程序安全测试覆盖范围,并可检测黑盒安全测试技术经常检测不到的新型漏洞。

Fortify官网下载地址:

https://www.microfocus.com/zh-cn/products/static-code-analysis-sast/overview