密钥及证书检测 crypto_material

该文章展示了如何利用Yara规则库检测加密材料,如SSH密钥和SSL证书。通过加载crypto_material.yar文件,对libcurl.so.5.3.0文件进行匹配,结果显示检测到了genericPublicKey。HxD工具验证了Yara规则中定义的字符串存在。
摘要由CSDN通过智能技术生成

用于检测加密材料,如SSH密钥和SSL证书。

文件:libcurl.so.5.3.0

yara文件:https://github.com/leiwuhen92/yara_rule/blob/main/compile_rule/crypto_material.yc

yara命令检测:

yara --print-meta --print-strings crypto_material.yar ibcurl.so.5.3.0

实现逻辑:

import pathlib
import yara
NAME="crypto_material"
CHINESE_NAME="密钥及证书检测"
CHINESE_DESCRIPTION="检测加密材料,如SSH密钥和SSL证书"

# 结果存储位置
class FileAnalysis():
   def__init__(self):
        self.file_path="libcurl.so.5.3.0"
        self.processed_analysis={}
file_object=FileAnalysis()

# 特征文件路径
compile_path=pathlib.Path("crypto_material.yc")

# 加载特征文件
rule=yara.load(str(compile_path))
# 匹配
result=rule.match(file_object.file_path)
print("result:%s"%result)

# 解析结果
file_object.processed_analysis[NAME]={}
summary=set()
foriteminresult:
   print(item)
   print(item.rule)
   print(item.meta)
    summary.add(item.rule)
    file_object.processed_analysis[NAME][item.rule]={"meta":item.meta}
file_object.processed_analysis[NAME]["summary"]=list(summary)

mongo_data={
   "file_path":file_object.file_path,
   "processed_analysis":file_object.processed_analysis
}
print(mongo_data)

运行结果:

result:[genericPublicKey]
genericPublicKey
genericPublicKey
{'author': 'Joerg Stucke', 'description': 'Generic Public Key Block', 'date': '2017-03-16', 'version': '2', 'version_schema_information': 'Version number is increased whenever something changes.'}

{
    "file_path":"libcurl.so.5.3.0",
    "processed_analysis": {
        "crypto_material": {
            "genericPublicKey": {
                "meta": {
                    "author":"Joerg Stucke",
                    "description":"Generic Public Key Block",
                    "date":"2017-03-16",
                    "version":"2",
                    "version_schema_information":"Version number is increased whenever something changes."
                }
            },
            "summary": [
                "genericPublicKey"
            ]
        }
    }
}

从结果可知密钥方式为genericPublicKey。

genericPublicKey的yara规则如下:两条字符串在文本内

HxD工具打开libcurl.so.5.3.0:搜索yara中的两条字符串(-----BEGIN PUBLIC KEY----- 与 -----END PUBLIC KEY-----),都能检索到

参考:

(1条消息) yara规则初识_青霄的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值