Stowaway:安全工作者的多级代理工具

VSole2022-08-01 09:01:01

写在前面:

此工具是因为看到了Dliv3师傅的Venom工具后,想着自己也写一个属于自己的多级代理工具,故而利用闲暇时间编写的(是的,我又在重复造轮子), 在此感谢Dliv3师傅 XD。

废话不多说,我把我的README先搬过来给大家瞅瞅

Stowaway是一个利用go语言编写的多级代理工具用户可使用此程序将外部流量通过多个节点代理至内网,并实现管理功能

此工具仅限于安全研究和教学,用户承担因使用此工具而导致的所有法律和相关责任!作者不承担任何法律和相关责任!

特性

1、一目了然的节点管理
2、多平台适配
3、正向/反向连接
4、多级socks5流量代理转发
5、ssh代理连接
6、远程交互式shell
7、上传及下载文件
8、节点间流量以AES-256(CBC模式)进行加密

Usage

Stowaway分为admin端和agent端两种形式

不想编译的盆油可以直接用release下编译完成的程序

第一种情况:

Admin端监听,等待startnode连接:./stowaway admin -l 9999 -s 123
 命令解析:
 admin代表以admin模式启动
 -l 参数代表监听端口 
 -s 参数代表节点通信加密密钥(admin端与agent端必须一致!)
startnode端:./stowaway agent -m 127.0.0.1:9999 -l 10000 –startnode -s 123 –reconnect 5
 命令解析:
  agent代表以agent端模式启动
  -m 代表上一级节点的地址
  -l 代表监听端口
  -s 参数代表节点通信加密密钥(admin端与agent端必须一致!)
  –startnode 代表此节点是agent端的第一个节点(第一个节点必须加上–startnode选项!若无–startnode表示为普通节点,命令与startnode一致)
 –reconnect 代表startnode将在admin下线后主动尝试不断重连(此例子中为每5秒重连一次)注意:若需要重连功能,只需要在startnode使用此参数即可,其后节点无需此参数,正常启动即可
此时若后续的节点希望以passive模式启动(即本节点等待上一级节点的主动连接,而不是主动连接上一节点)
那么,上述命令可改为 ./stowaway agent -m 127.0.0.1:9999 –startnode -s 123 –reconnect 5
后续节点启动命令为:./stowaway agent -l 10001 -s 123 -r
 -r 代表以passive模式启动(即本节点等待上一级节点的主动连接,而不是主动连接上一节点,若正向连接可以去除此选项)
此时在admin端进入startnode(use 1),使用connect命令(connect 127.0.0.1:10001)即可将后续节点加入网络
若后续节点希望以active模式启动(即本节点主动连接上一级节点)
那么,startnode启动命令可以保持不变
后续节点启动命令为:./stowaway agent -m 127.0.0.1:10000 -l 10001 -s 123
此时即可将后续节点加入网络

  第二种情况

Admin端主动连接startnode端:./stowaway admin -s 123 -c 127.0.0.1:9999
命令解析: 
 admin代表以admin模式启动
 -s 同上
 -c 代表startnode所在的地址
此时startnode端: ./stowaway agent -l 9999 -s 123 –startnode –reconnect 0 -r –single
 命令解析:
 agent代表以agent模式启动
 -l,-s ,–startnode同上
 –reconnect:当statnode端以passive模式启动时,请将此值设置为0(active模式下,此值为每隔x秒尝试重连)
 -r/–reverse:代表以passive模式启动
 –single:当设置此选项时,代表整个网络只有admin和startnode两个节点(即没有后续节点),若不设置此选项,代表后续还有节点
后续节点同第一种情况启动即可
此时,若未设置–single选项,则先后启动startnode端及admin端,将后续节点加入网络后,admin就可以选择下线(或者保持在线)
下一次想要重连时,再次执行./stowaway admin -s 123 -c 127.0.0.1:9999,即可重建网络
若设置了–single选项,则先后启动startnode端及admin端,admin就可以选择下线(或者保持在线)
下一次想要重连时,再次执行./stowaway admin -s 123 -c 127.0.0.1:9999,即可重建网络

Example

一个简单的例子(以一个admin端三个agent端为例):

Admin端:Startnode端:第一个普通Node(设置为反向连接模式):此时,进入(use命令,本例中为use 1)此节点的上级节点(即startnode),利用命令connect 127.0.0.1:10001 即可将此反向模式节点加入网络

第二个普通Node:连入完成后,admin端查看节点:此时在admin端操控第二个普通node节点:打开远程shell:此时就可以在admin端操纵第二个普通节点的shell

打开socks5代理:此时用户即可以将admin端的7777端口作为socks5代理端口,将流量代理至第二个普通node节点(当想关闭socks服务时,在节点模式下输入stopsocks即可关闭与此节点相关的socks代理服务)

打开ssh:此时第二个普通节点会作为ssh客户端,(此节点)会发起ssh连接来访问指定的ssh服务,并将ssh数据回传至admin端

PS: 在ssh模式下,你可以用pwd来判断自己所处的文件夹(好吧,其实就是没法把banner传回来。。)

上传/下载文件:上传下载功能命令为 upload/download 后加文件路径(注意要在节点模式下使用),此时就可以上传文件至指定节点/下载指定节点的文件

具体命令使用可输入help查询

TODO

[x] 节点间通信流量加密 
[x] 关闭代理与端口转发
[ ] 重连功能
[ ] 清理代码,优化逻辑
[ ] 增加cc功能
[x] 节点反向连接
[ ] 支持端口复用

注意事项:

1. 此程序仅是闲暇时开发学习,结构及代码结构不够严谨,功能可能存在bug,请多多谅解
2. 当admin端掉线,所有后续连接的agent端都会退出(当startnode未开启重连模式(主动或者被动)时)
3. 当多个agent端中有一个掉线,后续的agent端都会掉线
4. 在admin启动后,必须有节点连入才可操作
5. 如需从源代码编译本项目,请运行build_admin.sh/build_agent.sh文件来编译对应类型的Stowaway(注意!!!!!!默认编译的是agent模式,此时请运行build_agent.sh,如需编译admin,请查看main.go文件中的提示,按照提示进行操作后,运行build_admin.sh文件)

写在最后:

本人仅是安全爱好者(别问,问就是菜鸡),*山代码生产者,代码框架不够严谨(相信有不少bug,同时也写的不够优雅),仅是练习,也是希望与大家一起进步,大佬们勿喷 XD。   

最后的最后,切勿在未授权的情况下使用此工具,网络安全法大家可以了解一下

*本文作者:Phantom11235,转载请注明来自FreeBuf.COM

命令模式代理模式
本作品采用《CC 协议》,转载必须注明作者和本文链接
2023年,浪潮云威胁情报中心持续对境内的APT团伙进行追踪。发现包括代号为“OldFox”的团伙持久性攻击。由于该团伙隐匿在高纬度的安全对抗空间中,因此,我们称这种模式为“量子阴谋“。
本环境为黑盒测试,在不提供虚拟机帐号密码的情况下进行黑盒测试拿到域控里面的flag。
在红队HW中通过前期的打点获得shell后通常下一步就是对内网进行横向,获得shell进想要行横向的前提是我们必须有代理可以访问内网中的资产,这时候我们就需要通过拿到shell的那台机器权限,在此台机上传代理工具进行配置搭建内网代理,目的达到内网出网的效果,使我们能够进行下一步的内网横向渗透。在hw中经常用到的代理工具有很多,根据不同之需和个人不同的使用习惯选择不同工具进行使用,本文主要对NPS这
隧道与端口转发
2021-11-18 08:26:13
如果想获得课程报名资格,请添加文末小助手微信咨询。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站协议。情况1:目标禁止出站ip如果目标主机设置了严格的策略,防火墙只允许目标内网机器主动连接公网指定的ip。这样的话,没法反弹shell。情况2:禁止出站端口Linux系统使用Linux系统自带命令探测出网端口。
RSAConference2022将于旧金山时间6月6日召开。大会的Innovation Sandbox(沙盒)大赛作为“安全圈的奥斯卡”,每年都备受瞩目,成为全球网络安全行业技术创新和投资的风向标。 前不久,RSA官方宣布了最终入选创新沙盒的十强初创公司:Araali Networks、BastionZero,Inc.、Cado Security、Cycode、Dasera、Lightspin
RSAConference2022将于旧金山时间6月6日召开。大会的Innovation Sandbox(沙盒)大赛作为“安全圈的奥斯卡”,每年都备受瞩目,成为全球网络安全行业技术创新和投资的风向标。 前不久,RSA官方宣布了最终入选创新沙盒的十强初创公司:Araali Networks、BastionZero,Inc.、Cado Security、Cycode、Dasera、Lightspin
Android应用攻与防
2021-11-14 06:53:17
安卓系统是由谷歌推出的一款移动终端,由于开源,所以国内出现了许多使用相关系统的厂商,比如小米,oppo,vivo,魅族等。 在国内,这些系统的用户群体甚多。我们日常使用的社交、游戏、工作等应用,很多都装在安卓系统上。 由于安卓系统的开源性,很多安全问题也随之而来。那么,在安卓系统上运行的应用又是如何保证自身安全的呢? 本文通过实战挖洞,展现一下Android应用的防守与攻击方式。
HTTP走私及变体总结
2022-09-01 22:12:58
HTTP请求走私是一种干扰网站处理从一个或多个用户接收的HTTP请求序列的方式,用以绕过安全控制并获得未经授权的访问,执行恶意活动。Content-Length比实际消息长度长,请求将无响应直到超时。Transfer-Encoding: chunked代表数据以一系列分块的形式进行发送.。Content-Length 首部在这种情况下应该不被发送。在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。这个攻击者便成功的利用了http请求走私漏洞。
VSole
网络安全专家