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

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),

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

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

在这里插入图片描述

扫描二维码关注公众号,回复: 14350507 查看本文章

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
在这里插入图片描述

 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密码,即可登入:

在这里插入图片描述

Linux下启动teamserver和客户端

①cd切换到Cobaltstrike目录下

②执行命令 启动服务器端

 chmod +x teamserver

./teamserver.bat 8.8.8.8 123456

  ./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]

在这里插入图片描述

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。

在这里插入图片描述

有很多种协议

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回来,来继续后面的内网渗透,这时就选择使用外部监听器。
在这里插入图片描述

实现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部署完成

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

攻击模块 生成木马

html,office宏病毒,exe
在这里插入图片描述在这里插入图片描述

  • 生成木马文件:
    HTA木马文件、office宏病毒文件、各种语言版本的payload、USB/CD利用自动播放运行的木马文件、捆绑器、可执行Payload等
    在这里插入图片描述

web方面:

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

  • 生成一个可执行文件
    在这里插入图片描述
    windows Executable
    有exe和dll格式的选择
    在这里插入图片描述

  • 添加一个监听器:
    在这里插入图片描述

  • 选择一种payload

在这里插入图片描述

  • 设置端口
    在这里插入图片描述

  • 点击生成
    在这里插入图片描述在这里插入图片描述

  • 在客户端中靶机上线
    在这里插入图片描述

  • 用mimikatz抓取主机上的密码信息
    在这里插入图片描述
    在这里插入图片描述

  • 获取主机的桌面截图
    在这里插入图片描述

修改默认端口 和 指纹信息

修改teamserver

  vim teamserver

在这里插入图片描述
在这里插入图片描述
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

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

目标上线意味着我们已经可以执行目标服务器的系统命令,操作主机
信息收集、
可视化,以图形化的方式显示
在这里插入图片描述
右键点击目标,可以对它进行各种各样的攻击和手段
在这里插入图片描述

插件加载

权限提升Elevate

在这里插入图片描述
github上面下载优质的cs插件
插件脚本管理器Script,点击load上传本地的插件cna格式的脚本文件
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
sleep 更快
在这里插入图片描述

红色闪电包裹的主机 提权成功了。 显示了system权限,
利用mimikatz进行主机信息收集,为进一步的横向移动做准备
在这里插入图片描述

命令执行

在这里插入图片描述
interact 互动 可以执行相应的命令来对主机进行各种操作,点击interact后,输入help就可以看到cs自带的命令

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

在这里插入图片描述在这里插入图片描述
探针当前网络架构
有域环境的话,显示的内容

在这里插入图片描述
在这里插入图片描述
有域控的话,显示结果就是域控DC的信息列表

在这里插入图片描述
Windows 自身命令 加 shell

在这里插入图片描述

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

在这里插入图片描述

执行Mimikatz

在这里插入图片描述
右键,Access->Run Mimikatz
在这里插入图片描述
系统的账号密码

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

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

在这里插入图片描述

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

在这里插入图片描述
Explore->File Browser就可以看到系统的所有文件
在这里插入图片描述
还可以上传文件,创建文件夹等各种操作
在这里插入图片描述
上传的文件进行复制,下载,执行,删除的操作。

横向移动

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

猜你喜欢

转载自blog.csdn.net/qq_33608000/article/details/125564831