1、执行步骤

测试步骤

graph TD
A(测试前预备) -->B(启动会议)
    B --> C(信息收集)
    C --> D(网络与主机扫描-漏洞评估)
    D --> E(漏洞利用)
    E --> F(入侵之后)
    F --> G(撰写渗透测试报告)
    G --> H(结束会议)
    H --> I(修补后复测)	

        渗透测试经过了若千年的发展,其执行步骤大致已形成种特定的顺序, 现整理如下。

步骤1:测试前预备

        进行渗透测试之前,应先跟甲方协商测试范围、测试明问及时段、测试方法或使用工具, 利试判定条件等,并拟写执行计划书。虽然是测试,但是因手法类似于黑客攻击,所以要事先向甲方说明系统宕机或数据毁损的可能性,并提出应对策略,以免影响甲方的正常业务活动。测试明同对系统施下的攻击或传送的权荷也可能恰巧被外部黑客利用,因此要做好监控工作,如发现其他入侵进象时,必须及时向甲方汇报,为使渗透测试过程平顺,甲乙双方必须建立24小时的联系方式,以便处理各种突发状况,上述协商结果应整理成渗透测试同意书及执行计划书(作为渗透测试同意书的原件),渗透测试同意书必须经甲方主管(或授权签人),乙方团队主管共同签署(必要时亦可由参与本项目的双方相关人员签名),乙方取得签署完成的渗透测试网意书后才可以真正执行渗透测试的操作,相信渗透测试人员都不喜欢书面的工作,不过我建议渗透测试人员还是应该花些时间好好了解清通测试网意格的内容。它可是我们乙方的“保命符”,可以证明在同意书规定范围内的工作已解物甲方授权,这里强调规定的范围,就是要沙透测试人员任细确认同意书中的各个条款,以免误电市,如果对内容有疑虑,应该向法务人员请教,不可用自己薄弱的法律知识去隐测或“自以为是”地解读。


步骤2:启动会议

        依据执行计划书规划的时间,在进行测试之前由甲方与乙方的相关人员共同召开会议,乙方于会议中说明预计进行事项及时间规划,甲方对乙方的说明事项无异议时,即宣布测试操作正式开始。

步骤3:信息收集
        测试操作的第一步就是从Internet上搜集受测目标的相关信息。使用黑箱模式时,甲方只告知乙方受测目标的URL,乙方必须想方设法找出受测目标对应的信息及外围设备的IP,或者通过系统的历史页面探索己被发现的漏洞等。
        当然,受测目标若是甲方的内部系统(Intranet) ,则这个步骤可略过,因为这些信息从外部Intemet是找不到的,这时只能依靠对甲方网络系统的扫描(下一个步骤)去搜集了。

步骤4:网络与主机扫描(漏洞评估)

        确定受测目标的IP后,可尝试跟受测目标互动,以取得打开的端口列表、使用的操作系统、网络应用程序的名称与版本、是否存在己知的漏洞,如果可以,甚至可以找出网站的负责人、维护人员,或潜在用户的信息(如E-mai),这将对猜测系统的账号、密码有所帮助。
        在此阶段,乙方也会使用漏洞扫描工具执行初步的漏洞探索,但作为称职的渗透测试人员,不可直接将漏洞扫描所发现的漏洞当成渗透测试的成果,必须仔细验证漏洞的真实性,并留存完成的验证步骤,以便于甲方进行复测。
        若乙方是由甲方的内部人员扮演,通常此步骤可免,既然测试人员本身即为受测机构的员工,怎会不了解甲方内部的架构及相关人员的信息呢?因此自行办理内部系统渗透测试时,大部分情况(也有例外)是直接从漏洞扫描下手,而跳过外部数据搜集及主机扫描的步骤。

基础信息:IP,网段,域名,端口
系统信息:操作系统版本
应用信息:各端口的应用,例如web应用,邮件应用等
版本信息:所有探测到的版本
服务信息:服务器类型、版本
人员信息:域名注册人员信息,web应用中网站发帖人的id,管理员姓名等
防护信息:试着看能否探测到防护设备


步骤5:漏洞利用

        在上一步骤中找到任何可疑的漏洞,都是我们在此阶段可加以验证的地方,利用这些可能的漏洞,尝试取得系统的控制权限或存取敏感数据。
        为什么要对漏洞进行验证呢?

  • 排除误判:将确定的漏洞写入测试报告书,并给予风险等级,若为误判亦应提供说明请甲方注意,千万不要自以为是误判,就将它忽略。甲方通常还会进行系统复测,为避免前后结果不一致,测试过程的结果都应该详加记录。

  • 证明漏洞可以形成威胁:依据威胁造成的危害程度,给予不同的风险等级,并尽量保留造成危害的现象,最好有图为证,并记录证明的过程,以便于日后重现或复测时进行对比。

  • 利用漏洞提升权限: 不同权限可存取的功能不同, 接触到的系统范围及数据等级也不一样,通过权限提升,可以进一步探测其他漏洞,扩大攻击面。

  • 尝试跨域渗透: 取得其中一台主机的控制权限,测试平台跨域渗透的可行性,从而评估整体信息灰构的风险程度.


注意

        取得控制权是为了做更深层的测试,而不是执行真正的攻击,这与黑客人侵的目的才不同,当取得某系统的控制权时,为了进行横向或纵向的跨提渗透,可能需要在此系统中添加工具、后门或高权限的账号,如果采用这些手法,就必须留下详细记录,以便在项目结束后可执行复原操作。
        依照渗遗测试同意书赋予的授权,有时会要求添加工具,后门或高权限的账号,因而必须先向甲方汇报,并取得问意, 对于此类情况,必须以书面面方式获得甲方的问意,并要求甲方人员在同意书上签字、盖章。


  • 渗透测试应用的手法或使用工具与真实的黑客攻击相差无儿,无论如何,在进行漏洞利用的同时可能会造成下列影响,必须事先拟妥相应对策:

            ➢应用程序无法响应或严重延迟
            ➢系统宕机或网络中断
            ➢数据内容损毁或数据库系统失效
            ➢第三方(如黑客)可能顺着工具打开的通道进行实质入侵

步骤6:入侵之后

        记住:渗透测试不一定要执行这个步骤,如果真要执行,应事先跟甲方说明潜在的风险,任何植入的后门或行踪隐藏动作,都可能会成为黑客入侵的通道或无意间覆盖了黑客入侵的痕迹。当黑客真正入侵系统之后,为了持续控制系统,会用各种手段来隐藏自己的行踪并维持随时可连入系统的机制,常用的手法是植入后门、建立管理员权限的账号、抹掉系统日志等
        涉透测试只需完成上一个步理,证明系统存在弱点、漏洞,并且可以利用找到的福洞进行相关操作即可,千万不要在系统中植入后门,以免不值被黑客拦藏、操控,反而对系统或甲方造成更大的危害。若直有需要植入后门或建立高权限账号,定要如实记录并说明,以便于复原操作。

步骤7:撰写渗透测试报告

        渗透测试操作完成后,需提交一份报告书给甲方,渗透测试报告必须详细列出如下内容:

  • 测试的过程记录(最好有截图证明)
  • 所有漏洞及其造成的影响,若为误判,亦应说明无法达成渗透的测试步骤
  • 弱点或漏洞的风险等级及修补建议

        渗透测试报告书可以说是甲方真正接触到的测试结果,内容的好坏会直接影响此次测试的评价,“平凡的测试+好的报告>好的测试+平凡的报告”,渗透测试报告书的内容必须要能表现出此次测试的成果,不要在报告书中“塞入”一些已知的理论介绍(如各种漏洞说明)或测试成员的丰功伟绩,这些数据虽然可以扩充报告的版面,但跟测试结果无直接关系,反而稀释了测试结果的重要性。

步骤8:结束会议

        如同项目开始时双方共同召开会议一般,测试完成后,亦由双方召开结案会议,由乙方在会议中报告执行的过程及结果,并提出修正或防护建议也就是将渗透测试报告书的内容摘录成简报,由甲方确认测试成果,若甲方对报告内容无异议,即可完成渗透测试项目。
        对甲乙双方而言,结案会议后,若没有待解决的事项,即表示项目结束。

步骤9:修补后复测

        为了证明完成漏洞修补及强化防御成果,有时甲方会在项目中提出复测要求,如果合同中包括复利条款,乙方则需要对更新后的系统按照测试报告书中的内容重新检测之前找到的漏洞。