人人都可写cs插件之安全进程识别
字数 911 2025-08-09 22:00:49

Cobalt Strike插件开发:安全进程识别工具

0x00 前言

在渗透测试过程中,当Cobalt Strike (CS)上线后,快速识别目标主机上运行的安全软件是至关重要的。虽然有在线查询等方式,但开发一个一键式工具会更加高效。本文将详细介绍如何从零开始开发一个CS插件,用于识别常见安全软件的进程。

0x01 实现原理

C#可执行文件实现

核心代码通过C#编写,主要功能包括:

  1. 接收命令行参数
  2. 枚举系统进程
  3. 与预定义的安全软件进程列表比对
  4. 输出匹配的安全软件信息
class Program
{
    static void Main(string[] args)
    {
        System.Console.WriteLine("");
        System.Console.WriteLine("Author: 西米");
        System.Console.WriteLine("Github: https://gitee.com/git63/cobalt-strike-plug-in-unit.git");
        System.Console.WriteLine("");
        
        if (args.Length != 1)
        {
            System.Console.WriteLine("ximi_cs -autoSafety");
        }
        
        if (args.Length == 1 && (args[0] == "-autoSafety"))
        {
            Console.WriteLine("");
            Console.WriteLine("-安全软件进程识别-");
            Console.WriteLine("");
            av_nameCheck();
        }
        Console.ReadKey();
    }
    
    // 安全进程识别
    private static void av_nameCheck()
    {
        av_name pavname = new av_name();
        Dictionary<string, string> av_dicnName2 = pavname.dicavname();
        Process[] procs = Process.GetProcesses(Environment.MachineName);
        
        Console.WriteLine("=存在安全进程====(Security software processes exist)");
        for (int i = 0; i < procs.Length; i++)
        {
            string processname = procs[i].ProcessName;
            foreach (var key in av_dicnName2.Keys)
            {
                if (processname.Equals(key))
                {
                    Console.WriteLine(key + ":" + av_dicnName2[key]);
                }
            }
        }
        Console.WriteLine("=END=");
    }
}

CS插件集成方式

在Cobalt Strike中,可以通过多种方式集成这个功能:

  1. 直接执行命令:使用bshellbpowerpick等函数执行命令行指令
  2. 反射式DLL:编写为Reflective DLL,使用bdllspawn加载
  3. 普通DLL:编写为标准DLL,使用bdllinjectbdllload加载
  4. .NET程序集:使用bexecute_assembly在内存中执行
  5. 独立EXE:上传EXE文件并用bexecute执行

0x02 插件结构

插件主要包含两个文件:

  1. main.cna - 定义插件的目录结构和基本框架
  2. 信息收集.cna - 包含安全进程识别的具体实现

0x03 支持的安全软件列表

该插件支持识别以下安全软件的进程:

// 进程名称与对应软件
av_dicnName.Add("ZhuDongFangYu", "360主动防御");
av_dicnName.Add("360tray", "360安全卫士");
av_dicnName.Add("360sd", "360杀毒");
av_dicnName.Add("a2guard", "a-squared杀毒");
av_dicnName.Add("ad-watch", "Lavasoft杀毒");
av_dicnName.Add("cleaner8", "The Cleaner杀毒");
av_dicnName.Add("vba32lder", "vb32杀毒");
av_dicnName.Add("MongoosaGUI", "Mongoosa杀毒");
av_dicnName.Add("CorantiControlCenter32", "Coranti2012杀毒");
av_dicnName.Add("F-PROT", "F-PROT杀毒");
av_dicnName.Add("CMCTrayIcon", "CMC杀毒");
av_dicnName.Add("K7TSecurity", "K7杀毒");
av_dicnName.Add("UnThreat", "UnThreat杀毒");
av_dicnName.Add("CKSoftShiedAntivirus4", "Shield Antivirus杀毒");
av_dicnName.Add("AVWatchService", "VIRUSfighter杀毒");
av_dicnName.Add("ArcaTasksService", "ArcaVir杀毒");
av_dicnName.Add("iptray", "Immunet杀毒");
av_dicnName.Add("PSafeSysTray", "PSafe杀毒");
av_dicnName.Add("nspupsvc", "nProtect杀毒");
av_dicnName.Add("SpywareTerminatorShield", "SpywareTerminator杀毒");
av_dicnName.Add("BKavService", "Bkav杀毒");
av_dicnName.Add("MsMpEng", "Microsoft Security Essentials");
av_dicnName.Add("SBAMSvc", "VIPRE");
av_dicnName.Add("ccSvcHst", "Norton杀毒");
av_dicnName.Add("QQ", "QQ");
av_dicnName.Add("f-secure", "冰岛");
av_dicnName.Add("avp", "卡巴斯基");
av_dicnName.Add("KvMonXP", "江民杀毒");
av_dicnName.Add("RavMonD", "瑞星杀毒");
av_dicnName.Add("Mcshield", "麦咖啡");
av_dicnName.Add("egui", "NOD32");
av_dicnName.Add("kxetray", "金山毒霸");
av_dicnName.Add("knsdtray", "可牛杀毒");
av_dicnName.Add("TMBMSRV", "趋势杀毒");
av_dicnName.Add("avcenter", "Avira(小红伞)");
av_dicnName.Add("ashDisp", "Avast网络安全");
av_dicnName.Add("rtvscan", "诺顿杀毒");
av_dicnName.Add("ksafe", "金山卫士");
av_dicnName.Add("QQPCRTP", "QQ电脑管家");
av_dicnName.Add("Miner", "流量矿石");
av_dicnName.Add("AYAgent.aye", "韩国胶囊");
av_dicnName.Add("patray", "安博士");
av_dicnName.Add("V3Svc", "安博士V3");
av_dicnName.Add("avgwdsvc", "AVG杀毒");
av_dicnName.Add("ccSetMgr", "赛门铁克");
av_dicnName.Add("QUHLPSVC", "QUICK HEAL杀毒");
av_dicnName.Add("mssecess", "微软杀毒");
av_dicnName.Add("SavProgress", "Sophos杀毒");
av_dicnName.Add("fsavgui", "F-Secure杀毒");
av_dicnName.Add("vsserv", "比特梵德");
av_dicnName.Add("remupd", "熊猫卫士");
av_dicnName.Add("FortiTray", "飞塔");
av_dicnName.Add("safedog", "安全狗");
av_dicnName.Add("parmor", "木马克星");
av_dicnName.Add("beikesan", "贝壳云安全");
av_dicnName.Add("KSWebShield", "金山网盾");
av_dicnName.Add("TrojanHunter", "木马猎手");
av_dicnName.Add("GG", "巨盾网游安全盾");
av_dicnName.Add("adam", "绿鹰安全精灵");
av_dicnName.Add("AST", "超级巡警");
av_dicnName.Add("ananwidget", "墨者安全专家");
av_dicnName.Add("AVK", "GData");
av_dicnName.Add("ccapp", "Symantec Norton");
av_dicnName.Add("avg", "AVG Anti-Virus");
av_dicnName.Add("spidernt", "Dr.web");
av_dicnName.Add("avgaurd", "Avira Antivir");
av_dicnName.Add("vsmon", "ZoneAlarm");
av_dicnName.Add("avpe", "Kaspersky");
av_dicnName.Add("cpf", "Comodo");
av_dicnName.Add("outpost", "Outpost Firewall");
av_dicnName.Add("rfwmain", "瑞星防火墙");
av_dicnName.Add("kpfwtray", "金山网镖");
av_dicnName.Add("FYFireWall", "风云防火墙");
av_dicnName.Add("MPMon", "微点主动防御");
av_dicnName.Add("pfw", "天网防火墙");
av_dicnName.Add("S", "在抓鸡");
av_dicnName.Add("1433", "在扫1433");
av_dicnName.Add("DUB", "在爆破");
av_dicnName.Add("ServUDaemon", "发现S-U");
av_dicnName.Add("BaiduSdSvc", "百度杀软");
av_dicnName.Add("SafeDogGuardCenter", "安全狗");
av_dicnName.Add("safedogupdatecenter", "安全狗");
av_dicnName.Add("safedogguardcenter", "安全狗");
av_dicnName.Add("SafeDogSiteIIS", "安全狗");
av_dicnName.Add("SafeDogTray", "安全狗");
av_dicnName.Add("SafeDogServerUI", "安全狗");
av_dicnName.Add("D_Safe_Manage", "D盾");
av_dicnName.Add("d_manage", "D盾");
av_dicnName.Add("yunsuo_agent_service", "云锁");
av_dicnName.Add("yunsuo_agent_daemon", "云锁");
av_dicnName.Add("HwsPanel", "护卫神·入侵防护系统(状态托盘)");
av_dicnName.Add("hws_ui", "护卫神·入侵防护系统 - www.huweishen.com");
av_dicnName.Add("hws", "护卫神·入侵防护系统 服务处理程序");
av_dicnName.Add("hwsd", "护卫神·入侵防护系统 监控组件");
av_dicnName.Add("hipstray", "火绒");
av_dicnName.Add("wsctrl", "火绒");
av_dicnName.Add("usysdiag", "火绒");

0x04 使用说明

  1. 将插件文件上传到Cobalt Strike服务器
  2. 通过load命令加载插件
  3. 使用插件提供的命令执行安全进程检测
  4. 查看输出结果,识别目标主机上运行的安全软件

0x05 注意事项

  1. 中文环境下可能会出现乱码问题
  2. 插件需要根据实际需求定期更新安全软件进程列表
  3. 在某些安全软件保护下,枚举进程可能会被拦截
  4. 建议在多种环境下测试插件的兼容性

0x06 扩展建议

  1. 可以增加进程路径检测,提高准确性
  2. 可以添加服务检测功能,识别以服务形式运行的安全软件
  3. 可以集成驱动检测功能,识别已加载的安全驱动
  4. 可以添加自动更新功能,定期从远程服务器获取最新的安全软件特征

通过这个插件,渗透测试人员可以快速了解目标主机的安全防护情况,为后续的攻击策略制定提供重要参考。

Cobalt Strike插件开发:安全进程识别工具 0x00 前言 在渗透测试过程中,当Cobalt Strike (CS)上线后,快速识别目标主机上运行的安全软件是至关重要的。虽然有在线查询等方式,但开发一个一键式工具会更加高效。本文将详细介绍如何从零开始开发一个CS插件,用于识别常见安全软件的进程。 0x01 实现原理 C#可执行文件实现 核心代码通过C#编写,主要功能包括: 接收命令行参数 枚举系统进程 与预定义的安全软件进程列表比对 输出匹配的安全软件信息 CS插件集成方式 在Cobalt Strike中,可以通过多种方式集成这个功能: 直接执行命令 :使用 bshell 、 bpowerpick 等函数执行命令行指令 反射式DLL :编写为Reflective DLL,使用 bdllspawn 加载 普通DLL :编写为标准DLL,使用 bdllinject 或 bdllload 加载 .NET程序集 :使用 bexecute_assembly 在内存中执行 独立EXE :上传EXE文件并用 bexecute 执行 0x02 插件结构 插件主要包含两个文件: main.cna - 定义插件的目录结构和基本框架 信息收集.cna - 包含安全进程识别的具体实现 0x03 支持的安全软件列表 该插件支持识别以下安全软件的进程: 0x04 使用说明 将插件文件上传到Cobalt Strike服务器 通过 load 命令加载插件 使用插件提供的命令执行安全进程检测 查看输出结果,识别目标主机上运行的安全软件 0x05 注意事项 中文环境下可能会出现乱码问题 插件需要根据实际需求定期更新安全软件进程列表 在某些安全软件保护下,枚举进程可能会被拦截 建议在多种环境下测试插件的兼容性 0x06 扩展建议 可以增加进程路径检测,提高准确性 可以添加服务检测功能,识别以服务形式运行的安全软件 可以集成驱动检测功能,识别已加载的安全驱动 可以添加自动更新功能,定期从远程服务器获取最新的安全软件特征 通过这个插件,渗透测试人员可以快速了解目标主机的安全防护情况,为后续的攻击策略制定提供重要参考。