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) 形成报告给出修复建议
网络安全课程笔记-15(1)-渗透测试
发布时间:2026/6/12 10:46:36
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) 形成报告给出修复建议