绕过Cylance:第一部分——使用VSAgent.exe
David Fletcher //
最近,我们有机会测试一个生产环境的Cylance部署。显然,每个环境都会有所不同,安全控制的有效性很大程度上取决于具体配置。不过,接下来几天的文章将展示我们在这样一个环境中的观察结果。不同的配置和深度防御的有效应用显然会产生不同的结果。
本周,我们将介绍在该环境中成功建立命令与控制(C2)通信的技术。需要注意的是,测试期间该环境没有有效的应用程序白名单实施。此外,对cmd.exe和powershell_ise.exe的访问也没有受到限制。本系列将首先介绍非传统的C2通道。
VSAgent.exe
BHIS有一个自定义的C2工具称为VSAgent(可从John的504 DropBox获取:tinyurl.com/504extra2),它使用格式良好的HTML页面中的ViewState参数在C2服务器和客户端之间传输命令及其结果。ViewState参数通常用于ASP.NET Web应用程序,以在客户端和服务器之间维护状态。由于该字段非常常见,且在合法使用时经过Base64编码并可选择加密,因此很难进行检查。
在这种情况下,vsagent.exe客户端被直接下载到目标计算机并执行。
Cylance实例没有检测或阻止vsagent.exe工具的执行和C2通道的建立。因此,应采取其他补偿性控制措施来防止此类行为。
例如,可以使用Web内容过滤来阻止可执行文件的下载。然而,这通常可以通过以不同格式或加密/压缩的存档下载文件,然后在目标主机上解压来绕过。或者,恶意员工或攻击者可能使用可移动介质传递此类工具。
更合适的对策是正确实施应用程序白名单。当应用程序白名单基于文件签名时,它们 notoriously 难以绕过,需要使用诸如rundll32.exe、installutil.exe或msbuild.exe等技术。
评论
Stephen Smith
2017年3月27日 @ 6:21 pm
David,
你能澄清一下“需要注意的是,测试期间该环境没有有效的应用程序白名单实施。此外,对cmd.exe和powershell_ise.exe的访问也没有受到限制”吗?
对我来说,这意味着至少脚本控制没有设置为阻止或终止。
你能分享一下代理上的配置吗?我只是好奇,因为我们是Cylance的经销商/VAR/MSSP,我们的默认策略会锁定所有这些。
John
2017年3月28日 @ 10:25 am
配置我们不能提供,因为它来自客户。
此外,我们是白名单的忠实粉丝。它非常棒。
这里的重点不是白名单的有效性。它效果很好。而且,你可以使用AppLocker和SRP免费实现。这不是Cylance的特殊功能。
重点是这应该是下一代酷炫技术……但我们在客户那里没有看到这一点。我们经常听说很酷的功能X没有开启。然而,我们测试的是真实世界,而不是营销宣传。
Stephen Smith
2017年3月28日 @ 10:46 am
所以脚本控制没有开启,PowerShell单行命令也没有被阻止。如果一切都没有开启……这算绕过吗?我只是想理解,因为你可以“免费做”而削弱一个产品,这是对软件的真实测试吗?
也许有些公司没有设置白名单;也许他们没有资源在他们的环境中这样做。
我很想看到一个完全锁定的配置,然后看到有人尝试绕过它。到目前为止,我们的一些合作伙伴是渗透测试员,他们无法做到,不像其他大多数大品牌。
我只是想理解,当东西被关闭时,这怎么是一个完整的测试。
谢谢你的时间。
Anonymous for a reason
2017年4月6日 @ 3:46 pm
“我只是想理解,因为你可以‘免费做’而削弱一个产品,这是对软件的真实测试吗?”
这很有趣……来自一个Cylance经销商。关闭竞争对手产品的保护层是Cylance为了诋毁他人而采用的核心操作方式。我想刀刃是双面的?
Stephen Smith
2017年4月7日 @ 4:15 am
如果那是真的,我不确定这和我以及我们公司有什么关系。我们经销Cylance,不会欺骗我们的客户,我们让他们与现有的进行比较,然后决定是否切换。将我们与几年前报道的事情混为一谈似乎缺乏原创性且不公平。我会直接与你对话,但你选择保持匿名……
John
2017年3月28日 @ 10:52 am
你真的需要冷静一下。
你说的一些话会反过来咬你。你对PowerShell做了一系列假设。
它被配置为阻止PowerShell。但绕过它太容易了,甚至一点都不好笑。
我建议打个电话。
303-710-1171
techie
2017年3月28日 @ 1:50 pm
嘿John,
对于应用程序白名单;你认为使用SRP的基于路径的规则有多有效?
谢谢..
John
2017年3月28日 @ 3:20 pm
它非常棒。仍然可以通过特定的漏洞或类似ISR-Evilgrade的东西绕过。然而,它对简单的宏和驱动式攻击有奇效。
如果我必须在SRP/AppLocker和AV之间选择……我会选择基于路径的SRP/AppLocker。
希望对你有帮助!
John Strand
techie
2017年3月29日 @ 8:30 am
谢谢John,非常感谢。希望有一天能参加你的现场课程…… 🙂
Michael Horch
2017年3月30日 @ 11:40 am
John,
我几年前上了你的504课程——我不记得有讲过vsagent的说明……我假设设置起来相当容易,但是vsagent.exe文件似乎不在你504附加Dropbox的vsagent-504文件夹中。也许我漏掉了?
John
2017年3月30日 @ 2:55 pm
你可以使用Py2exe来转换它。
我们就是这么做的。
如果你有任何问题,请给我发邮件OOB。
John
Ron A.
2017年3月31日 @ 2:57 am
Cylance在市场上制造了很多噪音,这是他们最大的优势。我听说他们承认无法匹配未知的未知复杂恶意软件、勒索软件、APT或零日漏洞。
所以取决于你的安全需求——我相信Cylance是一个好的NGAV,但还不够好..他们的合作伙伴说,在真实案例中,这个软件被绕过了。我认为这个产品只是终端网络安全领域更大步骤的一个临时步骤
Fred Schlipp
2017年4月5日 @ 8:27 am
许多“下一代”安全产品都是营销炒作。它们大多数缺乏自我保护,很容易被严肃的对手击败。
Stephen Smith
2017年4月7日 @ 6:17 am
我不会将那个陈述限制在“下一代”解决方案上。所有传统解决方案都可以并且已经被绕过了。
KC
2017年4月9日 @ 9:21 pm
我不会称Cylance为“营销炒作”。它是少数几个可以在文件和内存中检测和阻止恶意软件而不使用传统签名的客户端保护之一。传统AV提供商在零日恶意软件方面 largely 失败了。但它是一个新产品,需要一些时间成熟。Black Hills(John Strand、David Fletcher、其他人?)在这里做了很好的服务。没有一种神奇的子弹,对于这个特定的安全产品,像VSAgent.exe这样在内存或主机操作系统中不执行任何可疑操作的应用程序,可能会逃避检测。感谢Black Hills发布这些信息!
ewiley
2017年4月12日 @ 12:38 pm
那么,如果我已经有应用程序白名单,为什么还要麻烦用Cylance?
Rob Davis
2017年4月25日 @ 9:49 am
如果你成功实施了应用程序白名单,那么添加Cylance只会提供边际额外的保护。
Cylance(当正确配置时)可以提供脚本控制/警报、内存漏洞利用保护/警报和端口控制。例如,开启内存漏洞利用保护后,许多将代码注入regsvr32.exe或explorer.exe的PowerShell脚本将无法工作。
我的建议是添加某种类型的EDR工具,如CyberReason或Carbon Black Response。我们对这些工具的实施会检测到Cylance“绕过”博客中详细描述的所有漏洞利用。
我永远不会依赖任何保护控制100%有效。正确操作的EDR工具可以在这些控制不按预期工作时充当“烟雾警报”或“绊线”。