注:只是自己学习记录,若有不对的地方请指出
Modbus协议:
黑客通过外网进入一家工厂的控制网络,之后对工控网络中的操作员站系统进行了攻击,最终通过工控协议破坏了正常的业务。我们得到了操作员站在攻击前后的网络流量数据包,我们需要分析流量中的蛛丝马迹,找到FLAG,flag形式为 flag{}
拿到流量分析的文件,观察到他现实读取了线圈和保存寄存器和输入寄存器,读取了离散寄存器,题目介绍到他通过协议破坏了正常的业务,那么就是他通过功能码写入或者修改了寄存器数据,目前学习知道的寄存器的功能码有三个,03,06,16。
03:读取
06:写入单个
16:写入多个
使用wireshark语句查询他是否写入了什么。
语句:modbus.func_code==06
没有06的流量包
在读取功能码16
语句:modbus.func_code==16
可以看到他有写入多个寄存器的行为,而且还返回异常了,查看写入的数据,得到flag:TheModbusProtocolIsFunny!