靶机搭建完全指南:用虚拟机和DVWA开启网络安全实战之路

发布时间:2026/10/11 16:48:01
靶机搭建完全指南:用虚拟机和DVWA开启网络安全实战之路 很多人第一次接触网络安全的时候都会做同一件事下载一堆“黑客工具”然后对着某个网站或者某台服务器乱扫一通。结果要么什么都没扫出来要么直接把目标扫崩了更严重的还可能因为未经授权触犯法律。我见过太多这样的新手所以我一直跟身边人说想学网络安全、想搞懂黑客技术第一件事不是买装备、不是下工具而是先搭一个靶机环境。靶机简单说就是一个故意留有漏洞、专门用来练手的系统。它就像一个消防训练场里面放了真火、真烟、真楼梯但你练的每一步都不会烧到真实建筑。这篇文章就是一份面向小白的靶机搭建指南从零开始讲清楚靶机是什么、怎么搭、搭完怎么练以及过程中最容易踩的坑。不管你是刚入行的程序员还是对网络攻防感兴趣的爱好者这套路径都适用。1. 靶机到底是个什么东西以及我为什么劝你别拿真机练手1.1 靶机环境的本质一座合法“爆破练习场”我第一次接触靶机这个概念时以为是个什么高大上的系统结果后来才明白它就是一台故意被削弱、充满漏洞的虚拟机或容器。它里面跑着老版本的操作系统、有漏洞的Web应用、不安全的服务就像一栋专门留下来给消防员做灭火训练的老楼。按照漏洞类型靶机大致能分成三类独立漏洞靶机一个完整的操作系统里面有多个漏洞服务比如你可以通过远端入侵拿权限代表是Metasploitable 2这种。单应用靶场一个专门练某一类漏洞的Web应用比如练SQL注入、练XSS、练文件上传代表是DVWA、WebGoat。场景复现靶场按CVE漏洞编号把真实历史漏洞打包成环境和PoC概念验证代码一条命令拉起来就能复现代表是Vulhub这类基于Docker的靶场。你可以在靶机上随意扫描、爆破、上传木马、提权无论多“暴力”都不违法因为这一切都在虚拟沙盘里发生。这种“合法暴力”是学习网络渗透和攻击原理最关键的练习条件。1.2 大多数新手的误区把真实系统当靶场我见过不少新手的共性问题——学了两天就用扫描器去扫自己学校的官网、扫支付宝、扫各种商业网站。这不仅是技术上的不自量力更是法律上的红线。我们常说的“黑客技术”在合法语境下其实是“安全测试技术”它的前提是授权。没有授权对任何系统做测试哪怕只是扫一下端口都可能构成违法。所以靶机环境的第二个价值就显现出来了它帮你把“学技术”和“碰红线”彻底分开。你在靶机上练的SQL注入、暴力破解跟你之后在企业里做渗透测试用的方法论完全一样但你在靶机上练永远不会出事。真实系统是考场靶机是模拟卷你不可能第一次做题就直接上考场。1.3 练靶机到底在练什么不只是“打进去”很多人以为搭靶机就是为了练“怎么黑进去”其实靶机练的核心是三条线信息收集能力拿到一台靶机怎么从域名、IP、端口、指纹、目录里一点点找到入口。漏洞利用能力发现SQL注入后怎么构造payload发现弱口令后怎么用字典尝试发现上传漏洞后怎么绕过过滤。修复与加固意识通过对漏洞的利用反向理解开发者写代码时哪里容易出问题运维配置哪里容易疏漏。这三条线恰恰是网络安全岗位面试时最常考的东西也是做红队、蓝队、安全开发的基础。靶机练的不是“炫技”而是这套可复用的分析思维。2. 本地靶场搭建一套从零开始的最小可行方案2.1 动手前先检查你的电脑够不够“扛”虚拟机本地靶场本质上就是你要在电脑里同时跑好几个虚拟机一个攻击机、一两个靶机所以对内存和CPU虚拟化有一定要求。先说硬件底线内存8GB是及格线16GB以上体验流畅。靶机我一般给它2GB攻击机Kali给4GB如果你还要跑Docker另外算。硬盘建议留出至少80GB空间SSD更好因为虚拟机文件读取速度差距明显。CPU需要支持并开启虚拟化AMD和Intel都有对应的VT-x/AMD-V开关。在Windows上检查虚拟化是否已开启最直接的做法是打开任务管理器CtrlShiftEsc→ 性能选项卡 → CPU看右下角“虚拟化”是否显示“已启用”。如果显示“已禁用”需要进BIOS/UEFI里找Intel Virtualization Technology或SVM Mode把它打开。注意如果你平时开了Windows的Hyper-V或内核隔离内存完整性VirtualBox和VMware的虚拟机有可能会报“VT-x不可用”或直接启动不起来。遇到这种情况可以临时关掉这些功能再跑虚拟机别同时开两套虚拟化体系。2.2 选择虚拟化软件我推荐开源免费的那款本地运行虚拟机的工具很多常见的有VMware系列、VirtualBox、Parallels等。如果你只是想学习我建议用VirtualBox——开源、免费、跨平台Windows/macOS/Linux都能跑而且官方提供预建好的虚拟机镜像导入特别方便。安装过程本身没什么难点一路下一步即可。真正容易出问题的是安装完成后需要重启电脑以及“网络适配器”相关驱动会被安全软件拦截安装时留意一下提示。2.3 引入攻击机Kali Linux的虚拟机导入本地靶场要分“攻击机”和“靶机”。攻击机就是给你用来发起测试操作的工具集。Kali Linux是目前安全圈最流行的攻击机系统里面预装了几百个安全测试工具从端口扫描、抓包到密码破解、漏洞利用样样都有。我用VirtualBox的操作顺序是这样的去Kali官网下载“VirtualBox/VMware 虚拟机镜像”格式是OVAOpen Virtual Appliance。打开VirtualBox菜单选文件 → 导入虚拟电脑选择下载的.ova文件。按提示设置导入默认路径和配置就够用。开机后默认账号密码通常是kali/kali登录后记得先更新系统源。实际跑起来后你会发现虚拟机里Kali桌面可能会稍微卡顿这跟显卡驱动有关。解决办法一般是安装VirtualBox的增强功能“设备 → 安装增强功能”装完再重启一次画面就流畅了。2.4 引入靶机DVWA与Metasploitable 2组合攻击机有了靶机至少要配两个一个练Web一个练系统渗透。DVWADamn Vulnerable Web Application是我最早接触的一个Web靶场它就是个写满了漏洞的PHP网站里面分四个难度等级Low/Medium/High/ImpossibleSQL注入、XSS、CSRF、文件包含、命令注入、暴力破解这些Web安全基础漏洞全都安排得明明白白。获取方式一般是把源码放到一个装了PHPMySQL的环境里或者直接跑官方Docker镜像新手我更推荐先试Docker方式docker pull vulnerables/web-dvwa docker run --rm -it -p 8080:80 vulnerables/web-dvwa然后浏览器访问http://localhost:8080默认账号admin/password。如果你不想碰Docker也可以把源码下载下来放进PHP集成环境里改一下数据库配置文件一样能跑只是步骤多一些。Metasploitable 2则是一个故意留了大量危险服务的Ubuntu虚拟机。它里面运行着一个有漏洞的FTP服务、一个有漏洞的Samba服务、弱口令的SSH、可匿名登录的数据库端口等等简直是给系统渗透练手量身定制的。下载下来的文件同样是一个OVA包直接导入VirtualBox即可。导入后默认账号密码是msfadmin/msfadmin没有图形界面直接用命令行登录。2.5 最小可行网络拓扑Host-Only到底怎么配靶机和攻击机都导入后最让人懵的就是网络配置。VirtualBox默认给虚拟机提供的网络模式有几大类我简单对比一下网络模式虚拟机与外界的连接攻击机到靶机是否需要额外配置NAT虚拟机通过宿主机上网不能直接访问同网段靶机无需但虚拟机之间隔离桥接虚拟机直接接入当前局域网只要同网段就能互访需要路由器允许依赖外部网络环境Host-Only仅宿主机与虚拟机互相通信同网段虚拟机能互访最稳不依赖外网本地靶场我建议用Host-Only模式。原因很简单靶场练习时不想让它访问外网而Host-Only相当于给攻击机和靶机拉了一条只有它们和宿主机可见的“私网网线”扫描、爆破都在这个封闭网络里跑安全可控。做法先打开VirtualBox的全局设置 → 网络 → 仅主机网络确保有一个Host-Only适配器一般是vboxnet0然后分别把Kali和Metasploitable的网络模式改成“仅主机网络”启动后可先用ip addr查看它们是否处于同一网段比如都是192.168.56.x。如果没在同网段手动改网卡配置或者使用DHCP分配即可。2.6 配置小细节内存分配与快照习惯导入虚拟机的过程中要注意给系统留足内存。Kali通常给2~4GBMetasploitable给512MB-1GB就够。虚拟机内存配太大宿主机自己就卡配太小攻击工具跑起来容易卡死。另一个极其重要但新手几乎不做的事是搭好环境、确认能正常开机互通后立即拍一个快照。快照相当于存档以后操作把靶机打坏了、服务跑挂了一条命令就能还原到干净状态不折腾重装。我每次给DVWA改成高难度前也会先拍快照练习翻车了直接回档。提示跑靶机练习前把攻击机和靶机都设置成“仅主机网络”同时把宿主机的虚拟防火墙里对应网段的入站访问关掉或者确认仅限私网防止别人顺着你这条虚拟网络线摸进来。这个习惯我在团队里一直强调安全练习先保证自己的环境安全。3. 在线靶场与CTF平台没有好电脑也能练3.1 什么时候你应该考虑在线靶场本地搭靶机确实好但不是人人都有条件有些人的电脑只有4GB内存跑两个虚拟机直接卡死有些人用的是公司电脑装了虚拟机管理软件会被IT部门拦截还有些人出门在外只有一台轻薄本硬盘剩不到20GB。这些情况我都经历过所以我理解——条件不允许的时候不代表你练不了。在线靶场就是解决这个问题的方案。它把靶机跑在云端你只需要一个浏览器输入账号、选一个漏洞场景或一台在线靶机就可以在上面做SQL注入实验、命令拼接测试。有些平台还会自动给你分配一个带IP的独立靶场用完即释放。3.2 两类在线练习场景Web实验场和CTF挑战赛在线练习大致分两个方向第一类是Web漏洞实验场它把DVWA、WebGoat这类经典靶场部署到云端你在网页上登录后可以调试Burp Suite、改请求包、做各种注入与绕过。这类环境适合想专心练Web漏洞、又不想折腾环境的人。第二类是CTF夺旗赛训练平台以解题为主题目覆盖Web、逆向、密码学、二进制漏洞、杂项等方向每一道题是一个小的靶场。它的好处是目标明确、反馈即时解出一道题拿一个flag一串验证成功的字符串特别像打游戏过关很有成就感。CTF解题对新手来说优点是题目体量小、路径清晰缺点是它往往是“单向利用”模式没有完整的信息收集过程。所以我不建议把它当成唯一练习途径它更适合作为本地靶场之外的补充。3.3 以“靶场为主、CTF为辅”的网格法学习我自己的经验是本地靶场和在线CTF应该配合起来。本地靶场负责练完整流程从信息收集到漏洞发现再到验证一步步走完在线CTF负责练单一技能的深度不会的题看Writeup解题过程也能快速长经验。时间充足的时候我更推荐在本地DVWA把SQL注入从Low难度练到High难度。同步刷两三道SQL注入方向的CTF题。回到Metasploitable尝试做个完整的入侵链路。这个“网格法”能有效避免只刷CTF但不懂实战、或只搭本地但不会应急的偏科问题。4. 靶场里的漏洞地图优先练哪几类以及怎么练才有用4.1 按漏洞类型建立自己的“练习清单”靶机搭好之后最大的问题反而是——面对一堆漏洞入口不知道该从哪下手。我建议先按下面的优先级推进这些都是Web安全里出现频率最高、面试常问、实战常用的漏洞类型优先级漏洞类型靶场里的练习场景核心目标1SQL注入DVWA SQL Injection模块理解输入与SQL语句拼接的边界2XSS跨站脚本DVWA XSSStored/Reflected理解输出编码与服务端信任问题3文件上传漏洞DVWA File Upload、Vulhub中的上传场景理解文件类型校验的绕过思路4命令注入DVWA Command Injection理解系统命令拼接与过滤绕过5弱口令与爆破Metasploitable SSH、暴力破解模块理解口令强度的重要性与爆破原理6信息泄露Nmap扫描、目录遍历、备份文件理解攻击入口往往来自信息暴露每练一种漏洞不要只满足于“弹了个flag”或者“进后台了”而是要想三件事这个漏洞的根本成因是什么开发者犯的最核心的错误是什么如果要修代码或者配置要怎么改带着这“灵魂三问”去练才会越练越扎实。4.2 从Low到ImpossibleDVWA难度递进里藏着真实代码演变DVWA最让我受用的是它的四级难度。同样是SQL注入模块Low级别的代码就是直接把参数拼进SQL查询漏洞显而易见Medium级别加了字符串转义High级别用了更严格的输入过滤到Impossible级别直接走了参数化查询根本没给你注入的机会。新手到中级阶段最有效的练法就是把这四个难度都做一遍。你会像看历史版本一样看到同一个漏洞从“烂代码”到“安全代码”的演进过程。看完之后你对为什么要用预编译语句、为什么不能信任用户输入这些“规则”的理解会深一个层次。我在实际带人入门时经常发现只看文档背“SQL注入原理”的学员基本功不如在DVWA把四级难度都打通一遍的学员。后者在看到真实系统中的参数接SQL时一眼就能本能地判断出注入点在哪。4.3 Metasploitable系统渗透从扫描到拿权限的完整链路如果说DVWA练的是Web应用层面的“手术”那Metasploitable练的就是系统层面的“围猎”。标准练法是用Nmap对靶机做一个全端口扫描nmap -sV -p- 192.168.56.x看开放端口对应的服务及版本搜索引擎或文档里找对应漏洞。用Metasploit框架尝试利用其中一个漏洞比如知名的VSFTPD后门模块、Samba服务漏洞。目标是拿到一个Shell然后练习提权。需要明确一点Metasploitable 2因为版本太老很多模块打上去都是一发入魂这其实就是刻意的“教学退火”。在这个环境里尝到拿Shell的成就感很正常但不要沉迷。它的价值在于让你完整跑一遍渗透流程知道每个阶段的输入输出长什么样。5. 搭好靶场后的第一周学习路径怎么排5.1 每天2小时七天的安排表可直接抄环境搭好只是起点最怕的是“搭完即吃灰”。我给自己和带过的伙伴设计过一套第一周入门表非常适合完全零基础的人每天2小时左右不烧脑但有效天数任务达成标准第1天熟悉Kali的基础命令切换目录、查看文件、下载文件、权限管理能不看教程完成对某个文件的创建、编辑、权限修改第2天用Nmap对Metasploitable做一次全端口扫描能看懂每端口对应服务的版本并能输出扫描报告第3天在DVWA上完成SQL Injection Low级别能手工确认注入点并用联合查询读出数据库版本第4天在DVWA上完成XSS Low级别存储型反射型能解释两类XSS的触发位置与危害区别第5天用ZAP或Burp Suite抓一次DVWA登录请求做一次暴力破解能抓到POST请求、设置字典、看到爆破结果第6天在Metasploitable上尝试一次完整漏洞利用从Nmap到拿Shell能写出500字的渗透过程复盘第7天整理第一周笔记把每个漏洞的原理、利用、修复写成三栏笔记每个漏洞不少于300字有截图有命令记录这套安排的核心逻辑是“从能看到结果的操作开始”第一天就给你正面反馈。很多人学网络卡在“看一堆不懂的协议”上而我的建议是不要先啃理论先操作操作中自然遇到问题再回去补理论。5.2 笔记系统比工具更值钱我是怎么做的我强烈建议从第一天就建立一个自己的漏洞档案笔记不要只是零散地收藏网页。我的个人格式是五段式漏洞信息名称、触发位置、危害等级。复现步骤用靶机走一遍完整流程每一步的命令和响应都记录。成因分析用一两句话说清楚根本原因比如“使用了字符串拼接SQL没有用参数化查询”。修复方案对应代码或配置层面的加固做法。自己的理解用一个生活化比喻解释漏洞机制比如“这就像你家门锁本身没坏但钥匙口可以用一根铁丝捅开”。这套笔记积累到二三十条之后你会发现自己已经能隐约看出来企业报告中漏洞描述的套路水平提升是连贯的。5.3 遇到瓶颈怎么办解题式学习法和社区求助练着练着一定会遇到“啊这关我过不去了”的时刻。这时候不要死磕超过20分钟我的建议是先把题目里的报错、现象、自己尝试过的步骤记录下来。去搜索文章或看CTF新手题Writeup对照别人的思路找自己的断层。再回到靶机重试如果还不行隔天再试。我见过很多人卡在一个点上焦虑得不行其实换个时间、换个精力状态很多问题会迎刃而解。网络安全学习本质上是长跑允许自己有“卡住-突破-再卡住”的节奏。6. 我踩过的靶场搭建坑以及排查思路6.1 虚拟化未开启导致虚拟机无法启动最常见的坑之一就是虚拟机软件安装好了一点启动立刻弹窗提示类似“VT-x is not available”或者“AMD-V is disabled in the BIOS”。很多人第一反应是软件坏了其实问题出在宿主机CPU虚拟化功能被关闭了。排查思路Windows任务管理器 → 性能 → CPU看“虚拟化”是否显示“已启用”。如果显示“已禁用”重启电脑进入BIOS/UEFI设置界面开机时按Del/F2/F10等按键。在处理器设置里找到Intel Virtualization TechnologyIntel或SVM ModeAMD改为Enabled。保存退出重新进入系统。注意不同品牌主板BIOS设置位置略有不同但关键词基本都是Virtualization或SVM。设置完最好再确认一遍任务管理器里显示“已启用”再继续。6.2 虚拟机之间ping不通网段是罪魁祸首Kali和Metasploitable都设为仅主机模式后有时候互相ping不通这是新手最容易懵的地方。排查链路我总结为三步在两台虚拟机分别执行ip addr看IP是否在同一个网段。仅主机模式下一般是192.168.56.x但有时候VBox会自动用别的网段比如192.168.57.x。如果网段不一致检查VirtualBox全局设置中的Host-Only网络或者分别手动配置网卡的IP地址。确认靶机防火墙没有禁pingMetasploitable 2默认通常不拦但如果改成其他系统版本就要注意。如果还是不通可以试着把两台虚拟机的Host-Only网卡先断开再重新连接相当于拔插网线很多时候问题是虚拟机启动时网卡状态没就绪。6.3 Docker方式的DVWA跑起来却访问不了用漏洞靶场镜像跑DVWA是一种很省事的做法但新手常在启动后死活访问不了http://localhost:8080。此时不要先怀疑镜像坏了按顺序排查确认容器确实在运行看一下运行状态。确认端口映射正确跑的是-p 8080:80还是-p 8081:80浏览器访问的端口要对应。确认服务是否正常进入容器内部查看Apache和MySQL状态。使用宿主机IP而不是localhost访问有些环境localhost解析问题。还有一个常见问题是DVWA初始化页面报“Database has not been set up yet”这时点页面底部的“Create/Reset Database”按钮初始化数据库如果数据库创建失败多半是MySQL容器里root账号配置不匹配需要看错误日志找具体密码配置。6.4 虚拟机启动后黑屏、卡Logo、共享文件夹不生效VirtualBox下导入Kali虚拟机后常见黑屏或卡在启动界面不动这个情况我遇到过好多次。一个比较有效的解法是给虚拟机启用VBoxVGA显示控制器或者关闭3D加速。做法是在虚拟机“设置 → 显示 → 显示控制器”里改成“VBoxVGA”并取消勾选“启用3D加速”然后重启虚拟机。共享文件夹不生效则是另一个高频问题。设置好共享文件夹后还需要在虚拟机内部执行挂载命令才能看到例如sudo mkdir -p /mnt/share sudo mount -t vboxsf share_name /mnt/share忘记挂载就能看到共享文件夹这种现象我见得特别多写出来给大家避个雷。6.5 快照回滚的正确姿势别把状态搞丢了前面我强调过拍照快照但快照也讲究策略。一些新手每次尝试前随手拍一堆快照最终混杂了好几十个快照文件把磁盘塞爆。更轻量的做法是在以下时间点只拍一份快照——靶机全部配置好、能正常互通时这是“黄金初始态”。每准备练一个新系列漏洞前比如“SQL注入练习前”。系统或工具更新后基础环境没有出现问题时。回滚时选中目标快照“恢复备份”即可。恢复前务必确认当前靶机里没有需要保留的练习数据否则恢复完这步操作的结果就没了。7. 说点安全的靶机练习的边界和底线7.1 任何测试都先问“我有授权吗”聊到这里系统也搭了、也打了但还是要把最重要的话说在前面。你在靶机上练的任何一个技术放到真实系统里去执行性质就完全不同了。授权是安全测试和非法攻击之间唯一的界线。没有授权哪怕只是扫描一个IP在法律上都可能构成违法。我自己在学习时给自己定了一个铁规矩所有测试行为只在两类系统上发生——一是自己搭建的靶机二是明确获得授权的测试目标比如有书面授权的企业评估项目。不是自己的资产、没有授权文件、甚至只是“应该没问题”的模糊场景一概不碰。7.2 攻与防是一体的练攻击必须同步学修补我越来越觉得只练“怎么打进去”的人成长天花板很低。因为攻击手法千变万化今天能打进去的东西明天可能就被人修了但如果你在每次练习后都能补上“怎么修”这一课你才能从脚本小子升级为真正的安全从业者。所以每次在DVWA上完成一次SQL注入我都要求自己同时写出修复代码用预编译语句、加输入验证每次在Metasploitable上拿下Shell我也要想想公司里遇到类似的暴露服务该怎么收敛。这种攻防一体的视角是安全岗位价值最直接的体现。7.3 从靶场走向职业方向下一步怎么规划靶场练完、笔记也积累了几十篇之后恭喜你你已经比大多数嘴上说“想学黑客技术”的人走得更远。这时可以考虑下一步了尝试Base知识的系统化学习网络协议、操作系统、数据库原理这些是抬高天花板的根基。报名参加一些正规的安全类竞赛或护网演练在真实授权的对抗环境中检验自己。如果目标是成为安全工程师开始积累渗透测试报告撰写能力、代码审计能力和应急响应思路而不仅是“会打靶机”。说到底靶机环境是所有网络安全学习者最公平的工具——它不看你学历、不看背景只要你花时间搭、花时间练就一定能换来实打实的能力。我见过太多“收藏了就等于学会了”的人本篇文章我能给的都给了剩下的就是你去把OVA包导进去把DVWA打开然后真正开始第一轮扫描。很多年后你回头看会发现所有的技术跃迁都是从这台破旧的虚拟靶机开始的。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询