资讯动态

Jarbas靶机渗透实战:从信息收集到SUID提权的完整链路

发布时间:2026/9/8 21:23:27 来源:尧图企业网站定制
靶机渗透是个老生常谈的话题但每次打一台新靶机都能把很多零散的知识串起来。Jarbas是我最近在VulnHub上重新刷的一台Linux靶机体量不大难度中等偏易但覆盖的知识点非常典型Web目录发现、弱口令爆破、SSH登录、Linux本地信息收集、SUID提权。整条链路走下来基本就是一个标准的内网渗透测试最小闭环。这篇文章我会把每一步操作、每一步的思考逻辑和踩坑点都写出来配合命令和实际输出想练手的朋友可以直接照着打一遍。先说靶机的基本情况Jarbas对应的是VulnHub上的一个镜像下载下来是个OVA文件用VMware或VirtualBox导入就能用。官方描述里没有给任何账号和网络信息所以IP要自己扫这也模拟了真实环境中“黑盒”开局的状态。攻击机用Kali Linux靶机和攻击机都放在同一块NAT或Host-Only网卡下确保互通即可。1. 环境准备与信息收集1.1 靶机下载与导入靶机镜像在VulnHub官网搜索Jarbas即可找到下载后是一个OVA文件。VMware Workstation和VirtualBox都能直接导入导入过程没什么特别之处默认配置就行。需要注意的是如果靶机导入后没有自动获取IP大概率是网卡模式设置成了Bridge但主机网络环境有改动导致靶机拿不到地址。我习惯把两张虚拟网卡都放在NAT模式这样的话靶机和Kali会在同一个网段内方便后面做主机发现和扫描。导入完成后先别急着开扫等靶机完全启动。Jarbas用的是轻量级系统开机速度很快几十秒就能进入登录界面。这个时候不要指望在靶机屏幕上看到登录凭据没有任何提示直接开始从攻击机侧做信息收集。1.2 网段发现与主机定位Kali开机后先用ip a确认自己的IP地址。假设Kali的地址是192.168.10.10/24那么靶机大概率就在192.168.10.0/24这个网段里。为了找到靶机我用的是netdiscovernetdiscover -r 192.168.10.0/24这个工具会发ARP广播包把网段内所有存活主机列出来。因为Kali和靶机在同一个二层网络里ARP是必然能扫出来的。如果靶机响应了ARP就能直接看到它的MAC地址和IP。Jarbas这台机器的MAC地址没有特别标识但只要扫到一个除了Kali网关和Kali本身之外的新IP基本就是靶机。如果netdiscover没扫出来也可以用arp-scan -l效果类似。扫出来靶机IP之后下一步就是端口扫描。1.3 端口扫描与服务识别端口扫描是整个渗透测试的地基。我习惯先做一个快速的全端口TCP扫描确认开放端口范围再做服务和版本识别nmap -Pn -sS -p- --min-rate 1000 192.168.10.20这里用-Pn跳过主机存活探测因为前面已经确认靶机在线了。-sS是SYN半开扫描速度快--min-rate 1000控制发包速率不至于让靶机丢包太多。结果很快出来Jarbas开放了三个端口22SSH、80HTTP、8080HTTP-Proxy。拿到开放端口后再做一次详细的版本探测nmap -Pn -sV -sC -p 22,80,8080 192.168.10.20-sV负责服务版本识别-sC跑默认的NSE安全脚本包括常见的banner抓取、HTTP标题、SSH指纹等信息。这一步很关键因为Nmap会告诉我们Web服务是Apache还是Nginx、SSH版本是多少这些指纹直接影响后续漏洞方向的选择。实际探测结果里80端口是Apache默认页8080端口也是HTTP服务具体内容要访问后才能确定。到这里信息收集的第一阶段就算完成了我们知道靶机开放了三个网络入口其中两个是Web服务一个是SSH。接下来的重点就是Web服务探测。2. Web服务探测与目录爆破2.1 手工访问Web页面先看80端口。浏览器访问http://192.168.10.20页面是Apache的默认欢迎页没有业务内容说明这个网站没有把首页文件放在默认路径下或者网站还没配置。再看8080端口访问http://192.168.10.20:8080会看到一个自定义的Web页面看起来像是一个监控面板或后台登录入口。这个阶段的思路是不要被默认页面迷惑Apache默认页不代表站点是空的很多时候真实的Web应用藏在自定义目录里。所以下一步就是目录爆破把Web应用中可能存在的目录和文件枚举出来。2.2 目录爆破工具选型目录爆破工具有很多dirb、gobuster、ffuf、wfuzz都行。我的个人偏好是gobuster因为它是Go语言编译的单线程速度就很快而且支持递归扫描gobuster dir -u http://192.168.10.20 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100字典用的是dirbuster自带的medium列表默认路径在Kali的wordlists里。如果Kali里没有这个字典可以用dirb http://192.168.10.20 /usr/share/wordlists/dirb/common.txt先跑一遍。第一次爆破不用追求全面关键是快速发现目录结构。80端口跑出来的结果里比较有价值的是/access这个路径。访问http://192.168.10.20/access会看到一个后台登录页面需要输入用户名和密码。到这一步Web方向已经有一个明确的攻击面了。再对这个路径本身做一次深度扫描看看/access下面是否还有子目录或文件gobuster dir -u http://192.168.10.20/access -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100如果爆破出类似/access/config.php之类的内容先别急着访问因为大多数情况下这些文件要么是空的要么就是权限不足直接报错。但如果是后台框架的默认配置文件可能会暴露数据库连接信息这类信息在后面的提权阶段很有用。8080端口的Web页面也可以做一次爆破不过这个页面的功能相对单一在后续提权阶段我还会回来利用它这里先按下不表。2.3 指纹识别与漏洞初判Web服务识别还可以借助工具自动完成。比如用whatweb看一下网站的技术栈whatweb http://192.168.10.20/accesswhatweb会告诉我们网站使用的CMS框架、中间件版本、脚本语言等信息。不过Jarbas这个后台写得比较朴素看起来就是经典的PHP程序没有用复杂框架。PHP类的Web应用弱口令和登录绕过是优先尝试的方向。3. 弱口令爆破与后台利用3.1 后台登录的弱口令测试打开http://192.168.10.20/access页面是个简单的登录框。先用几个常见的弱口令组合手动试一下admin/admin、admin/password、admin/123456。如果手测压中了直接进后台省去爆破的时间。不过这台靶机的弱口令没有这么“白给”手动失败后就需要上工具。Web后台的爆破我用Burp Suite主要原因是能直接看响应包的大小和状态码便于筛选。抓一个登录POST请求把它发送到Intruder模块设置用户名和密码两个Payload位置。用户名可以固定为admin密码字典用rockyou.txt的常见密码子集如果觉得rockyou太大14G解压后非常大可以先用/usr/share/wordlists/fasttrack.txt这个小字典里面都是高频弱口令对靶机这种场景基本够用。爆破过程中需要关注的重点是HTTP响应码和响应长度。登录失败时后端通常会返回一个固定的错误页面响应长度也相对一致一旦出现不同长度或不同的状态码很可能就是登录成功了。所以看到异常响应后先手工验证一下别急着收工。3.2 从后台获取渗透关键信息如果这一步成功登录后台页面里大概率会有关键信息。以Jarbas为例登录后会看到一条提示内容是系统版本信息加上一个“提示”某些用户名的密码就是用户名本身或者是常见密码。这个信息为后续SSH爆破提供了精确的用户名字典。我从后台拿到的关键线索是系统存在一个用户用户名是tiago它使用了弱密码。虽然Web后台没有直接显示密码但这已经缩小了爆破范围。结合系统版本是CentOS 7一类的主流系统可以推测用户可能用了“tiago”或“tiago123”这种规律性较强的密码。3.3 Hydra的SSH爆破有了明确的用户名接下来可以直接对SSH做定向爆破。我用的是Hydrahydra -l tiago -P /usr/share/wordlists/fasttrack.txt ssh://192.168.10.20 -t 4这里-l tiago指定用户名-P指定密码字典-t 4控制并发线程数。SSH爆破的线程数不宜太高否则容易触发fail2ban之类的防护机制而且网络延迟也会影响效率。实测下来Jarbas的SSH服务没有加防护几分钟之内就爆出了密码。爆破成功后直接SSH登录ssh tiago192.168.10.20输入密码进入系统。到这里我们拿到了一个普通的Linux用户权限接下来就是权限提升阶段。4. 拿下Shell后的信息收集与权限提升4.1 登录后的基础命令进到系统后先不要乱翻文件第一件事是确认自己是谁、有什么权限、系统里有什么可用的信息id whoami uname -a cat /etc/os-release sudo -lid和whoami确认当前用户身份uname -a看内核版本和架构如果内核有公开漏洞且版本匹配可以直接用内核提权sudo -l查看当前用户能否用sudo执行某些命令这一步非常关键。Jarbas这台机器上sudo -l的输出结果里往往会有意外惊喜某个命令被配置为可以以root身份执行而且不需要密码。这种情况下直接利用sudo就能提权不需要摸内核漏洞。4.2 文件系统中的敏感信息系统内的敏感文件也是提权的重点方向。先看当前用户目录下的隐藏文件ls -la /home/tiago/ cat /home/tiago/.bash_history.bash_history是宝贝。很多情况下历史命令里会暴露之前执行过的操作包括下载过的脚本、解压过的文件、甚至明文密码。Jarbas的靶机里也埋了这类线索具体路径在其他目录下需要自己找一下。再看Web目录权限和配置文件ls -la /var/www/html/ cat /var/www/html/access/config.php如果Web应用有数据库连接配置config.php或类似文件里通常会有明文数据库账号。Jarbas里这一层用的是默认的root/空密码组合说明数据库并没有做特别加固。如果拿到数据库的root权限就可以尝试MySQL的UDF提权不过这台靶机用不到这么复杂的路径。4.3 SUID提权实操提到Linux提权SUID位是最经典也最优先检查的一环。SUID权限表示某个可执行文件在执行时拥有文件属主的权限。如果一个root拥有的二进制文件设置了SUID位那么普通用户执行它时就会临时获得root权限。检查系统里哪些文件设置了SUID位find / -perm -4000 -type f 2/dev/null输出里除了标准的/usr/bin/passwd、/usr/bin/su之外如果出现了一些不常见的路径比如/bin/bash或/usr/bin/python那基本就是靶机特意留下的提权入口。Jarbas这台靶机的解法之一就是利用一个带SUID位的/bin/bash。执行bash -p-p参数让bash不重置有效用户ID这样就能直接获得root权限的shell。输入id确认一下显示uid0(root)提权成功。如果bash -p的root shell没弹出来还可以尝试用Python重新绑定SUID位执行或者检查其他SUID文件。总之SUID枚举是Linux提权绕不开的步骤很多CTF靶机都会留这个口子。4.4 利用后台页面实现定时任务提权Jarbas的第二种提权思路是通过8080端口那个Web控制面板配合定时任务。具体来说刚才信息收集时发现8080端口上有一个脚本允许用户提交一个命令并把它写入某个文件同时系统有一个定时任务会周期性执行该文件。如果这个脚本的执行者是root攻击者就能通过提交恶意命令实现定时任务投毒最终拿到root权限。这条路径虽然比直接SUID提权绕但它的现实意义很强很多运维会配置后台管理脚本为了省事把执行权限设给了root又被一个弱口令保护这恰恰是真实环境中的常见漏洞组合。我们在Jarbas上先做SUID提权就把靶机打通了但如果要多练一种方法完全可以从8080端口再走一遍命令注入到定时任务投毒的链路。5. 常见问题与排查技巧5.1 靶机IP获取不到遇到靶机开机后无法获得IP的情况通常有两个原因网卡模式配置错误或者DHCP服务没启动。解决方法是手动给靶机配置一个静态IP或者把虚拟网卡从Bridge切换到NAT后再试。另外netdiscover扫不出来时可以看看Kali自身是否拿到了同一网段的地址如果Kali也没网优先修Kali的网卡。5.2 目录爆破结果为空如果gobuster爆破不出任何目录先检查字典质量换个大一点的字典比如directory-list-2.3-big.txt再跑其次检查目标URL路径注意大小写和后缀还有一种情况是WAF或防护模块拦截了扫描流量这时候用ffuf配合请求头伪装成浏览器访问或者降低并发速度往往能绕过过滤。5.3 SSH爆破不成功SSH爆破失败的原因可能是用户名字典不对也可能是密码字典不合适。Jarbas这类靶机虽然装了弱口令但如果字典里没有对应的密码组合爆破也会失败。先通过Web后台或社工手段确认用户名再选择有针对性的密码字典比盲目跑大字典靠谱得多。5.4 SUID枚举后无法提权如果找到了SUID文件但执行后没有效果先看这个SUID文件是否真的属于root以及它的执行权限。有些靶机会故意设置一个带SUID的脚本但脚本本身调用的是系统命令直接在交互式shell里执行可能因为PATH环境变量的问题失败。调试时可以用ls -l确认权限位再用file看一下文件类型如果是脚本就打开看看它执行了哪些命令再考虑是否需要利用PATH劫持的方式提权。6. 总结与拓展思路Jarbas这台靶机虽然难度不高但它的设计覆盖了一个完整的渗透测试闭环路径。从网络扫描到服务枚举从Web后台弱口令到SSH爆破从基础Shell到SUID提权每一步都对应着渗透测试工程师在日常工作中需要掌握的核心技能。在整个过程中值得注意的细节是信息收集永远是最耗时间也最关键的阶段。很多初学者拿过靶机就急着爆破、急着打漏洞结果往往因为信息不足而撞墙。Jarbas的Web后台提示、文件系统中的备份文件、SUID可执行文件这些线索都在信息收集阶段被一步步发现后续的利用反而水到渠成。如果不想走SUID提权那一条路建议把8080端口的命令执行功能拿出来单独研究一下自己动手验证定时任务投毒的原理。这条路径对理解真实内网环境中的权限维持和横向移动非常有帮助。最后分享一个小技巧打完一台靶机后养成记录自己每一步操作的习惯包括命令、输出和思考过程。这不仅是为了复盘也是为了让经验可复用。下次再遇到类似的Web应用或类似版本的Linux系统这些记录能帮你更快地定位到攻击面。Jarbas之后再往JVIP、HackTheBox的Easy级别刷几台你会发现自己的渗透思路会越来越清晰。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价