Cobalt Strike是一款由Java编写的全平台多方协同渗透测试框架,早期版本依赖Metasploit框架,3.0版本之后独立成一个渗透测试平台,分为多个客户端Client与一个服务端Teamserver,因而可进行团队分布式协作。
Cobalt Strike集成了端口转发、端口扫描、多模式端口监听、Socket代理、提权、钓鱼、远控木马等功能。该工具几乎覆盖了APT攻击链中的各个技术环节,且其最大的优点在于可以进行团队分布式协作和拥有优越的UI。
Cobalt Strike服务端需要Java运行环境,建议安装JDK 8以上的版本。我们可以在终端中输入“java-version”查看自己是否已经安装Java运行环境,如图1-49所示。
图1-49 安装Java运行环境
如果未返回信息,则表示服务器还未安装Java运行环境。在命令行下输入“Java”,根据提示安装合适的版本。将Cobalt Strike的压缩文件上传至服务器的cobalt目录下,实验环境以Cobalt Strike 4.5版本为例。输入解压缩命令“rar x CobaltStrike4.5.rar”,得到Cobalt Strike安装目录,目录结构如表1-4所示。
表1-4 Cobalt Strike目录结构
Cobalt Strike服务端的关键文件是teamserver,服务端一般运行在Linux操作系统上,客户端则运行在Windows或Linux操作系统上。运行前需要给teamserver赋权,输入下面的命令。
赋予teamserver可执行权限之后,在命令行下显示为绿色,这样就可以通过输入“./teamserver”来运行它了,如图1-50所示。
图1-50 赋予teamserver可执行权限
然后运行./teamserver 192.168.101.104123456。图1-51所示的返回信息表示服务端已经成功开启,从图中可以看到开启的端口为50050。
图1-51 teamserver成功启动
因为虚拟机Kali作为teamserver,却经常出现自动刷新DHCP获取新IP地址的情况,所以需要将Kali配置成静态IP地址。具体操作是:在终端命令行输入“leafpad /etc/network/interfaces”,然后添加以下内容。
配置成静态IP地址192.168.101.104,再修改DNS配置文件/etc/resolv.config。添加如下内容后重启Kali,配置即可生效。
在Windows 10中解压缩CobaltStrike4.5.rar,打开cobaltstrike.bat文件,在弹出的“连接”窗口中输入主机IP地址192.168.101.104,端口默认为50050,用户默认为neo,密码处输入服务端配置的密码123456,如图1-52所示。
图1-52 配置客户端
单击“连接”按钮后弹出查看服务器指纹是否一致的提示信息,默认选择“是”,出现如图1-53所示的界面,表示已经成功连接至服务端。
Beacon会话交互是Cobalt Strike的核心功能,用于与远程控制被控端建立加密通道以进行执行命令、上传和下载文件、执行PowerShell脚本等各种任务。
shell命令用于执行DOS命令,如图1-54所示。
图1-53 成功连接服务端
图1-54 执行DOS命令
upload命令用于上传文件,如图1-55所示。
图1-55 上传文件
sleep命令用于减少通信延迟时间。因为Cobalt Strike默认目标主机与teamserver的通信时间为60s,这让执行命令或其他的操作响应变得很慢,所以可利用此命令进行修改,此处修改成10s,如图1-56所示。
图1-56 减少通信延迟时间
另外,可以用help命令查看更多的Beacon命令,如图1-57所示。
图1-57 help命令
在Metasploit渗透框架中,以下命令用于生成一个使用Meterpreter反向TCP连接的Windows x64木马。
运行后在控制台上输出C#格式的ShellCode,如图1-58所示。
图1-58 生成反弹ShellCode
在Metasploit渗透框架中,一般使用msfconsole命令生成监听连接,以等待来自目标主机上Meterpreter反向Shell的连接。具体命令如下所示。
首先使用use exploit/multi/handler命令来选择Meterpreter反向Shell的exploit模块,接着使用set命令配置payload的类型、监听的主机和监听的端口,最后使用exploit命令启动监听器,如图1-59所示。
图1-59 监听反弹连接
使用Metasploit的msfvenom工具生成本地计算器的ShellCode,具体命令如下。
运行后显示的是一段不可阅读的二进制内容,如图1-60所示。
图1-60 生成二进制文件
如果想对其进行Base64编码,可以使用管道符将前面命令的输出传递给Base64命令。经过修改的命令如下。
运行结果如图1-61所示。
使用Metasploit提供的msfvenom工具生成一个用于在Windows x64平台上执行calc.exe计算器的攻击载荷,具体命令如下所示。
图1-61 二进制文件转换成Base64
命令执行后,在控制台输出一段Python格式的ShellCode,如图1-62所示。
图1-62 生成Python版的ShellCode
表1-5给出了攻击载荷命令中一些常用参数的详细说明。
表1-5 msfvemom生成攻击载荷命令