EasyShell参考vshell,rshell,CS进行设计,在此特别感谢各位大佬师傅,尤其是rshell作者Rubby2001师傅,以前懵懵懂懂折腾很久的疑惑,在看完Rubby2001的设计思路之后,感觉那是一个茅塞顿开,柳暗花明又一村呀。
- EasyShell目前实现了五种监听方式,分别是TCP、Websocket、KCP、HTTP、DNS
支持生成完整版stageless与极简stage,并且使用donut支持生成简易的shellcode
- 使用rust编译客户端,支持同时上线windows、linux、mac
- 支持windows、linux桌面端的截屏功能
- 支持windows的远程控制
- 支持socks5与http协议的隧道代理
- 完善全量的日志审计,包括但不限于登录日志,系统操作日志,主机操作日志
- 支持调用CS插件,已实现Easyshell插件集,自动根据上线主机架构进行动态加载,已补充完善常见win、linux、mac信息获取等常用功能
- 支持邮箱、企业微信、钉钉等方式的上线通知
- 支持临时开关监听器一键上线,避免服务器长期开启一键上线脚本服务,导致服务器信息泄露(类似于cs的stage二阶段下载shellcode的过程,只不过精确控制开放时间)
- 深度优化客户端运行逻辑,目前实现火绒,windows definer,天擎,卡巴斯基免费版无感运行
- 客户端生成时可以一键添加常见绕沙箱技巧,按需选择
- 客户端生成win客户端的时间,支持一键进行PE信息的添加,内置4套,同时支持自定义图标、版权等字段
- 客户端生成尽可能实现多态变化,避免样本直接被标记
- 程序参考vhsell等的设计,也是需要先进行basic认证才可以进入系统,系统登录首页写的很简单,避免留下啥特征
- 首次登录会自动创建并生成easyshell账号及随机密码,自行复制并进行登录即可,程序默认端口58090,支持使用-p参数进行启动端口的设定
- 登录完成之后的界面如下,比较简约清新
- 首先咱们需要创建监听器,点击监听器管理即可,点击新增监听器,然后选择需要的协议,并配置ip和端口即可
- 添加完成,点击一键上线命令支持进行临时开启下载端口(约15分钟,到期自动关闭)
- 除了一键上线,也可以进行单独客户端生成,点击客户端进行配置生成即可
支持自定义PE配置信息、常见沙箱绕过配置
- 成功上线之后,支持右键对主机列表进行操作,如果已经在easyshell客户端同目录放置Extensions插件,即可自动进行加载并使用(权限提升等测试不完善,后续进行补充)
点击插件进行执行后,命令结果会像cs一样从底下弹出一个终端进行展示
- 点击主机管理即可进入管理,参考vshell,设计了交互式终端与非交互式终端两种方式
- 如果配置了Extensions插件,在脚本菜单中也可以进行加载使用
linux插件新增一键实现用户态的程序与网络的隐藏,效果还是比较明显的
未进行hook:
可以正常看见交互网络与应用进程
使用插件进行hook,输入我们需要进行隐藏的应用pid,以及传输的ip地址
此时即可简单隐藏应用与交互流量
并且不影响正常的ps ss等查询
- 文件管理就是常规那些,增删改查,这个没啥好讲的
- 进程管理就是对进程进行一个自动的划分归类,支持进行kill操作
- 屏幕截屏仅支持windows与linux桌面端,mac暂不支持,同时仅windows实现了简单的桌面控制
- 隧道代理已实现socks与http
- 日志审计就是常规的审计,这里只是完善了一下,方便日后进行操作回溯
基本上就是这些功能了,剩下的慢慢在进行补充完善吧
如图所示
如果是使用stage生成的shellcode,记得需要手动开启临时下载,或者系统配置中启用永久下载才可以正常上线





























