前言:本篇是个人学习的笔记,由于cobalt中文学习资料实在不多,因此算是看各方教程和cobalt官方视频的一个总结。如果有什么错误的地方请指出。
官方英文文档:https://www.cobaltstrike.com/downloads/csmanual40.pdf
简介
Cobalt Strike是一款超级好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等多种功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具,因此广受技术大佬的喜爱。(简介转自i春秋)
安装与启动
ps: cobalt3.8等新版本在kali2上使用需要重新装过java。
ps:以下皆为kali2环境,使用的是3.8的破解版
cobalt strike使用的是c/s架构,
客户端启动:在下载的cobalt包内输入./cobaltstrike
,然后输入你所要连接的cobalt服务器地址和密码即可。
客户端点击new connection可以连接多个cobalt strike服务器进行工作。
服务端启动:输入./teamserver (自身ip) (设置本服务器密码) (可选:其他配置)
例如 ./teamserver 192.168.72.134 123456
则客户端输入以上地址和密码就能够登录此服务器。
渗透
监听器(listener)
监听器就是在服务器端负责监听某个端口的响应并作出反应的模块。需要设置其paload来配置其通信的方式。
设置监听器
以上两种方法都能打开监听器的管理窗口
监听器大体分为两类beacon和foreign
- beacon类为Cobalt Strike 自身监听器,包括dns,http,https,smb四种方式的监听器
- foreign类为外部监听器,通常与MSF或者Armitage联动等等
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/beacon_tcp/bind_tcp
windows/foreign/reverse_http
windows/foreign/reverse_https
windows/foreign/reverse_tcp
个人理解:
目标主机系统 / 服务器端通信模块 / 目标端通信模块
(模块名含有通信所使用的方式)
beacon浅析
1.http(s) beacon
- 发送攻击文件(比如危险链接或者exe文件等)
- 攻击成功后,传输器通过HTTP的GET协议从下载beacon模块。
- 通过HTTP的GET协议下载任务,并使用POST协议返回数据到服务端。
ps:传输器只是一个占用内存很小的专门下载beacon、meterpreter等部件的模块,在下载完beacon后才构建起通信。
2.DNS beacon
攻击模块被执行后,传输器会利用DNS查询服务器端构建的一个ip地址,让服务器端响应的文件附带beacon等模块,然后构建起通信。
上图所示的就是目标主机通过网关在外部从顶级DNS服务器逐渐找到服务端所在服务器的过程。
3.SMB beacon
不难看出, 这是在已有 Beacon (父 Beacon) 中使用 SMB 进行连接的, 在一定程度上可以达到规避防火墙的效果。
点击spawn然后选择刚才创建的smb监听器即可使用smb beacon。构建好的连接会如上图所示出现∞∞。
注意:监听器设置除了smb和foreign外一般都存在以上两个框的设置。按照官方教程中所说的,其中第一个的host设置是告诉传输器从哪下载beacon,第二个host的设置是告诉目标上的beacon将消息传送到的客户端地址。因为我都在同一台电脑上,因此就都是一样的。