CS-插件篇
CS-插件篇
参考文章:
1 | http://sleep.dashnine.org/download/sleep.jar |
Sleep环境的搭建
C2:Cobalt Strike,一款多人运动工具,常常使用再后渗透阶段
Aggressor Script:是C2 3.0以上版本的一个内置的脚本语言,他是由Sleep脚本解析,Sleep脚本目前国内是没有中文版本的,可能是因为使用的人不多,在在后面我会去把这个语言进行翻译;在CS 3.0 以上的版本,菜单、选项、事件、都有默认的default.cna构建。我们可以使用一些IRC、Webhook去对接机器人和监控,比如瞎子哥的Server上线监听,以及梼杌等插件的编写,所以本文也会在他们的代码基础上去解释一些东西
由于 Aggressor Script是由Sleep解析的,所以我们先要安装一下这个语言的解释器,这个语言是基于Java的脚本语言
Sleep语言下载地址:http://sleep.dashnine.org/download/sleep.jar
- 快速使用:
java -jar sleep.jar
:
- 输出 hello word:
新建一个 cna 文件,cna是Aggressor Scrip脚本的后缀,然后在里面写:
1 | println("hello word"); |
简介
在 C4 中,我们可以打开 脚本控制台的控制台
这里我们可以使用 help查看一些帮助信息:
下面是介绍:
-
? 进行一个简单的判断,返回值为True或者False,例如
? int(1) == int(2)
返回为False:! -
e 执行我们写的代码,相当于交互模式,如果不加上
e
的话是无法执行的,例如e println("hello woed")
:
- load 加载 cna 脚本:
load <cna path>
:
这里加载的 cna 内容为
意思是创建一个 command 名字为 w,当输入w的时候就打印hello word。
-
ls 现实我们目前加载的 cna 代码:
-
proff :静止 cna 脚本运行Sleep的语法(不明白具体的作用)
-
profile:统计 cna 脚本使用了哪些 Sleep的语法:
-
pron 机翻:运行 cna 脚本运行Sleep的语法
-
reload:重新加载 cna脚本,还是用我们刚刚的脚本举例: 我先修改 cna 中的内容:
在到 控制台输入一下:
没有改变,我们重载一下在运行:
-
troff: 关闭函数跟踪,也就是我们不显示函数运行的具体情况:
-
tron: 开启函数跟踪,显示我们运行时的具体情况:
发现我们运行的情况,在1.cna的第三行,我们输出 hello my friend
- x:执行一个计算,比如1+1什么的,这里需要注意,两个数字之间需要间隔开,不然会报错:
Sleep快速入门
- 数字
- 字符串
- Arrays
- Lists
- Stacks
- Sets
- Hashs
这是他的数据类型,首先我们要注意的是,他的格式是一定需要带上空格的。
1 | $name = "kris"; # 字符串变量的命名 |
Arrays
这样可以对列表中的元素进行输出。格式话输出的语法是使用 .
进行拼接
Hashs
遍历
语法:
1 | @name_list = @('kris',18,'sichuan'); |
Push
这个类似我们的python中的append方法,在列表的最后面添加数据:
1 | @names = @("Hellen","Abao"); |
彩色输出
简单的来说就是让我们的控制台输出一个带颜色的字体:
1 | println("\c0This is my color"); |
在3.0版本以上,客户端界面的大部分东西都是使用 deafult.cna 构建出来的,菜单、默认按钮,包括我们日常上线的时候 Event log 的格式化输出。接下来我们就一一介绍
键盘快捷键
语法:
1 | bind <想绑定的组合键> |
我们绑定一个来试试看:
1 | bind Ctrl+H { |
菜单编写
菜单就是下面这样的东西:
我们可以自己定义想要的菜单或者将我们的二级菜单添加到已经存在的主菜单下,创建自定义菜单语法如下:
1 | popup <菜单函数名>{ |
我们现在定义一个简单的菜单:
1 | popup my_help{ |
当我们点击以后,会直接打开百度的链接
果我们并不想创建新的菜单,而是想在默认的菜单上增加,我们可以这样做:
1 | popup help{ |
这样我们就在与原有的基础上加上了一个关于汉化的提示,这里我们是加载外部的 cna ,你可以修改默认的 default.cna来添加自己的信息。
-
右键菜单的选择
除了上面说的那样的菜单,我们还会在点击右键的时候打开菜单,如下所示:
创建这样的菜单我们的语法为:
1 | popup beacon_bottom{ |
我们在任何的菜单里面都可以嵌套菜单,就整出一个多级菜单的样子,我们把上面的代码进行修改
1 | popup beacon_bottom{ |
多级菜单就是多了一个menu "右键显示的信息"{}
的写法,这里和上面菜单编写最大的区别就是没有menubar
的写法,因为我们是直接在右键菜单上进行修改的,也就是原有菜单上修改