2025年江西省振兴杯工业互联网技术技能大赛线上赛WP
字数 2443 2025-11-24 12:13:06

2025年江西省振兴杯工业互联网技术技能大赛线上赛WP教学文档

一、协议分析

1.1 PLC型号识别

题目要求:查找PLC的型号

解题步骤

  1. 使用CTF-NetA工具一键分析流量包
  2. 在流量中查找PLC相关信息,找到订货号:6ES7 215-1AG31-0XB0
  3. 通过西门子官方查询网站查询该订货号对应的PLC型号
  4. 获得完整型号:CPU1215CDC/DC/DC

关键点

  • PLC订货号与型号的对应关系需要查询官方资料
  • 注意flag格式要求:flag{CPU1215CDC/DC/DC}

1.2 数据包分析(packet)

解题步骤

  1. 使用Wireshark分析数据包,导出HTTP对象
  2. 使用tshark分析协议分布:
    tshark -r packet1.pcapng -Y "irc" -T fields -e irc.request -e irc.response
    tshark -r packet1.pcapng -Y "cotp" -T fields -e cotp.type -e data.text
    
  3. 发现IRC协议传输了7z压缩包,位于第84个流
  4. 解压密码为:MarioRulez1985
  5. 解压获得1.pcapng文件,追踪TCP流获得flag

关键点

  • IRC协议常用于文件传输
  • 注意流编号的识别
  • flag格式:flag{WelcomeTojxSz~}

1.3 Modbus协议分析

解题步骤

  1. 分析Modbus/TCP协议流量
  2. 查找写操作相关流量(功能码06/10/16等)
  3. 将最后写入的数据转换为浮点数
  4. 提取Modbus/TCP层的HEX数据

关键点

  • 熟悉Modbus功能码含义
  • 数据格式转换(HEX到浮点数)
  • flag格式:flag{0c010000000b01100016000204441fe3d7}

二、组态编程

2.1 贪吃蛇游戏

解题步骤

  1. 在项目中搜索"flag"关键词,获得flag前半部分
  2. 搜索"}"字符,找到flag后半部分
  3. 组合获得完整flag

关键点

  • 使用全局搜索功能
  • 注意flag可能被分割存储
  • 完整flag:flag{The_Great_Eggscape_Is_Over}

2.2 有趣的图片隐写

解题步骤

  1. 使用010 Editor分析flag.jpg,发现内含压缩包
  2. 使用foremost工具分离出zip文件
  3. 发现压缩包有加密,使用随波逐流工具修复伪加密
  4. 解压获得天然气运维系统.PCZ文件
  5. 将PCZ后缀改为zip,再次修复伪加密
  6. 在bmp目录下的题3.png中找到flag

关键点

  • 文件格式识别(jpg中隐藏zip)
  • 伪加密修复技术
  • 多层压缩包处理

三、工控迷宫

解题步骤

  1. 使用Autothink打开程序分析
  2. 解析迷宫地图数据(每行存储为二进制数):
    maze = [63,129,253,253,253,253,129,252]
    
    def print_maze(maze):
        for row in maze:
            line = ""
            for i in range(8):
                if row & (1 << (7 - i)):
                    line += "*"
                else:
                    line += " "
            print(line)
    
  3. 分析程序逻辑:当位置到达63时输出flag
  4. 修改Start为True开始游戏,通过Dir标志位控制移动
  5. 注意移动检测的是上升沿(0→1的变化)

关键点

  • 迷宫地图的二进制表示
  • 上升沿检测机制
  • flag:flag{1265912045}

四、PLC工程

解题步骤

  1. 使用Autothink分析PLC程序
  2. 要求try_it被按下(上升沿)2999次后获得result
  3. 构建循环逻辑自动计数:
    • 若count≠2999,置位try_it,count+1
    • 复位try_it以便下次触发
  4. 删除上升沿检测块,简化触发逻辑
  5. 运行获得最终结果

关键点

  • PLC编程逻辑理解
  • 自动计数实现
  • flag:flag{235997}

五、应急处置

5.1 钓鱼邮件分析

解题步骤

  1. 分析eml文件,下载附件(docx和exe)
  2. 分析exe文件逻辑:将tan.docx异或解密为tan1.docx
  3. 初始尝试密钥"123456"失败
  4. 发现邮件中的base64字符串"ctf_is_good_boy"为真实密钥
  5. 使用XOR解密脚本:
    def xor_decrypt(data, key):
        key_bytes = key.encode('utf-8')
        decrypted_data = bytearray()
        for i, byte in enumerate(data):
            decrypted_data.append(byte ^ key_bytes[i % len(key_bytes)])
        return bytes(decrypted_data)
    

关键点

  • 邮件附件分析
  • XOR加解密原理
  • 密钥隐藏在base64中
  • flag:flag{ctf_eq23-c876-dhad-2871-dkdk-lopk}

5.2 ICS_C2协议分析

解题步骤

  1. 分析OPC UA协议数据,追踪TCP流
  2. 使用tshark提取HTTP数据到output.txt
  3. 编写解析脚本处理base64编码的数据:
    • 识别数据块(RESULT标记)
    • base64解码并解析JSON结构
  4. 发现多个命令执行结果块
  5. 跟踪sed命令对flag的修改过程

关键点

  • OPC UA协议中的C2通信
  • 分块数据传输解析
  • 命令执行痕迹分析
  • 最终flag:flag{Try_Try_A_new_c2_0PC}

六、恶意程序分析

6.1 Pipdream恶意软件分析

解题步骤

  1. 使用IDA反汇编分析
  2. 发现fwrite写入PE文件(4D 5A头)
  3. 提取PE文件进行进一步分析
  4. 定位AES加密函数
  5. 提取加密密钥:C110DD4FE9434147B92A5A1E3FDBF29A

关键点

  • PE文件结构识别
  • AES加密算法识别
  • 密钥提取技术

七、固件分析

7.1 加密固件分析

解题步骤

  1. 使用binwalk提取固件文件
  2. 定位关键解密文件libupgradeFirmware.so
  3. 分析解密逻辑:AES加密+CRC32校验
  4. 解密获得rom文件
  5. 计算文件MD5值

关键点

  • 固件提取技术
  • 加密算法逆向分析
  • 完整性校验
  • flag:flag{542b460afe2c9d6f146818bd7f8c3262}

八、工具使用总结

必备工具列表:

  • 流量分析:Wireshark、tshark、CTF-NetA
  • 文件分析:010 Editor、foremost、随波逐流
  • 逆向工程:IDA Pro、Autothink
  • 编程环境:Python(加解密脚本)
  • 固件分析:binwalk

核心技能要求:

  1. 工业协议分析能力(Modbus、OPC UA、COTP等)
  2. 文件格式识别与隐写分析
  3. PLC编程与逻辑分析
  4. 恶意软件逆向分析
  5. 加解密算法应用
  6. 自动化脚本编写能力

本教学文档详细记录了2025年江西省振兴杯工业互联网技术技能大赛线上赛的各项解题步骤和关键技术点,为后续学习者提供完整的参考指南。

2025年江西省振兴杯工业互联网技术技能大赛线上赛WP教学文档 一、协议分析 1.1 PLC型号识别 题目要求 :查找PLC的型号 解题步骤 : 使用CTF-NetA工具一键分析流量包 在流量中查找PLC相关信息,找到订货号: 6ES7 215-1AG31-0XB0 通过西门子官方查询网站查询该订货号对应的PLC型号 获得完整型号: CPU1215CDC/DC/DC 关键点 : PLC订货号与型号的对应关系需要查询官方资料 注意flag格式要求: flag{CPU1215CDC/DC/DC} 1.2 数据包分析(packet) 解题步骤 : 使用Wireshark分析数据包,导出HTTP对象 使用tshark分析协议分布: 发现IRC协议传输了7z压缩包,位于第84个流 解压密码为: MarioRulez1985 解压获得1.pcapng文件,追踪TCP流获得flag 关键点 : IRC协议常用于文件传输 注意流编号的识别 flag格式: flag{WelcomeTojxSz~} 1.3 Modbus协议分析 解题步骤 : 分析Modbus/TCP协议流量 查找写操作相关流量(功能码06/10/16等) 将最后写入的数据转换为浮点数 提取Modbus/TCP层的HEX数据 关键点 : 熟悉Modbus功能码含义 数据格式转换(HEX到浮点数) flag格式: flag{0c010000000b01100016000204441fe3d7} 二、组态编程 2.1 贪吃蛇游戏 解题步骤 : 在项目中搜索"flag"关键词,获得flag前半部分 搜索"}"字符,找到flag后半部分 组合获得完整flag 关键点 : 使用全局搜索功能 注意flag可能被分割存储 完整flag: flag{The_Great_Eggscape_Is_Over} 2.2 有趣的图片隐写 解题步骤 : 使用010 Editor分析flag.jpg,发现内含压缩包 使用foremost工具分离出zip文件 发现压缩包有加密,使用随波逐流工具修复伪加密 解压获得天然气运维系统.PCZ文件 将PCZ后缀改为zip,再次修复伪加密 在bmp目录下的题3.png中找到flag 关键点 : 文件格式识别(jpg中隐藏zip) 伪加密修复技术 多层压缩包处理 三、工控迷宫 解题步骤 : 使用Autothink打开程序分析 解析迷宫地图数据(每行存储为二进制数): 分析程序逻辑:当位置到达63时输出flag 修改Start为True开始游戏,通过Dir标志位控制移动 注意移动检测的是上升沿(0→1的变化) 关键点 : 迷宫地图的二进制表示 上升沿检测机制 flag: flag{1265912045} 四、PLC工程 解题步骤 : 使用Autothink分析PLC程序 要求try_ it被按下(上升沿)2999次后获得result 构建循环逻辑自动计数: 若count≠2999,置位try_ it,count+1 复位try_ it以便下次触发 删除上升沿检测块,简化触发逻辑 运行获得最终结果 关键点 : PLC编程逻辑理解 自动计数实现 flag: flag{235997} 五、应急处置 5.1 钓鱼邮件分析 解题步骤 : 分析eml文件,下载附件(docx和exe) 分析exe文件逻辑:将tan.docx异或解密为tan1.docx 初始尝试密钥"123456"失败 发现邮件中的base64字符串"ctf_ is_ good_ boy"为真实密钥 使用XOR解密脚本: 关键点 : 邮件附件分析 XOR加解密原理 密钥隐藏在base64中 flag: flag{ctf_eq23-c876-dhad-2871-dkdk-lopk} 5.2 ICS_ C2协议分析 解题步骤 : 分析OPC UA协议数据,追踪TCP流 使用tshark提取HTTP数据到output.txt 编写解析脚本处理base64编码的数据: 识别数据块(RESULT标记) base64解码并解析JSON结构 发现多个命令执行结果块 跟踪sed命令对flag的修改过程 关键点 : OPC UA协议中的C2通信 分块数据传输解析 命令执行痕迹分析 最终flag: flag{Try_Try_A_new_c2_0PC} 六、恶意程序分析 6.1 Pipdream恶意软件分析 解题步骤 : 使用IDA反汇编分析 发现fwrite写入PE文件(4D 5A头) 提取PE文件进行进一步分析 定位AES加密函数 提取加密密钥: C110DD4FE9434147B92A5A1E3FDBF29A 关键点 : PE文件结构识别 AES加密算法识别 密钥提取技术 七、固件分析 7.1 加密固件分析 解题步骤 : 使用binwalk提取固件文件 定位关键解密文件libupgradeFirmware.so 分析解密逻辑:AES加密+CRC32校验 解密获得rom文件 计算文件MD5值 关键点 : 固件提取技术 加密算法逆向分析 完整性校验 flag: flag{542b460afe2c9d6f146818bd7f8c3262} 八、工具使用总结 必备工具列表: 流量分析 :Wireshark、tshark、CTF-NetA 文件分析 :010 Editor、foremost、随波逐流 逆向工程 :IDA Pro、Autothink 编程环境 :Python(加解密脚本) 固件分析 :binwalk 核心技能要求: 工业协议分析能力(Modbus、OPC UA、COTP等) 文件格式识别与隐写分析 PLC编程与逻辑分析 恶意软件逆向分析 加解密算法应用 自动化脚本编写能力 本教学文档详细记录了2025年江西省振兴杯工业互联网技术技能大赛线上赛的各项解题步骤和关键技术点,为后续学习者提供完整的参考指南。