ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

pikachu靶场虚拟机搭建:网络模式与访问链路详解

pikachu靶场虚拟机搭建:网络模式与访问链路详解 1. 为什么我把pikachu靶场装进虚拟机而不是直接跑在主机上第一次搭pikachu靶场卡住人的往往不是漏洞本身而是物理主机上的浏览器死活打不开虚拟机里那个页面。地址栏敲127.0.0.1转圈到超时换成虚拟机的IP提示无法访问好不容易首页出来了CSS和图片全丢点进模块清一色404。这些问题看着五花八门根因其实就三类网络模式选错、端口没放行、站点根目录指向不对。把这三件事理清楚pikachu靶场搭建就是十几分钟的事。pikachu圈内习惯叫皮卡丘靶场是一套用PHP写的Web漏洞练习平台把SQL注入、XSS、CSRF、文件包含、反序列化、SSRF这些常见Web安全问题拆成一个个独立模块每个模块都配了刻意留出缺陷的页面。它的价值不在于能跑起来而在于给你一个可以放心乱点的环境——参数改成什么、请求重放多少次都不影响任何真实业务。这篇内容面向刚接触网络安全、想在自己机器上把pikachu跑起来的人也适合装过一遍但总觉得环境半通不通的人。整套流程我会拆成两段虚拟机内部Web环境的搭建以及物理主机到虚拟机的访问链路打通。后者是很多教程一笔带过、但真正让人放弃的部分。1.1 靶场本身就是个脏环境别让它碰你的日常系统pikachu的设计目标就是能被攻破代码里到处是故意的缺陷数据库账号密码也常常是弱口令。这种环境放在物理主机上跑等于把一个没锁门的屋子盖在自己家门口。更现实的问题是练注入的时候你会反复往数据库里塞奇怪字符练文件上传的时候会往Web目录丢各种测试文件练反序列化的时候可能触发一堆PHP报错日志。主机上的开发环境、浏览器保存的密码、甚至一些日常软件的数据都可能在你不注意的时候被牵连。放到虚拟机里的好处很直接它是一个可以被随意弄脏、弄坏了直接删掉重来的盒子。练完一个模块拍张快照玩崩了回滚三十秒回到干净状态。这种随便作的自由度才是靶场真正该有的使用姿势。另外还有一个很实际的考虑——物理主机访问虚拟机这个结构本身就模拟了真实渗透测试里的位置关系你的攻击机主机和靶机虚拟机是两个独立的IP。等你后面想加Burp Suite抓包、想玩arp欺骗、想拿nmap扫端口的时候这个双机结构不用重建直接就能用。1.2 三种网络模式先想明白再动手装系统VMware给虚拟机提供了三种主要网络模式选哪种直接决定了物理主机能不能访问到靶场。很多人装完系统才想起来研究这个结果发现虚拟机拿不到IP或者主机ping不通又回头重装。网络模式虚拟机IP来源主机能否访问虚拟机虚拟机能否上网适合场景桥接Bridged和主机同网段的独立IP能双向互通能有线网络、需要被局域网其他机器访问NATVMware虚拟网段如192.168.60.x能但需要端口映射能无线网络、只想主机自己访问仅主机Host-onlyVMware虚拟网段能不能完全离线、纯隔离练习我的建议很直接如果你用的是笔记本连WiFi优先选NAT加端口映射如果是有线连接桥接最省事。原因后面在第四章会详细展开这里先记住一个结论——桥接模式在部分无线网卡上会拿不到IP这是硬件层面的限制不是配置写错了换NAT能立刻解决。虚拟机安装本身没什么技术含量一路下一步就行。但有两个细节值得注意一是系统盘给到40GB以上phpStudy加MySQL加日志20GB很快见底二是内存至少给2GB1GB的虚拟机跑Apache和MySQL会卡到你怀疑人生。1.3 动手前的清点软硬件清单与版本取舍在真正开始之前把要用的东西列清楚能省掉后面大量的返工。下面这张清单是我自己常用的组合实测下来稳定性最好。虚拟化软件VMware Workstation 16或17版本不用追新稳定优先靶机系统Windows Server 2012/2016或者Windows 7/10精简版Linux系可选CentOS 7、Ubuntu 20.04Web环境Windows下用phpStudy小皮面板Linux下用LNMP或宝塔PHP版本7.0到7.3之间最稳数据库MySQL 5.5或5.7靶场源码pikachu开源仓库打包文件浏览器主机侧准备一个独立浏览器或独立配置文件专门用来访问靶场这里特别说一句PHP版本。很多教程只写PHP 5.4以上实际装的时候你如果装了PHP 8.0会发现pikachu部分模块直接白屏或者报致命错误——它里面有些写法依赖较老的数据库扩展和语法PHP 8把一些废弃特性彻底移除了。反过来PHP 5.3以下会因为语法太老跑不起来。7.0到7.3这个区间是经过大量人验证的甜点区phpStudy的面板里可以直接切版本装完先切好再部署代码能少踩一大半坑。提示虚拟机的系统语言建议用中文或英文都可以但Web目录路径千万别带中文和空格。D:\我的靶场\pikachu这种路径在Apache配置里是灾难后面排查样式丢失问题时能把你绕进去。2. 虚拟机内部的Web运行环境怎么搭才不返工环境搭建这一步Windows和Linux两条路线差别挺大但核心逻辑是一样的一个能解析PHP的Web服务器一个能连上的MySQL一个指向正确位置的站点根目录。这三件事有一件没弄对pikachu的安装页就出不来。下面按我的实际操作顺序讲Windows路线为主因为用物理主机访问虚拟机的场景里Windows靶机占比最高也最容易上手。2.1 phpStudy与LNMP两条路线的取舍逻辑先说结论。如果你只是想快速把pikachu跑起来Windows加phpStudy是最短路径图形界面点几下Apache、MySQL、PHP全装好站点根目录、端口、PHP版本切换都在面板里操作不需要碰命令行。缺点是Windows下Apache的权限模型和Linux差别比较大你练文件包含、文件上传这类模块时遇到的路径问题和真实Linux服务器不太一样。如果你的目标是贴近真实生产环境Linux加LNMP更值。CentOS或Ubuntu装好之后用宝塔面板或者手写nginx配置再单独装PHP和MySQL。这条路前期麻烦一点但练命令执行、权限提升、反弹shell这类模块时环境更真实能学到的细节也更多。我的做法是先在一台Windows虚拟机上把pikachu跑通摸清整个部署流程然后再用Linux虚拟机重建一遍。第一遍熟悉流程第二遍理解差异。两套环境都拍快照留着后面写笔记或者做对比的时候随时能切回去。2.2 PHP版本与模块兼容性那些装完才发现的报错phpStudy面板默认可能给你一个比较新的PHP版本比如7.4或者8.x。装完pikachu之后你大概率会遇到下面这几类问题第一类是白屏或者500错误。访问install.php页面一片空白浏览器什么都不显示。这时候不要瞎猜去看Apache的错误日志phpStudy的日志目录下十有八九是PHP的致命错误比如调用了在当前版本里已经不存在的函数。第二类是数据库连接失败。错误信息通常是Access denied或者无法连接到MySQL服务器。这个多半是config.inc.php里的账号密码和实际MySQL的账号密码对不上或者MySQL根本没启动。第三类是部分模块能打开、部分模块报错。这种最迷惑人其实说明版本本身能跑但个别模块的写法在PHP 7.4以上被判定为废弃。解决办法很简单——在phpStudy里把PHP版本切到7.0或7.3重启Apache问题大概率消失。现象大概率原因处理方式首页白屏、500PHP版本过高函数不存在切到PHP 7.0-7.3提示数据库连接失败账号密码不匹配或MySQL未启动核对config.inc.php并启动服务个别模块报错语法废弃警告切低版本PHP或关闭错误显示页面能开但全是乱码数据库字符集不是utf8建库时指定utf8编码注意不建议为了跑起来去修改pikachu的源码。改一处后面遇到的所有报错你都会怀疑是不是自己改坏了。版本问题用版本解决这是最省心的思路。2.3 MySQL初始化与站点根目录的初始化phpStudy装好后默认自带MySQL账号密码通常是root/root。这里要做两件事确认MySQL服务在运行以及为pikachu准备一个独立的数据库。数据库可以先不建因为pikachu的安装向导会帮你建库建表。但MySQL服务必须能正常启动否则安装向导走不下去。如果面板里显示MySQL启动失败最常见的原因是端口冲突——你主机或者虚拟机里已经有一个MySQL占用了3306。处理方式是在phpStudy里改MySQL端口同时记得config.inc.php里的端口也要跟着改。站点根目录这块是重点。phpStudy默认的WWW目录通常是D:\phpstudy_pro\WWW你把pikachu解压后的文件夹整个拖进去最终路径是D:\phpstudy_pro\WWW\pikachu。访问地址就是http://虚拟机IP/pikachu/。但这里有个细节很多人喜欢在phpStudy里新建一个站点把根目录直接指向D:\phpstudy_pro\WWW\pikachu。这么做的好处是访问时不需要带/pikachu后缀直接http://虚拟机IP/就到首页。坏处是如果pikachu的代码里有相对路径引用比如../inc/config.inc.php这种站点根目录变更后可能引用错位导致部分页面加载不出来。我的建议是先用默认WWW目录加子文件夹的方式跑通确认所有模块都能打开之后再考虑要不要配独立站点。先通后优别一上来就折腾配置。Apache这边还有两个配置项值得检查。一是监听端口默认80如果你主机上IIS或者别的软件占了80虚拟机里也可能因为其他服务占着那就改成8080访问时带端口。二是AllowOverridepikachu有些模块依赖.htaccess文件需要把对应目录的AllowOverride设为All否则这些模块会返回404或者403。# Linux环境下快速检查80端口是否被占用 netstat -tlnp | grep :80 # Windows靶机命令行下检查 netstat -ano | findstr :80如果输出里有别的进程占用80要么停掉那个进程要么把Apache改到8080。前者更干净后者更安全不影响其他服务。改完端口记得重启Apache然后在主机侧访问时把端口带上。3. 把pikachu源码放进去并完成数据库初始化环境通了之后接下来的操作就很快了放代码、改配置、走安装向导、验收。这一步看着简单但有几个位置改错一个字符就会让你在数据库连接失败这个提示上耗半小时。3.1 源码的获取与目录摆放pikachu是开源项目在代码托管平台上搜项目名就能找到作者维护的仓库下载打包文件解压即可。解压后你会看到类似这样的目录结构pikachu/ ├── inc/ # 配置和公共函数 ├── pkxss/ # XSS相关模块 ├── vul/ # 各类漏洞模块目录 ├── install.php # 安装向导 ├── index.php # 首页 └── ...把整个pikachu文件夹原样放进Web根目录不要只挑几个文件复制。很多人为了干净只拿了部分目录结果首页能开、点进模块就404就是因为模块目录没拷全。还有一点解压出来的文件夹名字不要改。有些压缩包解开后是pikachu-master你手动改成pikachu是可以的因为访问路径跟着变就行但如果改成带中文或者带空格的名字Apache处理路径时容易出问题尤其是后面配伪静态和.htaccess的时候。3.2 config.inc.php里真正需要改的字段配置文件在inc/config.inc.php用文本编辑器打开你会看到几个关键变量。我按重要性排序说$DBHOST数据库主机地址。因为数据库和网站跑在同一台虚拟机里这里保持localhost或127.0.0.1就行不要改成主机的IP否则会连不上$DBUSER / $DBPW数据库账号密码默认root/root要和phpStudy里MySQL的实际配置一致$DBNAME数据库名通常是pikachu安装向导会自动创建$PIKA_ROOT_DIR项目根目录的相对路径一般保持默认的../../即可这里最容易踩的坑是账号密码。phpStudy某些版本的默认MySQL密码不是root或者你之前改过却忘了。核对方式很简单在phpStudy面板的MySQL管理里看当前账号信息或者在命令行里用mysql -uroot -p试一下能不能登进去。另一个坑是端口。如果你把MySQL从3306改到了别的端口config.inc.php里也要对应调整有些版本用的是$DBHOSTlocalhost:3307这种写法。改完保存别用记事本存成UTF-8带BOM的格式那会在PHP里产生一个隐藏字符导致页面顶部多出一行空白进而引发headers already sent这类奇怪报错。用VS Code或者Notepad编码选无BOM的UTF-8。3.3 安装向导走完后的验收动作浏览器访问http://虚拟机IP/pikachu/install.php会看到一个初始化页面点安装按钮它会自动建库建表并写入初始数据。看到安装成功的提示后做三件事确认环境真的好了第一删掉或改名install.php。这是习惯问题也是安全意识的一部分——虽然靶场本身是隔离的但留着安装入口是坏习惯练手时也该按真实项目的规范来。第二逐一点开首页上的模块列表。不要只看首页能开就觉得大功告成。SQL注入、XSS、文件包含、反序列化、SSRF这些模块各点进去一个页面确认都能正常显示表单和内容。这一步能提前发现部分模块404这类问题。第三检查数据库里是否真的写入了数据。在phpStudy的数据库管理工具里打开pikachu库看看是不是有一堆pk_开头的表。有表有数据说明初始化完整只有空库说明安装向导中途失败了需要看日志找原因。4. 打通物理主机到虚拟机的访问链路到这里虚拟机内部的靶场已经在http://127.0.0.1/pikachu/能访问了。但物理主机上的浏览器还是打不开——因为你访问的是主机自己的127.0.0.1而靶场在另一台机器上。这一章讲的就是怎么把这条链路接上也是整个教程里最关键的部分。4.1 桥接模式拿到一个和主机同网段的IP桥接模式的逻辑很好理解虚拟机就像你局域网里新接进来的一台电脑从路由器那里自己拿一个IP和你的物理主机平起平坐。配置方式是在VMware里把虚拟机的网络适配器设为桥接模式然后进虚拟机里确认IP。在Windows靶机上打开命令提示符输入ipconfigLinux靶机输入ip addr。找到IPv4地址比如192.168.1.105。然后回到物理主机打开浏览器访问http://192.168.1.105/pikachu/。如果一切正常页面就出来了。桥接模式的好处是双向透明主机能访问虚拟机虚拟机也能访问主机局域网里其他设备也能访问这台靶机。方便是方便但有两个坑要提前知道。第一个坑是WiFi环境下的桥接不稳定。部分无线网卡的驱动在桥接模式下拿不到DHCP分配的IP表现就是虚拟机里ipconfig出来的地址是169.254.x.x这种自动私有地址。这不是配置错了是网卡层面的兼容问题换有线或者改用NAT模式就好。第二个坑是IP会变。路由器重启、DHCP租期到了、你换了WiFiIP都可能变。每次都去虚拟机里查一遍很烦。解决办法是在路由器里给这台虚拟机的MAC地址绑定固定IP或者干脆改用NAT模式——NAT下虚拟机IP由VMware自己管相对稳定。4.2 NAT加端口映射无线环境下我更推荐的方案NAT模式下虚拟机处于VMware创建的一个独立网段通常是192.168.x.0/24网关是VMnet8的地址它能上网但外部包括物理主机默认访问不到它。要让主机能访问就得做端口映射。配置路径是VMware菜单栏编辑 → 虚拟网络编辑器 → 选中VMnet8NAT模式那一项 → 点NAT设置 → 在端口转发里添加一条规则主机端口8080随便选一个没被占用的类型TCP虚拟机IP地址靶机的IP比如192.168.60.128虚拟机端口80保存之后在物理主机浏览器里访问http://127.0.0.1:8080/pikachu/流量就会通过主机8080端口转发到虚拟机的80端口。这个方案看起来比桥接多了一步配置但优势很明显不受无线网卡影响虚拟机IP由VMware管理主机侧的访问地址永远是127.0.0.1加端口不用每次查IP。对笔记本用户来说这是最省心的方案。需要注意的一个细节是端口转发配好之后主机侧访问用的是127.0.0.1但在靶机内部数据库连接仍然写localhost这是两个独立的通信路径不要混为一谈。4.3 仅主机模式配合主机的转发方案离线练习的选择如果你追求的是绝对的隔离——比如你想在一个完全断网的虚拟机里练手不希望它有哪怕一点访问外网的可能——那就用仅主机模式。这个模式下虚拟机只能和物理主机通信前提是主机上装了VMnet1虚拟网卡默认上不了外网。它的问题在于虚拟机装不上依赖、下不了工具。所以常见的做法是给虚拟机配两张网卡一张仅主机模式用于主机访问一张NAT模式用于临时上网。平时把NAT那张网卡禁掉需要联网时再启用。这种配置对新手来说有点绕我的建议是先用NAT方案把整套流程跑通等到你需要做严格隔离的实验时再回来折腾仅主机模式。不要一上来就把自己绕进网络配置的迷宫里。4.4 三条命令验证链路比反复刷新浏览器靠谱很多人排查访问问题的方式是反复刷新浏览器看页面出不出来。这个方式信息量太少页面出不来的时候你完全不知道是哪一层断了。更高效的做法是按层次用命令验证。# 第一步主机能不能ping通虚拟机验证网络层 ping 192.168.60.128 # 第二步目标端口通不通验证传输层 # Linux/macOS主机 nc -vz 192.168.60.128 80 # Windows主机用PowerShell Test-NetConnection 192.168.60.128 -Port 80 # 第三步应用层能不能返回内容 curl -I http://192.168.60.128/pikachu/这三步的排查逻辑是层层递进的。ping不通说明网络模式或者IP有问题ping通了但端口不通说明是防火墙或者Apache没监听端口通了但curl返回404说明站点路径配错了。按这个顺序查你永远知道自己卡在哪一层。提示Windows靶机的防火墙默认会拦截外部的80端口访问这是最常见的ping得通但端口不通的原因。在靶场虚拟机里可以直接关闭防火墙隔离环境下风险可控或者建立一个入站规则放行TCP 80端口。5. 页面打不开或者打开不对一套完整的排查链路链路打通之后还有些问题会冒出来而且形态各异有的是空白页有的是403有的是页面能开但样式全丢。这些问题的排查思路不一样混在一起猜会浪费大量时间。下面按我实际遇到的顺序把每一类的根因和处理方式讲清楚。5.1 从ping不通到端口不通先确定卡在哪一层假设主机访问http://192.168.60.128/pikachu/浏览器超时。按上一节的命令逐个走。ping不通的情况先看虚拟机里的IP是不是169.254开头——如果是说明网络适配器没拿到地址检查VMware的网络设置或者把网络适配器在NAT和桥接之间切一下再切回来相当于重新拔插网线。如果虚拟机IP正常但主机还是ping不通检查主机上的VMnet网卡是不是被禁用了在网络和共享中心里看看有没有VMware的虚拟网卡被禁用。ping通、端口不通的情况九成是防火墙。Windows靶机上打开高级安全Windows防火墙在入站规则里找有没有放行80端口没有就新建一条。Linux靶机上检查firewalld或者ufw的状态CentOS 7默认是开的直接systemctl stop firewalld临时关掉或者用firewall-cmd --add-port80/tcp --permanent永久放行。还有一种情况是端口通了、返回403。这通常是Apache配置里的目录权限问题。检查httpd.conf里站点目录的Require设置Apache 2.4之后要用Require all granted写成老版本的Allow from all可能不生效。另外确认目录下确实有index.php文件名大小写在Linux上是要区分大小写的。5.2 样式丢失、跳转错乱与URL里的IP不一致页面能打开但CSS、图片、JS全加载不出来页面变成一堆纯文本——这是新手最容易被吓到的问题之一其实原因特别简单。打开浏览器的开发者工具切到Network面板刷新页面看那些红色的失败请求的URL是什么。如果URL是http://localhost/xxx.css或者http://127.0.0.1/xxx.css那就说明问题了pikachu的部分页面里引用了硬编码的地址或者用了相对路径但你的访问方式不对。处理方式分两种。如果是相对路径引起的检查你访问的URL层级对不对。假设你访问的是http://192.168.60.128/pikachu/vul/sqli/sqli_str.php页面里引用../../assets/style.css那么解析出来是http://192.168.60.128/pikachu/assets/style.css这是对的。但如果你把站点根目录直接配成了pikachu文件夹访问http://192.168.60.128/vul/sqli/sqli_str.php两级相对路径就解析到了网站根目录之外资源自然404。所以我一直建议用WWW根目录pikachu子目录的方式部署就是为了让各类相对路径的引用关系保持在作者设计时的样子。5.3 跳转错乱URL被写死的几个位置比样式丢失更烦的是跳转错乱。点一个链接跳到了http://localhost/pikachu/xxx浏览器直接找不到地址。这种情况通常是因为页面里用了PHP的$_SERVER[HTTP_HOST]或者硬编码的域名。如果确认是某个模块页面里有硬编码最干净的做法是去配置文件里找有没有全局的站点地址变量。pikachu这类靶场通常会把基础URL集中在配置文件里改一处就全生效。如果确实是散落在各个模块里写死的那就在访问时保持路径结构一致尽量少改代码。这里插一句经验不要在练习用的靶场上做美化和重构。你不是在做一个要上线的产品你是在一个故意留洞的练习场里学东西。改得越多你后面遇到问题时越分不清是靶场本身的设计如此还是你自己改出来的新问题。5.4 为后续抓包测试做准备代理要指向虚拟机的IP环境搭好之后下一步大概率是要用Burp Suite之类的工具抓包做题。这里有一个特别容易忽略的点如果你在主机浏览器里用127.0.0.1访问靶场Burp是抓不到流量的因为对localhost的请求默认不经过代理。正确做法是用虚拟机的实际IP桥接模式下或者主机映射端口NAT模式下来访问同时把浏览器代理指向Burp的监听地址。这样请求就会先到BurpBurp转发给靶场你在Burp里就能看到完整的请求和响应。抓到包之后做题时记得一个原则先看原始请求再动手改。很多人一上来就各种构造payload结果连正常的请求长什么样都没看清最后分不清是payload不对还是请求本身发错了。问题现象排查入口常见根因浏览器超时主机ping虚拟机网络模式选错、VMnet网卡被禁用端口不通nc或Test-NetConnection靶机防火墙未放行返回403Apache错误日志目录权限配置或缺少index样式全丢浏览器Network面板站点根目录层级不对跳转到localhost查看页面源码基础URL被硬编码Burp抓不到包检查访问地址用了127.0.0.1而不是虚拟机IP6. 用久之后才慢慢明白的几件事环境搭起来只是开始用久了会发现一些文档里不会写但影响体验的细节。这些经验没什么高深的技术含量但能让你少走不少弯路。6.1 快照是这套环境里最值得用的功能虚拟机跑通pikachu之后第一件事是拍一张快照名字就叫环境就绪。之后每做完一个模块、装完一个新工具、改完一份配置都可以再拍一张。练崩了、手滑删了文件、数据库塞满了垃圾数据回滚一下就行比重新装一遍快太多。我自己的习惯是分层拍一张纯净系统、一张Web环境就绪、一张靶场部署完成、一张工具配置完成。这样不管哪一层出问题都能精确回滚到最近的一个干净状态不用从头再来。6.2 靶场环境的边界感pikachu是故意留洞的系统它不属于可以放在公网上的东西。桥接模式下虚拟机直接暴露在局域网里如果你的实验环境不止你一个人用最好确认一下这个IP不会被别人扫到或者干脆用NAT模式只让主机自己访问。另外一点是关于数据。不要用你自己的常用密码去初始化靶场的数据库也不要在靶场环境里保存任何真实的账号信息。练SQL注入的时候你会往数据库里插各种测试数据练文件上传的时候会往Web目录丢各种测试文件这些东西混在一起将来清理起来很麻烦。给靶场单独建一套假数据用完直接删虚拟机这是最干净的方式。6.3 从pikachu扩到DVWA、sqli-labs时的复用技巧这套环境搭好之后你会发现它不止能跑pikachu。把DVWA的源码解压到同一个WWW目录下访问http://虚拟机IP/dvwa/就能跑sqli-labs同理。它们的依赖都是PHPMySQL环境完全共用。唯一需要注意的是数据库名和配置文件名不要冲突。DVWA的配置在config/config.inc.php里sqli-labs的在sql-connections/db-creds.inc里各自改各自的账号密码就行。三个靶场可以同时在同一个WWW目录下共存互不影响。这种一套环境跑多个靶场的做法好处是你只需要维护一份虚拟机快照练不同类型的漏洞时切模块就行不用来回启不同的虚拟机。等到你需要练更复杂的场景——比如内网渗透、多层网络拓扑——再考虑用多台虚拟机搭拓扑那时候这套单机环境的经验会直接派上用场。6.4 关于装不上这件事的另一个视角最后分享一个心态上的东西。搭靶场这类环境遇到各种报错是常态而且这些报错大部分跟你要学的安全知识没有直接关系——它们是运维和网络配置层面的问题。很多人卡在这里就放弃了觉得连环境都装不好还学什么安全。其实换个角度看这套排查过程本身就是很有价值的训练。你为了搞清楚为什么ping不通而去理解网络模式为了搞清楚为什么403去读Apache配置为了搞清楚为什么数据库连不上去看日志文件——这些能力在真实渗透测试里天天都在用。靶场搭建不是学习的前置成本它本身就是第一课。我个人的习惯是每搭建一个新环境都把过程中遇到的报错、排查思路、最终解决方案记在一个文档里。攒到后面你会发现这份文档比任何教程都有用因为它是你自己踩过的坑每一条都带着具体的场景和上下文。pikachu这套环境的记录我现在还留着后来换新电脑重建时直接照着走四十分钟就复现完了。
返回列表