搭建简易红队基础设施:从云主机到流量转发全解析
搭建简易红队基础设施
TL;DR: 正确配置基础设施能极大提升效率
0x0vid · 11分钟阅读 · 2024年12月16日
本文将介绍假设性入侵场景下的基础设施搭建方案。目标并非构建支持所有已知服务的完整体系,而是通过运行脚本快速部署可定制的云虚拟机。
0x0 — 需求背景
核心需求简单而普遍:如何在加固网络中获取网络访问权限?可能面临的限制包括:
- 802.1x认证
- 机器证书白名单
- 热点创建被禁用
- 其他网络限制
基础设施需要实现:
- 托管测试期间使用的文件
- 处理C2通信
- 转发来自ligolo-ng[001]等工具的隧道连接(类似chisel[002]的HTTP工具更适用)
与传统红队设施不同,本方案去除了域前置、SNMP服务器等复杂组件,专为假设性入侵和常规渗透测试设计。
简言之:我们需要捕获ligolo传入隧道,并在同一端口托管多个Web应用。
0x1 — 基本假设
- 所有云资产均为一次性使用
- 云端不存储敏感信息,仅作流量中转到本地Kali虚拟机
- 仅允许TCP 80/443端口通信
- 攻击环境中可执行常用穿透工具
0x2 — 架构设计与问题解决
经过验证发现:单服务器无法基于子域名实现端口转发[003]。实际需要为每个协议分配独立端口。HTTP服务可通过企业级应用部署方式解决,本文选用traefik[004](nginx[005]同样适用)。
基础设施架构
最终方案包含以下组件:
0x2.1 — 公网IP获取:云主机
通过云服务(Droplet/VM/EC2)自动获取可暴露的IP地址。
0x2.2 — 内网接入:OpenVPN
使用开源脚本[006]快速部署OpenVPN,实现:
- 流量转发到本地Kali主机
- 减少云端敏感信息残留
- 保留本地化操作环境(如i3配置/GUI访问)
0x2.3 — 流量回传:Socat
基础转发命令示例:
socat TCP4-LISTEN:[外部端口],fork TCP4:[Kali的OpenVPN IP]:[Ligolo-NG端口]
0x2.4 — 多服务端口复用:DNS+Traefik
选择Traefik的原因:
- 可视化仪表盘
- 动态配置能力
关键配置概念:
- Providers:端点发现机制(本文不使用Docker)
- EntryPoints:监听端口定义
- Routers:基于规则的路由决策
- Middlewares:附加功能(如认证、日志)
- Services:流量转发目标
示例配置(托管文件服务器和C2监听器):
# 静态配置 traefik.yml
api:
dashboard: true
insecure: false
providers:
file:
filename: "/etc/traefik/dyn.yml"
watch: true
entryPoints:
web:
address: ":443"
# 动态配置 dyn.yml
http:
routers:
to-py-http-server:
rule: "Host(`file.{{env "DOMAIN"}}`)"
service: py-http-server
to-c2-http-server:
rule: "Host(`c2.{{env "DOMAIN"}}`)"
service: c2-http-server
services:
py-http-server:
loadBalancer:
servers:
- url: "http://{{env "LOCAL_HOST"}}:8000"
c2-http-server:
loadBalancer:
servers:
- url: "http://{{env "LOCAL_HOST"}}:9001"
DNS设置仅需两条A记录:
- 主域名指向云VM
- 通配子域名解析到同一主机
0x3 — 安全加固
- 使用UFW配置防火墙规则
- 通过Nmap扫描验证(仅开放22/80/443端口)
- 未来计划限制SSH和管理界面访问
0x4 — 部署方案
选用Bash脚本而非Terraform/Ansible的原因:
- 无需额外工具安装
- 避免配置复杂性
- 适合短期基础设施(存活周期<1个月)
部署流程:
- 通过GitHub PAT令牌克隆仓库
- 运行脚本输入域名和许可IP
- 复制OpenVPN客户端配置
- 启动socat和traefik
0x5 — 结论
实践证明该方案能显著提升测试效率。未来可能扩展功能:
- DNS托管
- 文件上传接口
- 脚本功能增强
0x6 — 参考资料
[001] ligolo-ng项目
[002] chisel工具
[003] 子域名端口转发讨论
[004] Traefik官网
...(其他参考链接详见原文)
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码