放一个Supershell的github下载链接在这里,方便大家用(文章转载自雨苁)

这篇具有很好参考价值的文章主要介绍了放一个Supershell的github下载链接在这里,方便大家用(文章转载自雨苁)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Supershell简介

Supershell是一个通过WEB服务访问的C2远控平台,通过建立反向SSH隧道,获取完全交互式Shell,支持多平台架构Payload.

Supershell是一个集成了reverse_ssh服务的WEB管理平台,使用docker一键部署,支持团队协作进行C2远程控制,通过在目标主机上建立反向SSH隧道,获取真正的完全交互式Shell,同时支持多平台架构的客户端Payload,客户端Payload的大小为几MB,可以理解为在目标主机上部署了一个几MB的ssh服务器,然后获取了一个ssh shell.

Supershell集成了客户端管理、客户端Payload生成、交互式Shell、文件管理、文件服务器、内存注入、安装服务、迁移guid、本地原生sftp命令传输文件、本地ssh隧道端口转发和备忘录等功能。

同时Supershell允许您将获取到的Shell分享给您的伙伴使用,Shell均通过浏览器页面嵌入,共享Shell采用单独的鉴权方式,无需给您的伙伴提供管理平台的身份认证凭证。

功能特点

  • 支持团队并发协作,一个浏览器使用所有功能
  • 支持多种系统架构的反弹Shell客户端Payload,集成压缩和免杀.
  • 支持客户端断线自动重连
  • 支持全平台完全交互式Shell,支持在浏览器中使用Shell,支持分享Shell
  • 支持回连客户端列表管理
  • 内置文件服务器
  • 支持文件管理
  • 支持内存注入,即文件不落地执行木马(内存马)
  • 支持Windows安装反弹Shell服务和Linux尝试迁移uid与gid

支持平台

支持生成的客户端Payload系统架构:

android darwin dragonfly freebsd illumos linux netbsd openbsd solaris windows
amd64 amd64 amd64 386 amd64 386 386 386 amd64 386
arm64 arm64 amd64 amd64 amd64 amd64 amd64
arm arm arm arm dll
arm64 arm64 arm64 arm64
ppc64le mips64
s390x
so

其中以下系统架构不支持加壳压缩:

freebsd/*
android/arm64
linux/s390x
linux/so
netbsd/*
openbsd/*

开发和测试环境:

Ubuntu 20.04 x86_64 

docker 23.0.1 

docker-compose 1.25.0

说明

Supershell采用docker-compose一键部署,容器启动顺序:redis -> flask -> shell -> memfd -> nginx -> rssh

对外开放的服务:

  • nginx8888,用以访问平台web界面。
  • rssh3232,用以接收反弹shell的监听端口。

只对内开放的服务:

  • redis6379,用以记录和操作连接的客户端数据。
  • flask5000,提供web服务,通过nginx转发。
  • shell7681,提供浏览器中访问的交互终端Shell,通过nginx转发。
  • memfd7682,提供浏览器中访问的内存注入Shell,通过nginx转发。

快速构建

1、下载最新release源码,解压后进入项目目录

wget https://github.com/tdragon6/Supershell/releases/download/latest/Supershell.tar.gz
tar -zxvf Supershell.tar.gz
cd Supershell

2、修改配置文件config.py,其中登录密码pwd、jwt密钥global_salt、共享密码share_pwd必须修改,注意Python语法:String类型和Int类型,密码为明文密码的32位md5值

# web登录和会话配置信息  
user = 'tdragon6'  
pwd = 'b7671f125bb2ed21d0476a00cfaa9ed6' # 明文密码 tdragon6 的md5  
  
# jwt加密盐  
global_salt = 'Be sure to modify this key' # 必须修改,不然可以伪造jwt token直接登录  
  
# 会话保持时间,单位:小时  
expire = 48  
  
  
# 共享远控shell的共享密码  
share_pwd = 'b7671f125bb2ed21d0476a00cfaa9ed6' # 明文密码 tdragon6 的md5  
  
# 共享shell会话保持时间,单位:小时  
share_expire = 24

3、确保8888和3232端口没有占用(若占用,请修改docker-compose.yml文件nginx和rssh服务对外暴露端口),执行docker-compose命令

docker-compose up -d

4、访问管理平台,使用config.py配置的 user / pwd 登录

http://公网IP:8888

使用文档

中文文档

中文文档

建议必读

使用前阅读以下内容可以在使用过程中避免某些错误,或在您碰到常见错误的时候快速定位解决方案。

快速使用 • 注意事项 • FAQs

部分功能演示

声明:功能演示时的受害者主机采用谜团靶场,部署Supershell服务的VPS主机为临时申请使用,请不要尝试对演示中暴露的任何IP进行攻击,该VPS主机之前与之后的任何行为与本作者无关。

客户端生成

Linux 反弹Shell

Windows反弹Shell

文件管理

内存注入

靶机不支持TCP反弹,这里使用本机演示,注入msf内存马

下载地址

①GitHub:

Supershell.tar.gz

②anonfiles网盘

Supershell_www_ddosi_org_rar

解压密码:www.ddosi.org

快速上手

登录管理平台后生成客户端Payload放至目标主机并执行,Supershell监听连接后可以进行一系列管理操作。

客户终端生成

左菜单栏点击客户终端生成,填写相应字符串开始生成,IP为公网VPS IP, 端口默认3232,生成完成后在已生成客户终端套餐列表链接地址,在目标主机上执行。

监听反弹Shell

在目标主机上执行客户端Payload后,切换至左菜单栏客户端列表,刷新页面接收目标会话即可以继续后续清理一系列。

常用文件

左侧菜单栏点击常用文件进入内部设置文件服务器,可以上传经常使用的透光工具和脚本,没有大限制(nginx设置最大为500G,要不要大件充当500G)因为初爬是为了方方便地上传水透工具和脚本至目标主机。

注:文件服务器下载接口无需鉴权,请不要上传敏感文件。

工具栏
  • 图片标签: 刷新文件服务器
  • 图片标签: 从本地上传文件,不支持上传中文文件
  • 图片标签: 上传进度显示
  • 列头: 点击列头可排序
文件操作
  • 重命名:重命名文件,不支持中文,无法重命名已有文件名
  • 下载文件:可右键复制链接地址,在目标主机上使用
  • 删除文件:删除文件服务器上的文件

客户端生成

左侧菜单栏点击 客户端 – 客户端生成 进入Payload生成界面。

客户端生成

  • 文件名: 生成的Payload名,只允许 大小写字母数字_. ,注意命名格式,Windows结尾 .exe ,so和dll文件结尾 .so/.dll
  • 回连地址: 反弹Shell回连地址,即您部署的公网VPS IP,只能为有效IP格式
  • 回连端口: 反弹Shell回连端口,即rssh服务器开放端口,默认为3232,若docker启动时有调整,相应变成自己设置的端口,只能为有效端口格式
  • 系统架构: 要生成Paylaod的系统架构类型,即目标主机的系统架构,支持关键词搜索
  • 压缩: upx加壳压缩,不对体积有要求的话不建议使用,特征明显
  • 免杀: garble混淆,免杀效果自测

客户端Payload在目标主机执行即可反弹Shell,执行时会Fork一个子进程在后台运行,同时打印一条Fork信息,此时客户端将不会显示任何输出信息,如果您需要调试客户端,请执行客户端时加上 --foreground 。

已生成客户端

表格中展示了已生成的客户端列表

工具栏
  • 图标  : 刷新已生成的客户端列表
  • 搜索: 支持关键词搜索客户端
文件操作
  • 下载: 可右键复制链接地址,在目标主机上使用
  • 删除: 删除客户端Payload

列表中版本指客户端Payload的版本,与生成时rssh服务端的版本一致。

客户端列表

左侧菜单栏点击 客户端 – 客户端列表 进入客户端管理界面,这里显示了所有上线和离线的主机。

工具栏
  • 图标  : 刷新客户端列表
  • 图标  : 数据校准,若客户端列表数据出现异常,可使用此功能获取最精确的客户端数据,但所有离线主机和所有分组/备注信息会丢失。
  • 图标  : 断开全部连接
  • 图标  : 删除全部离线记录
  • 搜索: 搜索客户端,支持关键词搜索
  • 列头: 点击列头可进行筛选

客户端操作

  • 复制会话sessid: 复制会话id,可在本地功能中 Sftp传输 和 端口转发 使用
  • 进入会话: 进入会话管理页,功能包括 会话信息 、交互终端 、文件管理 、内存执行 、进阶功能

详细信息: 查看客户端详细信息,同时可以设置分组和备注,分组和备注设置了XSS转义,因转义原因,输入非法的字符会导致筛选功能失效

  • 断开连接: 断开客户端连接

以上均为在线客户端的操作,离线客户端多了 删除记录 功能,可删除离线客户端记录,但没有 进入会话 和 断开连接

会话管理

功能包括:

  • 交互终端
  • 文件管理
  • 内存执行
  • 进阶功能

交互终端

交互终端提供一个完全交互式的SSH Shell。

工具栏
  • 图标  : 复制此终端链接,可分享给伙伴使用
  • 图标  : 进入全屏Shell
共享Shell

您可以将复制的Shell链接分享给您的伙伴使用,您的伙伴可以在没有平台授权token的情况下使用共享密码登录Shell。

高级功能

若您获取的Shell中存在 lrzsz trzsz 文件传输工具,支持在Shell中直接使用 lrzsz trzsz 传输文件。

文件管理

文件管理提供了以下功能,其中除了上传文件,其他所有操作均支持中文,所有的文件操作后需刷新当前路径目录获得更新:

  • 目录树
  • 面包屑
  • 文件浏览
  • 复制路径
  • 新建目录/文件
  • 上传/下载文件
  • 编辑文件
  • 删除目录/文件
  • 重命名
目录树

左侧区域为目录树,点击节点展开目录树,这里只显示目录,不显示文件,若某目录下不存在子目录,则为空。

面包屑

中间区域最上方为面包屑路径,可点击路径快速浏览路径下文件。

工具栏

中间区域表格上方操作栏为工具栏。

  • 路径输入框: 输入待操作的路径,此路径只能为目录,回车可直接加载文件浏览,路径格式一定要以 / 开头,例如 /C:/folder/subfoler
  • 图标  : 进入目录,加载目录文件,可在路径输入框中用回车直接进入
  • 图标  : 复制路径
  • 图标  : 新建目录,同名目录无法新建
  • 图标  : 新建文件,同名文件无法新建
  • 图标  : 打开上传界面
    • 文件上传支持从本地上传和从文件服务器上传,存在同名文件无法上传,上传文件时与该目标的连接资源会被占用,这时进行的一系列会话操作都会响应缓慢,例如交互终端和浏览文件等操作,所以上传文件不要并发,上传过程中不要进行其他操作
    • 文件上传流量过大可能易导致目标主机断线重连
  • 图标  : 文件上传进度显示,从文件服务器上传时没有详细进度信息
文件操作
  • 复制路径: 复制文件的路径
  • 重命名: 重命名目录/文件,存在同名目录/文件则无法重命名
  • 编辑文件: 查看文件内容并支持修改文件,仅支持文本文件
  • 下载文件: 下载目标主机文件
  • 删除文件: 删除目录/文件,对于正在占用的文件无法删除,一般在Windows下会出现这种场景

注: 目录没有 编辑文件 和 下载文件 操作。

内存执行

内存执行可实现文件不落地运行可执行文件,实现内存马效果。

远程注入

通过http/https链接远程下载至目标主机,通过内存加载运行,可采用常用文件中的链接。

本地注入

rssh把常用文件中指定的文件上传至目标主机,通过内存加载运行。

进阶功能

进阶功能包括 Windows安装服务 和 Linux提权

Windows安装服务

目标主机需要管理员权限,并不一定会成功,需自行判断,成功后 客户端列表 会新增一条新记录,即安装的Windows服务反弹的Shell,若要完全卸载服务:

  1. 输入之前安装的服务名,点击卸载
  2. 客户端列表 断开对应服务弹回的客户端连接会话
Linux提权

尝试迁移uid或gid,并不一定会成功,需自行判断。

其他功能

监控台

监控台记录了系统的各种信息,其中需要注意rssh连接数,在没有文件下载、上传、使用shell或内部执行的情况下,连接数应该显示为1,若常增加,则说明存在连接没有被成功释放,此时请重新启动flask docker容器,因为过多未释放的连接可能会导致rssh服务崩溃。

日志监测

日志监控可以查看Web服务运行的日志,若使用Supershell过程中出现问题,可以查看这里的日志,需要提交Issues时附上相关日志。

备忘录

备忘录提供Markdown编辑环境,实时冲洗,可用快捷键Ctrl + S保存,mac不支持快捷键。

设置

设置提供了两个设置项:

  • 远程主机文件下载时的文件流Chunk Size
  • 远程主机文件上传时的最大尺寸,单位Bytes,默认30M
注销

点击头像,选择注销

切换风格
  • 界面右上角图标切换暗黑模式
  • 界面右上角图标切换明亮模式

本地功能

Sftp传输

支持在本地通过原生sftp连接目标主机,使用全部sftp功能,若需使用此功能,本地需具备 openssh 环境,且sftp支持 -J 参数,一般此条件为 openssh >= 8.0 ,同时本地需要Supershell生成的私钥 id_rsa ,参阅 控制端私钥和公钥 。

sftp命令格式:

sftp -J <VPS IP>:3232 <sessid>
  • <VPS IP>: 部署的VPS公网IP
  • 3232: rssh对外暴露的端口
  • <sessid>: 客户端列表复制的会话id
端口转发

支持在本地使用端口转发,完全基于原生SSH隧道,若需使用此功能,本地需具备 openssh 环境,且ssh支持 -J 参数,同时本地需要Supershell生成的私钥 id_rsa ,参阅 控制端私钥和公钥 。

  • 本地端口转发
  • 远程端口转发
  • 动态端口转发(socket代理)

以上三种端口转发只需将正常ssh端口转发命令中的host变更为 -J <VPS IP>:3232 <sessid> 即可。

举例:远程端口转发

对目标主机A端口B的访问转为对主机C端口D的访问:

ssh -R B:C:D username@A

若目标主机A是您控制的主机,则转发命令变为:

ssh -R B:C:D -J <VPS IP>:3232 <sessid>

其中 <sessid> 为目标主机A的会话id。

注意事项

1、浏览器

请使用chrome内部浏览器访问,测试发现交互终端在firefox下无法正常使用。

2、客户终端生成

  • 不必并发:rssh服务没有分区式部署,单独的rssh服务在客户端生成时占用资源,导致此时其他与rssh交互的任何操作掩蔽响应缠绕慢,因此在生成客户端操作时等候处理完成后再进行其他任何操作。
  • upx问题
    • 部分系统结构不支持upx加壳压力缩小,无法勾选。
    • 除了对客户终端积存有要求,否则尽管量不要使用upx加壳压缩,因为特殊征兆,容易报毒。
  • 代理问题:客户终端生成请求会在服务器后端处理,这个处理时间一般比更长,若使用代理请求,例如VPN,需要VPN代理规则,一般VPN会设置60s丢包弹出错误,这个错误只是前面的返回信息出错,但服务器还会正常处理,不会影响后续的结果。

3、客户终端列表数据校准

客户终端列表显示上方工具栏

图标为数据学校准功能。

  • 若客户终端执行报毒,客户终端列表在一定时间内可能会出现几个陌生主机上线但很快掉线的情况,初步认为是杀软上载了payload包致的情况,此时可以使用数据学校准功能或删除连接/记录清理数据。
  • 客户端列表数据是通过rssh服务的webhook来更新上线和下线状态,若重新启动docker,原线上的主机断开,rssh启动后重新连接会话,redis在备份化学保存的数据,因此引导重新开启的会话没有更新的下线信息,此时也可使用数据校准或开启连接更新的客户端列表。
  • 其他任何客户端列表显示不正确的情况均可用数据校准。

4、目标主机文件上传

这里指的是目标主机的文件上传操作,而不是常用文件上的文件传。

  • 不必并发:文件上传时会占用与目标的连接资源,引导其他与同一个目标的连接操作响应缠绕慢,若流量过大容错路由,因此不要上传大文件,同一个目标主机上传操作和其他管理操作不需要并发。
  • 大小限制:为了连接安全,默认限制上传大小30M,在现实场景中,一般只需要上脚和透光工具,尽量在目标主机上使用下载就行使用wget等用文件中的文件达到上传目标的,目标主机无法下载文件时再使用上传接口来上传一些小型的辅助工具,若一定需要上传更大的文件,可在设置中调整大范围制作。
  • 代理问题:从经常使用文件上请求会在服务器后端处理,这个处理时间一般比较长,若使用代理请求的,例如VPN,需要代理请求应规则,一般VPN会设置60s丢包弹出错误,这个错误只是前端的返回信息出错,但服务器还会正常处理,不会影响后续的结果。

5、内存执行

若内存注册的文件过大,会有一段文件数据传输的过程需要等,请等候判断是否注册成功。

6、常用文件

经常使用文件为内部的文件服务器,为了方便在目标主机上下载文件,因此经常使用文件的下载是无须授权的,因此不需要上载感文件累也是为了上传一些常规的透光工具。

另外,已经生成的客户端下载接口也是无需要授权的。

7、持久化数据

volume目录和config.py文件存在放的是持久化个人数据,在docker每次启动时挂载。

如果您转移了项目源码或下载了新版本发布源码,请将原始的volume目录和config.py替换新代代码目录中的volume和config.py,否则引导至数据交换前反方向连接的客户端信息等问题,具体请阅读本版更新。

8、docker重启

不要使用docker-compose restart

请使用

docker-compose stop docker-compose up -d

免责声明

本工具仅面向合法授权的安全测试,在使用本工具前,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。

若您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,作者将不承担任何法律及连带责任。

因本工具目前为作者一人开发,难免会存在功能、性能和安全方面的漏洞,由此产生的任何问题作者将不承担任何责任。

在使用本工具前,请您务必审慎阅读、充分理解各条款内容、免责声明、使用文档和LICENSE。除非您已充分阅读、完全理解并接受本协议所有条款,否则,请您不要使用本工具。您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束。

项目地址

GitHub:
https://github.com/tdragon6/Supershell

转载请注明出处及链接文章来源地址https://www.toymoban.com/news/detail-825591.html

到了这里,关于放一个Supershell的github下载链接在这里,方便大家用(文章转载自雨苁)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Github | 如何在Github上只下载一个文件或文件夹!?

    用过 github 的小伙伴们都知道,我们可以通过 git clone 命令来下载 整个项目 到本地。😘 但我最近在使用 github 的时候遇到一个 问题 ,就是我 只 想下载这 一个文件 ,其他的我都 不想要 。🫠 解决方案 大家往下看吧:👇 1️⃣ 首先我们 点开 这个文件,点击 raw 。🤜 2️⃣

    2024年01月15日
    浏览(52)
  • 你的 VSCode 上 还没有 GitHub Copilot ?看这里

    GitHub Copilot 是由 OpenAI 和 GitHub 开发的 AI 工具。其目的是通过自动完成代码来帮助开发人员使用集成开发环境 (IDE),如 Visual Studio Code。它目前仅作为技术预览版提供,因此只有已加入候补名单的用户才能访问它。对于使用 Python、JavaScript、Ruby、Go、TypeScript 和 Ruby 编写代码

    2024年02月03日
    浏览(40)
  • Git的使用--如何将本地项目上传到Github(三种简单、方便的方法)(二)(详解)

    一、第一种方法: 1.首先你需要一个github账号,所以还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路(傻瓜式安装)直接安装即可: https://git-for-windows.github.io/ 2.登陆后,进入Github首页,点击New repository新建一个项目  

    2024年02月12日
    浏览(85)
  • VSCode-下载安装-远程连接linux(方便容器编排格式学习)

    下载安装请参考 VSCode下载教程 https://blog.csdn.net/weixin_43121885/article/details/131779104?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170812811316800211530507%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257Drequest_id=170812811316800211530507biz_id=0utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_posit

    2024年02月21日
    浏览(47)
  • 独立于 Github,更方便地管理自己的静态网站?来试试这套自托管 Git 仓库方案!

    这套方案可以实现一个非常方便的编写博客的方法。你可以在自己电脑上写好文章,生成网站,并且直接 git push 即可部署到自己的服务器上,一气呵成,一般情况下完全不需要登陆远程服务器。 在讲述方案之前,我先说明一下这套方案采用的服务器结构。 本地客户端:在本

    2024年01月23日
    浏览(50)
  • 自建免费图床文件管理麻烦吗?PicList+Github搭建免费图床,功能更强文件管理更方便

    我之前写的博文“如何使用PicGo+Github搭建免费图床,免费云存储”,很多小伙伴看了后,根据我说的方法,也搭建了自己的免费图床和云存储,但同时很多小伙伴也反映,此方法虽好,但也有很大一个方面不足,那就是对图床和云存储端的文件管理很不方便,我们发现,在

    2024年01月21日
    浏览(63)
  • 使用hutool工具,对多文件下载进行打包下载,这里使用的是zip压缩算法。

    参考以下博主: Java实现文件下载zip包单文件等_java下载zip文件_liu.kai的博客-CSDN博客 先将需要压缩的文件们打包在一块生成一个临时压缩包 将这个临时的压缩包,以单文件下载的方式,给前端响应过去 删除临时的压缩包

    2024年02月04日
    浏览(96)
  • MyBatis 一个简单配置搞定加密、解密,不能太方便了~!TypeHandler

    目录 一、背景 二、解决方案 三、需求 四、实现思路 五、实现代码 一、背景 在我们数据库中有些时候会保存一些用户的敏感信息,比如:手机号、银行卡等信息,如果这些信息以明文的方式保存,那么是不安全的。假如:黑客黑进了数据库,或者离职人员导出了数据,那么

    2024年02月11日
    浏览(43)
  • 【Rust日报】2023-06-06 motus 一个非常方便的命令行密码生成工具

    motus 一个非常简单的命令行密码生成工具 Motus是一个命令行应用,帮你轻松生成安全密码。 它的用户界面非常简单、优雅,跟 1Password 的密码生成器一样,让你感觉很舒服。Motus 默认会把生成的密码复制到你的剪贴板,用起来非常方便。 ReadMore: https://github.com/oleiade/motus Loo

    2024年02月08日
    浏览(76)
  • 这里有一个源码调试方法,短小精悍,简单粗暴,但足够好用。

    你好呀,我是歪歪。 上周发布了《我试图通过这篇文章告诉你,这行源码有多牛逼。》这篇文章。 文章中有这样的一段描述: 然后有个读者来问我: 是怎么把 JDK 源码中的一行代码给注释掉的? 这个问题确实不错,属于一个偶尔用一下能起到奇效的源码调试技巧。所以我决

    2024年02月06日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包