网络安全课程笔记-15(1)-渗透测试
2026/6/12 10:46:25 网站建设 项目流程

1. 渗透测试快速入门

1.1 基本概念

  • 黑客(黑帽子):以非法获取利益、破坏系统为目的,未经授权入侵他人设备的人
  • 白客(白帽子):受企业或个人合法授权,专门寻找系统安全漏洞并帮助修复,保护网络安全的人
  • 红客:攻击国外的黑客

1.2 为什么需要渗透测试?

渗透测试时白帽子的核心工作之一,是经合法授权后,模拟黑客的攻击手段,全面找出系统、网络或应用中的安全隐患(漏洞),并给出修复建议的过程

  • 对个人:保护⼿机、电脑中的隐私数据(比如照片、银行卡信息、聊天记录)不被窃取
  • 对企业:避免因系统漏洞导致⽤户数据泄露(比如之前某平台⽤户信息被盗事件)、业务中断(⽐如服务器被攻击瘫痪)、商业机密外泄,减少经济损失和声誉损害
  • 对国家:保障关键基础设施(如电⼒、交通、⾦融系统)的⽹络安全,维护国家安全

1.3 渗透测试核心原则

  • 合法是前提:任何渗透测试必须获得甲⽅(需求⽅)的书⾯授权,明确测试范围、时间、权限,否则就是⾮法⼊侵,触犯《⽹络安全法》《刑法》,会被追究法律责任(重点提醒!)

  • 最小影响原则:测试时间要避开业务⾼峰期(⽐如电商平台不选双⼗⼀),测试过程中不能破坏系统、篡改数据,尽量不影响系统正常运⾏

  • 保密原则:测试过程中收集到的所有信息(如企业数据、漏洞详情),必须严格保密,不能泄露给第三⽅

2. 渗透测试流程

明确目标-->信息收集-->漏洞探测-->漏洞验证-->提取所需–>信息分析-->信心整理-->形成报告

2.1 明确目标

确认内容(核心)

  • 确定范围:明确测试的对象是什么?比如是百度的主⽹站(www.baidu.com),还是某企业的内部系统?
  • 确定规则:
    • 时间:什么时候测试?必须避开业务⾼峰期(⽐如电商平台选凌晨 2-5点,企业官⽹选周末),避免影响正常业务
    • 权限:能做什么?不能做什么?⽐如能否尝试上传⽂件?能否获取系统最⾼权限(提权)?能否修改数据?(⼀般不允许修改、删除甲⽅数据)
  • 确定需求:甲方想测什么类型的漏洞? Web 应⽤漏洞 业务逻辑漏洞 ⼈员权限漏洞

2.2 信息收集(摸清目标底细)

(1) 收集的核心信息

信息类型具体内容作用
基础信息IP 地址、网段(比如企业有可能有
123.45.67.0/24这样的网段,包含
256个IP)、域名、开放端口
找到测试的入口,比如通过端口
知道目标提供了哪些服务
系统信息服务器操作系统(Windows、
CentOS、Ubuntu 等)
不同系统的漏洞不同,比如 Windows
的某些漏洞 CentOS 没有
应用信息端口对应的应用(比如 80 端口)是
Nginx 服务器,3306 端口是 MySQL 数据库
针对具体应用找漏洞,比如 Nginx
的配置漏洞、MySQL 的弱密码漏洞
版本信息操作系统版本、应用版本(比如
Nginx 1.18.0、MySQL 5.7)
版本越旧,漏洞可能越多,比如某版本的
Nginx 存在已知的文件读取漏洞

(2) 收集方式(先了解)

  • 主动扫描:用工具(比如 Nmap)扫描⽬标 IP 的开放端⼝、操作系统版本;用漏洞扫描器(比如 AWVS)扫描⽹站的基础漏洞
  • 开放搜索:用搜索引擎(百度、Google)找敏感信息,从漏洞库(exploit-db)搜索目标应用版本对应的已知漏洞 https://www.exploit-df.com/

2.3 漏洞探测(寻找安全缺口)

(1) 漏洞常见的类型

  • 系统漏洞:操作系统没及时打补丁(比如 Windows XP 的⽼漏洞,⾄今还有⼈没修复)。
  • Web 服务器漏洞:比如 Nginx、Apache 的配置错误(比如权限设置过宽,允许访问敏感⽂件)
  • Web 应用漏洞:开发⼈员写代码时的错误(比如 SQL 注⼊、XSS 跨站脚本、
    ⽂件上传漏洞)
  • 端口服务漏洞:比如 21 端口(FTP 服务)的弱密码、3389 端口(远程桌⾯)
    的账号容易被猜解
  • 通信安全漏洞:比如数据传输⽤明⽂(比如登录密码没加密,被⿊客拦截后能
    直接看到)

(2) 探测方法

  • 工具探测:用专业漏洞扫描器(AWVS、IBM AppScan)自动扫描,效率⾼,
    适合初步探测
  • 手工探测:针对重点功能(比如登录、支付、文件上传),手工抓取网络数据
    包,分析是否有漏洞(精准度⾼,适合⼯具扫不到的漏洞)
  • 参考漏洞库:在 exploit-db、乌云漏洞库(已关闭,可看存档)中,搜索目标
    应⽤版本对应的已知漏洞,比如 Nginx 1.18.0 漏洞

2.4 漏洞验证(确认缺口真的能进)

  • 自动化验证:用漏洞扫描器自带的验证功能,比如 AWVS 扫描到 SQL 注入漏
    洞后,会⾃动尝试执行简单的 SQL 语句,确认漏洞是否有效
  • 手工验证:根据公开的漏洞利用方法(POC),手工测试漏洞,比如找到⽂件
    上传漏洞后,尝试上传⼀个测试文件,看是否能成功上传并访问
  • POC:能证明漏洞真实存在的最小化验证工具 / 代码 / 步骤
  • 模拟环境测试:如果漏洞⽐较复杂,先在自己搭建的模拟环境(和目标系统⼀样的操作系统、应⽤版本)中测试,成功后再在目标系统中验证,避免影响目标系统

2.5 提取信息并进一步渗透(模拟入侵过程)

(1) 提取的关键信息

  • 系统信息:服务器的用户名、密码、系统权限
  • 数据信息:数据库中的⽤户数据、业务数据(比如电商的订单信息)
  • 内部信息:企业的网络拓扑(比如内网有多少台服务器、如何连接)、VPN 账号、路由配置

(2) 进一步渗透

  • 内网渗透:如果获取了外网服务器的权限,且这台服务器能访问内网,就可以
    尝试入侵内网的其他服务器(比如企业的财务系统、办公系统)
  • 持续性存在:一般渗透测试不需要这一步,但黑客会通过植入后门、添加管理
    员账号等方式,长期控制目标系统

2.6 信息分析(规划攻击路径)

(1) 分析核心内容

  • 漏洞危害:这个漏洞能让黑客做什么?比如 SQL 注入漏洞能让何可读取数据
    库的用户密码,文件上传漏洞能让黑客上传恶意程序控制服务器
  • 攻击路径:如何利用这个漏洞达到测试目标?比如:
    通过 SQL 注入获取管理员账号密码 → 登录后台 → 尝试上传恶意⽂件 →
    获取服务器权限→ 渗透内网
  • 绕过防御:如果目标有防火墙、WAF,如何绕过?比如修改攻击代码的格式,
    让 WAF 识别不出来
  • 准备工具:比如针对 SQL 注入漏洞,准备 SQLmap ⼯具;针对⽂件上传漏
    洞,准备恶意⽂件

(2) 注意事项

  • 只获取测试所需的信息,不窃取甲方的敏感数据(比如用户手机号、银行卡信息),更不能复制、传播这些数据
  • 不破环目标系统,比如不能删除数据库、不能修改网站内容

2.7 信息整理(为报告做准备)

(1) 整理内容

  • 测试过程记录:什么时候开始、做了什么操作、用了哪些工具(比如 Nmap、SQLmap)、获取了什么结果
  • 工具整理:整理测试中用到的 POC、EXP(漏洞利用代码)、脚本文件
  • 信息整理:收集到的 IP、域名、端⼝、人员信息、漏洞详情(类型、位置、危害)

(2) 清理痕迹

  • 删除测试中上传的文件(比如 webshell、测试文件)
  • 清理服务器的访问日志、操作日志(避免甲方后续排查时困惑,也符合测试规范)
  • 恢复测试中修改的配置

2.8 形成报告(测试的最终结果)

(1) 报告的核心结构

  • 测试概述:测试的范围、时间、目标、需求(回顾第⼀步的内容)
  • 信息收集总结:收集到的核心信息(IP、域名、系统版本等)
  • 漏洞详情:每个漏洞的名称、位置(比如 “xxx.com/upload.php 存在文件上传
    漏洞”)、危害等级(高危 / 中危 / 低危)、验证过程(附截图或步骤)、漏
    洞成因(比如 “开发⼈员未对上传⽂件的类型进行严格校验”)
  • 修复建议:针对每个漏洞,给出具体、可操作的修复方法(比如 “限制文件上
    传的类型,只允许 jpg、png 格式;对上传文件进行病毒扫描;修改文件存储
    路径,避免直接访问”)
  • 风险总结:整体评估目标系统的安全状况,比如 “存在 3 个高危漏洞,可能导
    致用户数据泄露,建议优先修复”

(2) 报告要求

  • 语⾔通俗:甲方可能不是技术⼈员,要避免过多专业术语,或者用通俗的语⾔
    解释(比如 “SQL 注⼊漏洞” 可以解释为 “黑客能通过输入特殊字符,读取数
    据库中的用户密码”)
  • 逻辑清晰:按漏洞危害等级排序(高危在前,低危在后),每个漏洞的信息完
    整,让甲方能直接照着修复

简化流程

如果觉得 8 步太复杂,先记住核心 4 步,满足基础测试需求:

(1) 信息收集

(2) 漏洞探测(工具 + 手工)

(3) 漏洞验证(确认有效)

(4) 形成报告(给出修复建议)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询