在渗透测试中使用自定义恶意软件进行客户端攻击

信息安全 渗透测试 客户端
2021-08-23 10:33:08

我定期对 Web 应用程序、操作系统等进行渗透测试。有时,我很幸运能够进行“红队”练习,并在网络的所有可能的点(以及人员等)上进行攻击很好玩,通常很顺利。

然而,一位客户最近提到,他们也有兴趣测试台式机/笔记本电脑等客户端(最终用户)机器,以了解可以对它们进行哪种类型的攻击,作为一种测试手段端点安全(防火墙/HIPS/AV/应用程序白名单),也让他们的事件响应程序承受压力。

他们正在考虑使用自定义恶意软件来做到这一点,并愿意让我们尝试在他们的环境中传播我们自己的代码。

由于如今大多数成功的攻击都涉及客户端攻击(鱼叉式网络钓鱼、路过式下载等),因此测试实际的端点是有意义的(这通常是一个大问题)。但是,我担心如果我们创建了一个自我传播的恶意软件,它最终会从网络中散失,或者在无限可能的应用程序交互之一中,它会使某些服务器脱机。显然,客户会签署弃权书并承担这样的风险。

客户端攻击场景是常见的请求吗?其他人在这些类型的场景中会做什么?关于在客户端渗透测试中使用自定义恶意软件,是否有任何方法可以遵循?

2个回答

您不需要自我传播的恶意软件来测试最终用户机器。例如,如果您决定针对最终用户计算机的浏览器、应用程序(MS Office、PDF、Java、Flash)或计算机的物理安全性,您需要的是自定义漏洞利用和有效负载。有效载荷不需要是自传播的。你只需要一种有效载荷,让你只控制你的目标机器。

让我们举个例子。假设我想定位 10 台用户机器,我决定定位他们的浏览器。我要做的第一件事是在我的机器上托管 Metasploit 漏洞利用程序。需要定制这些漏洞以绕过 AV 和其他类型的防御。我可以使用meterpreter 作为我的有效载荷。然后我会向这 10 个用户发送一个链接到我的托管漏洞文件的服务器。如果在这 10 个用户中,我设法让 5 个用户连接到我的 Metasploit 服务器,并且我成功地利用了他们的浏览器并获得了对他们机器的访问权限,那么meterpreter 将只允许我访问这五台机器。它不会自动针对子网中的所有其他机器。当然,如果我想从那里进一步转动,我可以手动完成。

所以最后,我认为你需要的是自定义恶意软件,但自定义恶意软件不需要自我传播。制作一个只会让您访问您所针对的特定机器的恶意软件。

我们已经进行了几次客户端攻击。虽然使用恶意软件进行测试是有限的,但我们经常要求测试受限环境的安全性并评估如何突破这些环境的总体复杂性。我不知道有任何常见的开放方法。在进行这些类型的评估时,创造力是关键。