什么是渗透测试?如何做渗透测试?
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。
渗透测试一定要遵循软件测试基本流程,要知道测试过程和目标特殊,在具体实施步骤上主要包含以下几步:
1、明确目标
当测试人员拿到需要做渗透测试的项目时,首先确定测试需求,如测试是针对业务逻辑漏洞,还是针对人员管理权限漏洞等;然后确定客户要求渗透测试的范围,如ip段、域名、整站渗透或者部分模块渗透等;最后确定渗透测试规则,如能够渗透到什么程度,是确定漏洞为止还是继续利用漏洞进行更进一步的测试,是否允许破坏数据、是否能够提升权限等。
2、收集信息
在信息收集阶段要尽量收集关于项目软件的各种信息。比如:对于一个Web应用程序,要收集脚本类型、服务器类型、数据库类型以及项目所用到的框架、开源软件等。信息收集对于渗透测试来说非常重要,只要掌握目标程序足够多的信息,才能更好地进行漏洞检测。
信息收集的方式可分为以下2种:主动收集、被动收集。
3、扫描漏洞
在这个阶段,综合分析收集到的信息,借助扫描工具对目标程序进行扫描,查找存在的安全漏洞。
4、验证漏洞
在扫描漏洞阶段,测试人员会得到很多关于目标程序的安全漏洞,但这些漏洞有误报,需要测试人员结合实际情况,搭建模拟测试环境对这些安全漏洞进行验证。被确认的安全漏洞才能被利用执行攻击。
5、分析信息
经过验证的安全漏洞就可以被利用起来向目标程序发起攻击,但是不同的安全漏洞,攻击机制不同,针对不同的安全漏洞需要进一步分析,制定一个详细的攻击计划,这样才能保证测试顺利执行。
6、渗透攻击
渗透攻击实际是对目标程序进行的真正攻击,为了达到测试的目的,像是获取用户账号密码、截取目标程序传输数据等。渗透测试是一次性测试,在攻击完成后能够执行清理工作。
7、整理信息
渗透攻击完成后,整理攻击所获得的信息,为后边编写测试报告提供依据。
8、编写报告
测试完成之后要编写报告,阐述项目安全测试目标、信息收集方式、漏洞扫描工具以及漏洞情况、攻击计划、实际攻击结果等。此外,还要对目标程序存在的漏洞进行分析,提供安全有效的解决办法。
Web应用的渗透测试流程主要分为3个阶段:信息收集、漏洞发现、漏洞利用。
一、信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等
二、漏洞发现
在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。
三、漏洞利用
针对不同的弱点有不同的漏洞利用方式,需要的知识点也比较多。一般这个阶段包括两种方式,一种是手工测试,一种是工具测试。
手工测试
手工测试是通过客户端或服务器访问目标服务,手工向目标程序发送特殊的数据,包括有效的和无效的输入,观察目标的状态、对各种输入的反应,根据结果来发现问题的漏洞检测技术。
工具测试
网络上有很多好用的免费利用工具,比如针对sql注入的sqlmap、针对软件漏洞的matesploit等。
渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
专业服务
渗透测试有时是作为外部审查的一部分而进行的。这种测试需要探查系统,以发现操作系统和任何网络服务,并检查这些网络服务有无漏洞。你可以用漏洞扫描器完成这些任务,但往往专业人士用的是不同的工具,而且他们比较熟悉这类替代性工具。
渗透测试的作用一方面在于,解释所用工具在探查过程中所得到的结果。只要手头有漏洞扫描器,谁都可以利用这种工具探查防火墙或者是网络的某些部分。但很少有人能全面地了解漏洞扫描器得到的结果,更别提另外进行测试,并证实漏洞扫描器所得报告的准确性了。
10款好用的渗透测试工具推荐:
第一:Nmap
从诞生之处,Nmap就一直是网络发现和攻击界面测绘的首选工具,从主机发现和端口扫描,到操作系统检测到IDS规避/欺骗,Nmap是大大小小黑客行动的基本工具。
第二:Aircrack-ng
与Nmap类似,Aircrack-ng是那种,渗透测试人员不仅知道,且只要评估无线网络,就会经常用到的工具。Aircrack-ng是无线评估工具套装,覆盖数据包捕捉和攻击。
第三:Wifiphisher
Wifiphisher是一个伪造恶意插入点的工具,可针对WiFi网络发起自动化网络钓鱼攻击。基于任务范围,Wifiphisher可致凭证获取或实际的感染。其网站上的文档部分可查阅完整概述。
第四:Burp Suite
Burp
Suite与Web浏览器配合使用,可发现给定APP的功能和安全问题,是发起定制攻击的基础。目前免费版本功能有限,但付费版本提供全面的网络爬取和扫描功能;多攻击点;基于范围的配置。它可用于自动化重复功能,提供APP与服务器互动的良好视图。
第五:OWASP ZAP
OWASP ZAP攻击代理是与Burp Suite相提并论的一款应用测试工具。ZAP适合应用安全新手,而Burp
Suite是首选核心评估工具。如果资金比较紧张的话,可以选择ZAP,它是一款开源工具。
第六:SQLmap
SQLmap是一款自动化SQL注入和数据库管理工具。SQLmap支持所有常见数据库平台,比如:MySQL、msSQL、Access、DB2、SQLite、Sybase等,还有六种不同的攻击方法。
第七:CME
CME是一款后漏洞利用工具,可帮助自动化大型活动目录网络安全评估任务。其缔造者是名称为byt3bl33d3r的黑客,该工具的生存概念是:利用AD内置功能或协议达成其功能,并规避大多数终端防护/IDS/IPS解决方案。
第八:PowerSploit
PowerSploit是在评估过程中使用的一系列模块的集合。正如名字揭示:这些模块本身用于Windows上的PowerShell,其功能包括:驻留、杀软规避、渗漏、代码执行、脚本修改、侦察等。
第九:BeEF
BeEF是利用客户端攻击方法,评估目标环境切实安全状态的趁手工具,鉴于该工具提供的众多功能和选项,很多安全专家都提到了BeEF,并评价称特别好用。
第十:Immunity Debugger
Immunity
Debugger是帮助安全人员编写漏洞利用程序、分析恶意软件和逆向工程二进制文件的工具。功能繁多,但有两份文档很好地阐述了其中大多数功能,一份是伊戈尔·诺夫科维奇写的概览,一份是SANS阅览区关于基础逆向工程的论文。如果逆向或漏洞利用程序编写已经在你的技能集里面,你可能已经十分熟悉这个工具了。
渗透测试会用到的工具有很多,为大家列举几个:
1、Invicti Pro
invicti是一种自动化但完全可配置的web应用程序安全扫描程序,使您能够扫描网站、web应用程序和web服务,并识别安全漏洞。
2、BurpSuite
与web浏览器配合使用,可发现给定APP的功能和安全问题,是发起定制攻击的基础。目前,免费版本功能很有限,但付费版本提供全面的网络爬取和扫描功能、多攻击点、基于范围的配置。关于此工具最常见的评价是,它可用于自动化重复功能,提供app与服务器互动的良好视图。
3、Nmap
Nmap以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。同时它还提供防火墙规避和欺骗功能。
4、Metasploit Pro
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,web应用程序扫描,社会工程。
5、Cobalt Strike
Cobalt Strike是一款GUI的框架式渗透工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win
dll木马生成,Java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,Java执行,浏览器自动攻击等等。
6、AWVS
AWVS,全称Acunetix Web Vulnerability
Scanner,是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。
7、Fortify
Fortify是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,通过与软件安全漏洞规则集进行匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并可导出报告。
8、OWASP ZAP
是一款web
application集成渗透测试和漏洞工具,是免费开源跨平台的。OWASP_ZPA支持截断代理,主动、被动扫描,Fuzzy,暴力破解并且提供API。
9、DarkAngel
DarkAngel是一款全自动白帽漏洞扫描器,从hackerone、bugcrowd资产监听到漏洞报告生成、企业微信通知。
10、fscan
一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
服务器渗透测试的话分为几个层面进行测试的,如下:
一、内网扫描:扫描服务器代码漏洞等。
二、外网扫描:扫描目前市场已知漏洞等。
三、社会工程学扫描:排除人为的安全隐患因素。
0条评论