2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

WriteUp 4个月前 admin
109 0 0

招新小广告CTF组诚招re、crypto、pwn、misc、合约方向的师傅,长期招新IOT+Car+工控+样本分析多个组招人有意向的师傅请联系邮箱

[email protected](带上简历和想加入的小组)

初步密码学

题目信息

import rsa

def rsaencode(m):
    # 生成RSA密钥对
    (pubkey, privkey) = rsa.newkeys(256)
    # 获取公钥和私钥参数
    n = pubkey.n
    print(n)
    e = pubkey.e
    print(e)
    c = rsa.encrypt(m, pubkey)
    return c

def add_one_to_ascii(data):
    result = bytearray()
    for byte in data:
        result.append(byte + 1)
    return bytes(result)

def xor_bytes(data, key):
    result = bytearray()
    for byte in data:
        result.append(byte ^ key)
    return bytes(result)

if __name__ == '__main__':
    # 使用公钥进行加密
    m=xor_bytes(add_one_to_ascii(x),12)
    c=rsaencode(m)
    print("加密后的密文:", c.hex())


#output
71484438965393396388835335667806052411397994375702758854090697767967524655627
65537
加密后的密文:0x515b50d7407f4f321ddea14d0d99e4134c285ee6b7b92b77f3ed65f32212a529

操作内容
已知n,e,n的比特256位,可使用yafu分解

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

攻击流量
得到p q后,常见思路解密即可

import rsa

def rsa_decode(c, pubkey):
    # 从公钥生成对应的私钥
    privkey = rsa.PrivateKey(pubkey.n, pubkey.e, pubkey.d, pubkey.p, pubkey.q)
    m = rsa.decrypt(c, privkey)
    return m

def subtract_one_from_ascii(data):
    result = bytearray()
    for byte in data:
        result.append(byte - 1)
    return bytes(result)

def xor_bytes(data, key):
    result = bytearray()
    for byte in data:
        result.append(byte ^ key)
    return bytes(result)

# RSA 公钥参数
n = 71484438965393396388835335667806052411397994375702758854090697767967524655627
e = 65537

# 加密后的密文 (已转换为字节)
ciphertext = bytes.fromhex('515b50d7407f4f321ddea14d0d99e4134c285ee6b7b92b77f3ed65f32212a529')

# 创建公钥对象
pubkey = rsa.PublicKey(n, e)


p = 895534711824738922785094048763390663
q = 79823191688166851259736970548355545692829
d = 19619308233067290551077729872542647104506154812668367156272584280826183049209
privkey = rsa.PrivateKey(n, e, d, p, q)

# 解密得到加密前的数据
decoded_data = rsa.decrypt(ciphertext, privkey)

# 逆向处理数据
decoded_data = xor_bytes(decoded_data, 12)
original_data = subtract_one_from_ascii(decoded_data)

print("解密后的原始明文:", original_data)

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

flag{954fbe80adb799}

恶意攻击流量

题目信息
应用系统被植入了恶意后门,并从流量中识别其中的flag,操作内容
我们判断找到了蚁剑流量,在153包里

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

使用base64解密,得到

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

cd "/var/www/html";echo ZmxhZ3szOTA4NEVFRjJEMjhFOTQxRjUzRTRBMUFBMUZBNjc2Nn0K|base64 -d > ./flag.txt;echo cc6288cd;pwd;echo 2ddc1cfd81

再使用base64解密
ZmxhZ3szOTA4NEVFRjJEMjhFOTQxRjUzRTRBMUFBMUZBNjc2Nn0K 得到

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

flag{39084EEF2D28E941F53E4A1AA1FA6766}

MQTT协议分析

题目信息
MQTT协议是一个基于客户端-服务器消息发布/订阅传输协议。MQTT协议具备轻量、简单、开放和易于实现等特点,使它适用范围非常广泛。附件中MQTT报文存在flag
操作内容
追踪tcp流,看到

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

将字符串组合起来,转16进制后得到

504b0304140001000000fb81e158591948f02000000014000000080000006d7174742e7478741b14fe05d941726530b707cce78a2bd8639d2ce0fdb7ce63270fe005a5f130ed504b01023f00140001000000fb81e158591948f020000000140000000800240000000000000020000000000000006d7174742e7478740a0020000000000001001800604005e48ecbda0100000000000000000000000000000000504b050600000000010001005a000000460000000000

使用cyberchef

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

提取另存得到压缩包

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

解码后的密码是 passwd_mqtt_6666 密码解压得到flag


flag{mqtt_flag_8888}

传感器异常

题目信息
工厂的温度传感器能存储一段时间内的读数,但最近存在异常读取的情况,请把具体Reference Numbe
操作内容
为了查找异常值,使用wireshark过滤器语法

modbus.reference_num >= 212

得到

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

Reference Number: 19934

flag{19934}

re

查文件

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

64位,查看ida反汇编

蓝牙数据分析

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

将以上按顺序base64解密
依次拼接就好(f1,f2,f3顺序)
flag{
adsjopvap
349ls}

结束


招新小广告

ChaMd5 Venom 招收大佬入圈

新成立组IOT+工控+样本分析 长期招新

欢迎联系[email protected]

2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom


原文始发于微信公众号(ChaMd5安全团队):2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom

版权声明:admin 发表于 2024年7月15日 上午8:03。
转载请注明:2024年中国工业互联网安全大赛智能家电赛道选拔赛 by Mini-Venom | CTF导航

相关文章