【靶场合集】CTF-第七届强网杯全国网络安全挑战赛:谍影重重3.0

admin 2024年1月10日12:35:30评论48 views字数 1930阅读6分26秒阅读模式
声明:请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者和本公众号无关。请遵守《中华人民共和国网络安全法》。
0X01 题目

小明被我国抓获之后对所作所为供认不讳,在对他个人电脑监控的过程中,发现存在通过特殊隧道获取境外组织下发的任务文件,请你协助分析出他所获取到的任务文件名称。

flag提交格式为flag{md5(文件名)}

附件内所涉及的信息均为公开信息,题目描述也均为虚构内容,如有雷同,切勿当真!

题目提示:今年的小明是个狂热的航空爱好者,但他跟去年的老张一样都是个间谍!(纸飞机他也是飞机,也能飞出国境抵达大洋彼岸。)【同时注意部分取材于真实环境 有些部分需要从真实环境中考虑】

【靶场合集】CTF-第七届强网杯全国网络安全挑战赛:谍影重重3.0
0X02 解题思路

根据题目提示,猜测是shadowsocks流量,导出流量data部分。

"C:Program FilesWiresharktshark.exe" -r attach.pcapng -Y tcp -T fields -e data.data > data.txt
【靶场合集】CTF-第七届强网杯全国网络安全挑战赛:谍影重重3.0
shadowsocks流量加密常用AES-256-cfb方式,密钥和IV可以参考shadowsocks客户端,解密部分参考了大佬的代码,因为不知道具体密码是多少整理了弱口令字典进行爆破。
import hashlibfrom Crypto.Cipher import AESdef EVP_BytesToKey(password, key_len, iv_len):    m = []    i = 0    while len(b''.join(m)) < (key_len + iv_len):        md5 = hashlib.md5()        data = password        if i > 0:            data = m[i - 1] + password        md5.update(data)        m.append(md5.digest())        i += 1    ms = b''.join(m)    key = ms[:key_len]    iv = ms[key_len:key_len + iv_len]    return key, ivdef decrypt(cipher,password):    key_len = int(256 / 8)    iv_len = 16    key, _ = EVP_BytesToKey(password, key_len, iv_len)    cipher = bytes.fromhex(cipher)    iv = cipher[:iv_len]    real_cipher = cipher[iv_len:]    cipher = AES.new(key, AES.MODE_CFB, iv, segment_size=128)    a = cipher.decrypt(real_cipher)    return aif __name__ == "__main__":    cipher = 'e0a77dfafb6948728ef45033116b34fc855e7ac8570caed829ca9b4c32c2f6f79184e333445c6027e18a6b53253dca03c6c464b8289cb7a16aa1766e6a0325ee842f9a766b81039fe50c5da12dfaa89eacce17b11ba9748899b49b071851040245fa5ea1312180def3d7c0f5af6973433544a8a342e8fcd2b1759086ead124e39a8b3e2f6dc5d56ad7e8548569eae98ec363f87930d4af80e984d0103036a91be4ad76f0cfb00206'    with open('password.txt','rb') as f:        lines = f.readlines()    for line in lines:        plain = decrypt(cipher,line.strip())        if b'HTTP' in plain:            with open('data.txt', 'rb') as f1:                lines1 = f1.readlines()                print('密码:'+ line.decode())            for line1 in lines1:                try:                    plain1 = decrypt(line1.decode(), line.strip())                    print(plain1.decode('utf-8'))                except:                    plain1 = decrypt(line1.decode(), line.strip())                    print(plain1)
【靶场合集】CTF-第七届强网杯全国网络安全挑战赛:谍影重重3.0

对文件名Why-do-you-want-to-know-what-this-is进行md5

flag{dc7e57298e65949102c17596f1934a97}
0X03

原文始发于微信公众号(皓月的笔记本):【靶场合集】CTF-第七届强网杯全国网络安全挑战赛:谍影重重3.0

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月10日12:35:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【靶场合集】CTF-第七届强网杯全国网络安全挑战赛:谍影重重3.0http://cn-sec.com/archives/2380261.html

发表评论

匿名网友 填写信息