红队|窃取frp代理服务器
2023-5-4 21:11:45 Author: Z2O安全攻防(查看原文) 阅读量:198 收藏

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。

文章正文

在最近的攻防演练中经常能看到这样的frpc配置文件。

[common]
server_addr = x.x.x.x
server_port = 7000

[xxx]
type = tcp
remote_port = 48944
plugin = socks5

连接服务器的信息中没有凭证信息,这不是妥妥的未授权吗。我寻思着一般安全意识比较好的攻击队怎么会用能未授权访问的东西,不太正常。我去翻阅了frp的官方文档

https://gofrp.org/docs/examples/ssh/

原来官方例子中的配置就是未授权的,看来是为了图方便。

image-20230430143951715

那既然是未授权,那肯定有办法检测未授权的frp server,从而加以利用(用其他红队的frp server做代理,是不是就溯源不到咱们头上的IP了呢?#坏笑.jpg)。

不想看分析的师傅们可以直接来弟弟的项目下载成品(开源),可批量检测未授权、弱口令。

https://github.com/SleepingBag945/frpCracker

image-20230501132021852

为了弄清楚frp的鉴权过程,下载了frp的源码进行阅读。

找到frpc,调试f7单步跟下去。在clint/service.go找到登录相关函数login()

image-20230430150658822

首先在这发送了进行连接

image-20230430160434521
image-20230430160508362
\x00\x01\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00

然后回了个进行确认

image-20230430160824526
\x00\x01\x00\x02\x00\x00\x00\x00\x01\x00\x00\x00\x00

通过返回包可以判断一个tcp端口是否开放着frp服务。

接着进入认证阶段。

image-20230430161107877

将loginMsg序列化成json发送出去

image-20230430161352811

其他的很清楚怎么来的,只有这个PrivilegeKey需要弄清楚

进入svr.authSetter.SetLogin(loginMsg)看

image-20230430161917952
image-20230430162114192

也就是说这个PrivilegeKey是由auth.token与当前时间戳计算得到,在无配置token的访问中,

image-20230430162007851

这里的token为空。也就是只需要时间戳即可构造。

具体实现方法为 md5(token + timestamp)

image-20230430162156258

而未授权时实际上为md5(timestamp)。

是不是有点像是nps未授权访问?nps是默认把auth_key注释了,导致获取时为空字符串。

返回的信息如下

image-20230430204556248

如果Error为空,获取到RunID则是正常的。

到此就可以自己实现一个frps爆破工具了。

核心逻辑在这

先用返回的消息判断是否是frp,如果是frp才开始检测未授权或者爆破

image-20230501100956797

根据客户端版本、系统、架构、token生成构造出对应的认证消息并发送出去。

image-20230501100727776
image-20230501101140564

如果成功获取到runID之类的信息则成功爆破frp server。

写完爆破出结果

image-20230501125055635

测试下

image-20230501125109788
image-20230501125123856

连接成功。

技术交流

知识星球

致力于红蓝对抗,实战攻防,星球不定时更新内外网攻防渗透技巧,以及最新学习研究成果等。常态化更新最新安全动态。专题更新奇技淫巧小Tips及实战案例。
涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全。星球中已发布 300+ 安全资源,针对网络安全成员的普遍水平,并为星友提供了教程、工具、POC&EXP以及各种学习笔记等等。

交流群

关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

关注我们

关注福利:

回复“app" 获取  app渗透和app抓包教程

回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。

回复“书籍" 获取 网络安全相关经典书籍电子版pdf

回复“资料" 获取 网络安全、渗透测试相关资料文档


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2ODYxMzY3OQ==&mid=2247494860&idx=1&sn=0e5f24a5053fab087b92a5f8ac6a71bd&chksm=ceab078cf9dc8e9a3ebe13fbbf24bd77ac75eb1d6f1cfdb775439cfbcb9c1a640354774c805a#rd
如有侵权请联系:admin#unsafe.sh