渗透测试全流程拆解:一篇文章带你看懂黑客如何 “合法攻击” 系统

什么是黑客?

黑客(Hacker),又称骇客,指的是精通计算机技术,利用网络对目标进行破坏或恶作剧的人。他们可能是技术高超的专家,也可能是利用工具进行攻击的初学者。简单来说,黑客就是利用计算机网络攻击目标的人。


黑客攻击的四个核心步骤

img

黑客攻击通常分为以下四个步骤:

  1. 明确目标

  2. 信息收集

  3. 漏洞探测

  4. 高危漏洞利用

以下我们将逐一详细讲解每个步骤。

第一次红队测试,我明白了渗透测试不是 “用工具扫漏洞”

去年夏天,我参与了人生中第一个真实渗透测试项目 —— 为某电商平台做红队评估。出发前,我满以为 “只要用 Xray 扫漏洞、用 SQLMap 跑注入,就能轻松拿下服务器”,结果到了客户现场才发现:目标系统没有明显的 SQL 注入漏洞,WAF 拦截了所有扫描工具的请求,甚至连边界服务器都隐藏在 CDN 后面。

那天我对着电脑屏幕发呆了 3 小时,直到带队的老黑客提醒我:“渗透测试不是‘工具堆砌’,是‘模拟攻击者思维’—— 你得像真正的黑客一样,先搞清楚目标的‘软肋’在哪。”

后来,我们通过 “收集员工邮箱→发送钓鱼邮件→获取办公网权限→横向移动到核心服务器” 的路径,最终完成了测试。这次经历让我彻底明白:真正的渗透测试,是一套环环相扣的 “攻防逻辑”,而不是简单的 “找漏洞”。

这篇文章,我会用第一人称视角,拆解渗透测试的完整流程 —— 从信息收集到报告输出,每个步骤都结合实战案例和工具用法,帮你搞懂 “黑客到底是怎么做事的”。

一、渗透测试第一步:信息收集

很多新手以为 “渗透测试的核心是漏洞利用”,其实不然 ——信息收集的深度,直接决定了后续渗透的成功率。我曾见过资深黑客花 3 天收集信息,最后用一个 “员工弱口令” 轻松突破边界,比用工具扫一周漏洞还高效。

1. 核心目标:搞懂 “目标是谁、有什么资产、防守弱点在哪”

信息收集的本质是 “画目标的‘资产地图’”,具体要收集 3 类信息:

信息类型收集内容工具 / 方法实战案例
基础信息目标公司业务(如电商 / 金融)、组织架构(IT 部 / 运维部)、公开邮箱 / 手机号天眼查、企查查、公司官网 “关于我们”某电商平台官网 “招聘板块” 泄露 IT 部邮箱格式:姓名首字母 + 工号 @域名,为后续钓鱼邮件铺路
网络资产子域名、服务器 IP、开放端口、中间件版本(如 Nginx/Tomcat)、CMS 系统(如织梦 / WordPress)工具:OneForAll(子域名收集)、Nmap(端口扫描)、Fofa(资产搜索)方法:暴力破解子域名(字典用 subdomains-top1million)用 OneForAll 收集到某目标的 “test.xxx.com” 子域名,Nmap 扫描发现其开放 8080 端口(Tomcat 后台),且版本为存在漏洞的 Tomcat 7.0.81
人员信息员工姓名、职位、社交账号(LinkedIn / 微博)、技术博客(优快云 / 掘金)工具:脉脉、LinkedIn、Google 搜索方法:用 “目标公司 + 员工姓名” 搜技术博客,寻找可能泄露的代码 / 服务器信息某金融公司运维工程师在 优快云 博客分享 “服务器备份脚本”,泄露了内网 IP 段(192.168.1.0/24)和备份账号密码

2. 实战避坑:别忽视 “不起眼的小信息”

第一次做信息收集时,我只关注了 “子域名和端口”,却漏掉了目标公司的 “旧官网”—— 后来老黑客提醒我,很多公司会把废弃的系统放在旧域名上,防守薄弱却可能连入内网。果然,我们在 “old.xxx.com” 上发现了一个未修复的文件上传漏洞,直接拿到了边界服务器权限。

信息收集的 3 个关键原则

  • 宁多勿少:哪怕是 “员工的生日”“公司地址”,都可能成为社会工程学攻击的突破口;
  • 交叉验证:比如用 Fofa 搜到的 IP,再用 WHOIS 查注册人信息,确认是否属于目标资产;
  • 持续更新:目标资产会动态变化(如新增子域名、更换服务器),需定期补充收集。

3. 信息收集流程可视化

在这里插入图片描述

二、第二步:漏洞扫描与验证(从 “海量信息” 中找 “可利用漏洞”)

信息收集完成后,就进入 “漏洞挖掘” 阶段 —— 但不是盲目用工具扫,而是 “针对性验证”:先根据资产类型(如 Web 应用、服务器、内网设备)选择扫描工具,再手动验证漏洞是否 “真的可利用”(避免工具误报)。

1. 不同资产的漏洞挖掘策略

(1)Web 应用:最常见,也是漏洞最多的场景

Web 应用(如官网、后台系统、APP 接口)的漏洞主要集中在 “参数可控点”(如 URL 参数、表单提交、Cookie),常用流程:

  1. 被动扫描:用 Burp Suite 或 Xray 代理浏览器流量,记录所有请求,自动识别 SQL 注入、XSS、SSRF 等漏洞(优点:不触发 WAF,隐蔽性高);
  2. 主动扫描:用 Goby 或 AWVS 对目标 URL 发起探测,测试常见漏洞(适合无 WAF 的测试环境,注意控制扫描频率,避免打崩目标系统);
  3. 手动验证:对工具报出的漏洞,必须手动复现 —— 比如工具提示 “SQL 注入”,就用 Burp 抓包,修改参数为id=1' and 1=2#,看页面是否变化(排除误报)。

实战案例:某电商后台的 “订单查询” 接口(/api/order?orderId=123),Xray 提示 “SQL 注入”。我用 Burp 抓包,将orderId改为123' union select 1,username,password from admin#,页面返回了管理员账号密码 —— 确认漏洞可利用,且能直接获取核心权限。

(2)服务器:突破边界后,控制服务器的关键

当拿到 Webshell(如通过文件上传漏洞)后,需要对服务器进行 “漏洞挖掘”,提升权限或横向移动:

  • 系统漏洞:用systeminfo查看 Windows 版本,或uname -a查看 Linux 版本,对照漏洞库(如 CVE Details)看是否存在可利用漏洞(如 Windows 的 MS17-010 “永恒之蓝”、Linux 的 Dirty COW);
  • 弱口令:用 Hydra 暴力破解服务器的远程登录账号(如 Windows 的 RDP、Linux 的 SSH),字典优先用 “目标公司相关密码”(如公司名 + 年份、员工生日);
  • 配置漏洞:检查服务器是否开放不必要的端口(如 3389、22),是否存在 “权限配置错误”(如普通用户能读写/etc/passwd)。

避坑提醒:服务器漏洞利用前,必须确认 “目标允许提权”—— 部分渗透测试项目要求 “只测试 Web 层,不允许服务器提权”,需提前和客户沟通,避免违规。

(3)内网设备:内网渗透的 “跳板”

进入内网后,需要扫描路由器、交换机、数据库、摄像头等设备,常用工具:

  • 内网扫描:用 Zmap 或 Masscan 快速扫内网 IP 段(如 192.168.1.0/24),找出存活设备;
  • 设备识别:用 NSE 脚本(如nmap -sC -p 8080 192.168.1.100)识别设备类型(如华为路由器、海康威视摄像头);
  • 漏洞利用:针对设备型号找漏洞,比如海康威视摄像头的 “弱口令漏洞”(默认账号 admin,密码 12345)、路由器的 “命令注入漏洞”。

2. 漏洞验证的 “黄金标准”:能直接获取权限或敏感数据

很多新手会陷入 “工具报漏洞就认为成功” 的误区,其实只有满足以下条件的漏洞,才算 “有效漏洞”:

  • 能获取权限:如 Webshell、服务器远程登录权限、数据库权限;
  • 能获取敏感数据:如用户手机号、订单信息、管理员账号;
  • 能影响业务:如导致系统崩溃、订单无法提交(需提前告知客户,避免造成损失)。

比如工具报 “反射型 XSS”,但该页面只有管理员能访问,且管理员有二次验证 —— 这种漏洞无法利用,属于 “无效漏洞”,无需写入报告。

三、第三步:漏洞利用与权限提升(从 “找到漏洞” 到 “控制目标”)

漏洞验证完成后,就进入 “实战攻击” 阶段 —— 核心是 “利用漏洞获取权限,并逐步扩大控制范围”,比如从 “Webshell” 到 “服务器 root 权限”,再到 “内网核心数据库”。

1. Web 漏洞利用:最常用的 “边界突破” 手段

Web 漏洞的利用目标是 “拿到 Webshell”(即控制 Web 服务器的脚本执行权限),常见漏洞的利用方法:

漏洞类型利用工具 / 脚本核心步骤实战注意事项
SQL 注入SQLMap、手动注入1. 用 SQLMap 导出数据库(sqlmap -u "URL" --dbs);2. 找到管理员账号密码,登录后台;3. 后台找 “文件上传” 功能,上传 Webshell若有 WAF,用--tamper参数绕过(如sqlmap --tamper=space2comment
文件上传蚁剑、菜刀、一句话木马1. 上传伪装的木马文件(如 “image.jpg.php”,绕过后缀检测);2. 用蚁剑连接木马地址(如http://URL/upload/image.jpg.php);3. 执行命令,获取服务器信息若服务器禁用eval函数,换用 “无 eval 一句话木马”(如<?php system($_GET['cmd']);?>
SSRFBurp Suite、Python 脚本1. 找到 SSRF 漏洞点(如 “图片加载”“远程 API 调用”);2. 构造请求,访问内网地址(如http://127.0.0.1:8080);3. 扫描内网端口,寻找敏感服务避免访问file://协议读取本地文件(可能触发法律风险),只测试 Web 服务

我的实战经历:某教育平台存在 “文件上传漏洞”,但后端只允许上传 “jpg/png” 格式。我将 PHP 木马写入图片的 EXIF 信息(用 ExifTool 工具),上传后通过 “图片解析漏洞”(目标用的是旧版 ImageMagick),让服务器执行了木马代码,最终拿到 Webshell。

2. 内网渗透:从 “单点突破” 到 “控制整个内网”

拿到边界服务器权限后,渗透测试才真正进入 “核心阶段”—— 内网渗透的目标是 “找到核心资产(如数据库、财务系统),并获取控制权”,常用流程:

(1)内网信息收集:搞懂 “内网结构”
  • ipconfig(Windows)或ifconfig(Linux)查看当前服务器的内网 IP 段;
  • net view(Windows)或nmap -sn 192.168.1.0/24(Linux)扫描内网存活设备;
  • net user(Windows)查看当前服务器的用户列表,寻找 “域管理员账号” 痕迹。
(2)横向移动:控制更多设备

横向移动的核心是 “利用内网设备的漏洞或弱口令”,常见方法:

  • 远程桌面 / SSH:用之前获取的弱口令,通过 mstsc(Windows RDP)或 ssh 登录其他服务器;
  • 漏洞利用:对存在漏洞的设备(如 MS17-010),用 MSF 或 Cobalt Strike 生成漏洞利用 payload,远程获取权限;
  • Pass The Hash(哈希传递):Windows 系统中,通过获取其他用户的 NTLM 哈希,无需密码即可登录(用 mimikatz 工具抓取哈希)。
(3)权限提升:拿到 “最高控制权”
  • 系统漏洞提权:如 Windows 的 MS14-058、Linux 的 SUID 提权(find / -perm -u=s -type f 2>/dev/null找可利用的 SUID 文件);
  • 配置错误提权:如普通用户能修改/etc/sudoers文件,或能读写数据库配置文件(获取 root 账号);
  • 域渗透:若内网存在域环境,通过 “黄金票据”“白银票据” 等方法,获取域管理员权限,控制整个域。

3. 内网渗透流程可视化

在这里插入图片描述

四、第四步:报告输出(渗透测试的 “最终交付物”)

很多新手以为 “拿到核心权限就结束了”,其实不然 ——渗透测试的价值,最终体现在 “漏洞报告” 中。一份好的报告,不仅要 “说清漏洞在哪”,还要 “给出可落地的修复建议”,帮客户真正提升安全能力。

1. 报告的核心结构:让客户 “看得懂、能落地”

一份合格的渗透测试报告,需包含 5 个部分:

报告模块核心内容写作技巧
测试概述测试目标、范围、时间、方法(如黑盒 / 白盒)、团队成员明确 “不测试的范围”(如不测试生产环境数据库),避免后续纠纷
漏洞详情每个漏洞的 “位置、危害级别(高危 / 中危 / 低危)、利用步骤、截图证明”危害级别按 CVSS 评分标准(如高危:CVSS 9.0-10.0),截图要包含 “时间、目标地址、漏洞效果”
风险分析每个漏洞可能导致的后果(如 “SQL 注入可能导致用户数据泄露,影响客户信任”)结合客户业务场景分析,比如金融客户要强调 “资金安全”,电商客户要强调 “订单数据安全”
修复建议具体的修复方案(如 “SQL 注入:用参数化查询代替 SQL 语句拼接”),附代码示例修复建议要 “可落地”,避免说 “加强安全防护” 这种空话 —— 比如 “配置 WAF 规则,拦截' or 1=1#等注入语句”
附录工具清单、测试日志、漏洞验证视频附上工具版本(如 Burp Suite 2023.9),方便客户复现;视频要清晰展示 “漏洞利用全流程”

2. 报告避坑:别犯这些 “低级错误”

  • 漏洞描述模糊:比如只写 “某页面存在 SQL 注入”,不写具体 URL(http://xxx.com/api/user?id=1),客户无法定位漏洞;
  • 修复建议不落地:比如写 “修复文件上传漏洞”,不说明 “怎么修复”(正确:“在后端添加文件后缀白名单,只允许 jpg/png,且验证文件头是否为图片格式”);
  • 泄露敏感数据:报告中不允许包含客户的真实账号密码、核心数据(如订单信息),需打码或用 “***” 代替;
  • 语言太技术化:客户的 IT 团队可能不懂 “SSRF”“Pass The Hash”,需用通俗语言解释(如 “SSRF 漏洞:攻击者可通过该漏洞访问您公司内网的服务器”)。

我的报告修改经历:第一次写报告时,我把 “哈希传递” 直接写进风险分析,客户 IT 负责人完全看不懂。后来我改成 “攻击者无需密码,即可用其他员工的账号登录内网服务器,可能导致核心数据被窃取”,客户立刻理解了风险,当天就安排了密码整改。

五、关键提醒:渗透测试的 “红线” 不能碰

最后必须强调:渗透测试是 “合法的模拟攻击”,所有操作都必须在 “客户授权范围内”,一旦越界,可能面临法律责任。我总结了 3 条 “绝对不能碰的红线”:

  1. 未授权不测试:任何测试前,必须拿到客户的 “书面授权”(明确测试范围、时间、允许的操作),严禁 “好奇测试”(如扫描陌生网站、尝试破解朋友公司的系统);
  2. 不破坏数据:测试过程中严禁删除、修改客户数据(如订单信息、用户账号),如需测试 “数据泄露”,只读取不下载,测试后立即删除缓存;
  3. 不留下后门:测试结束后,必须清除所有 “攻击痕迹”(如 Webshell、后门程序、创建的测试账号),严禁 “留后门方便后续访问”—— 这不仅违规,还可能触犯《刑法》中的 “非法控制计算机信息系统罪”。

结语:渗透测试的核心是 “攻防思维”,不是 “工具技巧”

回顾这几年的渗透测试经历,我最大的感悟是:真正的渗透测试工程师,不是 “会用多少工具”,而是 “能站在攻击者角度,发现别人看不到的漏洞”。就像第一次红队测试,我们没用复杂的漏洞利用,只是通过 “钓鱼邮件” 就突破了边界 —— 这靠的不是工具,而是对 “人性弱点” 和 “企业防守习惯” 的理解。

如果你想入门渗透测试,建议从 “靶场实战” 开始(如 DVWA、VulnHub、SRC 平台),先把 “信息收集→漏洞验证→报告输出” 的流程走通,再逐步学习内网渗透、代码审计等高级技能。记住:渗透测试的最终目标不是 “拿下系统”,而是 “帮客户修复漏洞,构建更安全的防线”—— 这才是这个职业的价值所在。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值