DNS001

作者: rivir | 来源:发表于2017-12-02 13:09 被阅读59次

    在高校运维赛上出过一道dns001的题, 还是不会做,去年出过两道,这是自己的一个盲点知识,因此准备好好复习一下

    DNSSEC

    域名系统安全扩展(英语:Domain Name System Security Extensions,缩写为DNSSEC, 简单来说,DNSSEC 就是一个对现有 DNS 协议进行安全完善的拓展。他在现有的 DNS 协议的基础上,增加了几个新的资源记录来达到这个目的。

    研究目的:
    尽管DNS的安全问题一直被互联网研究和工程领域广为关注,但是有一种普遍存在的攻击却始终没有解决,即DNS的欺骗和缓存污染问题。DNS安全扩展(DNS Security Extension, 即DNSSEC)主要是为了解决这一问题而提出的(尽管它还有其他用途)

    DNSSEC 新增的四种资源记录

    DNSSEC 新增了四种资源记录RRSIG (Resource Record Signature)、DNSKEY (DNS Public Key)、DS (Delegation Signer) NSEC(Next sec record)

    RRSIG

    该记录用于存放我们当前域名每一条记录的 DNSSEC 签名

    我们看看这题的所有记录值

    dig src.edu-info.edu.cn any
    
    ; <<>> DiG 9.10.3-P4-Debian <<>> src.edu-info.edu.cn any
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21976
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;src.edu-info.edu.cn.       IN  ANY
    
    ;; ANSWER SECTION:
    src.edu-info.edu.cn.    102 IN  RRSIG   NS 8 4 3600 20171130042442 20171031034711 57636 src.edu-info.edu.cn. CE5LbGf6sr3KaECA1LFRu4AeG+/sAClkUbAEQaJ2If1jWk5Qhe+NaAW5 WcQMF19jVpe4XRU299U5XXWc3Hc8Y5TW0yr3cp8H13qfmw4j706SXldL kp0ZxZ+BSwQ2L3Re50AXbRxeMmm+4kyMqU5zfVaEE2tkl/4R254Y5+fa q8E=
    
    ;; Query time: 4 msec
    ;; SERVER: 211.82.100.1#53(211.82.100.1)
    ;; WHEN: Sat Nov 04 13:11:54 CST 2017
    ;; MSG SIZE  rcvd: 227
    

    我们看到响应区域有一个RRSIG类型,我们来分析下每个字段的意义

    IN: 表示Internet的意思

    RRSIG:表明该响应是RRSIG类型

    NS: 签名类型,表明是对NS记录进行签名

    8:算法类型,常见有

    1: RSA/MD5
    2: Diffie-Hellman
    3: DSA/SHA-1
    4: Elliptic Curve
    5: RSA/SHA-1
    6: DSA-NSEC3-SHA1
    7: RSASHA1-NSEC3-SHA1
    8: RSA/SHA-256
    10: RSA/SHA-512
    12: RSA/SHA-512
    

    4: 摘要类型

    摘要类型列表
    1: SHA-1
    2: SHA-256
    3: GOST R 34.11-94
    4: SHA-384
    

    接下来的是被签名记录的TTL、有效期结束时间、开始时间。

    57636:key标签
    src.edu-info.edu.cn.签名名称, 后面的都是加密签名

    DNSKEY (DNS Public Key)

    该记录用于存放我们用于检查 DNSSEC 签名的公钥

    格式

    标识符 (Zone Key (DNSSEC密钥集) 以及 Secure Entry Point (KSK和简单密钥集))
    协议 (固定值3 向下兼容)
    算法类型 (参考附录「算法类型列表」)
    公钥内容
    

    DS (Delegation Signer)

    该记录用于存放 DNSSEC 公钥的散列值,用于验证DNSKEY的真实性,从而建立一个信任链。

    格式

    Key 标签 (一个简短的数值,用来迅速判断应该用那个 DNSKEY 记录来验证)
    算法类型 (参考附录「算法类型列表」)
    摘要类型 (创建摘要值的加密散列算法)(参考附录「摘要类型列表」)
    Digest: A cryptographic hash value of the referenced DNSKEY-record.
    

    NSEC记录

    NSEC记录是为了应答那些不存在的资源记录而设计的。为了保证私有密钥的安全性和服务器的性能,所有的签名记录都是事先(甚至离线)生成的。

    DNSKEY

    DNSKEY资源记录存储的是公开密钥,下面是一个DNSKEY的资源记录的例子:

    example.com. 86400  IN  DNSKEY  256  3  5  ( AQPSKmy….. aNvv4w==  )
    

    题解

    我们在看来下运维赛上的那道DNSSEC题

    what.is.my.flag.src.edu-info.edu.cn TXT

    我们先查看下edu-info.edu.cn的所有记录值

    dig edu-info.edu.cn any
    
    ;; ANSWER SECTION:
    edu-info.edu.cn.    81546   IN  SOA indy.bjmu.edu.cn. root.indy.bjmu.edu.cn. 20170321 10800 3600 604800 86400
    edu-info.edu.cn.    81546   IN  NS  indy.bjmu.edu.cn.
    edu-info.edu.cn.    81546   IN  NS  dns.bjmu.edu.cn.
    

    响应是一个北大的一个dns服务器,这个和题目无关,我们继续查看子域名的解析记录

    dig src.edu-info.edu.cn any
    
    ;; ANSWER SECTION:
    src.edu-info.edu.cn.    3594    IN  SOA dns.src.edu-info.edu.cn. admin.src.edu-info.edu.cn. 63 3600 3600 2419200 600
    src.edu-info.edu.cn.    3594    IN  A   202.112.26.2
    src.edu-info.edu.cn.    3594    IN  MX  10 mxbiz2.qq.com.
    src.edu-info.edu.cn.    3594    IN  MX  5 mxbiz1.qq.com.
    src.edu-info.edu.cn.    3594    IN  DNSKEY  256 3 8 AwEAAd0bHpzXxzwqr9zqPYCV7OuJqxqXy0jRD9cTm4pZX95XvYEPwNyo DmaWYjycPcjSAb7UoENmo00fuDfNEXXIvS60UUnAAc53aNC9jcD5qGeu gAKu29fE0f18IbkVG/A3Wx/nCrE7OEKJuyII6HfVGFlD5p6ZKjZaiW3T 633clT+z
    src.edu-info.edu.cn.    3594    IN  DNSKEY  257 3 8 AwEAAbrv1MrqWZ5UazOG0dKqlFYxIWVyURq6PjXJ1yUJTbc8besKyc66 +ISg3tt0MSXrIcEWSD+PrAcylvfvmVtBlw7diP3c9zDudCLFZ5t40SPn vGTjYPDqcnHZJB3m0ijWZ3Ho5HTIklrZM7zn8LGUoiIuAcHwtorxpHCV ssRLNd8IFTBLMwehgnOAsuaL34LgDErwJbW2lnNB3qzPLjYymMp5c7ML BfcQYjXdtxl0o3Zd9VvTU7SrhoPp+8cFLuA1a5zXz7bQmwveppSZUtxl pall26WBYGzSF0wWhKl6YV4/I9SwGS2JmA/SaQaz3kLEqmUt2Td5Ga1S ZL1uxfjRuhk=
    src.edu-info.edu.cn.    3594    IN  RRSIG   DNSKEY 8 4 3600 20171130044710 20171031034710 33529 src.edu-info.edu.cn. aJkMp1f0b5/qL35JLKfoYez06H6JkFzQWvBqfbvJia4zT0Z5hvwpcFFY hwlRA4vfzNt8ATqLQaOhzcsnbiVPB6FKieNNOUe1EPF9qnmTahCKIzsV SnQK8n5SfdK5hEjdSl/lgHPbe6Fr1JZnqsTkUPC2reVe3LV20wkBRIBQ Suj19Z4Tq0GdB7LtIz/aFfnn5UPsfwQK81av0/4IEUDM95cgbGvb5KIM M+AHBKKOXes5kaL794wXf+yoETo4XwbVJ0WUTvY32eSXvKkWR1G8h8+9 kvDCUB18JO3DmxgFud9BMCsxJf8Xr0CAMSZ7Shs9S9aLe8wYky0TWeU7 nxBn3g==
    src.edu-info.edu.cn.    3594    IN  RRSIG   DNSKEY 8 4 3600 20171130044710 20171031034710 57636 src.edu-info.edu.cn. wDqLC6wa1FHRzXOpPmJjn/9kaqaAznTah8F1JQTiTvriGrmQI6eOxJWC NcnAfgmBypRdVN8QOfpzMxTEfuHE9/azIQ+Kt75bHVnWyC01gIDw9/bo NcnnECf+qBsrpCvJeCtk6WM9nncF7aeWa+nCWd1ix1s+mhOHn8HAHSRx lGk=
    src.edu-info.edu.cn.    3594    IN  RRSIG   SOA 8 4 3600 20171201002610 20171031232610 57636 src.edu-info.edu.cn. qYqlJMwlGpQhaY3Vwe/ka4FXeeVQSW4wreLdeaGedtc8Zm+PbaFBfr5U +zwZyhbVE3tJTmbIeRjnfkgpgpGy9nJ1UhRsHJaaWlf6Ec6qn1YWog2g GYYg38DQHZqU7atdp9R9B3a0mVpMJTyUzgH9AdqlAwEC+xIKNeoF1cvX cMY=
    src.edu-info.edu.cn.    594 IN  NSEC    dns.src.edu-info.edu.cn. A NS SOA MX RRSIG NSEC DNSKEY TYPE65534
    src.edu-info.edu.cn.    594 IN  RRSIG   NSEC 8 4 600 20171130042442 20171031034711 57636 src.edu-info.edu.cn. n9tDsBxGMEQqzmjAcTCEsPuyUTHKFrgGQ6xC5+nysL8B6v/fx2ZReoIG XY2PDDtz3I82Sp5TWErjKMBMV8hqUKvvgRhgn/b/oZLjRxdazp7dXBBd jGMYWCBrcWiOa8XDL49JBC4XA5qoDQceLLd3iXK4MReJdpRFlDwmmLzR I9s=
    src.edu-info.edu.cn.    3594    IN  RRSIG   MX 8 4 3600 20171130042442 20171031034711 57636 src.edu-info.edu.cn. Z+0DIvSpCCSogBng9vr5tX8v9JlryYaWycEyPypI7rUQrSM8Kxm2Y2nN 0yeW3M9sXIac9MT/6nWb9eLkv7Mke8oMuXtUrSjsUpu13JKHeKEXfbRW GTJC7zm1c5oNDts+3XIyp4BWadNgz5Cp2HvVS9amx0pspg1oOqcjulWM Fpw=
    src.edu-info.edu.cn.    3594    IN  RRSIG   A 8 4 3600 20171130042442 20171031034711 57636 src.edu-info.edu.cn. TtWMnmbtAYfkSHu/fYj+cYT5NHBqtIUmD0cQDd+V501wTMXTWD/UTEjv JXw31wgbSjglVfQtq4XKK9r3GSFMdS78Z7NDwXmhLrlmnsO6EE6CBFC+ 3U438XCM6Y1AEt3/0J+JWnrPcgSgZ2k7eQsmbbThYZ0SFmZmn2zLHvUd p7s=
    src.edu-info.edu.cn.    3594    IN  RRSIG   NS 8 4 3600 20171130042442 20171031034711 57636 src.edu-info.edu.cn. CE5LbGf6sr3KaECA1LFRu4AeG+/sAClkUbAEQaJ2If1jWk5Qhe+NaAW5 WcQMF19jVpe4XRU299U5XXWc3Hc8Y5TW0yr3cp8H13qfmw4j706SXldL kp0ZxZ+BSwQ2L3Re50AXbRxeMmm+4kyMqU5zfVaEE2tkl/4R254Y5+fa q8E=
    src.edu-info.edu.cn.    3594    IN  NS  dns.src.edu-info.edu.cn.
    

    我们发现一大串的解析记录,有RRSIG,DNSKEY,NSEC,DS等,这里我们知道该dns服务器使用了DNSSEC了,

    我们继续解析子域名的情况

    dig flag.src.edu-info.edu.cn
    
    ;; AUTHORITY SECTION:
    src.edu-info.edu.cn.    564 IN  SOA dns.src.edu-info.edu.cn. admin.src.edu-info.edu.cn. 63 3600 3600 2419200 600
    

    这里我们找到了解析该记录的dns服务器

    那么我们并没有找到TXT记录,我们直接看看what.is.my.flag.src.edu-info.edu.cn 这条域名

    dig what.is.my.flag.src.edu-info.edu.cn any
    
    ;; ANSWER SECTION:
    what.is.my.flag.src.edu-info.edu.cn. 1 IN TXT   "flag-id-[...].flag.src.edu-info.edu.cn. TXT"
    what.is.my.flag.src.edu-info.edu.cn. 1 IN RRSIG TXT 8 6 1 20171201002443 20171031232443 57636 src.edu-info.edu.cn. Fbr/dibDNPTN2A4mc0aPG0SeDp/PAv90l07pvzq5nyTxTJqHuoocvZm1 +5jT+WItI/pulJrzR6qvrpiVluF/VZVRM0+Hl4xemzz8g4xsNiHIqD8r ykxwxP5Le3RBGsjY3kUBr3q9eBCNaJ1VeTTYinHft8A8G+kaZdsHNCBH Ph0=
    what.is.my.flag.src.edu-info.edu.cn. 600 IN NSEC n.flag.src.edu-info.edu.cn. TXT RRSIG NSEC
    what.is.my.flag.src.edu-info.edu.cn. 600 IN RRSIG NSEC 8 6 600 20171201002610 20171031232610 57636 src.edu-info.edu.cn. biNUeZIYhFoKjjf9TSBLZNou/IzuUtwbV8LE4sVOB8vu86Ky6acKfxq3 msG1fLaLwNJo/xxg7CbrcC+r7z/PVOu+aamVoYKYpLzUmJ+EmTyEQV8+ 656Bag5TfGuH7ij+fSUFRtOcqfGU7qz7uSB7FWScqCG2i7DXIjcEdBno K9c=
    

    我们这里找到了TXT记录和一些NSEC,RRSIG记录, 从TXT记录提示我们需要寻找类似flag-id-[...].flag.src.edu-info.edu.cn这样域名的记录, 而在NSEC里面给了下一条解析的记录

    如果没有返回TXT记录,可以把any换成txt

    我们查看这条域名的解析情况:

    ❰root❙~❱✔≻ dig n.flag.src.edu-info.edu.cn +short NSEC
    z.flag.src.edu-info.edu.cn. TXT RRSIG NSEC
    

    我么发现这条域名又解析成下一条域名了,因此这里我们写一个脚本一直解析下去,就可以找到txt记录里面提示的那条解析值了

    #!/usr/bin/env python       
    #coding:utf-8
    import os
    
    nextdns = 'what.is.my.flag.src.edu-info.edu.cn'
    
    while True:
        cmd = "dig %s NSEC +short"%nextdns
        nextdns =  os.popen(cmd).read().split(' ')[0].rstrip('.')
        print nextdns
    

    最后得到flag-id-ztfrneclyudrfq3e6endq5.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.zzzzzzz.flag.src.edu-info.edu.cn

    相关文章

      网友评论

        本文标题:DNS001

        本文链接:https://www.haomeiwen.com/subject/qldnbxtx.html