网络安全课程笔记十一:Penetration Testing

Network Security Lecture 11: Penetration Testing

11.1 渗透测试

渗透测试是指一个具备资安知识与经验、技术人员受雇主所托,为雇主的网络设备、主机,模拟骇客的手法对网络或主机进行攻击测试,为的是发掘系统漏洞、并提出改善方法,通常是出于善意。

渗透测试可以分为五个阶段:

  1. 计划 Planning
  2. 侦查 Reconnaissance
  3. 分析 Analysis
  4. 利用 Exploitation
  5. 交付 Deliverable

11.2 计划

固有的限制(在进行渗透测试时不可逾越的限制):

  1. 时间:测试者必须在给定时间内完成攻击
  2. 预算:预算会直接影响测试的范围和质量
  3. 决心:测试者必须要有决心
  4. 人道主义或者法律限制:通常没有这方面的限制

人为的限制(雇主或顾客给出的限制),比如:

  1. 只测试特定的 IP 地址
  2. 只攻击 Windows 系统
  3. 不允许使用木马

测试类型:

  • 黑盒测试:测试者对于雇主公司的网络毫不知情
  • 白盒测试:测试者对于雇主公司的网络完全了解
  • 灰盒测试:测试者模拟雇主公司的某个内部员工

攻击起点:

  • Internet
  • Extranet:(专供公司和客户联系的)外联网
  • Intranet:内联网;企业内部网

团队:

  • 红队:进行渗透测试,并和白队讨论发现的漏洞
  • 白队:雇主公司的代表、雇主公司的管理层人员
  • 蓝队:雇主公司内部员工,对即将进行的渗透测试毫不知情

团队交流(根据发现的漏洞严重级别):

  • 严重(Critical):发现了某个可能损害公司的数据、商业服务等的漏洞(比如 SQL 注入漏洞),必须立即汇报雇主公司
  • 警告(Warning):发现了某个可能对公司产生不利影响的因素(比如 CPU
    负载过高),应该在 4 小时之内汇报雇主公司
  • 普通信息(Informational):关于测试的额外信息、评论等,应该在两个工作日内汇报雇主公司

技术准备:

  • 攻击系统:用来发动攻击的操作系统、工具等
  • 攻击网络:用来发动攻击的网络,网络要保持通畅、没有访问限制、使用多个 ISP 网络进行测试

11.3 侦查

侦查的目的:为进行攻击收集更多信息。

11.3.1 通过社交进行侦查

使用欺骗、说服、勒索等方法获得用户的手机号码、Email 等:

  • 基于盲从欺骗:利用人们的盲从心理进行欺骗(攻击者欺骗受害者“周围人都在做 xxxx”,受害者很容易上当)
  • 基于需求欺骗:利用人们的乐于助人进行欺骗(攻击者伪造一个需求,请受害者帮助)

11.3.2 在物理上进行侦查

侦查员工的兴趣、性格,侦查公司的物理设施(门禁等),翻垃圾箱(有时,员工认为的垃圾可能包含敏感信息),偷窃等。

11.3.3 通过 Internet 侦查

检查公司网站(获取员工个人信息)、员工的社交网络(Facebook,Twitter)、从 DNS 服务器收集信息、端口扫描等。

11.4 分析

将收集到的信息和已知的漏洞(比如某协议的漏洞、Windows 系统漏洞)进行比对,并确保该漏洞没有超过计划阶段的限制。

11.5 利用

利用漏洞进行攻击,使用诸如密码破解器、Rootkits 等工具尝试攻击。

11.6 交付

将整个渗透测试的结果交付给雇主公司,包括:

  • 执行总结
  • 当前发现
  • 基于商业目的和需求的漏洞评级
  • 建议
  • 最终分析、总结