哥斯拉源码分析(一)生成shell

admin 2022年4月22日02:28:23评论139 views字数 568阅读1分53秒阅读模式

前言


老大给的新的任务,写一款webshell管理工具。打算分析下冰蝎和哥斯拉源码,借鉴一下思路。


第一篇就先简单分析下webshell的生成过程。shell内容放下一篇。


源码分析


先找到对应ui类,在按钮事件上打个断点


哥斯拉源码分析(一)生成shell


这里需要注意,哥斯拉的点击事件是通过反射动态绑定的,通过按钮名+Click即可找到对应的点击事件。

哥斯拉源码分析(一)生成shell


随后点击生成,即可断下来

哥斯拉源码分析(一)生成shell


哥斯拉源码分析(一)生成shell


最前面就是两个简单的校验,接下来是根据不同配置获取加密器

哥斯拉源码分析(一)生成shell


哥斯拉源码分析(一)生成shell


这里加密器是从cryptionMap里面获取取出来的

哥斯拉源码分析(一)生成shell


回头看看cryptionMap哪来的,有一个扫描的方法,会去解析/shells/cryptions/下的所有带@CryptionAnnotation注解的类,并添加进map


哥斯拉源码分析(一)生成shell

哥斯拉源码分析(一)生成shell



而这个扫描方法是在主程序初始化的时候调用


哥斯拉源码分析(一)生成shell

除此之外还初始化了,插件、payload等等资源


随后回到主线


哥斯拉源码分析(一)生成shell

判断获取到的加密器,有没有@CryptionAnnotation注解,随后初始化加密器返回。

哥斯拉源码分析(一)生成shell

然后调用加密器的generate方法

哥斯拉源码分析(一)生成shell


进来之后获取模板,然后替换传入的pass和key

哥斯拉源码分析(一)生成shell


然后根据选择的后缀,再次获取模板,接着就是判断是否开启上帝模式

哥斯拉源码分析(一)生成shell


shell生成后,就通过JFileChooser选择写出到指定文件

哥斯拉源码分析(一)生成shell


最后完事,整个过程还是比较简单。

原文始发于微信公众号(safe6安全的成长日记):哥斯拉源码分析(一)生成shell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月22日02:28:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   哥斯拉源码分析(一)生成shellhttp://cn-sec.com/archives/930967.html

发表评论

匿名网友 填写信息