【问题标题】:Identify unknown ASN.1 Objects识别未知的 ASN.1 对象
【发布时间】:2016-02-16 05:07:39
【问题描述】:

我们在可执行文件中搜索了 DER 编码的 SEQUENCE。在挑选了那些看起来像有效的 DER 编码数据之后,我们想分析它们是如何使用的。

X.509 证书和 CMS 对象很容易识别(因为我们知道它们),但我们也发现了有效的编码,从中我们无法判断它们的用途。

例如看看openssl asn1parse (...)的以下输出:


    0:d=0  hl=4 l=1804 cons: SEQUENCE          
    4:d=1  hl=2 l=   1 prim:  INTEGER           :03
    7:d=1  hl=4 l=1797 cons:  SEQUENCE          
   11:d=2  hl=2 l=  20 cons:   SEQUENCE          
   13:d=3  hl=2 l=   8 prim:    OBJECT            :des-ede3-cbc
   23:d=3  hl=2 l=   8 prim:    OCTET STRING      [HEX DUMP]:0000000000000000
   33:d=2  hl=2 l=   3 prim:   PRINTABLESTRING   :<OMITTED>
   38:d=2  hl=2 l=  13 prim:   UTCTIME           :<OMITTED>
   53:d=2  hl=2 l=   1 prim:   INTEGER           :01
   56:d=2  hl=4 l=1748 cons:   SET               
   60:d=3  hl=4 l= 830 cons:    SEQUENCE          
   64:d=4  hl=2 l=   6 prim:     PRINTABLESTRING   :PKRoot
   72:d=4  hl=2 l=  13 prim:     UTCTIME           :<OMITTED>
   87:d=4  hl=2 l=   5 prim:     OBJECT            :1.3.36.2.5.1
   94:d=4  hl=4 l= 796 cons:     SEQUENCE          
   98:d=5  hl=2 l=  69 cons:      SEQUENCE          
  100:d=6  hl=2 l=  11 cons:       SET               
  102:d=7  hl=2 l=   9 cons:        SEQUENCE          
  104:d=8  hl=2 l=   3 prim:         OBJECT            :countryName
  109:d=8  hl=2 l=   2 prim:         PRINTABLESTRING   :<OMITTED>
  113:d=6  hl=2 l=  31 cons:       SET               
  115:d=7  hl=2 l=  29 cons:        SEQUENCE          
  117:d=8  hl=2 l=   3 prim:         OBJECT            :organizationName
  122:d=8  hl=2 l=  22 prim:         PRINTABLESTRING   :<OMITTED>
  146:d=6  hl=2 l=  21 cons:       SET               
  148:d=7  hl=2 l=  19 cons:        SEQUENCE          
  150:d=8  hl=2 l=   3 prim:         OBJECT            :commonName
  155:d=8  hl=2 l=  12 prim:         PRINTABLESTRING   :<OMITTED>
  169:d=5  hl=4 l= 614 cons:      SEQUENCE          
  173:d=6  hl=2 l=   3 cons:       cont [ 0 ]        
  175:d=7  hl=2 l=   1 prim:        INTEGER           :02
  178:d=6  hl=2 l=   1 prim:       INTEGER           :00
  181:d=6  hl=4 l= 290 cons:       SEQUENCE          
  185:d=7  hl=2 l=  13 cons:        SEQUENCE          
  187:d=8  hl=2 l=   9 prim:         OBJECT            :rsaEncryption
  198:d=8  hl=2 l=   0 prim:         NULL              
  200:d=7  hl=4 l= 271 prim:        BIT STRING        
  475:d=6  hl=2 l=  32 cons:       cont [ 1 ]        
  477:d=7  hl=2 l=  30 cons:        SEQUENCE          
  479:d=8  hl=2 l=  13 prim:         UTCTIME           :<OMITTED>
  494:d=8  hl=2 l=  13 prim:         UTCTIME           :<OMITTED>
  509:d=6  hl=2 l=  15 cons:       cont [ 2 ]        
  511:d=7  hl=2 l=  13 cons:        SEQUENCE          
  513:d=8  hl=2 l=   9 prim:         OBJECT            :sha256WithRSAEncryption
  524:d=8  hl=2 l=   0 prim:         NULL              
  526:d=6  hl=4 l= 257 prim:       BIT STRING        
  787:d=5  hl=2 l= 105 cons:      cont [ 0 ]        
  789:d=6  hl=2 l= 103 cons:       SEQUENCE          
  791:d=7  hl=2 l=  15 cons:        SEQUENCE          
  793:d=8  hl=2 l=   3 prim:         OBJECT            :X509v3 Basic Constraints
  798:d=8  hl=2 l=   1 prim:         BOOLEAN           :255
  801:d=8  hl=2 l=   5 prim:         OCTET STRING      [HEX DUMP]:<OMITTED>
  808:d=7  hl=2 l=  37 cons:        SEQUENCE          
  810:d=8  hl=2 l=   3 prim:         OBJECT            :X509v3 Subject Alternative Name
  815:d=8  hl=2 l=  30 prim:         OCTET STRING      [HEX DUMP]:<OMITTED>
  847:d=7  hl=2 l=  14 cons:        SEQUENCE          
  849:d=8  hl=2 l=   3 prim:         OBJECT            :X509v3 Key Usage
  854:d=8  hl=2 l=   1 prim:         BOOLEAN           :255
  857:d=8  hl=2 l=   4 prim:         OCTET STRING      [HEX DUMP]:<OMITTED>
  863:d=7  hl=2 l=  29 cons:        SEQUENCE          
  865:d=8  hl=2 l=   3 prim:         OBJECT            :X509v3 Subject Key Identifier
  870:d=8  hl=2 l=  22 prim:         OCTET STRING      [HEX DUMP]:<OMITTED>
  894:d=3  hl=4 l= 910 cons:    SEQUENCE          
  898:d=4  hl=2 l=   4 prim:     PRINTABLESTRING   :Cert
  904:d=4  hl=2 l=  13 prim:     UTCTIME           :<OMITTED>
  919:d=4  hl=2 l=   5 prim:     OBJECT            :1.3.36.2.1.3
  926:d=4  hl=4 l= 878 cons:     SEQUENCE          
  930:d=5  hl=4 l= 598 cons:      SEQUENCE          
  934:d=6  hl=2 l=   3 cons:       cont [ 0 ]        
  936:d=7  hl=2 l=   1 prim:        INTEGER           :02
  939:d=6  hl=2 l=   1 prim:       INTEGER           :00
  942:d=6  hl=2 l=  13 cons:       SEQUENCE          
  944:d=7  hl=2 l=   9 prim:        OBJECT            :sha256WithRSAEncryption
  955:d=7  hl=2 l=   0 prim:        NULL              
  957:d=6  hl=2 l=  69 cons:       SEQUENCE          
  959:d=7  hl=2 l=  11 cons:        SET               
  961:d=8  hl=2 l=   9 cons:         SEQUENCE          
  963:d=9  hl=2 l=   3 prim:          OBJECT            :countryName
  968:d=9  hl=2 l=   2 prim:          PRINTABLESTRING   :<OMITTED>
  972:d=7  hl=2 l=  31 cons:        SET               
  974:d=8  hl=2 l=  29 cons:         SEQUENCE          
  976:d=9  hl=2 l=   3 prim:          OBJECT            :organizationName
  981:d=9  hl=2 l=  22 prim:          PRINTABLESTRING   :<OMITTED>
 1005:d=7  hl=2 l=  21 cons:        SET               
 1007:d=8  hl=2 l=  19 cons:         SEQUENCE          
 1009:d=9  hl=2 l=   3 prim:          OBJECT            :commonName
 1014:d=9  hl=2 l=  12 prim:          PRINTABLESTRING   :<OMITTED>
 1028:d=6  hl=2 l=  30 cons:       SEQUENCE          
 1030:d=7  hl=2 l=  13 prim:        UTCTIME           :<OMITTED>
 1045:d=7  hl=2 l=  13 prim:        UTCTIME           :<OMITTED>
 1060:d=6  hl=2 l=  69 cons:       SEQUENCE          
 1062:d=7  hl=2 l=  11 cons:        SET               
 1064:d=8  hl=2 l=   9 cons:         SEQUENCE          
 1066:d=9  hl=2 l=   3 prim:          OBJECT            :countryName
 1071:d=9  hl=2 l=   2 prim:          PRINTABLESTRING   :<OMITTED>
 1075:d=7  hl=2 l=  31 cons:        SET               
 1077:d=8  hl=2 l=  29 cons:         SEQUENCE          
 1079:d=9  hl=2 l=   3 prim:          OBJECT            :organizationName
 1084:d=9  hl=2 l=  22 prim:          PRINTABLESTRING   :<OMITTED>
 1108:d=7  hl=2 l=  21 cons:        SET               
 1110:d=8  hl=2 l=  19 cons:         SEQUENCE          
 1112:d=9  hl=2 l=   3 prim:          OBJECT            :commonName
 1117:d=9  hl=2 l=  12 prim:          PRINTABLESTRING   :<OMITTED>
 1131:d=6  hl=4 l= 290 cons:       SEQUENCE          
 1135:d=7  hl=2 l=  13 cons:        SEQUENCE          
 1137:d=8  hl=2 l=   9 prim:         OBJECT            :rsaEncryption
 1148:d=8  hl=2 l=   0 prim:         NULL              
 1150:d=7  hl=4 l= 271 prim:        BIT STRING        
 1425:d=6  hl=2 l= 105 cons:       cont [ 3 ]        
 1427:d=7  hl=2 l= 103 cons:        SEQUENCE          
 1429:d=8  hl=2 l=  15 cons:         SEQUENCE          
 1431:d=9  hl=2 l=   3 prim:          OBJECT            :X509v3 Basic Constraints
 1436:d=9  hl=2 l=   1 prim:          BOOLEAN           :255
 1439:d=9  hl=2 l=   5 prim:          OCTET STRING      [HEX DUMP]:<OMITTED>
 1446:d=8  hl=2 l=  37 cons:         SEQUENCE          
 1448:d=9  hl=2 l=   3 prim:          OBJECT            :X509v3 Subject Alternative Name
 1453:d=9  hl=2 l=  30 prim:          OCTET STRING      [HEX DUMP]:<OMITTED>
 1485:d=8  hl=2 l=  14 cons:         SEQUENCE          
 1487:d=9  hl=2 l=   3 prim:          OBJECT            :X509v3 Key Usage
 1492:d=9  hl=2 l=   1 prim:          BOOLEAN           :255
 1495:d=9  hl=2 l=   4 prim:          OCTET STRING      [HEX DUMP]:<OMITTED>
 1501:d=8  hl=2 l=  29 cons:         SEQUENCE          
 1503:d=9  hl=2 l=   3 prim:          OBJECT            :X509v3 Subject Key Identifier
 1508:d=9  hl=2 l=  22 prim:          OCTET STRING      [HEX DUMP]:<OMITTED>
 1532:d=5  hl=2 l=  13 cons:      SEQUENCE          
 1534:d=6  hl=2 l=   9 prim:       OBJECT            :sha256WithRSAEncryption
 1545:d=6  hl=2 l=   0 prim:       NULL              
 1547:d=5  hl=4 l= 257 prim:      BIT STRING

有人认识,哪个 ASN.1 类型映射到这个?

当然,有一些模式(例如偏移 98 或 930)很容易识别,但有什么“聪明”的方法来识别未知的 ASN.1 结构吗?

特殊的 Google 搜索模式、网站、软件等?

我们尝试了像* ::= SEQUENCE { * INTEGER } 等谷歌搜索,但没有成功。

【问题讨论】:

  • 有人认出,哪个 ASN.1 类型映射到这个? - 有些人可能会更加努力地确定您是否已共享二进制文件以下载到某个地方...
  • 是的,二进制副本会更好。
  • 由于数据可能包含我们的客户不想发布的信息,因此我们删除了其中的一些信息——这样会更容易想到,抱歉。

标签: content-management-system analysis x509 asn.1 der


【解决方案1】:

看看这个:http://www.oid-info.com/get/1.3.36.2.1

oid-info.com 目前有超过 950.000 个 OID,但您的 OID 最高级别为 1.3.36。

因此,从 1.3.36 开始查询此服务将为您提供此 OID 注册的信息

TeleTrusT - IT Security Association Germany

用 1.3.36.2 查询会告诉你它是一个

Security information object

和 1.3.36.2.1 会告诉你这是一个

Certificate

但是,没有关于 1.3.36.2.5.1 或 1.3.36.2.1.3 的信息,这是因为它没有必要,因为一旦 TeleTrust 注册了 1.3.36,它们就拥有子节点的全部所有权.

我不知道注册办公室是否有服务让您在所有已注册的 OID 中进行查询,但目前,odi-info 有大约 100 万个 OID 可查询。

【讨论】:

  • 哦,谢谢。非常有帮助!当然,没有可用的 ASN.1 定义 :-/,但我问 TeleTrust 天气他们可以提供它们。
【解决方案2】:

对我来说,这个转储看起来像是一种 PKCS#7 消息(但它不是 PKCS#7)。在没有 ASN 模块的情况下,没有通用的方法可以将原始数据绑定到任意 ASN 对象。您可能需要创建自己的表,将原始数据映射到它们并查看哪个表成功。如果不了解每个消息语义(在 ASN 模块中定义),这并不容易。如果您在 Windows 上,可以尝试以下命令:

certutil -dump path\fileWithUnknownAsn.ext

Certutil 有几个内置表来表示常见的 X509 对象,也许它会告诉你那是什么。

【讨论】:

  • certutil 不走运。它只是转储整个文件而没有其他信息...
  • 我不知道它到底是什么。我看到两个信封。第一个包络指向 OCTET_STRING 下的对称算法和(可能的)加密数据。外部 SET 包含 2 个对象:类似于 X.509 证书但它不是证书的几个组件,以及 X.509 证书。抱歉,我无法根据此转储识别对象。
猜你喜欢
  • 2011-08-21
  • 2019-01-06
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
相关资源
最近更新 更多