渗透测试方法论

渗透测试方法论 by:h1ck0r

  1. 了解渗透测试的概念
  2. 熟悉渗透测试的必要性
  3. 了解渗透测试的分类
  4. 熟悉渗透测试的标准与执行流程

渗透测试的概念

渗透测试(Pentest) --- 一种通过模拟黑客攻击的技术与方法,挫败目标系统的安全控制措施并活的控制访问权的安全测试方法.

网络渗透测试主要依据CVE(Common Vulnerabilities and Exposures)已经发现的安全漏洞,模拟入侵者的攻击方法对网站应用 服务器系统和网络设备进行非破坏性质的攻击性测试

渗透测试的必要性

金库启用之前的安全检测:

  • 金库门是否容易被破坏
  • 金库的报警系统是否在异常出现的时候及时报警 WAF IDS 入侵检测系统 IPS 入侵防御系统 态势感知 防火墙 行为管理
  • 检查所有的门、窗 、通道等重点易突破的部位是否牢不可破 服务器、中间件 、第三方组件、社工 旁站 c段
  • 金库的安全管理制度
  • 视频安防监控系统 日志
  • 出入口控制
  • 人员的污点调查
  • 应急演练

渗透测试的目的

侵入系统并获取机密信息并将入侵的过程和细节产生报告提供给用户,由此确定用户系统所存在的安全威胁,并能及时提醒安全管理员完善安全策略,降低安全风险.

  • 百密一疏,新系统可能存在未知的风险
  • 未雨绸缪,而不是亡羊补牢 运维 安全运维
  • 专业的渗透测试后,即使是系统未被攻破,也可以证明先前实行的防御是有效的
  • 专业的渗透测试可以有效评估系统的安全状况,并提出合理的改进方案

渗透测试的分类

  1. 根据渗透测试的方法:

    • 黑盒测试: 将测试对象看作一个黑盒子,安全不考虑测试对象的内部结构;
    • 白盒测试: 把测试对象看作一个打开的盒子,测试人员一句测试对象内部逻辑结构相关的信息,设计或选择测试用例;
    • 灰盒测试: 介于白盒与黑盒之间,是基于对测试对象内部细节有限认知的软件测试方法.
  2. 根据测试的目标分类:

    1. 主机操作系统
    2. 数据库系统
    3. 应用系统
    4. 网络设备
    5. IOT
    6. 车联网

渗透测试的原则

渗透测试过程的最大的风险: 测试过程中对业务产生影响.

  • 渗透测试是一个渐进的并且逐步深入的过程
  • 渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试

合规性:符合规范和法律要求也是执行业务的一个必要条件(渗透测试工具必须使用一些通过规范审核后的工具).

渗透测试的执行标准

渗透测试执行标准(PTES)的核心理念是通过建立起进行渗透测试所需要的基本准则基线,来定义一次真正的渗透测试过程,并得到安全业界的广泛认同.

渗透测试的阶段过程

该标准将渗透测试过程分为七个阶段

  • 第一阶段: 前期交互阶段
  • 第二阶段: 情报收集阶段
  • 第三阶段:威胁建模阶段
  • 第四阶段:漏洞分析阶段
  • 第五阶段:渗透攻击阶段
  • 第六阶段:后渗透攻击阶段
  • 第七阶段:报告阶段

渗透测试与APT攻击的区别

什么是APT?

A—高级(Advanced)

P—持续(Persistent)

T—威胁 (Threat)

  • 目的上:

    渗透测试的目的是评估计算机网络系统的安全性;

    APT的目的在于对高价值目标进行的有组织 长期持续性的控制。

  • 手段方法上:

    渗透测试通过被允许的行为模拟黑客攻击来对目标系统进行测试;

    APT利用任何各种高技术手段(包括0day漏洞| 欺骗生的钓鱼邮件等)

  • 结果上:

    渗透测试提高了目标系统的安全级别;

    APT达成目的的过程中一般会给目标系统带来严重损失。

渗透测试执行标准流程

一.前期交互阶段

在前期交互阶段,渗透测试团队与客户组织主要进行交互讨论.重点确定渗透测试的范围 目标www.xxx.com xxx.xxx.com IP 限制条件以及服务合同细节。

该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标 、项目管理与规划等活动

客户书面委托,并同意实施方案是渗透测试的必要条件.渗透测试首先必须将实施方法、实施时间 、实施人员,实施工具等具体的实施方案提交给客户,并得到客户的相应书面委托和授权。应该做到客户对渗透测试所有细节和风险的知晓、所有过程都在客户的控制下进行。

  1. 确定渗透测试范围

    • 1.时间估计:

      • 预估整体项目的时间周期
      • 确定以小时为单位的额外技术支持
    • 2.问答交谈

      • 对业务管理部门的问答交谈
      • 对系统管理员的问答交流
      • 对IT支持的问答交流
      • 与普通雇员的问答交流
    • 3.范围勘定:

      • 确定项目起止时间
      • 项目授权信件
      • 进行目标规划环节
    • 4.确定测试资源

      • 确定IP与域名范围
      • 处理第三方的资源:网站宿主机、服务器所在国家,所在云平台等。
  2. 目标规划

    • 确定目标:

      • 首要目标
      • 额外目标
    • 业务分析与需求分析

      • 定义目标企业的安全成熟度
      • 需求分析
  3. 建立通讯渠道 – 工程实施过程中,确定不同阶段的测试人员与客户方的配合人员,建立直接沟通渠道

    • 紧急联络方式

    • 应急响应流程(存在的防御能力与技术)

    • 进展报告周期

    • 确定一个接口联络人

二、信息收集分析阶段

渗透本质就是信息收集

信息收集是每一步渗透攻击的前提,通过信息收集可以有针对性的制定模拟攻击测试计划,提高模拟攻击的成功率,同时可以有效的降低攻击测试对系统正常运行造成的不利影响。

  1. 白盒搜集

    • 场内搜集
    • 场外搜集
  2. 人力资源情报

    • 关键雇员
    • 合作伙伴/供应商
    • 社会工程
  3. 踩点

    • 外部踩点
      • 识别客户范围
      • 被动信息
      • 主动探测
        • 建立目标列表
          • 确定版本信息
          • 识别补丁级别
          • 搜索脆弱的Web应用
          • 出错信息
          • 找到攻击的脆弱端口 21 vstfpd 2.3.4 php <5.3.4 截断
          • 过时系统(os 业务) win7 xp 2003 thinkphp 2.0-5.0
          • 虚拟化平台和虚拟机
          • 存储基础设施
    • 内部踩点
      • 主动探测
        • 端口扫描
        • 区域传送
        • 解析DNS与递归DNS服务器
        • 旗标撷取 md5 hash
        • VoIP扫描
        • ARP探索
        • DNS探索
      • 被动探测
  4. 寻找外网入口 (红队打点 web打点)

    • 黑盒Web渗透
      • 存在已知漏洞的旧版本CMS
      • 文件泄漏
      • SQL注入
      • 命令注入
      • 文件上传、包含、读取
      • XSS
      • XXE
      • 逻辑漏洞
  5. 识别防御机制

    • 网络防御机制
    • 系统防御机制
    • 应用层防御机制
    • 存储防御机制

三、威胁建模阶段

威胁建模主要使用情报搜集阶段所活的到的信息,来标识出目标系统上可能存在的安全漏洞与弱点。 Ms17010

在威胁建模阶段,通常需要将客户组织作为敌手来看待,然后以攻击者的视角和思维来尝试利用目标系统的弱点。

  1. 业务流程分析
    • 使用的基础设施
    • 人力基础设施
    • 使用的第三方平台
  2. 威胁对手/社区分析
    • 内部人员
    • 竞争对手
    • 。。。。。
  3. 威胁能力分析
    • 分析使用的渗透测试工具
    • 可用的相关渗透代码exp和payload和攻击载荷(在服务器上系统所执行的代码)
    • 通信机制(加密(https=http+tsl、base64\md5\aes)、下载站点、命令控制、安全宿主站点)

四、漏洞分析阶段

漏洞分析阶段主要是从前面几个环节获取的信息分析和理解哪些攻击途径是可行的。

特别需要重点分析端口和漏洞扫描结果,提取到的服务器 “旗帜”信息,以及在情报收集环节中得到的其他关键信息。

  1. 测试

    • 主动

      • 自动化技术(误报)
        • 通用漏洞扫描(操作系统)
          • 基于端口(返回banner信息)
          • 基于服务 vsftpd 2.3.5
          • 旗标撮取
        • Web应用扫描
          • 通用的应用层漏洞扫描
          • 目录列举和暴力破解
          • Web服务版本和漏洞辨识
      • 手工方法
    • 被动

      • 自动化技术

      • 手工方法

  2. 验证

    • 扫描器结果关联分析
    • 手工验证
    • 确定攻击路径
  3. 研究

    • 对公开资源的研究
      • Exploit-db
      • Google Hacking
      • 渗透代码网站
      • 通用/缺省口令
      • 厂商的漏洞警告
    • 私有环境的研究
      • 建立一个复制环境
      • 测试安全配置
      • 找到潜在攻击路径

五、渗透攻击阶段

渗透攻击主要是针对目标系统实施深入研究和测试的渗透攻击,并不是进行大量漫无目的的渗透测试。主要包括:

六、后渗透攻击阶段

后渗透攻击阶段主要是从已经攻陷了的客户组织系统标识出关键的基础设施,寻找最具有价值信息和资产:

  • 基础设施分析
    • 当前网络连接分析
    • 网络接口查询
    • VPN检测
    • 路由检测
    • 网络邻居
    • 使用的网络协议
    • 使用的代理服务器
    • 网络拓扑
  • 高价值目标识别
  • 掠夺敏感信息
  • 掩踪灭迹
    • 清理现场
    • 删除测试数据
  • 权限维持
    • 自启动恶意代码
    • 反向连接
    • 命令控制
    • 后门
    • 植入代码

七、渗透测试报告

报告是渗透测试过程中最为重要的因素,将使用报告文档来交流在渗透测试过程中做了哪些,如何做的,以及最为重要的–客户组织如何修复你所发现的安全漏洞与弱点。

posted @   h1ck0r  阅读(173)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示