渗透测试基础 | 附带测试点、测试场景

在这里插入图片描述

渗透测试是通过评估具有各种恶意技术的系统或网络来识别应用程序中的安全漏洞的过程。在此过程中,通过授权的模拟攻击利用系统的弱点。

此测试的目的是保护重要数据免受外部人员(如黑客)的攻击,这些黑客可以未经授权访问系统。一旦识别出漏洞,它就会被用来利用系统来获取对敏感信息的访问权限。

渗透测试也称为渗透测试,渗透测试人员也称为道德黑客。

什么是渗透测试?

我们可以通过渗透测试找出计算机系统,Web应用程序或网络的漏洞。

渗透测试将判断系统上采用的现有防御措施是否足够强大,以防止任何安全漏洞。渗透测试报告还提出了可以采取的对策,以降低系统被黑客入侵的风险。

漏洞的原因

  • 设计和开发错误:硬件和软件设计可能存在缺陷。这些错误可能会使您的业务关键型数据面临暴露风险。
  • 系统配置不当:这是漏洞的另一个原因。如果系统配置不当,那么它可能会引入漏洞,攻击者可以通过这些漏洞进入系统并窃取信息。
  • 人为错误:人为因素,例如文档处理不当,使文档无人看管,编码错误,内部威胁,通过网络钓鱼站点共享密码等都可能导致安全漏洞。
  • 连接性:如果系统连接到不安全的网络(开放连接),则黑客可以对其进行攻击。
  • 复杂性:安全漏洞与系统复杂性成比例地上升。系统具有的功能越多,系统受到攻击的可能性就越大。
  • 密码:密码用于防止未经授权的访问。它们应该足够强大,没有人能猜到您的密码。密码不应不惜一切代价与任何人共享,密码应定期更改。尽管有这些说明,但有时人们会向他人透露密码,将其写下来,并保留可以猜到的简单密码。
  • 用户输入:您一定听说过SQL注入,缓冲区溢出等。通过这些方法以电子方式接收的数据可用于攻击接收系统。
  • 管理:安全管理起来既困难又昂贵。有时,组织缺乏适当的风险管理,因此在系统中诱发了漏洞。
  • 缺乏对员工的培训:这会导致人为错误和其他漏洞。
  • 通信:移动网络,互联网,电话等渠道开辟了安全盗窃范围。

渗透测试工具和公司

选择最佳穿透工具的标准:

  • 它应该易于部署、配置和使用。
  • 它应该可以轻松扫描您的系统。
  • 它应该根据需要立即修复的严重性对漏洞进行分类。
  • 它应该能够自动验证漏洞。
  • 它应该重新验证以前发现的漏洞。
  • 它应该生成详细的漏洞报告和日志。

一旦你知道你需要执行什么测试,你可以训练你的内部测试资源,或者聘请专家顾问为你完成渗透任务。

推荐的渗透测试工具

(1) Acunetix

Acunetix WVS为安全专业人员和软件工程师提供了一系列令人惊叹的功能,采用简单,直接且非常强大的软件包。

官方网站:Automate Penetration Testing For Your Web Application | Acunetix

image.png

(2)入侵者

Intruder_logo

Intruder是一款功能强大的漏洞扫描程序,可以发现数字资产中的网络安全漏洞,解释风险并帮助在发生违规行为之前进行补救。它是帮助自动化渗透测试工作的完美工具。

官方网站:Intruder | An Effortless Vulnerability Scanner

主要特点

  • 在整个 IT 基础架构中进行超过 9,000 次自动检查。
  • 基础架构和 Web 层检查,例如 SQL 注入和跨站点脚本。
  • 在发现新威胁时自动扫描系统。
  • 多种集成:AWS,Azure,Google Cloud,API,Jira,Teams等。
  • 入侵者提供其Pro计划的30天免费试用版。

(3) 阿斯特拉·潘斯特

阿斯特拉标志

Astra Pentest是一种安全测试解决方案,与各行各业的任何业务兼容。他们有一个智能的漏洞扫描程序和一个经验丰富且高度驱动的渗透测试人员团队,确保检测到每个漏洞,并建议最有效的修复方法。

官方网站:Astra Pentest

主要特点:

  • 交互式仪表板
  • 通过 CI/CD 集成进行连续扫描
  • 检测业务逻辑错误、价格操纵和特权升级漏洞。
  • 通过Astra的登录记录器扩展程序在登录页面后面扫描
  • 扫描逐行 Web 应用 (PWA) 和单页应用
  • 实时合规报告
  • 零误报

利用智能扫描程序在黑客面前发现漏洞,并通过 CXO 和开发人员友好的仪表板管理您的整个安全性。根据您的需要选择一个计划。

推荐的渗透测试公司

(1)软件安全

软件安全徽标

Software Secured帮助SaaS公司的开发团队通过渗透测试即服务(PTaaS)交付安全软件。他们的服务为更频繁地推出代码的团队提供了更频繁的测试,并且被证明在一年内发现的 bug 数量是一次性渗透测试的两倍多。

主要特点:

  • 将手动和自动测试与定期团队轮换相结合,以提供全新的视角。
  • 每年多次与主要发布一起进行的全面测试。
  • 全年持续报告和无限制地重新测试新功能和补丁。
  • 持续获得安全专业知识和咨询服务。
  • 包括高级威胁建模、业务逻辑测试和基础结构测试。

其他免费工具:

商业服务:

为什么选择渗透测试?

您一定听说过2017年5月开始的WannaCry勒索软件攻击。它锁定了全球超过20万台计算机,并要求从比特币加密货币中支付赎金。这次攻击已经影响了全球许多大型组织。

随着这些天发生如此大规模和危险的网络攻击,定期进行渗透测试以保护信息系统免受安全漏洞的侵害已成为不可避免的。

渗透测试主要用于:

  • 在不同系统之间或通过网络传输财务或关键数据时,必须对其进行保护。
  • 许多客户要求将渗透测试作为软件发布周期的一部分。
  • 保护用户数据。
  • 查找应用程序中的安全漏洞。
  • 发现系统中的漏洞。
  • 评估成功攻击对业务的影响。
  • 满足组织中的信息安全合规性。
  • 在组织内实施有效的安全策略。

任何组织都需要识别内部网络和计算机中存在的安全问题。使用这些信息,组织可以计划针对任何黑客攻击尝试进行防御。用户隐私和数据安全是当今最大的问题。

想象一下,如果任何黑客设法获取像Facebook这样的社交网站的用户详细信息。由于软件系统中留下的小漏洞,该组织可能面临法律问题。因此,在与第三方客户进行任何业务之前,大型组织正在寻找PCI(支付卡行业)合规性认证。

渗透测试应该测试什么?

  • 软件(操作系统、服务、应用程序)
  • 硬件
  • 网络
  • 过程
  • 最终用户行为

#1)社会工程测试: 在此测试中,尝试使一个人泄露敏感信息,如密码,关键业务数据等。这些测试主要通过电话或互联网完成,它针对某些帮助台,员工和流程。

人为错误是安全漏洞的主要原因。所有工作人员都应遵守安全标准和政策,以避免社会工程渗透企图。这些标准的示例包括不提及电子邮件或电话通信中的任何敏感信息。可以进行安全审核以识别和纠正流程缺陷。

#2)Web应用程序测试: 使用软件方法,可以验证应用程序是否暴露于安全漏洞。它检查目标环境中的 Web 应用程序和软件程序的安全漏洞。

#3)物理渗透测试: 采用强大的物理安全方法来保护敏感数据。这通常用于军事和政府设施。所有物理网络设备和接入点都经过测试,以防出现任何安全漏洞的可能性。此测试与软件测试的范围不是很相关。

#4)网络服务测试:这是最常执行的渗透测试之一,其中网络中的开口通过网络上系统中的哪个条目来识别,以检查存在哪种漏洞。这可以在本地或远程完成。

#5)客户端测试:它旨在搜索和利用客户端软件程序中的漏洞。

#6)远程拨号: 它在环境中搜索调制解调器,并尝试通过密码猜测或暴力破解登录到通过这些调制解调器连接的系统。

#7)无线安全测试:它发现开放,未经授权和安全性较低的热点或Wi-Fi网络,并通过它们进行连接。

我们看到的上述7个类别是对渗透测试类型进行分类的一种方法。


我们还可以将渗透测试的类型组织为三个部分,如下所示:

image.png

让我们逐一讨论这些测试方法:

  • 黑匣子渗透测试:在这种方法中,测试人员在不知道其细节的情况下评估目标系统,网络或过程。它们只是具有非常高水平的输入,例如URL或公司名称,它们使用这些输入可以渗透到目标环境中。此方法中未检查任何代码。
  • 白盒渗透测试:在这种方法中,测试人员配备了有关目标环境的完整详细信息 - 系统,网络,操作系统,IP地址,源代码,架构等。它检查代码并找出设计和开发错误。它是内部安全攻击的模拟。
  • 灰盒渗透测试:在这种方法中,测试人员对目标环境的细节有限。它是外部安全攻击的模拟。

渗透测试技术

  • 手动渗透测试
  • 使用自动化渗透测试工具。
  • 手动和自动化流程的结合。

第三个过程更常见的是识别各种漏洞。

手动渗透测试:

使用自动化工具很难找到所有漏洞。有些漏洞只能通过手动扫描来识别。渗透测试人员可以根据他们对被渗透系统的技能和知识对应用程序执行更好的攻击。

像社会工程这样的方法可以由人类来完成。手动检查包括设计、业务逻辑以及代码验证。

渗透测试流程:

让我们讨论一下测试机构或渗透测试人员遵循的实际过程。识别系统中存在的漏洞是此过程的第一个重要步骤。对此漏洞采取纠正措施,并重复相同的渗透测试,直到系统对所有这些测试都呈阴性。

我们可以用以下方法对此过程进行分类:

image.png

#1)数据收集: 使用包括Google搜索在内的各种方法来获取目标系统数据。人们还可以使用网页源代码分析技术来获取有关系统,软件和插件版本的更多信息。

市场上有许多免费工具和服务,可以为您提供数据库或表名称,数据库版本,软件版本,使用的硬件以及目标系统中使用的各种第三方插件等信息。

#2)漏洞评估: 根据第一步收集的数据,可以发现目标系统的安全漏洞。这有助于渗透测试人员使用系统中已识别的入口点发起攻击。

#3)实际利用: 这是一个关键步骤。它需要特殊的技能和技术来对目标系统发起攻击。有经验的渗透测试人员可以利用他们的技能对系统发起攻击。

#4)分析和报告准备结果: 完成渗透测试后,准备详细的报告以采取纠正措施。这些报告中列出了所有已识别的漏洞和建议的纠正方法。您可以根据组织的需要自定义漏洞报告格式(HTML、XML、MS Word 或 PDF)。

渗透测试示例测试用例(测试点/测试场景)

请记住,这不是功能测试。在Pentest中,您的目标是找到系统中的安全漏洞。

下面给出的是一些通用测试用例,不一定适用于所有应用程序。

  1. 检查 Web 应用程序是否能够识别对网站上使用的联系表单的垃圾邮件攻击。
  2. 代理服务器 – 检查代理设备是否监视网络流量。代理服务器使黑客难以获取网络的内部详细信息,从而保护系统免受外部攻击。
  3. 垃圾邮件筛选器 – 验证传入和传出的电子邮件流量是否被过滤,以及未经请求的电子邮件是否被阻止。
  4. 许多电子邮件客户端都带有内置的垃圾邮件过滤器,需要根据您的需要进行配置。这些配置规则可以应用于电子邮件标头、主题或正文。
  5. 防火墙 – 确保整个网络或计算机都受到防火墙的保护。防火墙可以是阻止对系统进行未经授权访问的软件或硬件。防火墙可以防止在未经您许可的情况下将数据发送到网络外部。
  6. 尝试利用所有服务器、桌面系统、打印机和网络设备。
  7. 验证所有用户名和密码都已加密并通过安全连接(如 https)传输。
  8. 验证存储在网站 Cookie 中的信息。它不应采用可读格式。
  9. 验证以前发现的漏洞,以查看修复程序是否有效。
  10. 验证网络上是否没有打开的端口。
  11. 验证所有电话设备。
  12. 验证 WiFi 网络安全性。
  13. 验证所有 HTTP 方法。不应在 Web 服务器上启用 PUT 和 Delete 方法。
  14. 验证密码是否符合所需的标准。密码长度应至少为 8 个字符,至少包含一个数字和一个特殊字符。
  15. 用户名不应为“管理员”或“管理员”。
  16. 应用程序登录页面应在几次登录尝试失败时锁定。
  17. 错误消息应为通用信息,不应提及特定的错误详细信息,如“用户名无效”或“密码无效”。
  18. 验证特殊字符、HTML 标记和脚本是否作为输入值得到正确处理。
  19. 不应在任何错误或警报消息中显示内部系统详细信息。
  20. 在网页崩溃的情况下,应向最终用户显示自定义错误消息。
  21. 验证注册表项的使用情况。敏感信息不应保留在注册表中。
  22. 在将文件上载到服务器之前,必须扫描所有文件。
  23. 在与 Web 应用程序的不同内部模块通信时,不应将敏感数据传递到 URL。
  24. 系统中不应有任何硬编码的用户名或密码。
  25. 验证所有具有长输入字符串(带空格和不带空格)的输入字段。
  26. 验证重置密码功能是否安全。
  27. 验证应用程序是否用于 SQL 注入
  28. 验证跨站点脚本的应用程序。
  29. 重要的输入验证应该在服务器端完成,而不是在客户端进行 JavaScript 检查。
  30. 系统中的关键资源应仅供授权人员和服务使用。
  31. 应使用适当的访问权限维护所有访问日志。
  32. 验证用户会话在注销时结束。
  33. 验证是否在服务器上禁用了目录浏览。
  34. 验证所有应用程序和数据库版本都是最新的。
  35. 验证 URL 操作以检查 Web 应用程序是否未显示任何不需要的信息。
  36. 验证内存泄漏和缓冲区溢出。
  37. 验证是否扫描了传入的网络流量以查找特洛伊木马攻击。
  38. 验证系统是否安全免受暴力攻击 - 一种查找密码等敏感信息的试错法。
  39. 验证系统或网络是否受到保护,免受 DoS(拒绝服务)攻击。黑客可以将具有连续请求的网络或单台计算机作为目标,因为目标系统上的资源过载,从而导致合法请求的拒绝服务。
  40. 验证应用程序是否存在 HTML 脚本注入攻击。
  41. 验证 COM 和 ActiveX 攻击。
  42. 验证是否存在欺骗攻击。欺骗可以是多种类型 - IP地址欺骗,电子邮件ID欺骗,
  43. ARP 欺骗、引荐来源网址欺骗、来电显示欺骗、文件共享网络中毒、GPS 欺骗。
  44. 检查是否存在不受控制的格式字符串攻击 , 这是一种安全攻击,可能导致应用程序崩溃或对其执行有害脚本。
  45. 验证 XML 注入攻击 – 用于更改应用程序的预期逻辑。
  46. 验证规范化攻击。
  47. 验证错误页面是否显示任何有助于黑客进入系统的信息。
  48. 验证是否有任何关键数据(如密码)存储在系统上的机密文件中。
  49. 验证应用程序返回的数据是否超过所需的数据。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛系的老肖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值