渗透测试(Penetration Testing)是一种模拟黑客攻击的安全评估方法,旨在检测计算机系统、网络或应用中的安全漏洞。通过授权的攻击尝试,渗透测试可以识别潜在的安全风险,帮助组织提前发现并修复漏洞,从而提升整体安全性。
渗透测试通常由专业的道德黑客或安全团队执行,包括信息收集、漏洞扫描、漏洞利用、权限提升和报告阶段,最后提出改进措施。
以下是渗透测试相关的基础常识。
1. 渗透测试攻击的五个阶段是什么?
在渗透测试期间以特定系统为目标时,道德黑客遵循以下五个有条不紊的阶段:
- 侦查:初始信息收集阶段,在此阶段收集尽可能多的目标系统或网络数据。这包括 OSINT (Open Source Intelligence) 等被动技术和社会工程等主动技术。
- 扫描:在此阶段,将分析侦查期间收集的信息,并使用技术工具更深入地检查目标。这通常涉及端口扫描程序、漏洞扫描程序和网络映射工具,以识别潜在的入口点。
- 获得访问权限:这是实际渗透发生的地方。利用在前几个阶段发现的漏洞来获得对目标系统的未授权访问,从而展示了现实世界的安全漏洞。
- 保持访问权限:成功获得访问权限后,道德黑客通过创建后门或安装远程访问工具等方法保护其访问权限,从而建立持久性。这演示了攻击者如何保持对受感染系统的长期访问。
- 掩盖痕迹:专业的道德黑客记录所有活动,同时展示恶意行为者如何通过清除日志、删除已安装的工具和消除未经授权访问的迹象来消除其入侵的证据。
2. 什么是扫描,渗透测试中使用的主要类型有哪些?
扫描包括系统地检查网络以识别主机、端口和服务。它是信息收集过程的重要组成部分,允许道德黑客了解目标组织基础设施的全面概况。
扫描的主要类型包括:
- 端口扫描:使用 Nmap 等工具识别目标系统上运行的开放端口和服务
- 漏洞扫描:自动检测系统和应用程序中的安全漏洞
- 网络扫描:映射网络上的所有活动设备及其关系
- Web 应用程序扫描:识别特定于 Web 应用程序和 API 的漏洞
3. 什么是侦查,使用哪些技术进行有效的侦查?
侦查指的是在尝试访问之前收集有关目标网络的初步信息。这个侦查阶段可帮助道德黑客了解攻击面。关键的足迹技术包括:
- 公开信息侦查:从社交媒体、公司网站和招聘信息等来源收集公开可用的信息,这些信息可能会泄露管理员联系方式、技术堆栈或其他有用信息。
- 网络枚举:识别目标组织的域名、网络块和整体网络拓扑。
- 扫描:确定网络范围后,探测活动 IP 地址并在网络上运行服务。
- 堆栈指纹识别:侦查的最后一个步骤,包括识别目标系统上运行的操作系统、服务和应用程序版本。
4. 渗透测试使用的标准工具有哪些?
道德黑客依靠各种专业工具来自动化和增强渗透测试流程:
- 安恒:漏洞扫描、风险评估、漏洞利用模拟和安全风险分析
- 绿盟:渗透测试平台(SILVERFISH)、漏洞扫描、漏洞验证
- 科利锐:漏洞扫描、安全测试平台、网络漏洞评估,以及定制化的渗透测试脚本和漏洞利用工具
- Metasploit:用于开发、测试和执行漏洞利用的工具
- Wireshark:用于捕获和检查网络流量的网络协议分析器
- **NMAP:**网络发现和安全审计的标准工具
- Burp Suite:专为测试 Web 应用程序安全性而设计的集成平台
- OWASP ZAP:开源 Web 应用程序安全扫描程序
- Nikto:一个全面的 Web 服务器扫描程序,可检查数千个具有潜在危险的文件
- SQLmap:用于检测和利用 SQL 注入漏洞的自动化工具
5. 什么是网络嗅探,它如何用于渗透测试?
网络嗅探包括实时捕获和分析在计算机网络中传输的数据包。道德黑客使用嗅探工具检查网络流量以进行安全评估。
从防御的角度来看,网络管理员使用嗅探器作为监控和分析工具来诊断网络问题,例如流量瓶颈或未经授权的访问尝试。从进攻性安全角度来看,道德黑客展示了攻击者如何使用这些相同的工具来捕获敏感信息,例如未加密的凭据、电子邮件内容或其他有价值的数据。
6. 什么是 SQL 注入,它的主要类型有哪些?
当应用程序无法正确清理用户输入时,就会发生 SQL 注入。这允许攻击者注入恶意 SQL 查询,这些查询可以绕过身份验证、访问或修改敏感数据,或者对数据库执行管理操作。
SQL 注入漏洞的主要类型包括:
- 基于错误的 SQL 注入:利用数据库显示的错误消息来收集有关其结构的信息
- 盲目 SQL 注入:当应用程序不显示错误消息时使用,迫使攻击者使用基于布尔值或基于时间的技术
- 基于时间的 SQL 注入:一种使用时间延迟来确定条件是真还是假的盲注
- 基于 Union 的 SQL 注入:使用 UNION SQL 运算符组合来自多个 SELECT 语句的结果
7. 什么是跨站点脚本 (XSS),它有哪些不同的变体?
跨站点脚本 (XSS) 攻击指的是将恶意客户端脚本注入到其他受信任的网站中。当应用程序在没有适当验证或编码的情况下将用户输入合并到页面内容中时,这些攻击就会成功。
XSS 漏洞的主要类型有:
- 反射型 XSS:恶意脚本嵌入在 URL 中,并在用户点击恶意链接时激活。当服务器将输入反映回其响应中时,将执行该脚本。
- 存储的 XSS:恶意脚本永久存储在目标服务器上(如数据库、评论字段或论坛帖子中),并在用户访问受影响的页面时执行。
- **基于 DOM 的 XSS:**该漏洞存在于客户端代码中,而不是服务器端代码中,通过修改受害者浏览器中的 DOM 环境来执行攻击负载。
道德黑客应该了解如何识别和利用这些漏洞,同时还要了解预防技术,例如正确的输出编码和内容安全策略实施。
8. 什么是拒绝服务 (DOS) 攻击?它的常见形式有哪些?
DoS 攻击旨在通过压倒资源或利用漏洞来使系统、服务或网络不可用。这些攻击会阻止合法用户访问服务,并可能导致严重的运营中断。
常见的 DoS 攻击类型包括:
- 缓冲区溢出攻击:通过发送超出缓冲区处理能力的数据来利用应用程序
- ICMP flood:使用 ICMP 回应请求数据包使目标不堪重负
- SYN flood:向目标系统发送一系列 SYN 请求以消耗资源
- Teardrop 攻击:发送目标无法重组的碎片数据包
- Smurf 攻击:使用 IP 欺骗和广播网络向目标发送 ICMP 回声回复
9. 如何防止 ARP 中毒攻击?
ARP 中毒(也称为 ARP 欺骗)是一种网络攻击,攻击者将其 MAC 地址与网络上的合法 IP 地址链接起来,从而能够拦截网络流量。预防方法包括:
- 数据包过滤:实施过滤器以阻止源地址信息冲突的数据包
- 减少信任关系:开发网络协议,最大限度地减少设备之间的信任假设
- 使用 ARP 欺骗检测软件:实施在传输前检查和验证数据的程序,阻止欺骗信息
- 实施加密网络协议:使用 SSH、TLS 和 HTTPS 等安全协议,在传输过程中对数据进行加密,即使被拦截也能保护数据
- 静态 ARP 表:对于关键基础设施,在可行的情况下手动配置静态 ARP 表