找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

314

积分

0

好友

40

主题
发表于 6 天前 | 查看: 17| 回复: 0

渗透测试是通过模拟黑客攻击的方式,主动发现网络设备、服务器、Web应用等存在的安全漏洞,并评估其风险的过程。它主要分为白盒测试与黑盒测试。白盒测试在知晓目标源码等内部信息的情况下进行,类似于代码审计;黑盒测试则仅告知目标URL,完全模拟外部攻击者的视角。

本文将基于黑盒测试场景,梳理一次完整的渗透测试所涉及的核心步骤与关键思路。标准的渗透测试流程通常包含以下几个阶段:

  1. 确定目标
  2. 信息收集
  3. 漏洞探测
  4. 漏洞利用
  5. 内网转发
  6. 内网横向渗透
  7. 痕迹清除
  8. 撰写渗透测试报告

渗透测试流程详解:从信息收集到漏洞利用与内网横向移动 - 图片 - 1

一、 确定目标

明确渗透测试的对象与范围,例如某个具体的域名、IP地址或应用系统。

二、 信息收集

信息收集是渗透测试的基石,直接决定了后续攻击的深度与广度。收集的信息越全面,攻击路径就越清晰,成功率也越高。

1. 主机与端口扫描

  • 主机扫描:使用如 Nessus 等工具,扫描目标主机开放的端口、运行的服务及存在的系统漏洞。
  • 端口扫描:利用 Nmap(精准但慢)或 Masscan(快速但可能有误报)等工具探测开放端口。常见高危端口包括:
    • 22 – SSH弱口令
    • 3306 – MySQL弱口令
    • 6379 – Redis未授权访问
    • 873 – Rsync未授权访问

2. Web目录与敏感文件探测

扫描网站目录结构,寻找可能泄露敏感信息的路径或文件。

  • 后台管理目录:可能存在的弱口令或爆破点。
  • 安装目录/文件:可能包含数据库配置文件或网站源码。
  • 上传目录:可能的上传漏洞利用点。
  • robots.txt文件:该文件通常会列出不想被搜索引擎收录的目录,反而可能泄露后台 (/admin/)、数据 (/data/) 等重要路径。
  • 常用工具:御剑、DirBuster、dirmap等。

3. 旁站与C段探测

  • 旁站:攻击同一服务器上的其他网站,以此为跳板获取目标服务器权限。
  • C段扫描:针对目标所在IP的C段地址进行探测,在内网渗透中寻找更多攻击入口。

4. 网站指纹识别与漏洞扫描

  • 指纹识别:识别网站使用的CMS(如 WordPress、ThinkPHP)、中间件、Web服务器版本等,便于查找对应的已知漏洞。工具如 WhatWeb。
  • 漏洞扫描:使用AWVS、AppScan、Nessus等工具进行自动化漏洞扫描。注意:未经授权的漏洞扫描可能违法并对目标业务造成影响。

5. 社会工程与信息搜集

  • 公司信息:搜集目标公司的邮箱格式、员工姓名、组织架构等。
  • 代码仓库:在Github、GitLab等平台搜索与目标相关的源码、配置信息,可能意外泄露API密钥、数据库密码等敏感数据。
  • 域名信息:查询WHOIS信息、子域名,并判断是否使用CDN,以寻找真实IP。

掌握扎实的网络与系统知识(如TCP/IP、HTTP协议)是进行有效信息收集的前提。

三、 漏洞探测

基于收集的信息,有针对性地探测目标可能存在的安全漏洞。常见的Web漏洞包括:

  • SQL注入
  • 跨站脚本(XSS)
  • 跨站请求伪造(CSRF)
  • 服务端请求伪造(SSRF)
  • 文件上传与包含漏洞
  • 反序列化漏洞
  • 越权访问

四、 漏洞利用

发现漏洞后,需使用特定工具或方法进行利用,以获取系统权限(如Webshell)。

  • SQL注入:常用 Sqlmap 进行自动化注入与数据获取。
  • 文件上传:上传Webshell(如一句话木马),连接后获取服务器控制权。
  • 工具集成:Burp Suite 常用于抓包、改包、重放攻击;MSF(Metasploit Framework)、Cobalt Strike 用于生成后门、提权及维持访问。

获得初始立足点(如Webshell)后,往往权限较低,需要进行权限提升(提权)。

五、 内网转发

获取外网服务器权限后,通常需要借助该服务器作为跳板,与无法直接访问的内网其他主机进行通信。这需要搭建代理或隧道,如使用 reGeorg、Frp 等工具。

六、 内网横向渗透

进入内网后,目标是扩大战果,获取更多主机的控制权或核心数据。

1. 信息收集

  • Windows主机:翻查文件、桌面备忘录、浏览器保存的密码、数据库连接配置文件等。
  • Linux主机:查看历史命令、进程、网络连接、敏感配置文件等。
  • 制作密码字典:收集到的各类密码可用于对内网其他服务的爆破攻击。

2. 内网资产探测与攻击

通过代理对内网存活主机及开放端口进行扫描。针对特定服务展开攻击:

  • 445端口:尝试 MS17-010(永恒之蓝)漏洞。
  • 3389端口:尝试 RDP 相关漏洞。
  • 数据库/缓存服务端口(1433,3306,6379等):进行密码爆破。

3. 权限维持

为了长期控制目标,需要部署后门或创建隐蔽账户。

  • Web后门:隐藏后门文件、编写不死马、在正常页面中插入后门代码。
  • Windows系统:创建隐藏用户(用户名后加$)、部署计划任务、利用MSF的persistence模块。
  • Linux系统:SSH后门、crontab定时任务、设置SUID特权文件。

自动化渗透测试和漏洞利用脚本的编写常常依赖Python等脚本语言。

七、 痕迹清除

为增加溯源难度,需清理部分攻击痕迹。注意:完全清除痕迹极其困难,此举仅为增加对方调查成本。

  • Windows:使用 clearev(MSF)清除事件日志;手动删除远程桌面连接记录及Web日志。
  • Linux:清空命令历史(export HISTFILE=/dev/null; export HISTSIZE=0);删除 /var/log 下的相关日志文件。

渗透测试与运维/DevOps领域紧密相关,了解系统的日常运维习惯有助于更好地隐藏行踪。

八、 撰写渗透测试报告

渗透测试的最终产出是一份详尽的报告,需包含:

  • 发现的漏洞详情(位置、类型)
  • 漏洞危害等级评估
  • 漏洞复现步骤与证明(截图)
  • 具体的修复建议

附录:漏洞挖掘所需基础知识体系

要系统地进行漏洞挖掘,需要构建跨学科的知识体系:

理论基础

  • 计算机网络、操作系统原理、密码学。

编程能力

  • 前端(HTML/CSS/JavaScript)、后端(PHP/Java/Python)、数据库(SQL)等,至少精通一门脚本语言(如Python)用于编写工具。

漏洞原理

  • 深入理解各类Web漏洞(SQL注入、XSS、反序列化等)及二进制漏洞(缓冲区溢出)的形成机制、利用与防御方法。

工具链

  • 熟练掌握主流的安全工具,如扫描器、爆破工具、代理工具、漏洞利用框架等。

Web架构与协议

  • 深刻理解Web前后端交互、HTTP/HTTPS协议、常见服务器与数据库的配置与架构。

以下是一份常见网络安全学习路径的知识模块概览:
渗透测试流程详解:从信息收集到漏洞利用与内网横向移动 - 图片 - 2

此外,系统化的学习资料(如靶场、实验环境、知识图谱)对于提升实战能力至关重要。
渗透测试流程详解:从信息收集到漏洞利用与内网横向移动 - 图片 - 3

漏洞挖掘(SRC)注意事项

  1. 细致分析:深入理解目标业务逻辑,不急于求成。
  2. 关注范围:严格遵守目标厂商的漏洞收录范围。
  3. 法律合规:仅在授权范围内进行测试,保护漏洞细节不对外泄露。
  4. 逻辑漏洞:在SRC挖掘中,逻辑漏洞(如业务越权、流程缺陷)往往是高价值漏洞的主要来源。



上一篇:ARM SMMU技术深度解析:从IOMMU硬件架构到Linux驱动与虚拟化应用
下一篇:Meta SAM-Audio多模态AI音频分割模型开源:基于Prompt提示精准提取声音
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 21:10 , Processed in 0.321282 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表