首页 > 其他分享 >2023 福建省第三届工业互联网创新大赛CTF Misc-Covertchannel2

2023 福建省第三届工业互联网创新大赛CTF Misc-Covertchannel2

时间:2024-08-05 12:05:42浏览次数:15  
标签:Misc private Covertchannel2 json key 2023 msg import data

题目:

近日,公司Windows服务器被入侵,黑客使用了一个比较隐蔽的信道将机密凭据传输了出去,但是蛛丝马迹还是被流量采集设备捕获了,你能从中找回丢失的flag吗?

分析:

分析该流量包发现了有一个 rsa.key,并且在数据包长度为 126 和 119 中发现了,secrets.txt 和 data.zip,接下来就是写脚本提取出数据

exp:

import subprocess
import re

command = 'tshark -r Covertchannel.pcap -Y "mqtt" -T json > msg.txt'

proc = subprocess.Popen(command, shell=True,
                        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()

with open('msg.txt', 'r', encoding='utf-8') as f:
    data = f.read()

pattern = r'"mqtt\.msg": "(.*?)"'
msg_data = re.findall(pattern, data)
print(msg_data)

with open('msg_data.txt', 'w', encoding='utf-8') as f:
    for i in msg_data:
        f.write(i + '\n')

接下来在 msg_data.txt 可以观察出有三段大概如下:

rsa.key
LS0tLS1CRUdJTiBQ
...

secrets.txt:
bFBkNlE3SDF1ZjRT

...

data.zip:
VUVzREJBb0FBQUFB

然后将三段都分别丢进 cyber 进行解码,data.zip: 那一段 base64 2次 就能看到 PK

image-20240704150246-bip0zqg

image-20240704150307-s4j19h0

image-20240704150351-gx3dhtt

接下来就是利用 rsa 的私钥进行解密,

exp:

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Util.number import *
import base64

private_key = '''-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC1YaMyRuhD9Pu5
w6GNhfYTQ0Vo/0OjZPKyDS3viCZIuXUsUn/vQxMJPWlCQq7rRv2c7+z8PTxeirV7
1fPT/sFxgxHbjZeFDRCvU7Pc4ZknT8rTymGWR9WB6XEi8s06gWQegxOKgq7smDJs
Qow+7OGes1Xm8HxgeDjjghzeN2dS75kswo+HF6hzZVKiJGoju/jyp2hqdjuMYySv
BHzlLoH5r1Yrdg/hEIOaua2h7s5p5ybJ+8aIqTEFz5Q/FuM4z9LE0O8ysJxo4WRV
+cbtWCD17kGIjRxHW5tTTszqrwHMISVyZq+5Ib1K7DGE3a/Ek/weYp5Fh8bX8LbH
RSwBsopXAgMBAAECggEADw3xDSm8enN5dzQpEwWE5JlnR+0z8Hpe+G9GmkR7JPsb
oheg3bt7937c3y6ItSd5wk5ZpZ/xhElQAdzCtZxF8wV1dHsekeEBOwQgABvLaeti
As0f52jD7FnzVXrAlPQLWsr3Ur5BBYsmWDz3xftESLdK0HWyZRFla2Cvw7PmhAgS
CDYvj5S0qk0h7KrNGJMfM8o+j7lE3ZKv5pTTVQ+/GUwF0q+Ujk75Zg3WMfGQQVOT
nM0kOa970Yfb7V2UHcQn9HCxHY0wc+/PK4jtn2h4htTrNBBTa4B6zTDY8sfYg0XB
+M2H57We0r7azWmdeVAM3woocqbNYMUFUB/PVR36CQKBgQDD5OxBcMepIDnWXb0c
ict5/O67VhkWUb64vA695P9luBtCKxfnhlSnPjPt3olCy5KInB02MnNJMHV4haqY
Gtxb+1GeXK3pJo837s7w7bnVAE3eP3OmYHk4aq8LMtxacd8WZ0UyUH16+4hKbrh+
JowSwZvLixWaJq0XaSIOkmO83wKBgQDtCMMjMzhiNEhNDHtc+SlVzqlXKtIp61ag
pavufiUUEKyRoG8i1GoIIPn7u2hEBF8Rm3euuWLl1SHAjWswNEUJnp2rO5sFGJBK
sgpIyxFkiSYFoXWKVd0r7k/KNPk1ShpHZhSJqEsYqmDjbTFFVxUCj3xerfZlqLQT
dzdOnoVpiQKBgQCG3RDmEL30qtIGyixK/HbQehjlcmX9HrQePKIti/1kyzZA/KgN
ZkbbiRB5QA7hpIMyd8AIsvz5s1n8apHC/CMfVEuhqg61CC3rhQaFijS49uelDawS
LDLoa1ItdIuN3P2IT/qspAtvYsI29Dkh6Gng89fNbuilYuEhz+h5fcEaowKBgBlc
aqSFgm7fcSztPPXBou6PYgb1ie76QxaFI1QtIwJ2lkAujjWHzKB6BsUsVAeTACj+
HVwQcchteWMEvoc10H0q/2umwPtWmXmkev023PGIywynLdBTR4q/wMG90TwmZZFm
FqRz4TUOZbdvo2nr20+e0ou+yTIvTrUWeFBtHZEhAoGACualPMp1+DKOnGRKqpBA
c/W/ObkBBgQsV11k+wy1AZ0SVUjY0DkEKdKAMxQ6v0+ERCrbgVOux0xGR7MF7RGY
OwuVNDyCUT/gbqkxU3aUmT9oa+kbnxHtdUsbqeziEJ9xMLWlDygVfv4ae+InKbS0
MnZAAXUNDQIu5dxYCGPlrfA=
-----END PRIVATE KEY-----
'''

enc = 'lPd6Q7H1uf4SNEKH4IE1Kg2iDFk0DBhJwCBsdI2WhzOGap08kdPYQFr6apSvZiTHvjiX2tmUlI9i2wh/1ghwIK97PbHDq1+SxE1nr46m0P/C1zgkB22+u3V2q19IOAatnasrkPDJLPim+xnx7t1NyA7VJLwsRNCPoqEgLmfQBwuzPBjXCtufQY/kAih7Ku4OnUWkJXDydIlONzejeI+mQG/8UQHM4PbscjoovRvec+aJR1lj8031qcm+2ZvIdR+dIDbCW2kYjmNbmW+L6PnKCe/suJJ4AeR4JmMleQERLzimgXnWnFRv8ZziUsrKYUUtMol9WXJk88V7QHMr/L3FEg=='

# 解析私钥
private_key = RSA.import_key(private_key)
# print(private_key)

# 提取加密数据
n = private_key.n
e = private_key.e
d = private_key.d
p = private_key.p
q = private_key.q

c = bytes_to_long(base64.b64decode(enc))
m = pow(c, d, n)

print(long_to_bytes(m))

也可以利用网站:RSA 加密/解密 - 锤子在线工具 (toolhelper.cn)

image-20240704150545-oe34a8x

最后,将解出来的字符串作为压缩包的密码,打开后在 1.txt 就能找到 flag

flag{a3e0f096-17ed-4c0b-8895-4dd0cbabafaf}

总结:

在利用 tshark​ 提取字符串时,本来是 tshark -r Covertchannel.pcap -Y "mqtt" -T json > 1.json​ 转换成 json 的,然在从 json 去提取

贴一下我原来的脚本,但是后面发现这个 1.json 不是标准的数据格式,在用一层下有 2 个 mqtt ,我们在提取的时候只能提取到最后一个,默认把前面的覆盖了,这里我看了半天,我一直以为数据有问题,然后发现又的数据没有提取出来,所有最后利用正则把需要的数据都提取出来了

import os
import subprocess
import json
import re

command = 'tshark -r Covertchannel.pcap  -Y "mqtt" -T json > 1.json'

proc = subprocess.Popen(command, shell=True,
                        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()

with open('1.json', 'r',  encoding='utf-8') as f:
    data=json.load(f)

a1 = []
for i in data:
    try:
        b1 = i['_source']['layers']['mqtt']['mqtt.msg']
        a1.append(b1)
    except:
        pass
print(a1)

标签:Misc,private,Covertchannel2,json,key,2023,msg,import,data
From: https://www.cnblogs.com/lpppp/p/18342961

相关文章

  • U盘版:RadiAnt DICOM 查看器 CD/DVD 2023.1 Crack
    RadiAntDICOM查看器CD/DVD2023.1建于2023年3月29日CD/DVD自动运行包新功能:长度比计算。椭圆体/子弹体积计算。改进和错误修复:增加了对某些不完全符合标准的DICOM文件的支持。增加了对一些不常见的JPEG2000编码DICOM图像的支持。RadiAntDICOMView......
  • 【2023年】云计算金砖牛刀小试2
    A场次题目:Openstack平台部署与运维control172.17.31.10compute172.17.31.20compute任务1私有云平台环境初始化1.初始化操作系统使用提供的用户名密码,登录竞赛云平台。根据表1中的IP地址规划,设置各服务器节点的IP地址,确保网络正常通信,设置控制节点......
  • 塔子哥喜欢字符-小米2023笔试(codefun2000)
    题目链接塔子哥喜欢字符-小米2023笔试(codefun2000)题目内容塔子哥天生偏爱一些字符,对于一个字符串,他总是想把字符串中的字符变成他偏爱的那些字符。如果字符串中某个字符不是他所偏爱的字符,称为非偏爱字符,那么他会将该非偏爱字符替换为字符串中距离该字符最近的一个偏......
  • 谈一谈编程到底应该怎么学?-暨2023年 CSP-J2轮爆零总结
    谈一谈编程到底应该怎么学?-暨2023年CSP-J2轮爆零总结转自https://mp.weixin.qq.com/s/_Fi64pYrZ6tHfKaNDb3xAA今年的信息学奥赛复赛结果已经基本出来了,整个行业讨论最多的就是今年的爆0问题。据说一个省,总共1900多人参加J组复赛,有800个0分。其它各省也都是爆0很多。但是同......
  • CVE-2023-26469 复现
    题目描述:Jorani是一款开源的员工考勤和休假管理系统,适用于中小型企业和全球化组织,它简化了员工工时记录、休假请求和审批流程,并提供了多语言支持以满足不同地区的需求。在Jorani1.0.0中,攻击者可以利用路径遍历来访问文件并在服务器上执行代码。这是一个csrf的洞,找了一下,......
  • 2023.8.3 test
    A有序列\(A\),你可进行若干次操作:选定\(A_i,A_j\),使\(A_i=\gcd(A_i,A_j)\),\(A_j=lcm(A_i,A_j)\)。\(n,A_i\le10^6\)。把每个质因数独立开,发现无论怎么操作,每个数某质因数的次数的集合不变。所以贪心地,从大往小放置\(A_1\simA_n\)。B无向图上,\(n\le20\),你要随机起点走......
  • 塔子哥的最短区间-小米2023笔试(codefun2000)
    题目链接塔子哥的最短区间-小米2023笔试(codefun2000)题目内容塔子哥有一个长度为n的数组a和长度为m的数组b,下标均从1开始。现在,塔子哥想让你找出一个最短的区间l,r,这个区间中数x的数量至少出现了b[x]次。输入描述第一行,两个整数n,m(......
  • [paper阅读笔记][2023]CorpusLM: Towards a Unified Language Model on Corpusfor Kno
    文章链接:https://arxiv.org/pdf/2402.01176v2Paper的任务处理各种知识密集型任务任务的科学问题本文任务虽然是:提出一个统一的语言模型来处理各种知识密集型任务,但其实其本质科学问题是:如何提高LLMs在知识密集型任务中的检索效率。原因是:LLMs在生成文本时容易出现错误信......
  • GEE案例:Landsat 5、7、8影像构建1985-2023年rsei生态遥感指数详细代码
    之前关于RSEI的博客 GoogleEarthEngine(GEEÿ......
  • python中  datetime.now() 获取当前时间 例如:2023-04-01 12:34:56.789012
    问:python中 datetime.now()获取当前时间例如:2023-04-0112:34:56.789012答:在Python中,datetime.now()函数是用来获取当前日期和时间的。但是,需要注意的是,这个函数是datetime模块中datetime类的一个方法,因此你需要从datetime模块中导入datetime类(尽管这看起来有点......