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¥)

2.SIM900A或SIM800A (26¥)

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

3.杜邦线 (2¥)

母转母

4.移动卡

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

接线原理图

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

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

一键生成Arduino代码

python3 Generate.py

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

选择型号直接烧录就OK

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当作密钥,有效防止明文密钥被破解


在该参数中,置1表示启动被控设备的加密服务,那么被控设备必须提供身份认证密钥才允许接入,否则拒绝

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

服务端脚本参数解析

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

服务端运行

python3 S-Clustr_Server.py

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

查询全部设备当前状态

复制代码
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,这将决定你是否有权限接入服务器的关键要素。

在服务端中,你可以任意挑选一个作为密钥

复制代码
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时,服务器将无法对你进行授权

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

设备全部上线

控制全部设备启动

复制代码
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

控制全部设备停止

复制代码
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

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

输入我们的被控端KEY


被控端成功接入

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

控制设备完成题目要求

手册文档

Parameter_Description-ZH.xls

Parameter_Description-EN.xls

相关推荐
老马啸西风1 分钟前
Neo4j GDS-09-neo4j GDS 库中路径搜索算法实现
网络·数据库·算法·云原生·中间件·neo4j·图数据库
Go高并发架构_王工27 分钟前
基于 GoFrame 框架的电子邮件发送实践:优势、特色与经验分享
网络·经验分享·golang
SlientICE31 分钟前
预防WIFI攻击,保证网络安全
网络·安全·php
张一不吃豆芽3 小时前
TCPIP详解 卷1协议 六 DHCP和自动配置
网络·网络协议·tcp/ip
政安晨4 小时前
【嵌入式人工智能产品开发实战】(二十)—— 政安晨:小智AI嵌入式终端代码解读:【C】关于项目中的MQTT+UDP核心通信交互理解
网络·c++·mqtt·网络协议·udp·小智ai·实时打断
谢尔登4 小时前
【uni-app】页面跳转传参
服务器·网络·uni-app
张一不吃豆芽5 小时前
TCPIP详解 卷1协议 四 地址解析协议
网络·网络协议·tcp/ip
庸子5 小时前
路由器原理与配置技术详解
网络·智能路由器
shawn085 小时前
群晖如何通过外网访问
网络
卓应5 小时前
OSI参考模型
运维·服务器·网络