1. Stowaway代理工具概述
Stowaway是一款基于Go语言开发的开源多级代理工具,主要面向渗透测试人员设计,用于突破内网访问限制。该工具采用客户端/服务器架构,支持多种连接模式和丰富的功能模块,能够实现复杂的内网穿透和流量转发场景。
在渗透测试实践中,内网横向移动是关键的测试环节。传统代理工具往往功能单一,难以应对复杂的内网环境。而Stowaway通过其多级代理特性,可以构建从外网到内网的多跳代理链,有效解决多层网络隔离环境下的访问难题。
工具的核心优势在于:
- 轻量级实现:基于Go语言编译为单个可执行文件,部署简单
- 多协议支持:TCP/HTTP/WebSocket/TLS等多种传输协议
- 隐蔽性强:支持端口复用等特性,降低被发现概率
- 功能丰富:提供Shell交互、SOCKS代理、端口转发等实用功能
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 架构设计与角色分工
2.1 核心角色解析
Stowaway采用典型的C/S架构,包含两个主要角色:
Admin(服务端):
- 由渗透测试人员控制
- 负责管理整个代理网络
- 提供交互式控制台
- 协调多个Agent间的通信
Agent(客户端):
- 部署在目标机器上
- 执行Admin下发的指令
- 转发各类代理流量
- 可级联形成多级代理
这种设计使得单个Admin可以管理多个Agent节点,构建树状代理网络,实现从外网到内网的纵深穿透。
2.2 连接模式详解
Stowaway支持四种主要连接模式,适应不同网络环境:
正向连接:
- Agent主动连接Admin
- 适用于Admin位于公网的情况
- 命令:
./agent -m connect -c [admin_ip]:[port] -s [secret]
反向连接:
- Admin主动连接Agent
- 适用于Agent位于公网的情况
- 需要先在Agent上启动监听:
./agent -m listen -l [port] -s [secret]
SSH隧道:
- 通过SSH连接建立加密隧道
- 适用于有SSH访问权限的环境
- 命令:
./agent -m ssh -c [user]@[host]:[port] -s [secret] -k [ssh_key]
**端口
