ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021Bytectf初赛misc-frequently

2021-10-20 11:58:10  阅读:212  来源: 互联网

标签:file 8.8 2021Bytectf 初赛 过滤 dns print frequently data


Someone wants to send secret information through a surreptitious channel. Could you intercept their communications?

dns隧道

过滤一下dns协议

发现有很多向8.8.8.8请求,然后域名前带有信息,于是过滤一下8.8.8.8

在这里插入图片描述

发现这里面有两种,一种是i和o开头的,推测是0和1,另外一种是字符串,

在这里插入图片描述

看到最后一个包这里的==,推测是64编码,就可以过滤一下之前所有带字符串的,然后拼接起来,解码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TvvKhCPq-1634701797701)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/17adc024-d9e1-4f2a-8bb4-abb6e453d72f/Untitled.png)]

base64解码

先过滤出来所有带有字符串的

过滤规则: dns contains bytedanec&& frame.len==84

然后导出,导出的话,需要借助tshark工具。

我们需要导出上述规则的

找一下这个字段,先导出全部,然后找一下这个Name

https://www.wireshark.org/docs/dfref/d/dns.html

字段名是从官网找到的,后来发现其实完全不用。。官网找太麻烦了

在这里插入图片描述

完全可以右键,然后点击选择过滤器应用,右边会显示出它的字段名称

在这里插入图片描述

过滤规则:

./tshark.exe -r frequently.pcap -Y “dns contains bytedanec&& dns.qry.name.len > 15 && ip.dst == 8.8.8.8” -T fields -e dns.id -e dns.qry.name

在这里插入图片描述

然后用python ,正则过滤出前面这一段字符,然后连接起来即可(ps:dns的transaction id,也就是过滤规则中的dns.id应该是唯一的,这里面存在重复的,导致刚开始连接起来的字符转换图片有问题,需要去重)

base64转图片工具网址:

https://tool.jisuapi.com/base642pic.html

(也可以用python的base库来解码)

代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Autor:tangzicheng
import re
import base64

file = open('chongfu.txt','r').read().split('\n')
# print(file)

# 先去重
clean = []
for i in file:
    if i not in clean:
        clean.append(i)
# print(clean)
# 然后把数据部分拼接起来
res = ''
for i in clean:
    data = re.findall(r'([^\s]*)\.bytedanec\.top',i)
    res += data[0]
print(res)
# 输出图片
f = open('out1.png','wb')
data = base64.b64decode(res.encode())
f.write(data)

未去重的效果:

在这里插入图片描述

去重:

在这里插入图片描述

对这个图片进行了一定分析后发现没什么用

查询io

udp.length == 41 && dns contains byte

在这里插入图片描述

将内容导出

/tshark.exe -r frequently.pcap -Y “udp.length == 41 && dns contains byte” -T fields -e dns.id -e dns.qry.name
在这里插入图片描述

脚本编写

用来提取 i o ,转换成01,然后转换成ASCII

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Autor:tangzicheng
import re
from Crypto.Util import number

file = open('chongfu.txt','r').read().split('\n')
# print(file)
final = []
for i in file:
    if i not in final:
        final.append(i)
# print(final)
finalbin = ""
for i in final:
    data = re.findall(r'.\.bytedanec\.top',i)
    if len(data) != 0:
        # print(data[0][0])
        if data[0][0] == 'o':
            finalbin += str(0)
        else:
            finalbin += str(1)
# print(finalbin)
print(number.long_to_bytes(int(finalbin,2)))

在这里插入图片描述

ByteCTF{_enJ0y&y0ur’

另辟蹊径

追踪udp流。

在这里插入图片描述

在序号为1的udp流中发现了隐藏的另一半flag

这个东西可能就是要看细心了,还有就是不放过任何一个细节。。。。。

在这里插入图片描述

se1f_wIth_m1sc_}

拼接起来得到最终flag

ByteCTF{_enJ0y&y0ur’se1f_wIth_m1sc_}

参考:W&M 白帽100安全攻防实验室 微信公众号

标签:file,8.8,2021Bytectf,初赛,过滤,dns,print,frequently,data
来源: https://blog.csdn.net/qq_43200143/article/details/120863280

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有