目录
Cobalt Strike是一款内网渗透测试工具,常被业界人称为CS。Cobalt Strike 2.0版本主要是结合Metasploit可以称为图形化MSF工具。而Cobalt Strike 3.0已经不再使用Metasploit框架而作为一个独立的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。客户端模式和服务端模式可以在Windows以及Linux上运行这里要注意服务端模式在Windows下运行时有可能会出现一些细小的问题不过影响不大。可以很好的解决metasploit对Windows支持不够好的问题。
Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等。
可以在云服务器也可以使用虚拟机作为服务器,这里以kali Linux为例
将CS的整个文件夹拖进kali,切换到该目录,执行如下命令:
./teamserver 192.168.249.128 666666
其中666666为自定义的连接密码,前面是我kali的IP地址
可以看到:Team server is up on 50050(默认就是50050端口,不用修改)
物理机上也装了CS,运行文件夹中的start.bat文件(汉化版叫cs.bat)
输入刚才在服务端设置的IP地址和密码,用户名可以随意取
连接成功后如下图所示:
这里我启动的是cs.bat,即中文版的
在前面介绍里我们说过,客户端可以有多个,因此我们再启动一个英文版的试试
为了区别,名字我取为myon2
同样也可以连接
并且加入的客户端之间可以通信(团队合作)
也就是加载CS插件
加载设置的监听器,这里假设我们生成一个exe,并勾选上x64
点击generate后选择保存的位置
这里我再开一台win7,让其下载刚才生成的木马文件
假设用户不小心运行了该文件
此时客户端都可以看到有人上线
修改延迟时间(接收频率)
右键CS上线的目标,会话->sleep
默认是60s,这里我们改成1s
右键,进入Beacon
可以看到修改后的是以毫秒计算
右键目标,尝试dump hash,发现需要administrator权限,而我们只是user权限
那么我们先尝试进行提取
需要选择监听器
提权方式有两种:svc和uac
这里尝试svc未成功,而uac提权成功
并且反弹了Myon*的用户权限
同样修改一下sleep的值,然后进入Beacon
再次尝试获取哈希值
可以执行成功,但是没有得到结果
对Myon*再次提权
这里使用svc方式,成功提权到system*权限
同样修改sleep值后进入Beacon,使用管理员权限dump hash
获取成功!
此外还有很多其他功能:
Golden Ticket(黄金票据)
它能让黑客在拥有普通域用户权限和krbtgt hash的情况下,获取域管理员权限,在域渗透中非常常用。
Make Token(制作令牌)
可以选择相关凭据制作成令牌让Beacon使用这个新令牌,这将获得一个新令牌与之前的令牌在本地无法区分,当使用Beacon的getuid命令查询令牌的身份时,将返回当前用户,当使用shell whoami时也将返回当前用户,只有当访问Windows远程网络资源时如Windows共享等,才会使用make_token提供的令牌。
One-liner
这个功能是在目标机的本地开启一个web服务(仅监听本地127.0.0.1,且随机端口无法指定,被访问一次后随即关闭web服务)并在上面托管一个powershell脚本,随后生成一个powershell命令行,这个命令行就是用来请求执行本地托管的powershell脚本的。
Mimikatz
运行Mimikatz的logonpasswords命令
Spawn As
使用其他用户权限生成一个会话,需要用户名、密码、监听器、域
Browser Pivot
如果对方正在使用IE浏览器,那么在上图就会出现IE浏览器进程,这时我们可以选择它然后点击Launch这样会开启一个代理,使用此代理可以直接登录,对方使用IE以登录的网站,而无需密码,一般来说现在没啥用。
Desktop (VNC)
VNC远程桌面,可以进行一些操作,注意使用这个功能一定要确保服务端上的CS目录里有third-party文件夹并且文件夹里有vnc dll,否则无法使用此功能。
File Browser
就是普通的文件管理
Net View
执行Net View命令
Port Scan
端口扫描工具,可以选择目标范围,扫描端口,最大连接数,目标发现方式(有三种选项:arp方法使用 ARP 请求来发现一个主机是否存活;icmp 方法发送一个 ICMP echo 请求来检查一个目标是否存活;none 选项让端口扫描工具假设所有的主机都是存活的,也就是不判断主机是否在线直接扫描端口)
Process List
显示进程列表
Screenshot
屏幕截图