金融红队突破出网实战开发应用
字数 1366 2025-08-22 12:22:30
金融红队突破出网实战开发应用技术文档
1. 背景与挑战
在金融单位渗透测试项目中,发现目标网络存在以下限制:
- 严格出网控制,采用白名单机制
- 常规C2通道无法直接建立连接
- 存在文件上传功能但受限于网络隔离
2. 技术方案概述
通过利用目标系统的文件上传功能,构建基于文件交换的中转通道,实现C2通信。核心思路:
- 使用两个文件(client.txt和server.txt)进行双向数据交换
- 客户端和服务端分别监听本地端口并处理数据
- 通过定时任务同步更新配置文件保持连接持久性
3. 详细技术实现
3.1 通信流程设计
客户端工作流程:
- CS Beacon监听本地端口(127.0.0.1:17777)
- 中转程序接收数据并上传至WEB系统(client.txt)
- 定期检查server.txt获取服务端指令
服务端工作流程:
- 定期检查client.txt获取客户端数据
- 将数据转发至CS服务端监听端口(x.x.x.x:17777)
- 接收CS指令并保存至server.txt
3.2 文件上传机制分析
目标系统使用阿里云OSS进行文件存储,上传流程:
- 获取上传Token(GET /getUploadToken)
- 解析返回的OSS配置信息(包含签名、策略等)
- 构建multipart/form-data请求上传文件
关键上传参数:
- bucket: 存储桶名称
- x-amz-signature: 请求签名
- key: 文件存储路径
- policy: 上传策略(Base64编码)
3.3 Go语言实现代码解析
3.3.1 上传功能实现
// 获取上传Token
func getUploadToken(session string) (UploadData, error) {
// 构建GET请求获取上传凭证
// 包含必要的请求头和Cookie
}
// 文件上传函数
func uploadFile(uploadData UploadData, filePath string) (string, error) {
// 构建multipart表单
// 填充所有必需字段
// 执行上传并返回文件URL
}
3.3.2 客户端监听
func startClient(bind_address string) {
// 监听本地端口
// 处理传入连接
// 数据编码(Base64)后上传
}
func process(conn net.Conn) {
// 处理单个连接
// 读取数据并检查完整性
// 与server.txt交互获取响应
}
3.3.3 服务端监听
func startServer(server_address string) {
// 定期检查client.txt
// 处理文件变更
}
func checkFileChanges(currentContent string, server_address string) {
// 文件变更检测
// 加锁机制防止冲突
// 转发数据到CS服务器
}
3.4 配置文件同步机制
服务端同步流程:
- 定时执行(每20分钟)
- 获取新的上传Token
- 上传临时配置文件
- 重命名文件完成更新
func timedownload2() {
// 定时任务主循环
// 加锁保护关键操作
// 分阶段更新配置文件
}
客户端同步检测:
- 检查server.txt内容
- 识别"success"标识
- 下载并替换本地配置文件
if strings.HasPrefix(currentContent, `{"success`) {
// 处理新配置文件
// 安全替换现有文件
}
4. 关键技术与注意事项
4.1 突破出网技术汇总
- 白名单访问:利用已授权的网站或服务
- VPN/代理:通过内部代理通道中转
- RDP跳板:借助已出网机器作为跳板
- 移动设备:通过MDM管理的设备通道
- API接口:利用已授权的数据接口
4.2 实现中的关键点
- 文件锁定机制:防止配置更新时数据冲突
- Base64编码:确保数据传输完整性
- 定时任务同步:维持连接持久性
- 错误处理:网络波动和超时处理
- 日志记录:操作审计和问题排查
4.3 实战测试验证
已验证功能:
- 截图捕获
- 文件下载
- 命令执行
- 多主机管理
5. 扩展应用与改进方向
- 多语言实现:Python、C#等版本适配不同环境
- 协议伪装:模拟正常业务流量特征
- 加密增强:提升通信数据安全性
- 自动化部署:简化红队操作流程
- 代理功能:通过该通道建立完整代理
6. 防御建议
针对此类攻击的防护措施:
- 严格审查文件上传功能
- 监控异常的文件访问模式
- 实施文件内容检查机制
- 限制OSS等存储服务的权限
- 加强网络流量审计
附录:参考实现
完整代码参考CSDN文章:
https://blog.csdn.net/bring_coco/article/details/144015218
注意:本文档仅用于安全研究和技术学习目的,实际应用需遵守相关法律法规和道德准则。