0X01 环境准备
Cobalt Strike安装包(链接:https://pan.baidu.com/s/1wCHJcJrF6H0wUCdetz3Xjg 提取码:rjuj)
Cobalt Strike服务端:kali(不限于kali,但需要时Linux系统)
Cobalt Strike客户端:Windows 7
0X02 Cobalt Strike介绍
Cobalt Strike是一款美国 Red Team 开发的渗透测试平台,大佬们都称之为 "CS " (后面为了描(tou)述(lan),也沿用此称谓)。
CS 以Metasploit为基础,集成了扫描、端口转发、提权、Socket代理、木马生成、文件捆绑、网站克隆、多模式端口监听、自动化溢出、钓鱼攻击等强大的功能,该工具几乎覆盖了APT攻击链中所需要用到的各个技术环节。
CS的强大主要用于大型APT组织的团队作战,采用C/S架构,能让各个地方的团队成员同时连接到团队服务器,共享信息资源和攻击成果,可谓是团队作战的神兵利器,因其强大的功能和灵活的架构,已成为各大APT组织的首选。
CS这么好用,其实是一款需要付费的项目,价格也不高(๑乛◡乛๑),3500刀/年,支持正版的小伙伴出门右拐:
CS项目官网地址:https://www.cobaltstrike.com
Cobalt Strike文件结构
这里使用的是CS 3.14版本,下载Cobalt Strike之后,其文件结构如下所示:
部分文件解释说明:
│ agscript 拓展应用的脚本
│ c2lint 检查profile的错误异常
│ cobaltstrike
│ cobaltstrike.jar 客户端程序
│ icon.jpg 图标
│ license.pdf 许可证文件
│ readme.txt
│ releasenotes.txt
│ teamserver 服务端程序
│ update
│ update.jar 更新程序
│
└─third-party 第三方工具
README.vncdll.txt
vncdll.x64.dll
vncdll.x86.dll
0X03 Cobalt Strike服务端安装
将CS文件夹拷贝到Linux主机下,这里需要注意一下,需要提前安装 java 环境,我这里是kali,已经集成了 openjdk 环境。
切到CS目录下,服务端安装使用teamserver脚本文件:
接下来直接运行脚本配置团队服务器IP与密码即可:
./teamserver 服务器IP 密码
到这里,CS服务端的搭建就完成了,so easy!!!
0X04 客户端上线
将CS文件夹拷贝到windows机器下,运行“cobaltstrike.exe”文件:
运行后会弹出一个框,输入我们前面搭建好的团队服务器 IP 地址,默认端口50050,不用设置,用户名随意,密码也是前面配置团队服务器用到的密码,然后点击“Connect”连接服务器:
首次连接会提示校验服务端哈希,确认我们连接的服务器是自己团队的,指纹信息应和配置团队服务器后生成的哈希值相同。
至此,我们就完成了CS的服务端部署和客户端上线:
0X05 主要功能说明
(1)Listeners
使用CS时需要先创建一个Listerer(监听器),可以理解为用来监视我们的目标主机,并接收目标主机权限的模块。
打开方式:点击Cobalt Strike—>Listeners,或者点击工具栏的耳机图标。
然后点击Add即可添加需要的Listeners了,Cobalt Strike 3.14 包括9种监听方式:
windows/beacon_dns/reverse_dns_txt
windows/beacon_dns/reverse_http
windows/beacon_http/reverse_http
windows/beacon_https/reverse_https
windows/beacon_smb/bind_pipe
windows/foreign/reverse_dns_txt
windows/foreign/reverse_http
windows/foreign/reverse_https
windows/foreign/reverse_tcp
其中windows/beacon是CS自带的模块,包括dns、http、https、smb四种监听方式;windows/foreign为外部监听器,即msf或者Armitage的监听器。
选择监听器后,配置好主机IP和端口,然后保存,监听器就创建完成了。
(2)Attacks
创建好了监听器,就可以利用各种攻击手段攻陷我们的目标了。CS包括多中攻击方式.
Packages
HTML Application
生成恶意的HTA木马文件MS Office Macro
生成office宏病毒文件Payload Generator
生成各种语言版本的payloadUSB/CD AutoPlay
生成利用自动播放运行的木马文件Windows Dropper
捆绑器,能够对文档类进行捆绑;Windows Executable
生成可执行exe木马;Windows Executable(S)
生成无状态的可执行exe木马。
Web Drive-by(钓鱼攻击)
Manage
对开启的web服务进行管理;Clone Site
克隆网站,可以记录受害者提交的数据;Host File
提供一个文件下载,可以修改Mime信息;Scriptes Web Delivery
类似于msf 的web_delivery ;Signed Applet Attack
使用java自签名的程序进行钓鱼攻击;Smart Applet Attack
自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本;System Profiler
用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等。
Spear Phish
用于制作钓鱼邮件攻击。
(3)View
View模块可以方便测试者查看各个模块,图形化的界面可以方便的看到受害者机器的各个信息。
Applications
显示受害者机器的应用信息;Credentials
显示受害者机器的凭证信息,能更方便的进行后续渗透;Downloads
文件下载;Event Log
可以看到事件日志,清楚的看到系统的事件,并且团队可以在这里聊天;Keystrokes
查看键盘记录;Proxy Pivots
查看代理信息;Screenshots
查看屏幕截图;Script Console
在这里可以加载各种脚本以增强功能,脚本地址戳我;Targets
查看目标;Web Log
查看web日志。
beacon
beacon为CS 内置监听器,当我们在目标系统成功执行payload以后,会弹回一个beacon的shell给CS.
我们也可以理解为beacon就是我们目标主机的shell,不管我们何种方式获取shell后,就可以使用beacon,当目标主机上线后,右击目标主机,点击Interact,就打开了beacon:
这里需要注意,beacon的命令和操作系统的shell不太一样,比如cmd下查看IP信息用“ipconfig”命令,在beacon下则用“shell ipconfig”。
可以在beacon下输入“help”命令查看可以使用的命令:
Beacon>help
Command Description
------- -----------
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peer over TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程VNC
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 尝试提权
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 退出beacon
getprivs Enable system privileges on current token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peer over a named pipe
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 Set parent PID for spawned post-ex jobs
ps 显示进程列表
p**ec Use a service to spawn a session on a host
p**ec_psh Use PowerShell to spawn a session on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program under another PID
screenshot 屏幕截图
setenv 设置环境变量
shell cmd执行命令
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as another user
spawnto Set executable to spawn processes into
spawnu Spawn a session under another PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink Disconnect from parent Beacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
argue 进程参数欺骗
原文出处:https://www.cnblogs.com/k1ng/p/12168709.html
来源:oschina
链接:https://my.oschina.net/u/4331227/blog/3242566