渗透工具-内网权限维持-Cobalt strike

Cobalt strike

  • Cobaltstrike简介
  • Cobaltstrike架构
  • Cobaltstrike teamserver的启动
    • Windows下启动teamserver
    • Linux下启动teamserver和客户端
  • Listner(监听器)介绍
    • Cobaltstrike Listner
    • Listener的配置
    • 攻击模块 生成木马
  • 修改默认端口 和 指纹信息
  • 内网实战
    • 权限提升,命令执行以及内网横线穿透
    • 插件加载
      • 权限提升Elevate
      • 命令执行
    • 目标信息总结表(自动记忆保存)
      • 执行Mimikatz
      • 查看主机的文件和文件夹结构信息
    • 横向移动

Cobaltstrike简介

Cobalt Strike是一款美国Red Team开发的 GUI框架式渗透测试工具神器,常被业界人称为CS。

渗透测试中不可缺少的利器。

其拥有多种协议主机上线方式,

集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼 
端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等功能。

还可以进行钓鱼攻击包括:网站克隆、目标信息获取、java执行、浏览器攻击等

同时,Cobalt Strike还可以调用Mimikatz等其他知名工具,因此广受黑客喜爱。

项目官网:https://www.cobaltstrike.com

话说这个工具的社区版是大家熟知的Armitage(一个MSF的图形化界面工具),
而Cobaltstrike大家可以理解其为Armitage的商业版。

早期版本CobaltSrtike依赖Metasploit框架,

而现在Cobalt Strike已经不再使用MSF而是作为单独的平台使用,

它分为客户端(Client)与服务端(Teamserver),

服务端是一个,客户端可以有多个

团队可进行分布式协团操作。
可以让多个攻击者同时连接到团体服务器,共享信息。

渗透工具-内网权限维持-Cobalt strike_第1张图片

Cobaltstrike架构

本人使用的是Cabaltstrike3.13版本,虽然官方已经更新到3.14版本,但是我发现3.14版本并不稳定,

因此不推荐使用
3.13版本文件架构如下。

│ Scripts 用户安装的插件
│ Log 每天的日志
│ c2lint 检查profile的错误异常
│ cobaltstrike
│ cobaltstrike.jar 客户端程序
│ icon.jpg LOGO
│ license.pdf 许可证文件
│ readme.txt
│ releasenotes.txt
│ teamserver 服务端程序
│ update
│ update.jar 更新程序
└─third-party 第三方工具,里面放的vnc dll
渗透工具-内网权限维持-Cobalt strike_第2张图片

 cobaltstrike.jar是客户端,teamserver是服务端

当然,强大的CS也支持用户来扩展其功能:私人定制

①Cobalt Strike可以使用AggressorScripts脚本来加强自身,使其更加丰满,能够扩展菜单栏,视图Beacon命令行,提权脚本等;

②Cobalt Strike通信配置文件是Malleable C2,你可以修改CS的通讯特征,Beacon payload的一些行为;

③Cobalt Strike可以引用其他的通讯框架ExternalC2,ExternalC2是由Cobalt Strike提出的一套规范/框架,它允许黑客根据需要对框架提供的默认HTTP(S)/DNS/SMB C2 通信通道进行扩展。

总的来说CS的自定义功能很强大,使用起来很灵活,后期会讲到相关的使用。

Cobaltstrike teamserver的启动

运行CobaltStrike java环境 装好jdk, jdk11 jdk1.8
sha256的哈希值

开启Cobaltstrike teamserver和运行GUI界面均需要Java环境,

Windows下启动teamserver

①下载keytool.exe并将其复制到Cobaltstrike文件夹下,链接:

http://www.onlinedown.net/soft/614989.htm

②切换到Cobaltstrike目录执行如下命令:

Keytool.exe 
-keystore ./cobaltstrike.store 
-storepass 123456 
-keypass 123456 
-genkey 
-keyalg RSA 
-alias cobaltstrike
 -dname "CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, S=Cyberspace, C=Earth"

③执行命令

teamserver.bat 8.8.8.8 123456

8.8.8.8为你的服务器外网IP,123456为Coabltstrike的客户端密码。

④双击cobaltstrike.bat,填写服务器外网IP和teamserver密码,即可登入:

渗透工具-内网权限维持-Cobalt strike_第3张图片

Linux下启动teamserver和客户端

①cd切换到Cobaltstrike目录下

②执行命令 启动服务器端

 chmod +x teamserver

./teamserver.bat 8.8.8.8 123456

  ./teamserver   [/path/to/c2.profile] [YYYY-MM-DD]

渗透工具-内网权限维持-Cobalt strike_第4张图片

8.8.8.8为你的服务器外网IP,123456为Coabltstrike的客户端密码。

③执行如下命令即可看到GUI界面

Javaw -Dfile.encoding=UTF-8 
-javaagent:CobaltStrikeCN.jar 
-XX:ParallelGCThreads=4 -XX:+AggressiveHeap 
-XX:+UseParallelGC -jar cobaltstrike.jar

Listner(监听器)介绍

Cobaltstrike Listner

Listner(监听器):专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。

在许多的渗透测试工具中,例如empire,metasploit,cobaltstrike中都有Listner的存在。

大家可以简单地理解为Listner就是用来接收目标主机权限的模块。

创建Listener的步骤:Cobaltstrike–>监听器

目前我用的是Cobaltstrike3.13版本,其中内置了九个Listener。

渗透工具-内网权限维持-Cobalt strike_第5张图片

有很多种协议

windows/beacon_dns/reverse_dns_txt
windows/beacon_dns/reverse_http
windows/beacon_tcp/bind_tcp
windows/beacon_http/reverse_http
windows/beacon_https/reverse_https
windows/beacon_smb/bind_pipe
windows/foreign/reverse_http
windows/foreign/reverse_https
windows/foreign/reverse_tcp

beacon为CS内置监听器,也就是说,当我们在目标系统成功执行Payload以后,会弹回一个beacon的shell给CS。

foreign主要是提供给外部使用的一些监听器,比如你想利用CS派生一个meterpreter或者armitage的shell回来,来继续后面的内网渗透,这时就选择使用外部监听器。
渗透工具-内网权限维持-Cobalt strike_第6张图片

实现Cobaltstrike与MSF和Armitage的联动

Listener的配置

监听器可以理解为配置木马传输的管道

选择Cobaltstrike–>监听器

随后输入Listener名字并选择你要使用的Listner类型,配置好外网IP和端口(不能冲突)点击save即可保存,在以后生成Payload的过程中即可使用该监听器。

vps上部署服务端Cobalt Strike

运行Cobalt Strike需要java的环境

在cmd中运行teamserver.bat文件,命令如下

teamserver.bat 111.111.111.111 admin

即teamserver.bat ip password

ip为vps服务器的公网ip(这个ip是用来给客户端连接使用)

password为客户端登录认证密码
渗透工具-内网权限维持-Cobalt strike_第7张图片

这样,服务端的Cobalt Strike部署完成

/这里需要注意,服务端Cobalt Strike是默认开启50050端口,用来给客户端连接使用,除外还需要备用一个端口用来接收shell/

/部分vps做有安全策略,需要手动开启防火墙上的端口策略/

接下来在客户端运行Cobalt Strike进行连接

解压安装包,双击cobaltstrike.bat文件启动Cobalt Strike

渗透工具-内网权限维持-Cobalt strike_第8张图片

  • 登录成功后,可以看到如下界面,
    主要有cs基本设置、视图、攻击、报表等功能

渗透工具-内网权限维持-Cobalt strike_第9张图片

攻击模块 生成木马

html,office宏病毒,exe
渗透工具-内网权限维持-Cobalt strike_第10张图片渗透工具-内网权限维持-Cobalt strike_第11张图片

  • 生成木马文件:
    HTA木马文件、office宏病毒文件、各种语言版本的payload、USB/CD利用自动播放运行的木马文件、捆绑器、可执行Payload等
    渗透工具-内网权限维持-Cobalt strike_第12张图片

web方面:

对开启的web服务进行管理、
克隆网站(可记录受害者提交的数据)、
提供Web以供下载某文件、提供Web服务,
便于下载和执行PowerShell Payload 、
启动一个Web服务以提供自签名Java Applet的运行环境、
自动检测Java版本并利用已知的exploits绕过security、
用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等

  • 生成一个可执行文件
    渗透工具-内网权限维持-Cobalt strike_第13张图片
    windows Executable
    有exe和dll格式的选择
    渗透工具-内网权限维持-Cobalt strike_第14张图片

  • 添加一个监听器:
    渗透工具-内网权限维持-Cobalt strike_第15张图片

  • 选择一种payload

渗透工具-内网权限维持-Cobalt strike_第16张图片

  • 设置端口
    渗透工具-内网权限维持-Cobalt strike_第17张图片

  • 点击生成
    渗透工具-内网权限维持-Cobalt strike_第18张图片渗透工具-内网权限维持-Cobalt strike_第19张图片

  • 在客户端中靶机上线
    渗透工具-内网权限维持-Cobalt strike_第20张图片

  • 用mimikatz抓取主机上的密码信息
    渗透工具-内网权限维持-Cobalt strike_第21张图片
    渗透工具-内网权限维持-Cobalt strike_第22张图片

  • 获取主机的桌面截图
    渗透工具-内网权限维持-Cobalt strike_第23张图片

修改默认端口 和 指纹信息

修改teamserver

  vim teamserver

渗透工具-内网权限维持-Cobalt strike_第24张图片

cs的默认ssl证书信息也很重要,不然指纹信息也很明显。
默认的是(在keytool那行往后翻)

CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, S=Cyberspace, C=Earth

我们给他改改比如改成

CN=it, OU=it, O=it, L=it, S=it, C=it

内网实战

大概流程:
启动-配置-监听-执行-上线-提权-信息收集(网络,凭证,定位等)-渗透

提权及插件加载
信息收集命令
视图自动化功能

net view
net computer
net dclist 
shell net user /domain

权限提升,命令执行以及内网横线穿透

目标上线意味着我们已经可以执行目标服务器的系统命令,操作主机
信息收集、
可视化,以图形化的方式显示
渗透工具-内网权限维持-Cobalt strike_第25张图片
右键点击目标,可以对它进行各种各样的攻击和手段
渗透工具-内网权限维持-Cobalt strike_第26张图片

插件加载

权限提升Elevate

渗透工具-内网权限维持-Cobalt strike_第27张图片
github上面下载优质的cs插件
插件脚本管理器Script,点击load上传本地的插件cna格式的脚本文件
渗透工具-内网权限维持-Cobalt strike_第28张图片渗透工具-内网权限维持-Cobalt strike_第29张图片
渗透工具-内网权限维持-Cobalt strike_第30张图片
渗透工具-内网权限维持-Cobalt strike_第31张图片
sleep 更快
渗透工具-内网权限维持-Cobalt strike_第32张图片

红色闪电包裹的主机 提权成功了。 显示了system权限,
利用mimikatz进行主机信息收集,为进一步的横向移动做准备
渗透工具-内网权限维持-Cobalt strike_第33张图片

命令执行

渗透工具-内网权限维持-Cobalt strike_第34张图片
interact 互动 可以执行相应的命令来对主机进行各种操作,点击interact后,输入help就可以看到cs自带的命令

getuid
net view
获取域控的信息:net dclist

渗透工具-内网权限维持-Cobalt strike_第35张图片渗透工具-内网权限维持-Cobalt strike_第36张图片
探针当前网络架构
有域环境的话,显示的内容

渗透工具-内网权限维持-Cobalt strike_第37张图片
渗透工具-内网权限维持-Cobalt strike_第38张图片
有域控的话,显示结果就是域控DC的信息列表

渗透工具-内网权限维持-Cobalt strike_第39张图片
Windows 自身命令 加 shell

渗透工具-内网权限维持-Cobalt strike_第40张图片

目标信息总结表(自动记忆保存)

渗透工具-内网权限维持-Cobalt strike_第41张图片

执行Mimikatz

渗透工具-内网权限维持-Cobalt strike_第42张图片
右键,Access->Run Mimikatz
渗透工具-内网权限维持-Cobalt strike_第43张图片
系统的账号密码

运行Mimikatz一定要system权限才行,普通权限是执行不了Mimikatz的(admin可以)
要先提权

视图(view)->凭证信息
账号和密码就会全部显示在表里

渗透工具-内网权限维持-Cobalt strike_第44张图片

查看主机的文件和文件夹结构信息

渗透工具-内网权限维持-Cobalt strike_第45张图片
Explore->File Browser就可以看到系统的所有文件
渗透工具-内网权限维持-Cobalt strike_第46张图片
还可以上传文件,创建文件夹等各种操作
渗透工具-内网权限维持-Cobalt strike_第47张图片
上传的文件进行复制,下载,执行,删除的操作。

横向移动

渗透工具-内网权限维持-Cobalt strike_第48张图片
前期的信息收集中,所有的主机信息(包括内网)都在目标Targets里
Jump。 列出各种横向的方法,比如psexec等,还有扫描Scan等等。
psexec进行横向
选中psexec后,点击刚刚收集到的主机信息(通过Mimikatz获取的账号与密码等,也可以自己尝试填)。
渗透工具-内网权限维持-Cobalt strike_第49张图片
选择刚开始就创建好的监听器Listener和选择的主机Session,点击Launch发射
渗透工具-内网权限维持-Cobalt strike_第50张图片
离DC越来越近,拿下域控,渗透结束。
渗透工具-内网权限维持-Cobalt strike_第51张图片
隧道技术,正向代理和反向代理的区别。

你可能感兴趣的