SuperShell溯源反制-默认密钥/密码利用

admin 2023年8月9日01:18:13评论643 views字数 1072阅读3分34秒阅读模式

介绍:

https://github.com/tdragon6/Supershell

Supershell是一个集成了reverse_ssh服务的WEB管理平台,使用docker一键部署(快速构建),支持团队协作进行C2远程控制,通过在目标主机上建立反向SSH隧道,获取真正的完全交互式Shell,同时支持多平台架构的客户端Payload,客户端Payload的大小为几MB,可以理解为在目标主机上部署了一个几MB的ssh服务器,然后获取了一个ssh shell;Supershell集成了客户端管理、客户端Payload生成、交互式Shell、文件管理、文件服务器、内存注入、安装服务、迁移guid、本地原生sftp命令传输文件、本地ssh隧道端口转发和备忘录等功能。

公网分布

 

SuperShell溯源反制-默认密钥/密码利用

漏洞利用

SuperShell部署时存在以下配置信息:

SuperShell溯源反制-默认密钥/密码利用 

其中 user/pwd 为web登录管理员信息,默认为 tdragon6/tdragon6;global_salt 为JWT加密salt,默认为Be sure to modify this key,share_pwd 为远控shell共享密钥,默认为tdragon6。

其中user/pwd几乎人人都会修改,global_salt由于注释中的提醒,只有少数马虎的安全人员会忘记修改,而share_pwd由于其作用模糊,在日常使用中几乎不会用到,故很容易被管理员忽视,然而由于SuperShell的设计缺陷,三者任一使用默认配置都会导致Supershell存在接管风险。

默认user/pwd

直接 tdragon6/tdragon6 web登录

默认jwt token

查看登录逻辑:

SuperShell溯源反制-默认密钥/密码利用

 get_jwt_token函数:

SuperShell溯源反制-默认密钥/密码利用 

即用户成功登录后会将用户名与有效时间生成JWT令牌,存储在cookie中作为登录凭据。

使用默认salt伪造令牌:get_jwt_token("admin", "Be sure to modify this key", 999999)

SuperShell溯源反制-默认密钥/密码利用

如服务端采用同样salt即可绕过登录:

SuperShell溯源反制-默认密钥/密码利用

SuperShell溯源反制-默认密钥/密码利用

默认share_pwd

在测试jwt伪造时,发现服务端并未校验用户名有效性,即JWT令牌合法即可获取管理员权限,查看共享shell鉴权逻辑:

SuperShell溯源反制-默认密钥/密码利用

发现 share_password 有效后会使用相同salt生成JWT令牌存储在share_token中,用户名为anonymous,而前述可知用户名不影响管理员鉴权,故可直接将cookies中的share_token替换为token,即可绕过登录:

SuperShell溯源反制-默认密钥/密码利用

 

SuperShell溯源反制-默认密钥/密码利用


原文始发于微信公众号(无法溯源安全团队):SuperShell溯源反制-默认密钥/密码利用

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月9日01:18:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SuperShell溯源反制-默认密钥/密码利用https://cn-sec.com/archives/1941462.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息