渗透测试神器CobaltStrike使用教程

简介:

Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。

Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。

CobaltStrike官网

环境:Java

设备:Windows或Linux均可(推荐服务端使用Linux服务器)

目录文件和功能介绍:

代码语言:javascript代码运行次数:0运行复制 agscript:扩展应用的脚本

c2lint:该文件主要检查profile的错误和异常

teamserver:服务端启动程序

cobaltstrike.jar:CobaltStrike主要核心程序

cobaltstrike.auth:用于客户端和服务端认证的文件(建议自己有时间可以查看一下cs的源码)

cobaltstrike.store:密钥证书存放文件 data:用于保存当前TeamServer的数据

logs:日志文件(web日志、Beacon日志、截图日志、下载日志、键盘记录日志等等)

third-party:第三方工具目录

AggressorScripts-master:插件目录 复制使用教程:

(1)服务端:

1.首先我们在服务端安装Java环境,这个非常简单就不在这里赘述了,不会请自行百度解决。

2.cd切换到下载好的CobaltStrike工具文件夹目录,启动运行服务端。

代码语言:javascript代码运行次数:0运行复制./teamserver ip 密码

nohub ./teamserver ip 密码 //后台运行,关闭终端依旧运行

注意:cs默认监听端口为50050,可以打开teamserver文件,修改端口

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

必需参数 服务器IP

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

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

[YYYY-MM-DD] 可选参数 所有payload的终止时间 复制(2)客户端

1.连接到服务端。

代码语言:javascript代码运行次数:0运行复制java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar

需切换到CobaltStrike执行,Windows使用cmd执行命令。 复制2.创建监听器。

打开监听器→Add→添加一个监听器。

3.生成后门文件,并将生成的后门文件在对应客户端运行即可上线。

代码语言:javascript代码运行次数:0运行复制1.HTML Appliaction:生成一个恶意的HTML Appliacton木马,后缀为'.hta'。通过HTML调用其他语言的应用组件进行攻击,提供可执行文件。

2.MS Office Macro:生成office宏病毒文件。

3.Payload Generator:生成各种编程语言的payload(包含C、C#、COM Scriptlet、Java、Perl、Powershell、Python、Ruby、VBA)

4.Windows Executable:生成32位或64位的exe、dll可执行文件 5.Windows Executable(S):用于生成一个exe可执行文件,包含Beacon的完整payload,与4相比,该模块额外提供了代理功能,以便在比较严苛德环境下进行渗透测试。并且支持Powershell脚本,用于将Stageless Payload注入内存。 复制4.远控进行vnc,文件管理,进程查看等一系列操作。

(3)常用命令

代码语言:javascript代码运行次数:0运行复制 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 上传文件

wdigest 使用mimikatz转储明文凭据

winrm 使用WinRM在主机上生成会话

wmi 使用WMI在主机上生成会话 复制(4)其他:

这里仅仅介绍了CobaltStrike工具的一小部分功能,CobaltStrike是一款非常强大的远控工具,更多功能请自行深入探究。

实战免杀远控操作请看本人博客另一篇文章

最后送给大家一句话;“疯狂源自梦想,技术成就辉煌,实力创造价值!”

与诸君共勉,谢谢。