一、介绍
1、CobaltStrike是一款渗透测试软件,分为客户端与服务端,可以进行团队分布式操作,服务端:1个,客户端:N个,被业界人称为CS神器。
2、CobaltStrike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,windows exe 木马生成,windows dll 木马生成,java 木马生成,office 宏病毒生成,木马捆绑。钓鱼攻击包括:站点克隆,目标信息获取,java 执行,浏览器自动攻击等等强大的功能!
二、安装
1、安装Java环境(kali)
上传到Kali中,解压:tar -xzvf jdk-8u191-linux-x64.tar.gz 移动到opt目录下: mv jdk1.8.0_191/ /opt/ 进入jdk目录:cd /opt/jdk1.8.0_191 执行 vim ~/.bashrc , 并添加下列内容 # install JAVA JDK export JAVA_HOME=/opt/jdk1.8.0_191 export CLASSPATH=.:${JAVA_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 保存退出 执行: source ~/.bashrc 执行: update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_191/bin/java 1 update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_191/bin/javac 1 update-alternatives --set java /opt/jdk1.8.0_191/bin/java update-alternatives --set javac /opt/jdk1.8.0_191/bin/javac 查看结果: update-alternatives --config java update-alternatives --config javac
2、安装、启动CobalStrike
上传到Kali中,解压:unzip cobaltstrike-linux.zip 进入cobalstrike中:cd cobaltstrike-linux/CobaltStrike一些主要文件功能如下:· agscript:扩展应用的脚本· c2lint:用于检查profile的错误和异常· teamserver:服务器端启动程序· cobaltstrike.jar:CobaltStrike核心程序· cobaltstrike.auth:用于客户端和服务器端认证的文件,客户端和服务端有一个一模一样的· cobaltstrike.store:秘钥证书存放文件一些目录作用如下:· data:用于保存当前TeamServer的一些数据· download:用于存放在目标机器下载的数据· upload:上传文件的目录· logs:日志文件,包括Web日志、Beacon日志、截图日志、下载日志、键盘记录日志等· third-party:第三方工具目录
启动服务端
(1)赋予teamserver文件可执行权限
(2)启动服务端
启动客户端(windows)
启动客户端(linux)
三、功能介绍
1、菜单栏
2、 CobaltStrike模块
· New Connection:打开一个新连接窗口
· Preferences:偏好设置,就是设置CobaltStrike外观的
· Visualization:将主机以不同的权限展示出来(主要以输出结果的形式展示)
· VPN Interfaces:设置VPN接口
· Listeners:创建监听器
· Script Interfaces:查看和加载CNA脚本
· Close:关闭
四、使用
1、创建监听器Listener
(1)点击左上方CobaltStrike选项,在下拉框中选择 Listeners ,在下方弹出区域中单机add。
CobaltStrike的内置监听器为Beacon,外置监听器为Foreign。CobaltStrike的Beacon支持异步通信和交互式通信。
Beacon为内置的Listener,即在目标主机执行相应的payload,获取shell到CS上;其中包含DNS、HTTP、HTTPS、SMB。Beacon可以选择通过DNS还是HTTP协议出口网络,你甚至可以在使用Beacon通讯过程中切换HTTP和DNS。其支持多主机连接,部署好Beacon后提交一个要连回的域名或主机的列表,Beacon将通过这些主机轮询。目标网络的防护团队必须拦截所有的列表中的主机才可中断和其网络的通讯。通过种种方式获取shell以后(比如直接运行生成的exe),就可以使用Beacon了。
Foreign为外部结合的Listener,常用于MSF的结合,例如获取meterpreter到MSF上。
2、生成后门
生成后门的类型
(1)HTML Application 生成一个恶意HTML Application木马,后缀格式为 .hta。通过HTML调用其他语 言的应用组件进行攻击,提供可执行文件、PowerShell、VBA三种方法。
(2)MS Office Macro 生成office宏病毒文件;
(3)Payload Generator 生成各种语言版本的payload,可以生成基于C、C#、COM Scriptlet、Java、Perl、 PowerShell、Python、Ruby、VBA等的payload.
(4)Windows Executable 生成32位或64位的exe和基于服务的exe、DLL等后门程序。
(5)Windows Executable(S) 用于生成一个exe可执行文件,其中包含Beacon的完整payload,不需要阶段性的请求。与Windows Executable模块相比,该模块额外提供了代理设置,以便在较为苛刻的环境中进行渗透测试。该模块还支持powershell脚本,可用于将Stageless Payload注入内存。
HTML Application(恶意木马)
HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的格式,就是一个独立的应用软件,与VB、C++等程序语言所设计的软件界面没什么差别。HTML Application有三种类型的生成方式,测试发现,只有powershell方式生成的hta文件才能正常执行上线,Executable和VBA方式生成的hta文件执行的时候提示当前页面的脚本发生错误。
(1) 生成后门:点击Attacks—>Packages—>HTML Application
(2)基于PowerShell方式生成的hta文件,执行上线。
(3)利用钓鱼攻击中的文件下载,执行上线。
在目标机上执行目标地址文件
MS Office Macro(office宏病毒文件)
(1)生成病毒代码。点击 Attacks—>Packages—>MS Office Macro
(2)制作病毒文件。然后打开word编辑器,点击视图,然后点击宏
(3)保存退出,便可以得到一个病毒文件,将该文档发给其他人,只要他是用word打开,并且开启了宏,我们的CS就会收到弹回来的shell,进程名是rundll32.exe。
Payload Generator
这个模块用于生成各种语言版本的shellcode,然后用其他语言进行编译生成。
Windows Executable & Windows Executable(S)
这两个模块直接用于生成可执行的 exe 文件或 dll 文件。Windows Executable是生成Stager类型的马,而Windows Executable(S) 是生成Stageless类型的马。
Stager是分阶段传送Payload。分阶段啥意思呢?就是我们生成的Stager马其实是一个小程序,用于从服务器端下载我们真正的shellcode。分阶段在很多时候是很有必要的,因为很多场景对于能加载进内存并成功漏洞利用后执行的数据大小存在严格限制。所以这种时候,我们就不得不利用分阶段传送了。如果不需要分阶段的话,可以在C2的扩展文件里面把 host_stage 选项设置为 false。
Stageless是完整的木马,后续不需要再向服务器端请求shellcode。所以使用这种方法生成的木马会比Stager生成的木马体积要大。但是这种木马有助于避免反溯源,因为如果开启了分阶段传送,任何人都能连接到你的C2服务器请求payload,并分析payload中的配置信息。在CobaltStrike4.0及以后的版本中,后渗透和横向移动绝大部分是使用的Stageless类型的木马。
Windows Executable(S)相比于Windows Executable,其中包含Beacon的完整payload,不需要阶段性的请求,该模块额外提供了代理设置,以便在较为苛刻的环境中进行渗透测试。该模块还支持powershell脚本,可用于将Stageless Payload注入内存。
(1)生成Windows Executable类型的.exe可执行文件。
(2)生成的Windows Service EXE生成的木马,直接双击是不会返回session的。需要以创建服务的方式启动,才会返回session。
#注意,等号(=)后面要有空格 sc create autoRunBackDoor binPath= "cmd.exe /c C:\users\administrator\desktop\cs.exe" start= auto DisplayName= autoRunBackDoor #开启某个系统服务 sc start autoRunBackDoor #停止某个系统服务 sc stop autoRunBackDoor # 删除某个系统服务 sc delete service_name
3 、钓鱼攻击
Manage(web服务管理) 对开启的web服务进行管理;
Clone Site(克隆网站) 可以记录受害者提交的数据;
Host File(文件下载) 提供一个本地文件下载,可以修改Mime信息。可以配合DNS欺骗实现挂马效果使用。
Scripted Web Delivery(S) 基于Web的攻击测试脚本,自动生成可执行的payload ,通常用这个模块来生成powershell命令反弹shell。
Signed Applet Attack(签名Applet攻击) 启动一个Web服务以提供自签名Java Applet的运行环境。
Smart Applet Attack(智能攻击) 自动检测Java版本并利用已知的exploits绕过security。
System Profiler(信息搜集) 用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等。
克隆网站
(1)输入需要克隆的网站信息,和服务器的ip和端口号,选中键盘记录。
(2)复制生成的克隆网址,在浏览器中访问。点击CS的视图—>Web Log可以查看到目标访问的键盘记录。
信息收集
(1)该模块用来获取用户的系统信息、浏览器信息。
(2)用户访问http:ip:80/oa。点击CS的视图—>Web Log可以查看到目标的系统和浏览器的信息。