渗透测试


概述

什么是渗透测试

渗透测试(Penetration Testing)是为了证明网络防御按照预期计划正常运行而提供的一种机制

渗透测试的依据

对已知或未知漏洞测试、模拟攻击

渗透测试的目的

降低安全风险、完善目前的安全策略

渗透测试的特点

人工检测、工具扫描、可控非破坏性

常规渗透测试和红队测试

共性:都是为了帮助客户检测系统安全性,发现安全问题

区别:

常规渗透测专注于对给定的系统进行测试,存在明确的测试目标、测试边界以及测试时间,主要目的是为了尽可能发现安全隐患

红队在测试过程中,通常除给定的目标外不会给予任何信息,攻击者需要自己进行信息搜集并规划一条攻击路径达到目的,并隐藏踪迹,尽可能模拟真实APT攻击

渗透测试分类

按测试方法分类

黑盒测试

“zero-knowledge testing” / “Black Box” 渗透测试人员完全处于对系统一无所知的状态

除了被测试目标的已知公开信息外,不提供任何其他信息,一般只从组织的外部进行渗透测试

通常这种类型的测试,最初的信息获取来自DNS、Web、Email以及各种对外的服务器

白盒测试

测试者可以通过正常渠道向被测单位取得各种资料,包括 网络拓扑、员工资料甚至网站程序的代码片段,也能与单位其他员工 进行面对面的沟通

通常包括从组织外部和和从组织内部两种地点进行渗透测试

这类测试的目的是模拟企业内部雇员的越权操作

灰盒测试

介于以上两者之间,较为隐秘的进行测试

通常,接受渗透测试的单位网络管理部门会收到通知,在某个时间点或者时间段进行测试,因此能够检测网络中出现的变化

在隐秘测试中,被测单位仅有极少数人知晓测试的存在,能够有效地检验单位中的信息安全事件监控、响应、恢复是否到位

按目标类型分类

针对主机操作系统

windows、Linux、sco、sgi、Solaris、aix

针对应用系统(主要是Web应用)

渗透目标提供的各种应用 asp、cgi、jsp、php等组成的Web应用

针对数据库

mssql、Oracle、MySQL、sybase、informix

针对网络及安全设备

各种防火墙、入侵检测系统、网络设备

常规 渗透测试流程

前期交互阶段

与客户沟通测试范围、时间、预期等

准备阶段

资产信息整理、对指定目标进行漏洞扫描

漏洞分析阶段

整理漏洞扫描结果、汇总高可利用漏洞

漏洞验证阶段

验证漏洞扫描结果中的漏洞是否存在误报

后期报告阶段

报告的编写、核对、汇报

注意

针对Web应用,还需要手工测试一些逻辑漏洞(如 支付漏洞、密码重置漏洞、越权漏洞等等)

红队 渗透测试流程

前期交互阶段

与客户沟通测试范围、时间、预期等

准备阶段

信息搜集、情报整理、威胁建模

边界突破阶段

漏洞发现、漏洞分析、漏洞利用

横向扩展阶段

权限提升、内网渗透

后渗透阶段

权限维持、痕迹清除

后期报告阶段

报告编写、核对、汇报

信息搜集

什么是信息搜集

前期准备

渗透测试成功的关键

为什么进行信息搜集

缩小范围、节约时间、提高效率

定位脆弱点,精准打击,减少 不必要的工作量

漏洞发现和利用

漏洞种类

  • Web业务逻辑漏洞
  • OWASP TOP 10
  • 特定场景的Web漏洞(例如特定中间件、特定的框架等)
  • 非Web漏洞(主机操作系统漏洞、其他服务漏洞等)
  • 弱口令(Web和非Web)

漏洞发现

  • 全自动:漏洞扫描器(Nessus、AppScan)
  • 手工:充分的信息搜集配合漏洞Poc/Exp
  • 半自动:信息搜集 + Fuzz工具+专用扫描器

内网渗透

信息再搜集

  • 已获得权限主机中的信息
  • 网段内存活主机信息、网络信息、域信息等

权限提升

  • 非域环境提升到主机管理员权限
  • 域环境内提升到域管理员权限

横向移动

拿下同网段内更多主机,获取更多有价值的信息

深入内网

  • 找到更深层内网边界
  • 使用代理、端口转发等技术打通内外网连接

后渗透阶段

清除痕迹

  • 清除上传的代理工具、扫描工具、漏洞利用工具等
  • 清除主机日志
  • 清除数据库日志

权限维持

  • 将后门替换为免杀后门,流量加密
  • 设置启动项、计划任务、服务项(或Linux的守护进程)确保后门长期驻留稳定运行
  • 使用Rootkit/Bootkit、驱动保护等高级隐藏方法

大屁股猛男 2023-08-14 05:32:14