本文介绍如何使用组织中可用的各种规则来发现PowerShell证书。
雅拉
这是YARA发起这项研究的规则:
该YARA规则在字符串--BEGIN CERTIFICATE--之后搜索换行 r、换行 n,最后搜索大写的非m字符。 使用正则表达式$ re1 )搜索此序列。 必须在文件开头找到此序列($ re1为0 )。
由Microsoft certutil生成的证书始终以--BEGIN CERTIFICATE--开头,后跟换行符和换行符,后跟由BASE64编码的内容。 此RFC允许额外的空间,而不是由生成的certutil。 因此,不考虑此YARA规则中的额外空间。
请注意,有些旧的证书文件规范允许第一行和BASE64有效载荷之间的标头。 我们没有在VirusTotal上观察这些规则,但是我们的规则会触发这些旧证书。
在使用YARA规则检测嵌入证书时,例如,要检测其他文件中的证书,可以将条件从$ re1 at 0更改为@ re1 0,如下所示:
也就是说,正则表达式re1(@ re1 (匹配的字符串的位置不在文件的开头等,希望大于0 )。
在文件中的某个地方可以找到另一个示例Begincertificate。 也就是说,不是位置0。 crt文件可以包含多个证书。
由于YARA仍然是许多组织的新技术,因此也开发了Suricata和ClamAV规则,并记载在下一节中。
美国航空母舰
Suricata是免费的开源IDS。
通过使用以下Suricata规则,可以监视网络通信量,并在下图中查找不符合相应标准且可能包含恶意负载的可疑证书文件。
我们执行和YARA规则完全相同的匹配类型。 我们在----begincertificate---之后搜索换行和换行。 但是,代码略有不同。 ----begincertificate----|0d0a|)。 标头后,使用byte_test操作查找不同于m(0x4d )的字节。
第一个规则在文件开头(file_data )搜索该模式,第二个规则在文件中的任何地方搜索该模式。
我们在测试环境中测试了这些规则,但在生产环境中使用它们之前,请执行相同的操作。
ClamAV
ClamAV是免费的开源反病毒。
与Suricata一样,ClamAV提供自定义检测签名,帮助检测电子邮件附件中隐藏的恶意文件(如有效载荷)。
这些签名必须保存在. ndb文件中。 clamav.contains certificate.unknown签署了clamav.contains certificate.unknown,其中包含证书数据以外的内容的证书文件((4D )表示不是m )
请注意,如果有最新版本的ClamAV,也可以使用ClamAV的YARA规则。
结论
这项研究基于一个简单的观点,即具有不以大写字母m开头的数据的证书不能包含有效的证书数据。 继续遵守现行规则,及时报告是否有有趣的发现。
在区块链安全公司WF曲速的未来,建议从规则中检测证书,而不是嵌入证书。
当然,很少会绕过现有的规则检测,就像基于模式匹配的规则一样。 例如,添加一个空格将阻止系统检测到基本规则,因为它正在搜索使用certutil生成的文件。 规则设定得非常具体,因为这是不同对手目前的行为。
(作者)区块链安全文件、内容为链获取内容开放平台“获取号”本文仅是代表的观点,并不意味着链获得了官方立场)