工控安全-2024振兴杯-被攻击的电机wp

2024振兴杯-被攻击的电机

最近在尝试做一些工控的题目,首先先从modbus的一些流量分析开始吧。题目概述如下:

小刘是一名黑客,一天他黑进了某公司的生产控制系统,并篡改了生产线某个电机的转速值,导致电机转速过快,最终造成生产线瘫痪。网络安全工程师小占在排查问题中截获一份流量文件,请根据工程师小占捕获的流量包,分析当天电机的转速达到了多少转才出现的故障。已知该电机正常运转时是3000转/分钟,flag为发送异常转速的modbus/Tcp层的HEX数据,flag格式为:flag{ }

附件就是一个流量包,这题的一个核心知识点,即有关于modbus.func_code各个参数的意义。

功能码(十进制/十六进制) 名称 功能解释 举例场景
01 / 0x01 Read Coils 读线圈(开关量输入) 读取按钮、继电器状态
02 / 0x02 Read Discrete Inputs 读离散输入点 读取传感器开关信号
03 / 0x03 Read Holding Registers 读保持寄存器 获取模拟量、设定参数、速度值等
04 / 0x04 Read Input Registers 读输入寄存器 获取测量值(温度、电流等)
05 / 0x05 Write Single Coil 写单个线圈(开/关命令) 打开或关闭设备
06 / 0x06 Write Single Register 写单个保持寄存器 改变参数,例如设定速度
15 / 0x0F Write Multiple Coils 批量写入多个开关量 批量控制启动/停止状态
16 / 0x10 Write Multiple Registers 批量写入多个寄存器 一次性设置多个参数
08 / 0x08 Diagnostic 诊断或复位命令 测试通信或设备状态

这里面我们只要使用的是3、5、6。我们一开始查找func为5的流量的时候会发现data的值为ff00,这是指线圈的开启指令。所以过一遍之后我们就可以看参数6里的一些信息了。

专门看这些写入单个寄存器的流量就好,阅读之后会发现其实并不止一条流量发送的data值大于3000,那这么多流量我们改选哪个呢,我查了一下网上大部分的wp,其实说的并没有很清楚。其实这里要用到我们另一个参数,即参数3,来查看寄存器数值的变化。

我们发现在序号9338之前的所有寄存器读取,其序号为114的寄存器数值都为3000,与题目想呼应,而在到了9776之后,114的数值突然变成了5000,说明这里的数值被恶意篡改了。

所以我们在参数6中寻找序号在9776附近的流量包,发现序号9476的流量包发送了一个data值为5000的指示,很明显就是这个了

直接复制下来用flag包裹提交就行了

相关推荐
志栋智能4 小时前
超自动化安全:构建智能安全运营的核心引擎
大数据·运维·服务器·数据库·安全·自动化·产品运营
星幻元宇VR5 小时前
VR航空航天科普设备【VR时空直升机】
科技·学习·安全·生活·vr
weixin_514253186 小时前
428-uitars tmux
安全·web安全
KKKlucifer9 小时前
日志审计与行为分析在安全服务中的应用实践
网络·人工智能·安全
ykjhr_3d12 小时前
vr电力安全培训系统有哪些
安全·vr·华锐视点
枷锁—sha12 小时前
【CTFshow-pwn系列】03_栈溢出【pwn 073】详解:静态编译下的自动化 ROP 链构建
网络·汇编·笔记·安全·网络安全·自动化
VBsemi-专注于MOSFET研发定制12 小时前
面向高可靠与能效需求的安全存储系统功率器件选型策略与适配手册
安全
xixixi7777712 小时前
AI安全周记:AI驱动攻击占比50%、PQC国标落地、ShinyHunters连环袭击——面对1:25的攻防成本鸿沟,防守方还能撑多久?
人工智能·安全·ai·大模型·aigc·量子计算·供应链
智擎软件测评小祺12 小时前
什么是非功能检测?筑牢软件性能与安全的基石
功能测试·安全·检测·cma·第三方检测·cnas·非功能检测
jinanwuhuaguo13 小时前
OpenClaw执行奇点——因果链折叠与责任悬置的时间哲学(第十九篇)
前端·人工智能·安全·重构·openclaw