蚁剑源码结构
网上有很多webshell连接工具,主流的有蚁剑、哥斯拉、冰蝎等,像中国菜刀(China Chopper)、Weevely、Cknife、天蝎等工具因为历史原因不更新,或者流行度小的缘故,使用受众相对没那么多。
我个人更喜欢用蚁剑,因为开源社区丰富,而且二开起来感觉更方便些。
蚁剑源码项目地址:https://github.com/AntSwordProject/antSword
蚁剑加载器地址:https://github.com/AntSwordProject/AntSword-Loader
官方教程和文档:https://www.yuque.com/antswordproject/antsword
蚁剑插件市场-远程仓库:https://github.com/AntSword-Store/
一般二开只需要修改项目源码就好,加载器可以忽略。
源码目录结构
/antData/ 用户目录
/modules/ 蚁剑后端模块
/node_modules/ 安装的node模块
/source/ 核心模块
/base/ 自定义的功能类
/core/ payload模板
/language/ 语言模块
/modules/ 显示模块
/ui/ UI模块
/app.entry.js 渲染程序入口
/load.entry.js 前端加载模块
/static/ 静态资源文件
/views/ 前端文件
其中最核心的是modules目录跟source目录。modules里的内容为蚁剑的后端模块,属于主进程。source中存放着蚁剑运行的核心代码,属于渲染进程。
动态调试js代码
众所周知蚁剑用到的技术栈有:javascript / nodejs / electron
我们运行的蚁剑其实就是chrome里跑nodejs
我们并不需要对modules中的后端模块进行修改,所以一般不会用到主进程调试,仅仅蚁剑中自带的dev tool就可以完成我们日常的调试工作。
打开蚁剑->调试->开发者工具即可看到调试工具。也就是和浏览器一样调试工具~
在做了对应的操作后,我们可以很容易地在开发者工具 --> sources --> no domain下面,找到渲染进程中加载到的js文件。
比如我们可以在这里调试一下rot-13的文件,下一个断点
然后用rot-13的编码器发起连接,就会在这里断住了,我们可以在右边的Scope看见变量的信息
以此为例,就可以进行愉快的调试了~
如果是要自己写编码器的话,需要用js的代码来写编码器,然后shell中用对应语言(PHP、ASP、JSP、ASPX等)进行相应逻辑的解码,这样就能正常使用了。
原文始发于微信公众号(安全光圈):极方便的蚁剑动态调试[自定义webshell编码器的前摇]
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论