渗透测试

处于保护系统的目的,对目标系统进行的一系列测试,模拟黑客入侵的常见行为,从而寻找系统中存在的漏洞。
渗透测试的基本流程

  1. 明确目标
  2. 信息搜集
  3. 漏洞探测
  4. 漏洞验证
  5. 信息分析
  6. 获取所需信息
  7. 信息整理
  8. 报告形成

明确目标

这个阶段,需要与客户进行沟通,确定目标的范围、限度、需求等,并根据这些内容制定全面、详细的渗透测试方案:

  • 确定范围:渗透测试的目标IP、域名、内外网、子网、旁站等
  • 确定限度:明确对渗透测试目标允许渗透到什么程度,语序测试的时间段,是否允许进行上传、下载、提取等高危操作
  • 确定需求:例如,探测Web应用服务漏洞(新上线应用),业务逻辑漏洞(针对业务面)、人员权限管理漏洞(针对人员、权限)等。

信息搜集

这个阶段,可以利用各种方法,获取等多关于目标网络的拓扑、系统配置等信息。搜集信息的方式包括扫描、开发搜索等,利用搜索殷勤获得目标后台、未授权页面、敏感URL等。需要搜集一下类型的信息:

  • 基础信息:IP、网段、域名、端口
  • 系统信息:操作系统及其版本
  • 应用信息:各个端口应用服务,如Web应用、邮件应用等
  • 版本信息:所有探测到信息的版本
  • 服务信息:高危服务,如文件共享服务等
  • 人员信息:域名注册人员信息、管理员信息、用户信息等
  • 防护信息:防护设备的信息,如安全狗等

漏洞探测

这个阶段,需要综合分析前期阶段所搜集到的信息,特别是历史安全漏洞信息,服务信息等,找到可以实施渗透的点,利用搜集到的各种系统、应用、服务等信息使用相应的漏洞测试。包括如下方法:

  • 使用漏洞扫描器,如AWVS、IBM、AppScan
  • 结合漏洞寻找利用方法,验证Proof of Concept
  • 寻找系统补丁信息探测系统漏洞,检查是否没有及时打补丁
  • 检查WebServer漏洞(配置问题)、Web应用漏洞(开发问题)
  • 检查明文传输、cookie服用等问题

漏洞验证

将漏洞探索过程中发现的有可能成功利用的全部漏洞验证一遍,结合实际情况,搭建模拟环境进行实验,成功后再应用于目标。

这个过程需要自动化验证,及结合自动化扫描工具提供的结果手工验证,根据公开资源进行验证。

可以尝试猜登录口的账号、密码等信息的方式。如果发现业务漏洞,则进行验证。在公开资源中寻找系统漏洞,如乌云镜像站、通用应用漏洞、google Hacking 、渗透代码网站、厂商漏洞警告等。

信息分析

对搜集到的信息进行分析,为下一步实施渗透测试做准备。准备探测到的漏洞利用程序,精准打击目标。包括一下一些手段:

  • 绕过安全防御机制、防火墙等设备
  • 定制渗透路径,寻找目标突破口
  • 绕过检测机制、流量监控、杀毒软件、恶意代码检测(免杀技术)等

获得所需信息

根据前几步结果获取所需信息,包括一下一些手段:

  • 获取内部信息,即基础设施信息(网络架构、拓扑、VPN等)
  • 进入内网,进行权限维持(一般客户做渗透测试不需要进行此步骤)
  • 痕迹清理,清除相关访问操作日志及文件

信息整理

把以上操作的内容总结出来,需要整理如下信息,为最后形成报告和测试结果做好准备:

  • 所用的渗透工具,包括渗透测试过程中用到的代码、POC、EXP等
  • 搜集的信息,包括渗透测试过程中搜集到的一切信息
  • 漏洞的信息,包括渗透测试过程中遇到的漏洞、脆弱的位置信息等

形成报告

按照与客户确定好的范围、需求整理渗透测试结果并将资料形成报告。对漏洞成因、验证过程及其危害进行严谨分析,并补充针对漏洞问题的高效修复建议及解决方法。

posted on 2022-07-26 10:30  depressiom  阅读(574)  评论(0编辑  收藏  举报