aggressor脚本简介(对CobaltStrike进行功能扩展)

aggressor脚本简介(对CobaltStrike进行功能扩展),第1张

aggressor脚本简介(对CobaltStrike进行功能扩展) aggressor脚本 简介

CobaltStrike是一款渗透测试工具,它有一个极好的特点,那就是支持功能扩展,用户可以根据自己的需要进行设计。而对CobaltStrike进行功能扩展就需要用到aggressor脚本,由sleep语言解析。关于sleep语言,网上的资料较少,这里也不做深入的介绍,想查看更多的资料可以访问sleep语法手册和CobaltStrike官网。

这里引用一段语法手册的话,让大家了解一下sleep(自己翻译的,可能有误。。)

The java world currently has Jacl for TCL, Jython for Python, and JRuby for Ruby. One offering is missing from this bunch: what Java scripting language exists for the Perl hackers of the world?Sleep is a Java-based scripting language heavily inspired by Perl. 
java世界中有用于TCL的Jacl,用于Python的Jython和用于Ruby的JRuby,但在这一系列的(语言)中缺少了一个东西:这个世界上(使用)Perl(的)黑客使用的Java脚本语言是什么?Sleep是一种深受Perl语言启发的基于Java的脚本语言。
运行方法 命令行

需要先下载sleep语言

然后在命令行中输入java -jar sleep.jar

然后可以在文件中编写代码,用load命令加载,如load ./test.cna

aggressor脚本的后缀为.cna

CobaltStrike

点击script console进入脚本控制台

然后用load命令加载文件,如load /root/Desktop/test/cna

需要注意的是,更改代码文件后需要重新加载时,在命令行中用load命令加载就行,在CobaltStrike脚本控制台中重新加载要用reload,而且重新加载不用带路径,直接写文件名就行,不这样反而会报错。

语法 输出

使用println()进行输出,如

println("hello world");

变量

使用$来定义变量,注意=符号前后都需要有空格,如

$x = 2;
println($x);

数组

使用@来定义数组,如

@arr = @('s1','s2',887);#定义数组
println(@arr);#输出整个数组
foreach $i (@arr){#利用循环逐个输出
	println($i);
}

字典

用%来定义字典,如

$y = 34;
%dic["key1"] = "value1";#字典是键值对的形式
%dic["k2"] = "v2";#把键设为k2,把键对应的值设为v2
%dic[$y] = "v3";
%dic["k3"] = $y;#变量也可以当成键和值
println(%dic);

函数

用sub来定义函数,如

sub fun{#定义函数
	println("i am function");
}
fun()#调用函数

实战

以下将会利用上面的基本知识对CobaltStrike进行一些简单的自定义(功能扩展)

自定义命令

利用command进行自定义命令,如

sub fun{
	println("i am function");
}
command f1{#定义命令f1
	fun();#命令内容
}

自定义快捷键

用bind自定义快捷键,如

bind Ctrl+W{
	show_message("hello");#显示信息(d窗)
	elog("world");#显示到日志(log)上
}

自定义菜单

用popup和menubar来自定义菜单,如

popup menu1{#定义popup函数
	item("&apple",{show_message("i am apple")});#定义某一项的名字和内容
	separator();#加分割
	item("&orange",{show_message("i am orange")});#这一项名字为orange,点击后会输出i am orange
}
menubar("fruits","menu1");#用menubar来收写好的popup函数,相当于上面是函数的定义,下面是调用(使用)

自定义beacon的按钮(菜单)

用popup beacon_bottom来进行定义,如

popup beacon_bottom{
	menu "sites"{
	item("&baidu",{url_open("http://www.baidu.com")});
	item("&cctv",{url_open("http://www.cctv.com")});
}
}

popup beacon_bottom{
	menu "sites"{
		item "baidu" {
		 url_open("http://www.baidu.com");
		}
		item "cctv" {
			url_open("http://www.cctv.com");
		}
}
}

总结

这里介绍的虽然只是aggressor脚本和sleep语言的比较基础的内容,但是通过这些内容已经可以了解编写CobaltStrike功能扩展的思路和基本方法(新增菜单、按钮、命令之类的不都属于功能拓展吗,要进行更深入更贴近实战的学习,可以去github上看看大佬们的脚本。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5716624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存