自学渗透测试第12天(渗透测试流程与DVWA部署)

5.2 渗透测试流程与DVWA部署(第12天)

核心目标
  1. 系统化渗透测试思维:深入理解并记忆渗透测试执行标准(PTES)的七个阶段,建立标准化的测试工作流。

  2. 掌握DVWA部署:成功在虚拟机中部署Damn Vulnerable Web Application漏洞演练平台,配置网络、数据库和应用程序。

  3. 建立安全测试环境:配置完全隔离的虚拟网络,确保攻击机和靶机在封闭环境中运行,不干扰外部网络。

模块一:渗透测试流程深入解析
1.1 PTES(渗透测试执行标准)七阶段详解
  1. 前期交互

    • 核心:获取合法授权,明确测试边界。

    • 产出:《授权测试协议》、《测试计划》。

    • 关键问题:测试范围(IP/域名/时间)、测试类型(黑盒/白盒/灰盒)、联系方式、应急响应流程。

  2. 信息收集

    • 被动收集:WHOIS、DNS记录、搜索引擎、社交工程、Shodan/Censys。

    • 主动收集:主机发现、端口扫描、服务识别、拓扑分析。

  3. 威胁建模

    • 目标:识别关键资产,评估攻击路径,确定攻击优先级。

    • 方法:STRIDE模型、攻击树分析。

  4. 漏洞分析

    • 自动化扫描:Nessus, OpenVAS, Nikto, Nmap NSE。

    • 手动验证:结合业务逻辑,深挖自动化工具无法发现的漏洞。

  5. 漏洞利用

    • 工具:Metasploit, SQLMap, 自定义Exploit。

    • 原则:最小影响,获取立足点。

  6. 后渗透攻击

    • 权限提升:本地提权(内核漏洞、配置错误)。

    • 横向移动:利用凭据、漏洞在内网扩散。

    • 持久化:后门、计划任务、服务。

    • 数据窃取:敏感信息定位与提取。

  7. 报告编制

  • 结构:执行摘要、详细发现、修复建议、附录。

  • 对象:管理层(风险与影响)、技术人员(复现与修复)。

1.2 渗透测试方法论
  • 黑盒测试:模拟外部攻击者,无内部信息。

  • 白盒测试:拥有完整内部信息(源码、架构图)。

  • 灰盒测试:介于两者之间,提供部分信息。

模块二:DVWA漏洞平台部署
2.1 DVWA简介
  • 定位:基于PHP/MySQL的Web漏洞演练平台,包含SQL注入、XSS、CSRF、文件上传等常见漏洞。

  • 特点:四个安全级别(Low, Medium, High, Impossible),适合不同阶段的学习。

2.2 部署前准备
  • 环境要求

    • 攻击机:Kali Linux(已安装)。

    • 靶机:Metasploitable2、Ubuntu + DVWA,或Windows + XAMPP + DVWA。

  • 网络配置 :在VMware/VirtualBox中创建仅主机(Host-Only)网络,将攻击机和靶机置于同一网段,实现网络隔离。

2.3 在Metasploitable2中启用DVWA
  • Metasploitable2:预置了多种漏洞的Linux虚拟机,默认包含DVWA。

  • 启动步骤

    1. 导入Metasploitable2虚拟机。

    2. 网络适配器设置为Host-Only模式。

    3. 启动虚拟机,记录其IP地址(通常为192.168.xxx.xxx)。

    4. 在攻击机(Kali)浏览器中访问http://靶机IP/dvwa

  • 默认凭证

  • 用户名:admin

  • 密码:password

2.4 在Ubuntu中手动部署DVWA
  1. 安装LAMP

    复制代码
    sudo apt update
    sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
  2. 下载DVWA

    复制代码
    cd /var/www/html
    sudo git clone https://github.com/digininja/DVWA.git
    sudo chown -R www-data:www-data DVWA
  3. 配置数据库

    复制代码
    sudo mysql
    mysql> CREATE DATABASE dvwa;
    mysql> CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'p@ssw0rd';
    mysql> GRANT ALL ON dvwa.* TO 'dvwa'@'localhost';
    mysql> FLUSH PRIVILEGES;
    mysql> exit
  4. 配置DVWA

    复制代码
    cd DVWA/config
    sudo cp config.inc.php.dist config.inc.php
    sudo nano config.inc.php
    # 修改数据库密码为上面设置的p@ssw0rd
    $_DVWA[ 'db_password' ] = 'p@ssw0rd';
  5. 允许PHP函数(如需文件上传等):

    复制代码
    sudo nano /etc/php/*/apache2/php.ini
    # 找到allow_url_fopen和allow_url_include,设置为On
    # 重启Apache
    sudo systemctl restart apache2
  6. 访问与初始化 :浏览器访问http://靶机IP/DVWA/setup.php,点击"Create/Reset Database"。

模块三:DVWA基本配置与使用
3.1 首次登录与安全级别设置
  1. 登录:使用默认凭证登录。

  2. 设置安全级别 :点击DVWA Security,将安全级别设为Low(学习阶段)。

3.2 模块结构
  • Brute Force:暴力破解。

  • Command Injection:命令注入。

  • CSRF:跨站请求伪造。

  • File Inclusion:文件包含。

  • File Upload:文件上传。

  • Insecure CAPTCHA:不安全的验证码。

  • SQL Injection:SQL注入。

  • SQL Injection (Blind):盲注。

  • XSS (Reflected/DOM/Stored):跨站脚本。

模块四:当日达标实战任务
4.1 环境搭建与验证
  1. 成功部署:按照上述步骤,在虚拟机中成功部署DVWA(建议使用Metasploitable2,更简单)。

  2. 网络连通性测试 :在Kali攻击机上,使用ping命令测试到DVWA靶机的连通性。使用nmap -sS 靶机IP扫描靶机开放端口,确认80端口开放。

  3. DVWA访问:在Kali浏览器中访问DVWA,成功登录并设置安全级别为Low。

4.2 渗透测试流程演练
  1. 编写微型测试计划:针对DVWA平台,撰写一份简单的测试计划,包含:测试目标、测试范围(仅DVWA应用)、测试时间、使用工具、风险规避措施。

  2. 信息收集实践:对DVWA靶机进行基本信息收集:

  • 使用whatweb识别Web技术。

  • 使用nikto对DVWA主页进行漏洞扫描。

  • 记录收集到的信息。

4.3 漏洞初步探索
  1. 手工测试一个漏洞 :在DVWA的Brute Force模块,尝试手工猜测密码(已知用户名admin,尝试密码password, 123456, admin等)。

  2. 使用Burp Suite:配置Burp Suite代理,拦截对DVWA的登录请求,并发送到Repeater进行重放测试。

模块五:常见问题与解决方案
5.1 部署问题
  • 无法访问DVWA页面 :检查防火墙(sudo ufw disable)、Apache服务状态(sudo systemctl status apache2)、网络配置(IP是否在同一网段)。

  • 数据库连接错误 :检查config.inc.php中的数据库密码、MySQL服务状态、用户权限。

  • PHP函数禁用错误 :按上述步骤修改php.ini并重启Apache。

5.2 流程与思维
  • 不知道从哪里开始测试:永远从信息收集开始。即使是已知的DVWA,也模拟真实场景,先进行端口扫描、目录扫描、指纹识别。

  • 测试进度混乱:使用笔记工具(如CherryTree, KeepNote)或渗透测试管理平台(如Dradis)记录发现、漏洞、截图,保持条理。


明日预告 :第13天将深入学习信息收集命令,并针对DVWA进行系统化的信息收集实践。我们将学习子域名枚举、目录爆破、指纹识别、WAF探测等技术,为后续的漏洞利用打下坚实基础。


免责声明

本技术分享内容仅供学习和交流目的,不构成任何形式的专业建议或承诺。

分享者不对因使用或参考本内容而导致的任何直接或间接损失或损害承担责任。

网络安全技术涉及潜在风险,请在合法授权范围内谨慎操作,遵守相关法律法规。

读者应自行评估技术适用性,并在实际环境中采取必要的安全措施。

版权声明

未经许可,不得擅自修改、转载或用于商业用途。

相关推荐
聊点儿技术2 小时前
IP风险评分80分是怎么算出来的?从权重分配到计算逻辑
网络安全·金融·ip·电商·ip风险评估·风控开发·评估ip风险
vortex55 小时前
SOAP 协议中的 XML 外部实体注入(XXE)漏洞
xml·网络安全·渗透测试
买大橘子也用券5 小时前
2026红明谷
python·web安全
航Hang*6 小时前
网络安全技术基础——第3章:网络攻击技术
运维·网络·笔记·安全·web安全·php
一名优秀的码农6 小时前
vulhub系列-64-Cereal: 1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
一名优秀的码农6 小时前
vulhub系列-66-Hms?: 1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
OPHKVPS6 小时前
React2Shell漏洞攻击中的新型恶意软件EtherRAT详解
网络·安全·web安全
CHICX12296 小时前
5.SQL 注入之高权限注入(下):文件读写 + 写 Shell,从数据库权限到服务器控制权
web安全·网络安全
Sombra_Olivia6 小时前
Vulhub 中的 bash CVE-2014-6271
安全·web安全·网络安全·渗透测试·vulhub