攻防世界 MISC 高手进阶 tunnel

攻防世界 MISC 高手进阶 tunnel


提示:pyshark和tshark都可以解析流量,提取想要的数据。


流量分析

过滤器为dns && ip.dst == 8.8.8.8,发现这个DNS的请求很像Base64,A是ipv4记录,AAAA是ipv6记录。

在这里插入图片描述

由于ipv4和ipv6发送的都是一样的流量,所以我们把过滤器改一下,我们过滤出ipv4的。


过滤器为dns && ip.dst == 8.8.8.8 && dns.qry.type == 1

在这里插入图片描述

这次我们拿到的全部都是A记录的了,写个代码把Base64字符串拿出来。


python代码如下:

import pyshark

cap = pyshark.FileCapture("tunnel.pcap", display_filter="dns && ip.dst == 8.8.8.8 && dns.qry.type == 1", tshark_path="D:/Program Files/Wireshark/tshark.exe")

with open("base64_str.txt", "w") as f:
    for c in cap:
        base64_str = str(c.dns.qry_name).split(".")[0]
        f.write(base64_str + "\n")

运行后,运行目录获得base64_str.txt,如图:

在这里插入图片描述

用在线网站解码第一段,点我进入在线网站

在这里插入图片描述

解码出错了,所以说后面还要补上 = 符号,这个不明白的去看一下Base64编码流程。


直接上工具,就好了,或者去网站找Base64的补 = 符号代码,或者看我的博文,戳我即可

在这里插入图片描述

已经自动补全=,并拿到了Base64隐写的结果,password: B@%MG"6FjbS8^c#r


在这里插入图片描述

拿到第一行补全后的Base64字符串解码,获得16进制,50 4B 03 04文件头,这不纯纯的ZIP格式,所以写代码拿到这个ZIP文件。

先把Base64补全=后的字符串保存到本地,然后Python代码如下:

import base64

# 读取没有补全的base64
with open("base64_str.txt", "r") as f:
    data = f.read()
    data = data.splitlines()

# 先补全base64的`=`,保存到本地
with open("base64_str补全=后.txt", "w") as f:
    for line in data:
        missing_padding = len(line) % 4
        if missing_padding != 0:
            line += "=" * (4 - missing_padding)
        f.write(line + "\n")

# 读取每行Base64,然后解码保存为flag.zip
with open("base64_str补全=后.txt", "r") as f:
    data = f.read()
    data = data.splitlines()

with open("flag.zip", "wb") as f:
    for line in data:
        f.write(base64.b64decode(line.encode("utf-8")))

运行结果,本地出现flag.zip,成功拿到了。


用之前的Base64隐写的pass密码解压flag.zip,如图:

在这里插入图片描述

FLAG:flag{D01n't_5pY_0nmE}


本题要素

1.要熟悉DNS的流量,会使用pyshark,或者其他方式解析流量,比如tshark命令。

2.熟悉Base64编码,会补全 = 符号

3.熟悉Base64隐写。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值