Sublime介绍
Sublime Text 是一款功能强大的文本编辑器,广泛用于编程和日常文本编辑。它以其速度、灵活性和强大的功能而受到用户的喜爱。以下是 Sublime Text 的一些关键特性:
多平台支持:Sublime Text 支持 Windows、macOS 和 Linux,提供了跨平台的一致体验。
快速启动:Sublime Text 以其快速的启动时间和文件打开速度而闻名。
多文件标签:支持在一个窗口中打开多个文件,并通过标签进行切换。
强大的搜索:支持多文件搜索,可以使用正则表达式,并且搜索结果可以即时预览。
语法高亮:支持多种编程语言的语法高亮,并且可以通过插件进行扩展。
代码片段:允许用户创建和使用代码片段,以加快编码速度。
自定义快捷键:用户可以自定义快捷键,以提高工作效率。
分屏编辑:可以将编辑区域分割成多个独立的面板,方便同时查看和编辑多个文件。
命令面板:提供快速访问文件、命令和符号的命令面板。
宏录制:允许录制宏,以自动执行重复的任务。
插件系统:通过 Package Control,用户可以轻松安装和管理插件来扩展编辑器的功能。
项目管理:方便地在多个项目之间切换和工作。
版本控制集成:支持 Git 和其他版本控制系统。
自定义主题:用户可以自定义编辑器的颜色主题和界面布局。
性能优化:Sublime Text 在性能上进行了优化,即使在处理大型文件时也能保持流畅。
跨平台剪贴板:支持跨平台的剪贴板操作。
自动补全:提供自动补全功能,支持多种编程语言。
磁盘上更改时自动刷新:如果文件在外部被更改,Sublime Text 可以自动检测并提示用户刷新文件。
可以看到在sublime编辑器中也支持插件能力,具备完善的插件系统,那么跟之前两个编辑器notepad++、vscode一样,也可以用于持久化
插件开发流程
Sublime Text 插件开发允许你扩展编辑器的功能,创建自定义命令、事件监听器、自动补全提供者等。以下是 Sublime Text 插件开发的一般过程:
1. 了解 Sublime Text API
在开始开发之前,熟悉 Sublime Text API 是非常重要的。你可以在官方文档中找到关于 API 的详细信息:
Sublime Text API 文档:https://www.sublimetext.com/docs/3/api_reference.html
2. 设置开发环境
Sublime Text 插件开发不需要特殊的开发环境,因为插件是用 Python 编写的,而 Sublime Text 内置了 Python 解释器。
3. 创建插件文件
打开 Sublime Text。
进入 ToolsDeveloperNew Plugin...。
这将创建一个新的 Python 文件在 Packages/User 目录下。
4. 编写插件代码
插件通常是一个继承自 sublime_plugin.TextCommand 的类,你可以在这个类中定义你的方法。
Python |
5. 测试插件
在 Sublime Text 中,你可以通过以下步骤测试插件:
进入 ToolsDeveloperRun...。
从列表中选择你的插件。
6. 调试插件
如果插件没有按预期工作,你可以使用 print 语句输出调试信息,或者使用 Python 的调试器。保存并关闭,一旦你的插件工作正常,保存文件并关闭编辑器。
7. 分发插件
你可以将你的插件分发给其他用户,或者上传到 Sublime Text 的 Package Control
后门开发
以下以常见的windows系统举例:
在 Windows 系统下,Sublime Text 的插件通常保存在以下位置:
用户插件:用户安装的插件默认存放在 Sublime Text 的 Packages 文件夹中,具体路径通常是:
Plaintext |
或者对于 Sublime Text 4:
Plaintext |
注意:AppData 文件夹是隐藏的,你可能需要在文件资源管理器中启用显示隐藏文件的选项才能看到它。
全局插件:除了用户插件外,Sublime Text 还允许你安装全局插件,这些插件对所有用户都可用。全局插件的位置依赖于系统安装,但通常位于 Program Files 或 Program Files (x86) 目录下。
Package Control:如果你通过 Package Control 安装插件,它们会被保存在 Packages 文件夹中的 User 子文件夹内。Package Control 是 Sublime Text 的官方包管理器,它允许你方便地安装、更新和管理插件。
手动安装的插件:如果你手动下载并安装插件,通常会解压到 Packages 文件夹中的某个新创建的文件夹内。
要访问和管理 Sublime Text 的插件:
打开 Sublime Text。
进入 PreferencesBrowse Packages,这将打开包含插件的 Packages 文件夹。
在 Packages 文件夹中,你可以直接添加、删除或修改插件文件,就像在文件资源管理器中操作一样。如果你想要安装新的插件,可以通过 Package Control 来安装,或者手动下载插件并将它们解压到 Packages 文件夹中。
简单后门
因此在windows下使用sublime插件执行其他程序非常简单。只需将 Python 脚本插件放入 Sublime 的插件目录 ( C:UsersUSERAppDataRoamingSublime Text 3Packages) 即可。但这并不是一个比较好的实现方式,因为很容易被发现且在做大范围分发的时候不太好
例如Poc:
Shell |
更好的后门
更好的后门应该是从文本中没办法直接被杀毒直接识别,从远程加载恶意代码,本地的插件仅作为一个加载器,将远程恶意代码执行,注入内存中直接执行、具备迁移性、能够快速在任意机器上执行,最理想情况下能够发布到插件系统(理想情况下,这种就是供应链攻击啦);那么我们就开始做一个好的后门,此时就需要按照插件开发流程走了
1. 插件代码开发-Python Shellcode加载器
在下列代码中,我们使用requests从远程服务器获取到shellcode,然后再执行;从文本上来看,这个代码没啥问题,不易被杀毒软件识别(PS: 需要注意的是requests不是默认python模块,所以可以使用urllib来代替)
Shell |
2. 构建插件包
构建一个插件包文件,我们可以轻松地将其分发到其他系统。为此,请在 Sublime 中打开持久性脚本,Ctrl + Shift + P然后按Create PackageYour packageDefault。Sublime 将在您的桌面上创建包文件。
注意:文件.sublime-package只是一个具有不同扩展名的 zip 文件,其中包含您的插件代码。此时在lib中需要包含本次load.py执行的所有三方依赖,不然构建后在其他机器上使用时会因为缺少模块无法快速执行
3. 分发包
.sublime-package我们只需将这个文件放在其他系统上即可进行持久性设置,Sublime Text 3Packages不需要目录中的内容。只需将您的文件上传.sublime-package到目标%APPDATA%Sublime Text 3Installed Packages文件夹即可。
原文始发于微信公众号(暴暴的皮卡丘):windows持久化后门之Sublime
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论