渗透测试的流程介绍

渗透测试的流程介绍

明确目标

确定范围

  • 确定检测的对象以及范围,确保IP、域名以及可检测的模块是在授权范围内。

确定规则

  • 确定渗透的程度,是发现漏洞还是利用漏洞,是否有检测时可限制,是否可以进行高危操作(如:上传文件、盲注、提权,是否允许添加数据、是否允许破坏或阻断服务的行为等),此外还应当在渗透测试开始前应通知相关部门接口人。

确定需求

  • 检则手段主要偏向于哪一类型(如:WEB的漏同、业务逻辑的漏洞、权限管理的漏洞),需求是否与自身能力匹配以及检测完成度。

分析风险,获得授权

  • 分析渗透测试过程中可能产生的风险,如大量测试数据的处理、影响正常业务开展、服务器发生异常的应急、数据备份和恢复、测试人力物力成本等。
  • 由测试方书写渗透辺试方案初稿并提交由委托方进行审核。在审核完成后,从委托方获取对测试方进行书面委托授权书,授权测试方进行渗透测试。

信息收集

在信息收集阶段,我们需要尽量多的收集关于目标Web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等。通常情况下需要收集的信息如下:

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

漏洞探测

  • 使用漏洞上扫描工具对目标进行扫描,并利用信息收集中列出获取的信息,使用相应的漏洞探测。

漏洞工具:

  • AWVS,AppScan,Kali等。

检测内容:

类型介绍
认证机制认证过程敏感数据是否加密传输;认证是否可被重放;是否具有多因子认证机制;是否存在验证码或其他防范措施,抵御暴力猜解攻击;认证结果信息是否进行混淆处理;是否有合理的账户锁定机制。
会话管理会话是否使用 Sessioni管理机制;会话 Cookie是否有 Httponlyh属性;会话 Cookie是否有 Secure属性;是否防范会话劫持攻击。
数据校验是否存在SQL注入漏洞、XSS跨站脚本漏洞、CSRF跨站请求伪造漏洞、文件上传漏洞、命令执行漏洞、本地校验绕过漏洞,和其他由于数据校验不合理造成的洞。
通信安全通信过程是否加密;是否使用SSL技术保障传输过程中数据的完整性和机密性。
业务流程安全重要业务是否使用可靠的业务流程操作;业务流程中是否有防篡改机制;业务流程中是否有防重放机制;业务流程中是否有身份确认机制;业务流程中的敏感数据是否进行加密处理。
敏感信息保护本地敏感信息在传输、存储过程中是否进行加密处理;服务端错误信息中是否包含敏感信息;html、js、css文件中是否含有敏感信息;各项功能的使用过程中,是否出现信息泄漏现象。
配置管理服务端是否允许列目录风险;服务端是否存在目录猜解风险;服务端是否存在默认服务管理登录页面;服务端是否启动了OPTIONS,TRACE,PUT,MOVE等HTTP方法;服务端可访问目录下是否有备份文件,数据库文件等;服务端敏感目录是否限制机制;是否存在其他和配置管理相关风险内容。