玄机 | 工控安全 | 工控-失效的遥控

flag{gongkongaq_isflag}

前置

这里最值得注意的关键词并不是“失效”,而是“遥控”。在工业控制、电力自动化环境中,经常会提到“四遥”,分别为遥信、遥测、遥控、遥调,其中“遥控”一般指主站远程向从站、RTU或者IED下发开关控制命令。因此看到题目名称后,我们可以形成初步猜想,该流量大概率不属于普通IT网络流量,有可能和电力工业协议相关,需要重点留意是否出现IEC 104这类协议。不过不能仅仅凭借题目里出现的“遥控”二字就直接判定为IEC 104协议,依旧需要回到PCAP数据包中寻找实际证据来加以验证。

IEC 104的全称为IEC 60870‑5‑104,这是一套主要应用于电力自动化、调度系统、SCADA以及变电站远动通信场景的工业控制协议,可以简单理解为主站借助网络远程读取电力设备的状态与测量数值,同时向设备下发各类控制命令的通信规则。该协议最典型的用途就是实现远动功能,也就是我们常说的四遥:遥信用于读取开关、告警状态,例如断路器的分合状态;遥测用来采集电压、电流、功率等测量数据;遥控实现对断路器、开关的远程动作控制;遥调则负责远程修改设备的相关设定值。结合本题“失效的遥控”这一标题,在识别出IEC 104协议后,就应当将分析重心放在协议内的遥控命令上。

IEC 104默认工作在TCP 2404端口,在Wireshark中,我们通常可以使用过滤表达式tcp.port == 2404快速定位对应的流量。

APDU全称为Application Protocol Data Unit,中文一般称作应用协议数据单元,可以简单将其理解为一条完整的IEC 104应用层报文。

APCI全称为Application Protocol Control Information,中文一般称作应用协议控制信息,它主要承担IEC 104报文的传输控制工作,用来告知接收方一条IEC 104报文的起始位置、报文长度,区分报文属于I格式、S格式还是U格式,同时携带I格式报文的发送序号与接收序号。可以简单记为,APCI负责“怎么传”,ASDU负责“传什么业务”。

ASDU全称为Application Service Data Unit,中文叫做应用服务数据单元,它是我们分析工控流量题目时真正需要重点关注的业务数据部分,例如2d 01 06 00 02 00 67 00 00 81这类内容就属于ASDU。

完整 IEC 104 APDU 是:

68 0e 00 00 00 00 2d 01 06 00 02 00 67 00 00 81
│                   │
└──── APCI ─────────┘└────────── ASDU ──────────┘

也就是:

APDU
├── APCI:68 0e 00 00 00 00
└── ASDU:2d 01 06 00 02 00 67 00 00 81

C_SC_NA_1是IEC 104当中的一种ASDU类型,代表单点命令,也就是单点遥控命令,对应的Type ID为45。我们可以简单拆解理解,C代表Command,即控制类;SC代表Single Command,也就是单点命令;NA表示该报文属于不带时标的基础形式;数字1则为对应的类型定义编号。

Act = Activation = 发起操作 ActCon = Activation Confirmation = 激活确认 ActTerm = Activation Termination = 激活结束

IOA全称为Information Object Address,中文一般称作信息体地址,在IEC 104协议中,它的作用可以简单理解为用来标识这条遥控、遥测或者遥信报文具体对应哪一个业务点位。变电站内部存在大量设备点位,例如断路器1、断路器2、开关1、电压测点、电流测点等,协议不能笼统地描述要控制开关,必须明确指定操作对象,IOA就承担了这个定位的功能,比如IOA等于103,含义就是对103号信息点执行相应操作。

姿势

看整个 PCAP 有什么协议

统计 → 协议分级

1

发现IEC 60870-5-104

统计→ 会话→ TCP

2

发现2404端口

筛选

tcp.port == 2404

3

发现C_SC_NA_1 Act

4

Type Identification: C_SC_NA_1 (45) 单点遥控类型

Cause: Activation (6) 6表示 发起/激活这个操作

确认了我们要找的“新发起的遥控命令”。

然后开始检查这些“新发起的单点遥控命令”到底控制了哪个信息点。IOA

5

正常情况下,IOA应当是工程前期配置完成的业务点号,例如1001、1002、2001、2002这类数值,但在这道题目当中却连续出现103、111、110、103、107等异常的IOA值。

比如一个变电站里可能人为配置:

IOA = 1001  → 1号断路器分合状态
IOA = 1002  → 2号断路器分合状态
IOA = 2001  → A相电压
IOA = 2002  → B相电压
IOA = 3001  → 1号开关遥控点

也就是说,IOA 本质上是工程人员在系统里提前规划好的“业务点地址”。

我们只记录单点发起操作C_SC_NA_1 + Act

IOA 十进制 IOA HEX ASCII
103 67 g
111 6f o
110 6e n
103 67 g
107 6b k
111 6f o
110 6e n
103 67 g
97 61 a
113 71 q
95 5f _
105 69 i
115 73 s
102 66 f
108 6c l
97 61 a
103 67 g

得到gongkongaq_isflag

注意

2404是IEC 104服务端典型的监听端口

但是2404 端口不能直接代表 IEC 104

理论上任何程序都可以占用 TCP 2404。

IEC 104 的典型 APDU 都会以:68开头。

6

第一个字节68是IEC 104 APDU的启动字符Start,为固定值0x68,因此在TCP载荷数据当中看到以68开头的内容,就是识别IEC 104 APDU的一个重要特征。

所以我们先确定IEC 104再去找2404

posted @ 2026-08-22 15:13  yeran烨染  阅读(37)  评论(0)    收藏  举报