美文网首页Ethical HackersCTF
[HACK.LU CTF 2017](Web)DnSoSecur

[HACK.LU CTF 2017](Web)DnSoSecur

作者: 王一航 | 来源:发表于2017-10-19 02:11 被阅读171次

    image.png image.png image.png image.png
    git reset --hard 94067e4502a5134d912b6964de7f23a438b7f814
    

    在历史提交中找到文件 :

    ├── Ksecret+007+11537.key
    ├── Ksecret+007+11537.private
    ├── Ksecret+007+26883.key
    └── Ksecret+007+26883.private
    

    在接下来的DNS服务器配置中会用到

    分析代码逻辑可以得知 :
    我们 POST 的 数据 , 会被当做 IP
    服务器会将这个 IP 作为 DNS 服务器
    然后请求某一个域名的A记录 , 并且这个服务器要支持 DNS SEC
    如果服务器返回的结果经过了公钥的验证
    然后将 flag 发送到这个域名指向的服务器的某一个端口 (TCP)

    根据上述分析可以得到 , 目前需要解决这几个问题

    1. 如何得到将被解析的域名
    2. 如何搭建 DNS 服务器
    3. 如何配置 DNS SEC
    4. 如何得到端口来接收 flag

    1. 使用命令 :
    nc -lu 53
    

    即可得到目标服务器查询的域名为 :

    otherside.earth.flux
    
    1. 在 Linux 下搭建 DNS 服务器可以参考以下文章 :
    http://blog.csdn.net/colourzjs/article/details/44491479
    http://www.linuxidc.com/Linux/2015-04/116350.htm
    
    1. 配置 DNS SEC
    http://www.cnblogs.com/anpengapple/p/5879363.html
    

    这里需要用到在 Git 仓库中发现的那两对公私钥

    1. 一旦配置成功 , 输入你的 DNS 服务器的地址 , 目标服务器就会连接要查询的域名的A记录的某一个端口
    • 首先我们可以肯定的是请求肯定是目标服务器发出的 , 那么可以根据这个特点对流量进行过滤
    PING dnsosecure.flatearth.fluxfingers.net (149.13.33.84) 56(84) bytes of data.
    64 bytes from 149.13.33.84 (149.13.33.84): icmp_seq=1 ttl=128 time=272 ms
    
    • 参考 tcp 的三次握手 , 由于我们并没有监听那个端口 , 那么 tcp 的三次握手就不会建立 , 并且我们会给源主机回复一个RSET包
    image.png
    http://www.jellythink.com/archives/705
    

    然后执行 tcpdump

    tcpdump -XX -s 0 'tcp[tcpflags] & tcp-ack != 0 and tcp[tcpflags] & tcp-rst != 0 and host 8.8.8.8'
    
    image.png

    可以看到端口是 1337

    image.png

    最后说一些在配置 DNS 服务器的时候遇到的坑

    1. 如果修改完成配置 , 发现并没有报错 , 但是这并不代表服务一定启动成功 , 需要查看日志确保没有报错
    systemctl status bind9.service
    

    配置文件 :

    /var/cache/bind/db.otherside.earth.flux

    $TTL    604800
    $ORIGIN otherside.earth.flux.
    @   IN  SOA otherside.earth.flux. root.otherside.earth.flux. (
                2006080401  ;   Serial
                604800  ;   Refresh
                86400   ;   Retry
                2419200 ;   Expire
                604800  )   ;   Negative    Cache   TTL
    
    @   IN  NS  ns1
    @   IN  A   138.68.86.32
    @   IN  A   138.68.86.32
    @   IN  A   138.68.86.32
    @   IN  A   138.68.86.32
    ns1 IN  A   138.68.86.32
    www IN  A   138.68.86.32
    
    $INCLUDE    "/etc/bind/views/dnssec_keys/Kotherside.earth.flux.+007+11537.key"
    $INCLUDE    "/etc/bind/views/dnssec_keys/Kotherside.earth.flux.+007+26883.key"
    

    /etc/bind/named.conf.local

    // domain -> ip 
    zone "otherside.earth.flux" in {
        type master;
        auto-dnssec maintain;
        update-policy local;
        key-directory "/etc/bind/views/dnssec_keys";
        file "/var/cache/bind/db.otherside.earth.flux";
    };
    
    include "/etc/bind/sec-trust-anchors.conf";
    

    /etc/bind/sec-trust-anchors.conf

    trusted-keys {
        otherside.earth.flux. 256 3 7 "AwEAAeJd3Xyd8l3rWDx46UwPMyLOSVcbuwDgEvt2iEWTAghVbpw5M2YN 0GxUqa6vWI/RAhSynF4fxSvp1z3PnKBFle/Qxz7MzfPgH0spzriWsP8k qjs0Y9/xJU0tzZJ2TrIypdmEqpKtMbs3gRrrADz8pr/AdI7bjvX4r6Oh ty04lG8zyj1wwuWXi/oVfk1rTD9I2aq7SWK9REnueUFRsshMLQK5Vgpo Row0HmrE7Peg59lFFSi54rSJivb/4Tb0P8AtIlIUW0ZZOR9E/MsswWFZ Qw56A0Z5LJK4t8RmV5+vAhflNn/uTSEOpC08vUqkNQbOBXr1Ie/t57H6 ywvsKwEYo9s=";
        otherside.earth.flux. 257 3 7 "AwEAAdth+HteT0kUim5+hOkyTpMU1FbNfxjn7otvpcA0ZSb/37Tr+WRJ l1nmzHkmrW+gJuzj5M+1QPEv41CujWe8EdGOyA3jM2KENj7NMdiNjh1G puzQa7YFxR4z5SG8+M5zvO5F3CTFWU5tZCTzkvk4Zbs5aJ3RZ6Zk1EBK xwoKz1CGCoedBM1VcKwJ2H+NT15m1cb/AfsSEljTyvruUUiJo84+MRPh luYtPrVKIwnHe6qxvhLSvpG0HFNNkBudy/TOf7C51zmdkpW+3hvbzp/I 79LEuXyYwXft4vpxKNv4zTGOoXNrBAxHcfmvAJsplIzSGcM84yRD+oWm Pu/WF+ESuPv9bmws0hZ2L2+dLpKZjDjb8ppxFS/zJFfWqqErRWssQo64 4lET6m2qET1g22YeB5iLAhVfAmTMZtxnhLqSHJ1EdQIwKm3RJfUsr+z+ Wxb9BZS/P2OSUsSzLOQ7hWjViCE45JMW0gGnMrvSeloAePtvYasfBjaT IDhW2knhKVr2ZoJ6I7pvZBrc/hLB2NGiFaN2otLwIX6InRTT8zrndDY8 uXwVsrBH/4UXy0CIf0PNwjqyFTALSx2DYGW1aU9y0wiZbX5h3msJGRO3 eiHP6QNv+bQJ3f1isMuaAFXT07gcfrAVYT72clU5Nep1Dp6hBfmkfnGT jhiPj16+cfJerrIP";
    };
    

    /etc/bind/views/dnssec_keys

    # 这个目录下放置在 Git 仓库中找到的两对公私钥文件
    ├── Ksecret+007+11537.key
    ├── Ksecret+007+11537.private
    ├── Ksecret+007+26883.key
    └── Ksecret+007+26883.private
    # 记得改名
    mv Ksecret+007+11537.key Kotherside.earth.flux.+007+11537.key
    mv Ksecret+007+11537.private Kotherside.earth.flux.+007+11537.private
    mv Ksecret+007+26883.key Kotherside.earth.flux.+007+26883.key
    mv Ksecret+007+26883.private Kotherside.earth.flux.+007+26883.private
    

    相关文章

      网友评论

      本文标题:[HACK.LU CTF 2017](Web)DnSoSecur

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