2023年江西省“振兴杯”工业互联网安全技术技能大赛暨全国大赛江西选拔赛 Write UP

本文主要是介绍2023年江西省“振兴杯”工业互联网安全技术技能大赛暨全国大赛江西选拔赛 Write UP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、协议分析 - modbus
    • 二、协议分析 - 异常的流量
    • 三、协议分析 - S7Error
    • 四、协议分析 - OmronAttack
    • 五、组态编程 - 工程的秘密
    • 六、组态编程 - 工程的秘密
    • 七、组态编程 - 简单的计算
    • 八、组态编程 - 交通灯
    • 九、组态编程 - 有趣的转盘
    • 十、应急处置 - 登录日志分析
    • 十一、应急处置 - 设备运行状态分析
    • 十二、恶意程序分析 - 样本分析
    • 十三、恶意程序分析 - 恶意的指令
    • 十四、固件分析 - 固件后门分析
    • 十五、固件分析 - 固件加密分析

入职的第一场比赛,最后一分钟被超10多名,心态崩了,神仙打架,未进决赛。最终团队排名 25+,个人得分 2015分,排名第 9。

一、协议分析 - modbus

黑客通过modbus协议向他的同伙发送了一条秘密信息,通过流量设备我们抓取到了相关的流量包,你能根据流量包找到这条信息么?

题目分析 modbus 协议,先筛选 modbus 协议,然后随便选择一条数据包右键进行 TCP 流跟踪,如下:
在这里插入图片描述

可以直接看到 flag 字样,直接筛选即可。
在这里插入图片描述


二、协议分析 - 异常的流量

请对提供的流量进行分析,发现可能存在的异常,找出flag,提交格式:flag{xxx}。

第一步:对长度排个序,看异常数据包的长度会不会跟别的数据包有差异。发现长度都是 861,看不出什么。
在这里插入图片描述

随便截图里找一条数据包,右键TCP流跟踪:

在这里插入图片描述

分离TCP 流查看,发现几段16进制片段:
在这里插入图片描述

在这里插入图片描述

拼接后 Hex 解码得:

在这里插入图片描述

提交 flag {EnergyRevolution} 答案正确。


三、协议分析 - S7Error

某工厂的工程师发现有一台西门子设备存在资源异常,请分析并找出异常流量的数据包编号。

题目提示是资源异常,说明响应包有对应错误状态码:

回包 error code 分类:

0x00 No error 没有错误
0x81 Application relationship 应用关系
0x82 Object definition 对象定义
0x83 No resources available 没有可用资源
0x84 Error on service processing 服务处理中错误
0x85 Error on supplies 请求错误
0x87 Access error 访问错误

对照状态码,所以应该去筛选 0x83, 筛选命令为:s7comm && s7comm.header.errcod == 0x83

在这里插入图片描述

得 flag{213056}, 答案正确。


四、协议分析 - OmronAttack

某工厂的工程师发现有一台设备存在异常,抓取流量后发现了黑客的端倪,你能协助他分析黑客留下的痕迹吗?

这道题是赛后做出来的。题目标题为 OmronAttack, 自然先筛选 Omron 协议数据包:
在这里插入图片描述

我有个习惯喜欢先对数据包长度排个序,看看有没有长度不同的数据包

在这里插入图片描述

看到8条可疑数据包

在这里插入图片描述

不像是简单的 HEX 解码,先根据流量包编号从小到大拼接数据

在这里插入图片描述

分析最后一个数据包的 ahevf nu): ,两两交换发现是 have fun:) , 这里可能是在提示我们对上面加密字符串字母进行两两交换,编写脚本得:

在这里插入图片描述

f94ScF/rv0jUS2+fs04MH+xChkzBMy4dI7R7BucEM1CkzcyJU1Au3XnH 这串密文如何解密呢?秘钥肯定是在流量里,我习惯开启 tcp 流跟踪去过滤筛选一下:
在这里插入图片描述
发现特别多 FINS………, 分流导出两份数据文本 :

在这里插入图片描述

在这里插入图片描述
Vscode分别打开这两个文件把 FINS………等大量相同的字符串全局替换成空字符得如下:

在这里插入图片描述

9600 端口 -> 49921 端口发现一串可疑字符串。5ae1e174746f6f64647373a5a56b

在这里插入图片描述

(tips: 无头绪的时候不妨试试流跟踪, 刚才找的加密字符串通过流跟踪也很快能找到)

5ae1e174746f6f64647373a5a56b 看着像md5编码,但是数了一下一共有24个字符,md5常见是16或者32个字符,发现中间有好多重复的,去重复得 5ae1746f6473a56b,刚好是16位,拿去md5 解密一下:

在这里插入图片描述

按理来说,出题方给的 md5 肯定能解开,是不是漏了什么信息。回想一下,我们密文之前做了两两交换,是不是说这串 md5 也需要两两交换才是正确的?使用刚才编写的脚本得:
a51e47f646375ab6,再拿去解密一下:
在这里插入图片描述

解密成功,提示rabbit, 说明是现在密码学中的 rabbit 加解密,使用 CyberChef 工具进行解密:
在这里插入图片描述

为什么解密不了?试了好几次,都没效果。回想自己开发数据加密如AES, RSA 加密,喜欢把加密数据再 Base64 编码,或许这里也对加密数据做了一次 Base64 加密,最终结果如下:
在这里插入图片描述

成功解开此题 flag{40d3b450-8ea3-46bb-b2b8-e69a3d7a50b3}


五、组态编程 - 工程的秘密

小李刚入门自动化领域,学习了组态编程技术,他将一段秘密信息放在了组态文件中并把他藏了起来,你能把他找出来么?

题目给了一张图:
在这里插入图片描述看图片大小,可以排除是图片宽高遮挡问题。使用 binwalk 看下 png 是不是藏了东西:
在这里插入图片描述

啥也没有。试试 CTF的图片隐写题中有一种常见的题型——基于LSB原理的图片隐写。使用zsteg 工具,输入 zsteg -e b1,rgb,lsb,xy flag.png -> res.zip,解压res.zip 里面有一个12.cmp 的文件。

在这里插入图片描述

结合题意,是组态王软件的备份文件,使用组态王恢复工程:

在这里插入图片描述在这里插入图片描述


六、组态编程 - 工程的秘密

组态工程文件被黑客篡改,导致程序画面功能出现问题,请协助分析组态程序,修复画面功能至正常。答案为flag{修复画面的脚本命令内容转换成HEX格式的前8位}

这类工控题要下载各种工控软件,这类软件还大装半天,比赛装软件就半天。这题是别的师傅做的,temp.MCP 查找一下对应软件打开,题干提示,画面出错,要修复画面的脚本命令内容,属性可以看到启动脚本、循环脚本、退出脚本这种。使用McgsPro版本组态软件打开, 仿真跑起来后测试功能,发现 有个窗口无法关闭

在这里插入图片描述

在这里插入图片描述

还可以看到这里脚本程序

在这里插入图片描述看官方文档找到关闭窗口的脚本函数是这个

在这里插入图片描述
然后hex一下 前八位就是 21436C6F, 即 flag{21436C6F}


七、组态编程 - 简单的计算

初入自动化的小王被单位的工程师出题,假设FC1块的IN1接口DB1.DBW0数值为900,IN2接口为360,IN3接口为20后,FC块将获取到接口的数据并加以计算最终由OUT接口DB1.DBD6输出结果是什么? flag格式为flag{}。

打开文件发现有一个.ap16的文件,使用博途V16打开该文件:

在这里插入图片描述
该题去年振兴杯考过一模一样的题,签到题。打开PLCSIM Advanced软件,以及博途v16软件。

在这里插入图片描述
将题目中的FC1块的IN1接口DB1.DBW0数值为900带入其中运行仿真程序计算出结果:

在这里插入图片描述
得到flag: flag{1.985294}


八、组态编程 - 交通灯

附件是一个交通信号灯的一些资料,请你分析出当按下启动按钮后,信号灯启动控制过程中,信号灯亮、闪、灭的情况。方向及状态代号如下:东西:EW, 南北:SN, 红灯:R ,绿灯:G ,黄灯:Y, 亮:T ,闪:L 灭:F ,时间:S (1S,2S,3S,4S,5S),交通灯在一个周期内,按红绿黄灯顺序依次找出东西南北红绿黄灯的亮灭情况。如流程:南北红灯亮20S灭,绿灯亮10S闪烁灭,黄灯亮4秒闪烁3秒灭,可写为:SNRT20SF-GT10SF-YT4SL3SF。注:正确答案写成EWXX-XXXX-XXXX-SNXX-XXXX-XXXX为正确的flag。Flag格式为:flag{}

给了两张图,一份交通灯.doc 资料,但是word资料打不开。010editor 查看交通灯.doc发现文件头为 AC1024, 是 CAD (dwg),文件头:41433130。

在这里插入图片描述

在这里插入图片描述
word 转换为 dwg 后缀拿去在线 cad 转 png 网站进行转换得:

在这里插入图片描述
东西红灯Q 0.5, 东西绿灯 Q 0.3, 东西黄灯Q 0.4,南北红灯Q 0.2,南北黄灯 Q0.1, 南北绿灯Q 0.0,

结合这篇文章理解:https://www.wolai.com/ctfhub/s3A1zqErH54BGuyeWbWFgX

在这里插入图片描述
程序段遇到 T37 就会激活定时器。程序段2、6、7为连续时间,3、4、5为连续时间

程序段2:0~35s --> T35F
程序段6: 35 ~ 50s亮, SM0.5 提供一个周期为1秒钟的时钟脉冲,50 ~ 53s 闪烁 -->T15SL3SF
程序段7:53~60s亮 -->T7SF

程序段3:0 ~ 27s亮,27~30s闪烁 -->T27SL3SF
程序段4:30~38s亮 -->T8SF
程序段5:38-60s亮 -->T22SF

考虑到不确定的道路方向以及黄灯时间较短的情况,我们可以做出如下猜测:在第一组,可能为东西方向,红灯亮35秒,绿灯亮15秒并闪烁3秒,然后黄灯亮7秒。在第二组,同样可能为东西方向,红灯亮22秒,绿灯亮27秒并闪烁3秒,接着黄灯亮8秒。

两种情况都提交一下,发现 flag{EWRT22SF-GT27SL3SF-YT8SF-SNRT35SF-GT15SL3SF-YT7SF} 正确。


九、组态编程 - 有趣的转盘

车间最新设计了一个可转动圆盘设备,并设计控制程序使得转盘由西门子1200系列控制,该设备由一个转盘主体、启动程序按钮和三个限位开关组成;设备初始状态如图所示,当按下启动按钮后程序启动,限位开关1-3分别控制输入点位I0.1-I0.3,当触点与限位开关接触时,对应输入点位通电;启动按钮控制输入点位I0.0;设备转动分为内圈和外圈,转盘以逆时针转动,Q0.0输出点位控制内圈转动,Q0.1控制外圈转动,内圈转动会带动外圈一起转动,外圈转动是与内圈的相对转动(例如外圈内圈均转动90度;,则内圈转动90度;,外圈在内圈带动转动的90度;之外还要再相对于内圈转动90度;也就是总共转动180度;),触点1镶嵌在内圈上与内圈一同转动,触点2镶嵌在外圈上同外圈一同转动,转盘转动一圈所需时间为12s,操作员需要使用启动按钮方可启动程序;现在指定操作员对转盘进行模拟转动测试,操作员需要在转盘停止后按下启动按钮令转盘设备启动,直至转盘设备与图中初始位置相同后方可不再运行(即触点1、2对应如图位置)。flag格式为:10#flag{启动所需长按最短时间_总共按下按钮次数_mw3_设备停止时两个触点与中心连线最大夹角(小于等于180度;)}


在这里插入图片描述
开局一张图,一脸懵,无思路。


十、应急处置 - 登录日志分析

黑客通过爆破SSH的方式成功入侵了工控服务器,请从日志中分析出攻击者的IP地址,确定成功爆破出登录名/密码的时间,flag即为该时间,如9:36:33。flag提交形式为flag{xxxx}

签到题。 筛选Accpted 查看黑客爆破登录成功的日志,发现有5条。

在这里插入图片描述

那么是哪一条呢?里面登录成功的日志有可能是正常用户登录的。 我们要想到黑客爆破自然先会有很多密码错误的日志,然后再有一条密码正常的日志。从而排除得到 19:32:01 是黑客首次爆破成功的时间。

答案为 flag{19:32:01}


十一、应急处置 - 设备运行状态分析

操作员打开设备后,发现点击设备运行按钮后,设备不能正常启动,请帮助操作员分析程序,修复其中的问题。flag为导致设备故障的控制点所直接关联的两个子程序名称_按钮控制点名称的组合,例如:flag{[PID_count(SBR6)]_[PRT(SBR19)]_M0.0}。

看不懂,不会做


十二、恶意程序分析 - 样本分析

某电力系统部门发现来历不明的病毒攻击,样本中包含可疑攻击行为,请对样本协助分析,找到隐藏在攻击代码中的flag。提交格式:flag{xxx}

使用 64 位IDA打开,字符串搜一下flag试试,发现Py字样,是python打包的程序。
在这里插入图片描述

使用开源的工具 pyinstxtractor.py, 下载链接 https://github.com/extremecoders-re/pyinstxtractor

在这里插入图片描述
在这里插入图片描述
看到一个 control 控制文件,可能是黑客留下的,记事本查看发现flag:

在这里插入图片描述


十三、恶意程序分析 - 恶意的指令

安全公司截获了某个针对电力系统攻击的样本,样本会向指定设备的8个IOA发送控制命令,flag就隐藏在IOA中。提交格式:flag{xxx}

在这里插入图片描述
32 位的文件, 使用32位的IDA工具打开进入main函数:

在这里插入图片描述
查看伪代码。经过分析发现,将v3数组的值作为shellcode传入,结合题目意思分析, 看到v3数组类似flag,R键转字符观察并提取出来。

在这里插入图片描述

得:flag{f30l7a1g}


十四、固件分析 - 固件后门分析

一些厂商为方便调试和监测,可能会在产品上保留“后门”,这也为产品带来了较大安全隐患。请对提供的固件进行分析,找出其中可能存在的后门口令。flag即为口令字符串,提交格式:flag{xxx}。

题目提供一个 OCR 文件,放入 ida 中。黑客留后门,可以猜测可能存在ssh 连接,字符串搜索SSH 可以看到如下截图:

在这里插入图片描述
点击SSH 跳转如下:

在这里插入图片描述
发现了存在 SHH 的公钥和私钥, 下面还有一个secret 字符串。
在这里插入图片描述
查看该函数,可以断定这是黑客后门行为,该秘钥就是flag

在这里插入图片描述
故答案为 flag{Ovation35}


十五、固件分析 - 固件加密分析

某公司收到勒索邮件,经过分析查验后发现内网中并没有勒索病毒的痕迹,网管小张研究后发现疑似黑客对工控路由器进行了攻击,通过技术手段获取到了路由器固件,请帮助小张分析出固件并且尝试找出被加密的文件,提交格式:flag{xxx}。

一脸懵,不会做…

这篇关于2023年江西省“振兴杯”工业互联网安全技术技能大赛暨全国大赛江西选拔赛 Write UP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299292

相关文章

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

生信代码入门:从零开始掌握生物信息学编程技能

少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 介绍 生物信息学是一个高度跨学科的领域,结合了生物学、计算机科学和统计学。随着高通量测序技术的发展,海量的生物数据需要通过编程来进行处理和分析。因此,掌握生信编程技能,成为每一个生物信息学研究者的必备能力。 生信代码入门,旨在帮助初学者从零开始学习生物信息学中的编程基础。通过学习常用

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi

java线程深度解析(二)——线程互斥技术与线程间通信

http://blog.csdn.net/daybreak1209/article/details/51307679      在java多线程——线程同步问题中,对于多线程下程序启动时出现的线程安全问题的背景和初步解决方案已经有了详细的介绍。本文将再度深入解析对线程代码块和方法的同步控制和多线程间通信的实例。 一、再现多线程下安全问题 先看开启两条线程,分别按序打印字符串的