[HACK.LU CTF 2017](Web)DnSoSecure


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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,563评论 18 139
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,693评论 0 10
  • 14.1 引言 域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换...
    张芳涛阅读 1,866评论 0 8
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 2,848评论 0 7
  • DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能...
    一直在努力hard阅读 4,596评论 3 19