哥斯拉二开-Websocket shell

2024-03-13 995 0

前言

WebSocket是一种全双工通信协议,即客户端可以向服务端发送请求,服务端也可以主动向客户端推送数据。这样的特点,使得它在一些实时性要求比较高的场景效果斐然(比如微信朋友圈实时通知、在线协同编辑等)。主流浏览器以及一些常见服务端通信框架(Tomcat、Spring、Jetty、WebSphere、WebLogic等)都对WebSocket进行了技术支持。

本文主要讲解如何让哥斯拉支持Websocket协议的shell。

添加SocketClient

首先,需要在util中,添加SocketClient类,实现“打开连接”、“发送数据”、“接收数据”、“关闭连接”等功能
哥斯拉二开-Websocket shell插图哥斯拉二开-Websocket shell插图1哥斯拉二开-Websocket shell插图2

Shell生成界面修改

添加"WS Shell类型"下拉框
哥斯拉二开-Websocket shell插图3添加选项
哥斯拉二开-Websocket shell插图4整体设计完成后,界面如下图所示
哥斯拉二开-Websocket shell插图5

算法实现

在src/main/java/shells/cryptions/JavaAes/中新建JavaAesBase64WebSocket.java并定义算法名称
哥斯拉二开-Websocket shell插图6修改init方法,实现SocketClient.sendMsg发送payload
哥斯拉二开-Websocket shell插图7修改shells.payloads.java.JavaShell#evalFunc。添加SocketClient.sendMsg发送data数据
哥斯拉二开-Websocket shell插图8

Shell代码实现

这里可以根据wsMemShell模板作为参考,进行修改。
参考模板:https://github.com/veo/wsMemShell
哥斯拉二开-Websocket shell插图9这里需要注意,要添加setDefaultMaxTextMessageBufferSize和setDefaultMaxBinaryMessageBufferSize方法。解决payload传输的大小限制问题。
这里需要注意,要添加setDefaultMaxTextMessageBufferSize和setDefaultMaxBinaryMessageBufferSize方法。解决payload传输的大小限制问题。

container.setDefaultMaxTextMessageBufferSize(52428800);
container.setDefaultMaxBinaryMessageBufferSize(52428800);

哥斯拉二开-Websocket shell插图10

功能预览

shell连接时,填写url为ws://开头。例如 ws://192.168.136.72:8080/ws.jsp
加密器选择JAVA_AES_BASE64_WebSocket
哥斯拉二开-Websocket shell插图11通过抓包,可看到通信协议及流量
哥斯拉二开-Websocket shell插图12


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

苹果试图保护你的隐私,OpenAI可能做不到
Shuffle:一款完全自动化的安全栈增强平台
如何使用CODASM编码Payload并降低熵值
SessionExec:一款针对会话安全的安全命令测试工具
Arkime:一款大规模数据包捕获和索引数据库系统
从蓝队流量角度分析Shiro-550反序列化漏洞

发布评论