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

news/2025/3/16 18:57:33/文章来源:https://www.cnblogs.com/lpppp/p/18342961

题目:

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

分析:

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

exp:

import subprocess
import recommand = '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 base64private_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.qc = 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 recommand = '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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778080.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis 源码环境搭建

参考 从头到尾手把手教你搭建阅读Mybatis源码的环境(程序员必备技能) Cannot enable lazy loading because Javassist is not available. Add Javassist to your classpath. 下载源码 https://github.com/mybatis/mybatis-3/ https://github.com/mybatis/parent/tree/mybatis-p…

05、Pod网络

4.1 Pod网络 在K8s集群中,多个节点上的Pod相互通信,要通过网络插件来完成,比如Calico网络插件。 使用kubeadm初始化K8s集群时,有指定一个参数 --pod-network-cidr=10.18.0.0/16 它是用来定义Pod的网段。 而我们在配置Calico的时候,同样也定义了一个CALICO_IPV4POOL_CIDR的…

Ros2 Moveit2 之 围绕对象进行规划 - 添加障碍物

本教程将向您介绍如何将对象插入规划场景并围绕它们进行规划。 先决条件 如果您还没有这样做,请确保您已完成RViz 中的可视化hello_moveit中的步骤。本项目假设您从上一个教程结束的地方开始。如果您只想运行本教程,您可以按照Docker 指南启动一个包含已完成教程的容器。 步骤…

使用 clearError 清除已处理的错误

title: 使用 clearError 清除已处理的错误 date: 2024/8/5 updated: 2024/8/5 author: cmdragon excerpt: 摘要:“文章介绍了clearError函数的作用与用法,用于清除已处理的错误并可实现页面重定向,提升用户体验。通过示例展示了在表单提交场景中如何应用此函数进行错误处理…

破局SAP实施难题、降低开发难度,定制化需求怎样快速上线?

前言 SAP 是全球领先的业务流程管理软件供应商之一,其提供广泛的模块化解决方案和套件,所开发的软件解决方案面向各种规模的企业,帮助客户规划和设计业务流程、分析并高效设计整个价值链,以更好的了解和响应客户需求。ERP 是企业资源规划的简称,ERP 软件涵盖所有核心业务领…

ComplatebleFuture异步调用方法,喝茶你也可以很快

ComplatebleFuture的异步用法: ComplateFuture.supplyAsync()方法会将方法体里面的方法进行异步调用,不用一直等待; ComplateFuture.allof()方法用于等待所有complatebleFutrue方法执行完毕。

若依框架导入阿里OSS报错问题解决方案

1、首先使用终端查看java JDK版本号 java -version 输出结果: java version "1.8.0_361" Java(TM) SE Runtime Environment (build 1.8.0_361-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode) javac-version 输出结果: javac 1.8.0_361 如…

php---空合并运算符

在做PHP开发的过程中,在引入SDK做项目开发的时候,经常会遇到一些不常见的运算符,正好自己也学习一下。运行的结果:就比如上面看到的运算符 ?: 和 ?? 运算符和我们常见的三目运算符不同,但是也有点类似。 三目运算符是这样的:$abs = !empty($list) ? a : b;而空合并运…

玄机

第一章 应急响应-webshell查杀 靶机账号密码 root xjwebshell 1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx} 2.黑客使用的什么工具的shell github地址的md5 flag{md5} 3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx 4.黑客免杀马完整…

Spring Boot 基于 SCRAM 认证集成 Kafka 的详解

在本篇文章中,我们将探讨如何在Spring Boot应用中集成Kafka并使用SCRAM认证机制进行安全连接;并实现动态创建账号、ACL 权限、Topic,以及生产者和消费者等操作。一、说明 在现代微服务架构中,Kafka 作为消息中间件被广泛使用,而安全性则是其中的一个关键因素。在本篇文章中…

win系统下 由于管理员设置的策略,该磁盘处于脱机状态解决办法

1.运行:cmd 2.输入:DISKPART.exe 3.DISKPART> san 4.DISKPART> san policy=onlineall 5.DISKPART>list disk 6.DISKPART> select disk 1 7.DISKPART>attributes disk clear readonly 8.DISKPART>online disk