• S-Clustr(影子集群) 重磅更新!黑入工业PLC设备!


    公告

    项目地址:https://github.com/MartinxMax/S-Clustr

    更新预告内容进度
    SIEMENS S7-200 SMART远程控制进行中
    开发人员Blog联系方式提交时间提交内容授权情况
    ASH_HHhttps://blog.csdn.net/m0_53711047/article/details/133691537?spm=1001.2014.3001.5502匿名2023-10-16 21:42:26STM32已授权
    类型被控设备有线无线4G安全加密协议
    嵌入式Arduino××TCP/IP
    嵌入式合宙AIR780e×××TCP/IP
    嵌入式ESP8266×××TCP/IP
    嵌入式AT89C51×××TCP/IP
    嵌入式STM32[103fc6t6]×××TCP/IP
    PLCSIEMENS S7-1200××xTCP/IP
    PLCSIEMENS S7-200××xTCP/IP
    被控PC平台协议安全加密
    WindowsTCP/IP可选
    LinuxTCP/IP可选
    Mac OSTCP/IP可选
    服务端文件解释
    S-Clustr_Server服务端
    S-Clustr_Client黑客端
    DebugDevice用于模拟嵌入式设备接入服务端
    Generate一键生成嵌入式设备程序
    TestpcWindows主机接入服务端
    blacklist.conf黑名单,标记禁止接入的IP组
    Server.conf服务端一些配置参数
    Version.conf版本信息
    Linux_Installer.shLinux依环境赖安装程序
    Windows_Installer.batWindows环境依赖安装程序
    Parameter_Description-EN.xls[英文]关于Server.conf内参数说明
    Parameter_Description-ZH.xls[中文]关于Server.conf内参数说明

    问答解惑

    (匿名网友)问:S-Clustr是一款什么工具?
    答:是一款集中化网络控制器,用于一对多的网络控制

    (柴郡)问:S-Clustr的使用场景和使用环境?
    答:工业/智能控制、大/中/小型机房控制、工业/交通电源控制、Botnet控制

    (柴郡)问:流量通讯的隐蔽性如何?
    答:固然过程是加密,但您的流量路径基本都是国内运营商线路,所以请遵守法律

    (柴郡)问:Arduino可不可以换成更便宜的开发版?
    答:完全可以,您可以Server.conf中DEV_TYPE、DEV_ENCRYPTION_Server分别添加您的开发板型号。或者联系作者[https://github.com/MartinxMax]进行更新您的开发板程序

    图片.png

    (柴郡)问:是否可以避免中间人和重放攻击?
    答:身份验证数据流=时间戳+设备ID+设备状态+AES(时间戳+密钥),这样服务端验证黑客身份时,将尝试时间戳进行AES解密后与服务器时间戳进行对比。如果您受到中间人攻击导致数据包被获取,即使如此,在其他黑客未获取您的密钥前将无法对您设备进行重放攻击。

    图片.png

    (匿名网友)问:控制PC端可以做什么?
    答:例如您可以当命令下发时爬取xxx网站,打开xxx应用,执行xxx命令

    (匿名网友)问:设备端嵌入式设备都没有加密服务?
    答:对的,暂时考虑到嵌入式设备端加入加密函数后影响性能。如果您对嵌入式设备安全性要求较高请不要与服务端处于相同局域网下

    S-Clustr 嵌入式设备端

    Arduino

    有线局域网控制

    准备设备材料(合计 50¥ )

    1.Arduino UNO (17¥)

    图片.png

    2.ENC28J60 (28¥)

    图片.png

    3.1路继电器模块5V (3¥)

    图片.png

    4.杜邦线 (2¥)
    母转母

    图片.png

    接线原理图

    图片.png

    图片.png

    4G无线公网远控

    准备设备材料(合计 48¥ )

    1.Arduino UNO (17¥)

    图片.png

    2.SIM900A或SIM800A (26¥)

    图片.png

    2.1路继电器模块5V (3¥)

    图片.png

    3.杜邦线 (2¥)
    母转母

    图片.png

    4.移动卡

    这里需要移动卡是因为SIM800A与SIM900A支持移动的2G网,电信就不行,联通也不行…不过后面测试合宙AIR780e的板子应该联通可行,也就是不需要SIM系列了,内部集成好了

    图片.png

    接线原理图

    这里将模拟Arduino收到信号后控制继电器行为

    图片.png

    图片.png

    不会写代码?..使用Generate.py生成Arduino代码就OK了

    ESP8266 (WIFI局域网控制)

    准备设备材料(合计 18¥ )

    1.ESP8266 (13¥)

    图片.png

    2.1路继电器模块5V (3¥)

    图片.png

    3.杜邦线 (2¥)
    母转母

    图片.png

    接线原理图

    图片.png

    AIR780E (4G无线公网远控)[推荐]

    注意事项

    1.该开发板经测试后,的确比SIM系列来的更加快速稳定
    2.安装Luatools:用于完成程序烧录
    [https://doc.openluat.com/wiki/37?wiki_page_id=4489]

    准备设备材料(合计 47¥ )

    1.Air780e开发板 (42¥)

    背面有一个sim卡槽

    图片.png

    图片.png

    2.1路继电器模块5V (3¥)

    图片.png

    3.杜邦线 (2¥)
    母转母

    图片.png

    接线原理图

    图片.png

    烧录程序

    将我们Generate生成的文件导入进Luatools
    图片.png

    选择底层core,在我们的Output\AIR780E\LuatOS-SoC_V1103_EC618.soc有提供

    图片.png

    根据提示完成烧录,注意板子上的三个键,分别为 启动 复位 BOOT

    图片.png

    AT89C51

    准备设备材料(合计 42¥ )

    1.51单片机最小系统开发板送CH340下载器 (11¥)

    图片.png

    2.1路继电器模块5V (3¥)

    图片.png

    3.杜邦线 (2¥)
    母转母

    图片.png

    4.SIM900A或SIM800A (26¥)

    图片.png

    5.移动卡

    图片.png

    接线原理图

    图片.png

    Generate一键生成烧录代码

    python3 Generate.py

    图片.png

    填写完成参数,这里的127.0.0.1是错误的,你应该输入服务端的公网IP地址,也就是运行S-Clustr_Server.py的服务器的IP

    图片.png

    输出烧录代码将在目录.\Device\Output\型号 目录下

    S-Clustr 服务端

    注意:
    1.服务端必须在公网,如果你的服务端在内网可以考虑端口映射,黑客端服务默认在端口9999,设备端服务默认在端口10000
    2.服务端与黑客端是全程高度加密通信的,强制开启加密服务不可关闭。其次你可以通过Server.conf文件内的配置,来决定嵌入式设备或被控PC接入时是否提供加密服务
    3.对于Server.conf文件内参数不理解,请详细阅读手册文档
    4.服务端每次启动都将随机长度为12个字符作为密钥用作于黑客与被控设备的身份认证,防止其他黑客未授权接入控制设备。你可以手动指定密钥(python3 S-Clustr_Server.py -keyh Maptnh -keyv Maptnh)
    —这里黑客端与被控端各2个密钥,首次为明文密钥,如果你觉得过于敏感,可以把其次的临时TOKEN当作密钥,有效防止明文密钥被破解

    0OVQK[M(I}1)2T]1}$28AXK.png
    在该参数中,置1表示启动被控设备的加密服务,那么被控设备必须提供身份认证密钥才允许接入,否则拒绝

    图片.png

    5.有效防止中间人(MITM)嗅探分析黑客端与服务端通信数据包,再进一步防止重放攻击与加密数据被破解

    服务端脚本参数解析

    -lh:绑定指定本地IP,默认0.0.0.0
    -lpv:设置本地监听地址(设备端)默认10000端口
    -lph:设置本地监听地址(黑客端)默认9999端口
    -keyh:设置黑客端密钥,默认随机12位字符作为密钥
    -keyv:设置设备端密钥,默认随机12位字符作为密钥

    服务端运行

    python3 S-Clustr_Server.py

    图片.png

    S-Clustr 黑客端

    注意:
    客户端采用交互式运行,操作类似于Metasploit渗透测试框架

    黑客端脚本参数解析

    进入后输入 help?options来查看所需要设置的参数
    set rhosts :设置服务端的IP
    set rport :设置服务端的端口
    set id :选择所需要控制的设备ID编号,0表示选中所有设备
    set pwr :控制设备状态,启动[1],停止[2],查询状态[3]

    黑客端连接服务端

    python3 S-Clustr_Server.py

    图片.png

    查询全部设备当前状态

    S-Clustr(V1.0.0)> set rhost 127.0.0.1
    [*] rhost => 127.0.0.1
    S-Clustr(V1.0.0)> set id 0
    [*] id => 0
    S-Clustr(V1.0.0)> set pwr 3
    [*] pwr => 3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    PS:这里必须填写Key,这将决定你是否有权限接入服务器的关键要素。
    在服务端中,你可以任意挑选一个作为密钥

    图片.png

    S-Clustr(V1.0.0)> set key cf5cdc4798a72283a4c0c0b1ef2ef5da
    [*] key => cf5cdc4798a72283a4c0c0b1ef2ef5da
    
    • 1
    • 2

    查询全部设备状态

    S-Clustr(V1.0.0)> set id 0
    [*] id => 0
    S-Clustr(V1.0.0)> set pwr 3
    [*] pwr => 3
    S-Clustr(V1.0.0)> run
    [*] Connecting to the server...
    [*] Attempting to authenticate to the server [127.0.0.1:9999]
    |   Device ID   |  Device Type  | Device State | Device Network |
    |:-------------:|:-------------:|:-------------:|:---------------:|
    |       1        |      None      |    Stopped     |   Disconnected   |
    |       2        |      None      |    Stopped     |   Disconnected   |
    |       3        |      None      |    Stopped     |   Disconnected   |
    |       4        |      None      |    Stopped     |   Disconnected   |
    |       5        |      None      |    Stopped     |   Disconnected   |
    |       6        |      None      |    Stopped     |   Disconnected   |
    |       7        |      None      |    Stopped     |   Disconnected   |
    |       8        |      None      |    Stopped     |   Disconnected   |
    |       9        |      None      |    Stopped     |   Disconnected   |
    |       10       |      None      |    Stopped     |   Disconnected   |
    |:-------------:|:-------------:|:-------------:|:---------------:|
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    我们可以看到已经成功接入服务器了,身份认证成功

    我们设置错误的Key时,服务器将无法对你进行授权

    图片.png

    图片.png

    【模拟被控设备连接服务端】通过黑客端控制全部设备

    图片.png

    设备全部上线

    图片.png

    控制全部设备启动

    S-Clustr(V1.0.0)> set id 0
    [*] id => 0
    S-Clustr(V1.0.0)> set pwr 1
    [*] pwr => 1
    S-Clustr(V1.0.0)> run
    
    • 1
    • 2
    • 3
    • 4
    • 5

    图片.png

    图片.png

    控制全部设备停止

    S-Clustr(V1.0.0)> set id 0
    [*] id => 0
    S-Clustr(V1.0.0)> set pwr 2
    [*] pwr => 2
    S-Clustr(V1.0.0)> run
    
    • 1
    • 2
    • 3
    • 4
    • 5

    图片.png

    案例:被控端收到命令后,访问www.bing.com,并且打开计算器

    图片.png

    图片.png

    输入我们的被控端KEY

    图片.png
    被控端成功接入

    我们的黑客端也成功查询到设备

    图片.png

    控制设备完成题目要求

    image

    SIEMENS S7-12XX 后门攻击

    image.png

    image.png

    image.png

    手册文档

    Parameter_Description-ZH.xls

    图片.png

    Parameter_Description-EN.xls

    图片.png

  • 相关阅读:
    经典的排序算法
    自学黑客(网络安全)技术——2024最新
    为啥这么人选择iPhone
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java小区宠物信息管理系统0v9l2
    LRUMAP 原理解析
    nginx&tomcat笔记
    栈实现深度优先搜索
    sql注入挖掘
    SpringBoot系列之MongoDB分页接口实现
    丁鹿学堂:前端自学每个阶段知识点汇总
  • 原文地址:https://blog.csdn.net/qq_51886509/article/details/134432166