当前位置:首页 > 黑客业务 > 正文内容

Modbus TCP流量剖析

访客4年前 (2021-04-15)黑客业务718

Modbus协议
Modbus是全球第一个真实用于工业现场的总线协议,ModBus选用主/从(Master/Slave)方法通讯。最大可支撑247个隶属控制器,但实践所支撑的隶属控制器数还得由所用通讯设备决议,且每个隶属控制器都有一个专属的slave ID。一起Modbus也是一个不经过身份验证的明文协议。
尽管开端是为了进行串行通讯才规划出它,可是现在用的最多的仍是TCP,其他版别的Modbus(用于串行通讯)有Modbus RTU和Modbus ASCII。关于串行通讯来说Modbus ASCII与Modbus RTU是不兼容的(也便是说在同一个网络两者不可能一起存在)
每种Modbus协议都必须挑选一种帧格局:
Modbus TCP (在低网络层中没有校验和);
Modbus RTU (运用二进制编码和一个CRC过错检测);
Modbus ASCII (运用ASCII字符);
在TCP中客户端一般指的是主控制器,服务端指的是隶属控制器。
Modbus TCP
TCP帧格局由以下部分组成:
Transaction identifier : 设备直接进行同步通讯
Protocol identifier : 关于Modbus TCP来说其值一直为0
Length field : 确认数据包剩下的长度
Unit identifier : 隶属控制器的地址(由于咱们现已把TCP/IP地址设置为标识符,所以这儿大部分状况为255)
Function code : 要履行的函数
  -大多数函数运转从/到PLC进行读取/写入操作
     3: 读取多个坚持寄存器
     1: 读取线圈
     5: 写入单个线圈
       …
  -检测函数
  -其他一些函数
数据字节或许指令
信息存储
这儿有两个可用来存储信息的当地:线圈以及寄存器。每个数据存储类型都有两个不同的寄存器:一个是读/写寄存器,一个是只读寄存器,且每个数据存储类型都引证一个内存地址。
简略的说:
线圈用于存储简略的布尔值(1 bit).可读/写,从00001到09999;
离散输入:只读类型的布尔值,从10001到19999;
输入寄存器:只读类型的长值(16 bits),从30001到39999;
坚持寄存器:读/写类型的长值(16 bits),从40001到49999;
请注意:由于硬件不同,有些寄存器是从0开端,有些是从1开端。
单元标识符
在大多数状况下,在Modbus单元设备中由于之前现已经过它的IP地址处理了正确单元,所以你不需求一个单元id。但有些时分你可能会遇到多台设备连接到一个IP地址,假如是这样的话,你就必须将单元ID设置为255
单元ID为0你能够将其看作一个播送地址,信息发送到0,一切的隶属控制器都能够接纳。假如你是设置一个Modbus客户端,记住必定不要将单元ID设置为0
Modbus流量
你能够运用ModbusPal来模仿Modbus隶属控制器的行为,这个Java运用答应你同不同的隶属控制器(寄存器和线圈)愉快游玩。你也能够运用MBTGET(纯Perl写的modbus/TCP客户端)来查询Modbus实例。
这儿有几个备选计划,你能够运用它们来玩Modbus:
Modbus poll (主运用在Windows)
CAS Modbus Scanner (主运用在Windows)
ModScan (主运用在Windows)
modbus-tk (Linux上模仿隶属控制器)
Conpot (Linux上的一个Modbus -ICS蜜罐)
现在我在Kali VM上布置ModbusPal(Slave),在Linux VM上布置MBTGET(Master)
Modbus Slave : 192.168.171.182
Modbus Master : 192.168.171.139
剖析Modbus流量
在OSX上运用vmnet-sniffer获取俩不同虚拟机的流量
sudo "/Applications/VMware Fusion.app/Contents/Library/vmnet-sniffer" -w modbus.pcap vmnet8
过一瞬间你就能够运用Wireshark读取pcap文件,Modbus TCP流量运转在tcp/502端口
设置ModusPal
首要咱们需求设置ModusPal来模仿Modbus隶属控制器,下载ModbusPal之后运转:
java –jar ModbusPal.jar
增加一个隶属控制器,修改隶属控制器并增加一些线圈。

理论上来说你也能够更改一些线圈的值,记住他们都是布尔值,所以这些值不是0便是1。单击运转,发动隶属控制器。
MBTGET
切换到安装好MBTGET的Linux客户端,MBTGET上手非常简单:
usage : mbtget [-hvdsf] [-2c]
               [-u unit_id] [-a address] [-n number_value]
               [-r[12347]] [-w5 bit_value] [-w6 word_value]
               [-p port] [-t timeout] serveur
你能够运用-r1读取线圈,运用-r3能够读取坚持寄存器。
Modbus中查询线圈
第一次流量抓取是在隶属控制器中查询线圈,vmnet-sniffer能够完结网络流量抓取的使命,之后将取得的文件导入Wireshark,运用如下Modbus指令:
mbtget -r1 -u 1 -n 8 192.168.171.182
从192.168.171.182(slave)的unit id 1开端读取8寄存器,输出为:
values:
  1 (ad 00000):     0
  2 (ad 00001):     0
  3 (ad 00002):     1
  4 (ad 00003):     0
  5 (ad 00004):     1
  6 (ad 00005):     0
  7 (ad 00006):     0
  8 (ad 00007):     0
在Wireshark中进行挑选过滤:
tcp.port == 502
在TCP3次握手完结之后,紧接着便是Modbus数据包:

[1] [2]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106397.html

分享给朋友:

“Modbus TCP流量剖析” 的相关文章

什么时候立秋

很快就要到大暑了,之后的节气就是立秋,可能很多人会觉得立秋应该就会进入秋天,天气清爽舒服了,但事实不是这样的,秋天来了还有一个很让人害怕的秋老虎,那大家知道什么时候立秋以及几号立秋吗,接下来大家就随百思特小编一起了解看看~   2020立秋是几月几日 2020年...

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这 买猪肉时,根据肉的颜色、外观、气味等可以判断出肉的质量是好还是坏。优质的猪肉,脂肪白而硬,且带有香味。肉的外面往往有一层稍带干燥的膜,肉质紧密,富有弹性,手指压后凹陷处立即复原。 次鲜肉肉色较鲜肉暗,缺乏光泽,脂肪呈灰白色;表面带...

存储过程oracle(oracle财务系统)

推荐教程:甲骨文教程 本文主要介绍甲骨文中的数据转换。 1.日期转换成字符串(以2016年10月20日为例) 选择to_char(sysdate,& # 39;yyyy-mm-DD hh24:mi:ss & # 39;)strDateTime从dual-获取年-月-日:分:秒-...

书黑客,黑客软件破解吃鸡,网站黑客攻击工具

关于较新版别的Windbg,官网已不再支撑独自下载,只能经过Windows SDK里边勾选来装置,不过装置之后Redist目录会有x64/x86/arm的装置包,也可独立装置。 此次评选活动的意图在于,在安全社区中宣扬这些技能,让职业进步对安全的注重,一起也能让这些技能能遭到认可和铭记。 因而,根据...

intense靶场-获取User权限

出品|MS08067实验室(www.ms08067.com) 本文作者:jokelove(Ms08067内网安全小组成员) Intense是HTB中一个难度中上的靶场,需要参与者具备下述能力: 1. Python源码审计 2. SQL注入原理 3. SNMP远程命令执行 4. 栈溢出...

宝宝适合什么样的袜子 如何选购幼儿袜子

有的母亲不习惯帮小宝宝加上棉袜,特别是在在夏季更是如此。可是在秋冬季的情况下,小宝宝的脚部防寒保暖是务必的,小宝宝的脚部的防寒保暖才不容易发烧感冒,那麼怎样购买小宝宝棉袜呢?下边的我为大伙儿共享小宝宝合适哪些的棉袜,在选择小宝宝棉袜的全过程中什么技巧呢?针对选购儿童但是我提议新手妈妈要帮小宝宝穿双棉...

评论列表

辙弃债姬
3年前 (2022-07-05)

Modbus协议Modbus是全球第一个真实用于工业现场的总线协议,ModBus选用主/从(Master/Slave)方法通讯。最大可支撑247个隶属控制器,但实践所支撑的隶属控制器数还得由所用通讯设备决议,且每个隶属控制器都有一个专属的slave ID。一起Modbu

泪灼俛就
3年前 (2022-07-05)

是Modbus数据包:[1] [2]  黑客接单网

孤央性许
3年前 (2022-07-05)

ad 00005):     0  7 (ad 00006):     0  8 (ad 00007):     0在Wireshark中进行挑选过滤:tcp.po

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。