Y1rannn 发表于 2022-3-30 22:06

[FlareOn6]DnsChess WriteUp

今天科恩面试当晚就拒了...

还是水平太低, 有一点点小委屈...

华为阿里字节都表示不要24届实习生..., 说到底还是水平不够的婉拒吧.. 废话就到这儿

----

!(https://tianyu.xin/usr/uploads/2022/03/1966599587.png)


看着题目名字和文件感觉应该蛮有意思, 给了个流量包, 一个ELF和一个so, 先从流量包看看

!(https://tianyu.xin/usr/uploads/2022/03/3296757599.png)


清一色的DNS流量, 感觉值得关注的一个是域名的nonce, 域名的棋子名字, 一个是IP, 还有一个是Transcation ID. 这个ID不知道是协议默认还是自定义的包, 查一下

(http://c.biancheng.net/view/6457.html)

看了一下就是为了对应请求和应答的, 那应该没什么用, 主要还是关注nonce和IP

这是ELF, 感觉没啥用, 函数都在so里, 除了3AB0

!(https://tianyu.xin/usr/uploads/2022/03/1819151215.png)


看出来用了很多libgtk, 看看是啥, 查了一下应该是一个GUI库, 安一个

!(https://tianyu.xin/usr/uploads/2022/03/3397763725.png)


emm, 我感觉应该是我们得搞个有图形界面的来, 换vm吧.. 但是感觉基本就是按pcap里的这个移动棋子模拟一下, 另外pawn是卒, bishop是象, rook是车(原谅我的没文化)

!(https://tianyu.xin/usr/uploads/2022/03/2102025218.png)


so里感觉这个比较有用, 回到UI去看看哪儿用的

!(https://tianyu.xin/usr/uploads/2022/03/266977018.png)


这两个结合看可以猜测出来NextMove里肯定是不能走return2的,不然直接destroy了., 如果是0应该是继续走下一步, 1应该是胜利之类的

D120能判断出来应该是个循环变量, 游戏步数之类的, v3, v2和ptr+8虽然是匿名的, 但是感觉应该是起始位置-目标位置-移动棋子名字中的一个, 不知道顺序, 去so里看看怎么用的

!(https://tianyu.xin/usr/uploads/2022/03/2592926211.png)


注意到这了吧, 基本可以确定a2是名字, a3起始, a4目标

!(https://tianyu.xin/usr/uploads/2022/03/2629853059.png)


DNS结果要有, 第一节是0x7F, 第四节要是偶数, 第三节和0xF与之后要正好等于步数, 返回值是第四节的最高位

!(https://tianyu.xin/usr/uploads/2022/03/3757777040.png)


这个a5存了ip相关的两个东西, 还有一句跟step相关的骚话

!(https://tianyu.xin/usr/uploads/2022/03/2998948621.png)


一共十四句, 推测14步, 看看ip相关返回来干嘛了,

!(https://tianyu.xin/usr/uploads/2022/03/3986403750.png)


4AE0和4B60的参数, 暂时不关心, 我们还是考虑考虑怎么win, err, 回到ip的第四位的最高位, 需要是1

解析一下pcap, 把符合要求的都拿出来, 我个人喜欢导出成json然后直接操作json

直接筛选一下回复的包, python解析

```python
import json

data = json.load(open("out.json", "r", encoding="utf-8"))
cnt = 0
for i in data :
    block = i['_source']['layers']['dns']['Answers']
    key = list(block.keys())
    name = block["dns.resp.name"]
    ip = block["dns.a"]
    ip = ip.split('.')
    if ip != '127' or int(ip) & 1 == 1 :
      continue
    print(cnt, name, int(ip)&0xF, int(ip) >> 7)
    cnt += 1
```

```pt
0 knight-g1-f3.game-of-thrones.flare-on.com 4 0
1 pawn-c2-c4.game-of-thrones.flare-on.com 1 0
2 bishop-f1-e2.game-of-thrones.flare-on.com 6 0
3 bishop-c1-f4.game-of-thrones.flare-on.com 5 0
4 bishop-c6-a8.game-of-thrones.flare-on.com 11 0
5 pawn-e2-e4.game-of-thrones.flare-on.com 3 0
6 pawn-e5-e6.game-of-thrones.flare-on.com 12 0
7 queen-d1-h5.game-of-thrones.flare-on.com 13 0
8 bishop-f3-c6.game-of-thrones.flare-on.com 10 0
9 bishop-f4-g3.game-of-thrones.flare-on.com 8 0
10 pawn-e4-e5.game-of-thrones.flare-on.com 9 0
11 queen-h5-f7.game-of-thrones.flare-on.com 14 1
12 bishop-e2-f3.game-of-thrones.flare-on.com 7 0
13 knight-b1-c3.game-of-thrones.flare-on.com 2 0
14 pawn-d2-d4.game-of-thrones.flare-on.com 0 0
```

这个结果...过于完美, 直接把答案展示在了我眼前, 我感觉到这儿就结束了, 按它的顺序走一趟, 走到第15就win了

dns是通过改host的方式改的, 毕竟这也找不到真的dns对应去

flag:LooksLikeYouLockedUpTheLookupZ@flare-on.com

蛮有意思的题

xiadongming 发表于 2022-3-30 23:20

lgslegend 发表于 2022-3-31 07:34

好好好好好好好

mokson 发表于 2022-3-31 08:17

hxdfree 发表于 2022-3-31 09:03

加油!fighting

lgslegend 发表于 2022-4-2 06:58

好好好好好好好好
页: [1]
查看完整版本: [FlareOn6]DnsChess WriteUp