新一代 Windows SSH 蜜罐-Rusty_Borders 2024 危墙__v 0.3.9
字数 2966 2025-08-22 12:22:42
Rusty_Borders 危墙 - Windows SSH 蜜罐技术文档
1. 项目概述
Rusty_Borders(危墙)是一个基于Rust语言开发的Windows SSH蜜罐系统,是原SSH_Honeypot For Windows项目的Rust重构版。该项目通过模拟Linux终端环境,诱捕并监控SSH暴力破解行为。
1.1 核心特性
- 使用Rust语言开发,具有高性能和内存安全性
- 完全替代Windows-OpenSSH默认终端CMD
- 提供本地和远程双重控制系统
- 内置13个常用Linux命令模拟
- 支持动态命令权限控制(ALCM列表)
- 包含邮件告警系统
- 采用独特的许可证系统
- 遵循GPL v2.0开源协议
1.2 技术原理
项目通过修改Windows注册表中OpenSSH的DefaultShell值,将默认终端替换为自定义的Rusty_Borders终端(RyB),实现类似Linux chroot的隔离环境,限制攻击者的操作范围。
2. 系统架构
2.1 主要组件
2.1.1 危墙_Setup.exe
- 功能:初始安装程序,使用NSIS封装
- 作用:解压并部署所有必要文件到指定位置
2.1.2 RyB_Deployment_Program.exe
- 功能:全面部署程序
- 作用:
- 创建弱口令用户
- 设置文件权限
- 初始化工具
- 要求:必须以管理员权限运行
2.1.3 RyB_Control.exe (RyC)
- 功能:本地控制系统/总体调用系统
- 作用:
- 协调整个项目运行
- 提供基本控制命令
- 启动在线控制系统
- 支持命令:
help:显示命令列表on:启动SSHD服务off:关闭SSHD服务Z:正常退出蜜罐kill:立即终止RyB终端和SSH服务
2.1.4 web_01.exe (RyCW)
- 功能:在线控制系统
- 作用:
- 远程监控RyB输入输出
- 动态控制可用命令(ALCM列表)
- 特点:
- 页面刷新频率:3秒/次
- 包含三个显示区域:用户输入、系统输出、RyB信息
- 提供命令勾选框控制界面
2.1.5 Rusty_Borders_危墙.exe (RyB)
- 功能:核心终端程序
- 作用:
- 模拟Linux终端环境
- 执行命令过滤和权限控制
- 提供隔离的执行环境
2.2 辅助文件
| 文件名 | 位置 | 功能 |
|---|---|---|
| RyB_INFO.ryb | C:\Users\Public\History | 记录RyB信息 |
| SYSTEM_RESULT.ryb | C:\Users\Public\History | 记录系统输出 |
| USER_COMMAND.ryb | C:\Users\Public\History | 记录用户输入 |
| License.txt | C:\Users\Public\Control | 许可证文件 |
| License_key.txt | C:\Users\Public\Control | 许可证规则 |
| OutPut01.alcm | C:\Users\Public\Control | ALCM列表存储 |
| Email_Config.cfg | C:\Users\Public\Control | 邮件配置 |
3. 部署指南
3.1 安装步骤
- 运行
危墙_Setup.exe进行初始安装 - 以管理员身份运行
RyB_Deployment_Program.exe完成部署 - 配置
Email_Config.cfg文件设置邮件参数 - 通过
RyB_Control.exe启动系统
3.2 注意事项
- 系统默认活动编码需为936(中文-简体)
- 必须使用管理员权限运行部署程序
- 邮件配置文件格式必须严格遵循:
#Email 配置文件#注意,不要在"="前后加空格
你的邮箱:TAGO=
# 还是你的邮箱:SOSR=
# SMTP服务器,如smtp.qq.com:SMTP=
# 邮箱授权码:PAWD=
4. 核心功能详解
4.1 命令过滤机制
4.1.1 字符过滤
- 禁止字符:
&|><;$\(){}[]'" - 允许字符:
0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz - 特殊处理:
- Backspace键:执行删除操作但不记录
- Delete键:执行删除操作但不记录
- 方向键:移动光标但不记录
- EOF字符:立即终止程序
4.1.2 空格过滤
使用递归闭包实现连续空格合并:
let nullspace_iter = Space {
space_01: &|nullspace_iter, mut ac_command, tmp, mut counter_01| {
if ac_command[tmp] == ' ' && ac_command[tmp + 1] == ' ' {
for tmp1 in tmp..counter_01 {
ac_command[tmp1] = ac_command[tmp1 + 1];
}
ac_command[counter_01] = '\0';
counter_01 -= 1;
return (nullspace_iter.space_01)(nullspace_iter, ac_command, tmp, counter_01);
}
(ac_command, tmp + 1, counter_01)
},
};
4.1.3 命令识别
- OS_Shell组:阻止
cmd、powershell、exe、runas等命令 - 内置函数组:支持13个Linux命令模拟
- 其他命令:返回"命令未找到"
4.2 ALCM(Allow_Command)列表
- 存储位置:
OutPut01.alcm - 默认值:
g0g1g2g3g4 - 控制方式:通过web_01.exe的勾选框界面动态修改
- 对应结构:RyB中的
AllowCmd结构体
4.3 特种命令SU
SU 0.1.13
Copyright (TM) 2022-2026 Двигатель Ржавчина, All Rights Reserved.
在用户拥有开发者许可证的情况下,可以使用本命令来提升权限至任意等级。
目前共三等权限:
ONLY_MEMBER => ·任何命令都是可用的;
·不受到 Allow_CMD命令列表的管制;
·可查看真实路径;
·可启动 OS_Shell。
root => 除 su命令外,其他命令都是可用的,但受到 Allow_CMD的约束。
kali => 无法使用 wipe等可修改原环境文件的命令,受到 Allow_CMD的约束。
* 为保证环境可控,任何权限修改仅能影响回显类命令的操作结果,如 whoami、id、pwd等,
而诸如目录变迁、文件读写等会改变环境状态的命令则均不会收到影响,如 cd、touch、ls等。
* 请注意 su的提权并不是在子Shell中进行的。
本命令应仅在测试阶段使用。
若要禁止 su命令,仅需移除 License许可文件即可。
用法: su [用户名 USER]...
参数:无。
Written by Jessarin000.
4.4 许可证系统
许可证规则示例:BSTLL-2446-3368-0157-7308-92DBC-001
规则说明:
- 第一部分:
ASTLL:永不过期BSTLL:一年有效CSTLL:三个月有效ASR:临时许可证
- 第五部分:
92DSC:项目开发者92DBC:内测参与者00000:普通用户
5. 安全建议
- 为网关加装带有深度数据包检查的WAF,阻止出局域网的HTTP流量
- 使用至少两台计算机进行监控
- 定期检查日志文件
- 根据实际需要修改默认配置
- 谨慎使用SU命令功能
6. 开发接口
6.1 命令函数命名规范
所有命令执行函数采用"__ + 函数名"格式,例如:
cd命令对应__cd()ls命令对应__ls()
6.2 内置命令列表
项目模拟了13个常用Linux命令:
catcdclshelpidlsmkdirpwdrmsutouchwhoamiwipe
7. 已知限制
- web_01.exe界面刷新方式较为原始,性能有待优化
- 系统默认需要中文(简体)编码环境
- 邮件系统必须预先配置才能正常运行
- 在线控制系统开放3000端口可能带来安全风险
- 缺乏移动端适配界面
8. 项目维护
- 作者:Jessarin000 (Kjx52/Skiner)
- 联系方式:kjx52@outlook.com
- 项目链接:Rusty_Borders
- 开发环境:Windows 11 x86_64 (22631) 家庭版
- Rust编译器版本:1.78.0
- 测试平台:Windows IIS 7.0、Windows 10/11 x86/x86_64
9. 版本历史
- 2024年3月:项目确立,原名"Rust TermX (RTX)"
- 2024年4月:更名为"Rustic Terminus Tonic (RTT)"
- 2024年5月:定名为"Rusty_Borders 危墙"
- 2024年5月25日:v0.3.9版本完成
- 2024年5月31日:发布至先知社区
10. 未来计划
- 改进web界面,增加移动端支持
- 将更多功能整合到RyB_Control中
- 使用config文件替代部分硬编码
- 可能推出Linux版本
- 考虑与原始SHW项目合并