PG靶机 - Pelican

一、 初步侦察与服务探测

1.1 端口扫描与服务识别

首先,对目标主机 192.168.163.98 进行全面的端口扫描,以识别所有开放的服务。

bash 复制代码
sudo nmap 192.168.163.98 -p- --min-rate=5000 -A


图 1: Nmap 扫描结果,显示多个开放端口

扫描结果表明,目标主机开放了多个端口,包括 SMB (445)、ZooKeeper (2181) 和一个运行在 8080 端口上的 Jetty Web 服务器。值得注意的是,8080 端口上运行着一个名为 Exhibitor 的应用,这是一个用于 ZooKeeper 的监控和管理工具。

1.2 服务枚举与信息收集

SMB 服务

尝试对 SMB 服务进行枚举,以发现可能存在的共享目录或敏感信息,但未获得有价值的发现。

bash 复制代码
enum4linux-ng 192.168.163.98


图 2: SMB 枚举未发现有用信息

Exhibitor Web 应用

接着,访问 http://192.168.163.98:8080 上的 Exhibitor 应用。从界面右上角可以识别出其版本号为 1.0。


图 3: Exhibitor Web 界面,版本号为 1.0

二、 Exhibitor 漏洞利用与初始访问

2.1 漏洞识别与验证

针对已识别的 Exhibitor 版本,搜索相关的历史漏洞。很快,一个编号为 CVE-2019-5029 的远程代码执行(RCE)漏洞引起了注意。 该漏洞影响版本为 1.0.9 至 1.7.1 的 Exhibitor,描述指出攻击者可以通过在配置界面中注入恶意命令来实现 RCE。 尽管目标版本为 1.0,低于受影响的最低版本 1.0.9,不管怎样,先试试再说。


图 4: CVE-2019-5029 漏洞信息

2.2 漏洞利用获取 Shell

根据漏洞描述,该 RCE 通过在 Exhibitor 的配置页面中注入由反引号或 $() 包裹的 Shell 命令来触发。 当 Exhibitor 进程启动 ZooKeeper 时,这些命令会被执行。

在 Exhibitor 的 "Config" 选项卡中,找到可以插入命令的配置项,并填入反弹 Shell 的 payload,然后提交配置。


图 5: 在 Exhibitor 配置中插入反弹 Shell 命令

成功触发漏洞,在本地监听的端口上接收到来自目标主机的 Shell,当前用户为 charles


图 6: 成功获取 charles 用户的反弹 Shell

三、 信息收集与权限提升

3.1 Sudo 权限分析

获得初始 Shell 后,首要任务是检查当前用户的 sudo 权限,以寻找提权的途径。

bash 复制代码
sudo -l


图 7: charles 用户的 sudo 权限

sudo -l 的输出显示,用户 charles 可以免密以 root 权限执行 /usr/bin/gcore 命令。

3.2 gcore 命令功能与提权思路

通过搜索得知,gcore 是一个用于生成正在运行进程的核心转储文件(core dump)的工具。 这些转储文件是进程在某一时刻的内存快照,通常包含大量敏感信息,如密码、密钥或配置文件内容。 利用 sudo 权限执行 gcore,意味着我们可以转储系统上任何用户的任何进程的内存。


图 8: gcore 命令功能说明

GTFOBins 的提权辅助网站也提供了利用 gcore 进行提权的方法,其原理正是通过转储高权限进程的内存来获取敏感数据。

图 9: GTFOBins 上关于 gcore 的提权方法

3.3 锁定目标进程并转储内存

提权的关键在于找到一个内存中可能包含 root 凭据的进程。通过 ps aux 命令查看系统当前所有进程,发现一个名为 password-store 的可疑进程。 "password-store" 是一款遵循 Unix 哲学的密码管理器,它通常会将密码加密后存储。 这使得转储其内存以获取明文密码成为可能。


图 10: 发现可疑的 password-store 进程

确定目标进程的 PID(本例中为 513)后,使用 sudo gcore 命令对其进行内存转储。该命令会生成一个名为 core.513 的文件。

bash 复制代码
sudo gcore 513
strings core.513

使用 strings 命令在转储文件中查找可读字符串,很快便发现了 root 用户的密码:ClogKingpinInning731


图 11: 从内存转储中获取 root 密码

四、 切换用户并获取 Root 权限

4.1 切换至 Root 用户

使用刚刚获取的密码,通过 su 命令尝试切换到 root 用户。

bash 复制代码
su root


图 12: 成功切换到 root 用户,完成提权

输入密码 ClogKingpinInning731 后,成功切换为 root 用户,至此完成了对目标系统的完全控制。

相关推荐
wanhengidc6 小时前
云手机 高振畅玩不踩坑
运维·服务器·安全·web安全·智能手机
2401_8734794012 小时前
企业安全团队如何配合公安协查?IP查询在电子取证中的技术实践
tcp/ip·安全·网络安全·php
祁白_13 小时前
nmap工具笔记整理
笔记·web安全·测试
网安情报局14 小时前
如何选择合适的AI大模型:快快云安全AI大模型聚合平台全解析
人工智能·网络安全·ai大模型
忡黑梨16 小时前
eNSP_从直连到BGP全网互通
c语言·网络·数据结构·python·算法·网络安全
其实防守也摸鱼16 小时前
带你了解与配置phpmyadmin
笔记·安全·网络安全·pdf·编辑器·工具·调试
菩提小狗17 小时前
每日安全情报报告 · 2026-04-27
网络安全·漏洞·cve·安全情报·每日安全
YaBingSec18 小时前
玄机网络安全靶场:Hadoop YARN ResourceManager 未授权 RCE WP
大数据·数据库·hadoop·redis·笔记·分布式·web安全
Chengbei1118 小时前
面向红队的 AI 赋能全场景流量分析仪 网页 / APP / 终端 / IoT 全域 HTTPS 抓包解密利器
人工智能·物联网·网络协议·web安全·网络安全·https·系统安全
网络安全许木19 小时前
自学渗透测试第29天(Linux SUID/SGID基础实验)
linux·运维·服务器·web安全·渗透测试