津门杯||XCTF-天津站-2021||MISC-tunnel


打开流量包,发现dns域名请求的流量中带有疑似base64的字符串

 

把dns流量中第一个奇怪的字符串放入cyberchef,base64解码再转换为16进制,发现了zip文件头,找到方向了!

常见文件头:https://segmentfault.com/a/1190000018886731

 

 那就提取一下吧

tshark -r tunnel.pcap -T fields -e ip.src -e dns.qry.name -Y 'dns' | grep '192.168.1.103' | grep 'evil.im' > out.txt

  • -r tunnel.pcap 需要分析的报文记录文件(pcap格式)
  • -T fields 输出格式,选fields按字段,也可以选json等其他格式,需结合-e 及 -E使用
  • -e ip.src
  • -e dns.qry.name 提取dns查询的域名信息
  • -Y <display filter>,使用读取过滤器的语法
  • > out.txt 将内容输出到out.txt文件
  • grep 使用正则过滤,过滤出想要的内容

 

提取出来的内容,有一些重复的部分,而且字符串末尾的.evil.im很碍眼啊,那就通过脚本来解决这些问题吧

 

给脚本小白们提个醒,该脚本版本是python2的,觉得在windows配环境麻烦的,可以直接选用linux系统如Kali(神器)或者如Ubuntu之类的,直接python2跑脚本,很快啊,就会出结果了

 

# -*- coding:utf-8 -*-
import base64

f = open('tunnel_out.txt', 'r').readlines()
f1 = open('flag.zip', 'w')
f2 = open('base.txt', 'w')

for i in range(len(f) - 1):
    # 如果和上一行的信息重复,跳过改行
    if f[i] == f[i+1]:
        continue
    # 将字符串内容全部提取出来,并替换掉.evil.im为空
    a = f[i][14:].strip().replace('.evil.im', '')
    if len(a) % 4 == 2:
        a += '=='
    if len(a) % 4 == 3:
        a += '='
    # 打印 a
    f2.write(a + '\n')
    f1.write(base64.b64decode(a))


f1.close()
f2.close()

 

base.txt中存储着base64加密后的信息

 

 

我们还提取出来一个flag.zip压缩文件,打开看看

发现内有一个加密了的压缩图片,这时我们base.txt的内容就排上用途了,肯定就是base64隐写啦

# -*- coding:utf-8 -*-

b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'

with open('base.txt', 'rb') as f:
    bin_str = ''
    for line in f.readlines():
        stegb64 = ''.join(line.split())
        rowb64 =  ''.join(stegb64.decode('base64').encode('base64').split())

        offset = abs(b64chars.index(stegb64.replace('=','')[-1])-b64chars.index(rowb64.replace('=','')[-1]))
        equalnum = stegb64.count('=') #no equalnum no offset

        if equalnum:
            bin_str += bin(offset)[2:].zfill(equalnum * 2)

        print ''.join([chr(int(bin_str[i:i + 8], 2)) for i in xrange(0, len(bin_str), 8)]) #8 位一组

 

结果出来了,这就是压缩文件的密码了

 

打开图片,成功获得flag

 

 

参考的师傅们的WP:

http://www.ga1axy.top/index.php/archives/57/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM