2022江西振兴杯

本文最后更新于:2023年11月1日 晚上

[TOC]

2022江西振兴杯

MISC

工程文件分析

1

风机故障分析

1

一、MODBUS通讯协议完整介绍(全文10000字以上)

过滤 modbus.func_code == 16

image-20231008152101889

找到了一个值为3000的,大于2300,所以flag{0x0bb8}

modbus流量分析

1

直接按长度降序排列:

image-20231008154700533

这一串数字很可疑,类似ascii码,前四个数字:153 147 158 152 132

而flag的ascii码为:102 108 97 103

两两加起来刚好为250,所以写个脚本即可

1
2
3
4
5
6
arr=[153,147,158,152,132,146,144,155,157,138,140,160,150,140,160,154,158,140,134,130]
flag = ""
for i in arr:
flag += chr(255-i)

print(flag)

flag{modbus_is_easy}

流量中的神秘信息

1

按长度降序排列

image-20231008160907716

base64解码

PLC流量分析

1

找到一个假的flag

image-20231008165331863

继续找:R3

image-20231008165536559

41

image-20231008165549114

R341 -> real

flag{R341_flag}

PLC协议分析

1

1
2
3
4
5
6
7
from Crypto.Cipher import AES
password = b'\xde\xad\xc0\xde\xde\xad\xc0\xde\xde\xad\xc0\xde\xde\xad\xc0\xde' #秘钥,b就是表示为bytes类型
aes = AES.new(password,AES.MODE_ECB) #创建一个aes对象
# AES.MODE_ECB 表示模式是ECB模式
en_text=b'\x25\x5f\x58\xa0\xa8\x9f\x39\xf0\xd2\x62\x52\xf6\xd9\x84\x61\xa3'
den_text = aes.decrypt(en_text) # 解密密文
print("明文:",den_text)

STEGA

组态文件中的隐藏信息

1

PLC图片分析

1

使用foremost分离图片,得到一个压缩包,需要密码:

image-20231008144110619

改一下图片的高度,获得一个掩码:ics_4****666

image-20231008144214965

掩码爆破一下:

image-20231008144248100

ics_45043666

打开压缩包获得flag:

1
Congratulations!flag is: flag{plc_sec_master}

工控主机中的异常文件

1

修改plc.plc文件16进制文件头:50 4B 03 04

image-20231008144600602

并修改为zip后缀打开,发现需要密码

爆破出密码:

image-20231008144757805

打开图片获得flag

image-20231008144838006


2022江西振兴杯
https://leekosss.github.io/2023/10/08/2022江西振兴杯/
作者
leekos
发布于
2023年10月8日
更新于
2023年11月1日
许可协议