渗透测试流程
渗透测试流程
核心: 漏洞、漏洞探测、漏洞验证、漏洞利用
OWASP top 10
通用渗透测试框架
范围界定
在开展技术性安全评估之前,务必要观察、研究目标环境的被测范围。
- 取得授权
- 测试对象是什么(baidu.com,news.baidu.com)
- 应当采取何种测试方法
- 有哪些在渗透测试过程中需要满足的条件
- 需要多长时间完成测试任务
- 应当达到怎样的任务目标
信息收集
测试人员需要使用公开资源尽可能的获取目标的相关信息。
各种公开资源: 论坛、新闻、媒体文章、社交网络、其它商业或非商业的网站、搜索引擎
信息越多,越有利于提高渗透测试的成功率
- DNS 服务器
- 路由关系
- Whois 数据库
- 电子邮件地址
- 电话号码
- 学号、工号
- 个人信息
- 用户帐号
目标识别
(资产的收集和整理)
主要是识别目标的网络状态、操作系统和网路架构。
完整的展现目标网络中的各种网路设备或技术的完整关系。
- 有哪些设备
- 安全设备
- 网络设备
- 服务器
- 终端PC
- 如何访问
服务枚举
(资产的收集和整理)
进一步找出在线主机开发的端口,由端口推导出运行的服务
在线主机开发了哪些端口
端口上运行的服务及其详细版本
信息收集内容补充:
- 技术架构 (L/WAMP、Apache、IIS、Nginx...)
- 开发语言 (PHP、JAVA、Python、Node...)
- 开发框架 (vue、thinkphp、springboot、flask、struts2(S2)...)
- 开源CMS (discuz、metinfo、dedecms、joomla、drupal、wordpress...)
- 前后端分离
- 站库分离
- 是否有单独的文件服务器
漏洞映射
根据已经发现的漏洞和服务程序,查找、分析目标系统中存在的漏洞。
漏洞探测方法: 工具和手工
- 更具组件版本,找漏洞
- 逻辑漏洞
- 漏洞扫描
- 网络漏洞扫描
- Web漏洞扫描
社会工程学
在目标网络没有直接入口时,利用欺骗的艺术 将起到抛砖引玉的作用
- 人员定向攻击
- 水坑攻击
- 鱼叉攻击
- 研究法律和规则
漏洞利用
在仔细检查和发现目标系统中存在的漏洞后,就可使用已有的漏洞利用程序对目标进行渗透
主要目的是控制目标系统
权限提升
获取目标系统的控制权是渗透测试成功的标志
- root
- system
范围维护
在一定时间内,需要维护目标系统的访问权限
- 隐藏后面
- 隧道技术
文档报告
编写书面报告只能给甲方的某个负责人看
- 措辞
- 漏洞分析
- 漏洞名称
- 漏洞概述
- 风险等级
- 漏洞点
- 漏洞验证
- 修复方案
- 保密
- 渗透测试报告只能给甲方的某个负责人看
简化渗透测试流程
- 明确目标
- 信息收集
- 漏洞探测
- 漏洞验证
- 漏洞利用
- 形成报告