渗透测试的方法(什么是渗透测试)
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
什么是渗透测试?
渗透测试是指渗透人员在不同的位置利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
它需要得到用户的授权,基于合法性才可以对网站进行渗透,之后根据测试结果编写报告,然后进行网站楼的修补。 渗透测试一般分为两种:黑盒测试和白盒测试。黑盒测试是只根据网站的URL进行渗透分析,白盒测试是根据网站的源码和其他相关全面信息进行渗透,偏于代码分析。
2017 年 6 月 1 日,《中华人民共和国网络安全法》正式实施,明确要求国内运营的信息系统须实施等级保护制度,使等级保护制度成为国家基本制度并上升到法律层面。在等级保护的基本要求中,虽没有相应的技术标准对信息系统“抗渗透”能力做明确规定,但针对定级为第三级及以上的信息系统,在基本要求的安全技术层面,对系统抵御大规模恶意攻击能力、非法入侵检测与防御能力、抗恶意代码攻击能力、安全事件应急响应及监控等能力做了详细要求。同时在安全管理层面,要求信息系统须经过公正的第三方安全测试才能上线运行。
因此,在等级保护测评过程中如何及时、准确地发现系统存在的安全风险,成为非常迫切的需求。渗透测试模拟攻击者的思维,采用手动或技术成熟的工具对被测系统的安全性进行全面评估,从而最大程度地发现系统存在的安全隐患,成为等级保护测评中一个必不可少的重要环节。
渗透测试的流程?
通常,渗透测试一般包括测试准备、信息探测、测试实施、报告编制四个阶段。各个环节相关工作内容概述如下:
1. 测试准备阶段 在获取到单位的书面授权许可后,开始渗透测试的实施。将实施范围、方法、工具、时间、人员等具体方案与单位进行交流,沟通可能存在的测试风险,并得到单位的认可。整个测试过程都在单位的监督和控制下进行。
2. 信息探测阶段 渗透测试过程中,根据规定的测试范围收集信息系统相关信息,可采用一些商业或开源的安全评估工具进行收集,如 Webinspect、Appscan、Nessus、Nmap 等,并对探测到的端口、服务、IP、DNS、OS 等信息进行整理,为下一步测试实施阶段提供支撑。
3. 测试实施阶段 渗透测试人员对探测到的信息进行分析,通过制定渗透策略、准备攻击代码、研究绕过机制等步骤进行测试。实施路径主要包括内网和外网两种:
① 内网测试 从内网发起对信息系统的测试工作,目的是避开防火墙等设备的安全防护措施。此阶段如能成功,可能获得普通用户权限,然后通过提权等操作,获取系统的最高权限。以被控制的服务器作为跳板,从而对其他目标进一步渗透测试。
② 外网测试 直接通过互联网,对信息系统进行渗透测试,操作流程与内网测试类似。
4.报告编制阶段 实施人员分析测试结果,编写系统渗透测试报告,主要包括具体测试结果、漏洞结果评估及整改建议等内容。
测试实施
渗透测试人员使用多种系统或工具进行信息收集工作,包括系统扫描工具 Nmap、Openvas、Burpsuit 等,经扫描发现系统开放了 80、139、445、3389、47001 等端口。针对这些服务从系统层面和 WEB 层面进行分析,发现系统存在文件共享、远程接入、SQL 注入、XML 注入等漏洞,为下一步的漏洞利用提供基础。
根据获取的漏洞信息,结合信息系统的特点、异构性等方面对漏洞进行确认,并制定渗透测试策略。获取的信息发现高危漏洞,尝试直接利用高危漏洞,验证是否可用。
第一步:制定渗透测试策略: 1) 目标: 获取被测系统服务器的控制权限; 2) 实施途径: 系统漏洞扫描--> 服 务 漏 洞 --> 漏 洞 利 用 --> 获 取 远 程 Shell--> 建立用户 --> 远程桌面; 3) 说明: 如果获取的远程 Shell 权限较低,则需提权后再建立用户。
第二步:采用不同的漏扫工具对已扫描的漏洞进行确认,结果确认系统服务器存在熟知漏洞( 扫描工具为 nmap 和 Nessus) ,编号为 MS08 - 067。该漏洞是针对文件共享服务的,若服务器收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。
第三步:漏洞确认之后,采用漏洞利用工具实施溢出,顺利获取 Shell 控制界面,执行“whoami”命令,查看“用户及用户组”,显示为“Administrator”用户组,表明获取的是系统管理员的权限,即获取系统最高控制权。
第四步:通过该 Shell 建立后门帐号,后续使用后门帐号即可远程登录系统,至此整个过程完成( 该步骤获得用户许可) 。
渗透测试完成后,测试人员整理工作内容和成果。根据发现的安全漏洞和安全风险提出系统存在的问题,并有针对性的提出问题整改建议,形成《渗透测试报告》。
进行渗透测试的必要性?
借助渗透测试,可以先于黑客发现系统安全隐患,提前部署好安全防御措施,保证系统的每个环节在未来都能经得起黑客挑战,进一步巩固客户对企业及平台的信赖。
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。通过渗透测试,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。
通过渗透测试,企业用户可以从攻击角度了解系统是否存在隐性漏洞和安全风险,特别是在进行安全项目之前进行的渗透测试,可以对信息系统的安全性得到深刻的感性认知,有助于进一步健全安全建设体系;渗透测试完毕后,也可以帮助用户更好地验证经过安全保护后的网络是否真实的达到了预期安全目标、遵循了相关安全策略、符合安全合规的要求。
通过渗透测试可以获得什么?
1. 技术安全性的验证
渗透测试作为独立的安全技术服务,其主要目的就在于验证整个目标系统的技术安全性,通过渗透测试,可在技术层面定性的分析系统的安全性。
2. 查找安全隐患点
渗透测试是对传统安全弱点的串联并形成路径,最终通过路径式的利用而达到模拟入侵的效果。所以,在渗透测试的整个过程中,可有效的验证每个安全隐患点的存在及其可利用程度。
3. 安全教育
渗透测试的结果可作为内部安全意识的案例,在对相关的接口人员进行安全教育时使用。
4. 安全技能的提升
一份专业的渗透测试报告不但可为用户提供作为案例,更可作为常见安全原理的学习参考。