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 用户,至此完成了对目标系统的完全控制。

相关推荐
独行soc17 分钟前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
ESBK20251 小时前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信
旺仔Sec1 小时前
一文带你看懂免费开源 WAF 天花板!雷池 (SafeLine) 部署与实战全解析
web安全·网络安全·开源·waf
七牛云行业应用2 小时前
Moltbook一夜崩盘:150万密钥泄露背后的架构“死穴”与重构实战
网络安全·postgresql·架构·高并发·七牛云
原来是你~呀~3 小时前
Strix:AI驱动的全自动安全测试平台,LinuxOS部署
网络安全·自动化渗透测试·strix
fendouweiqian3 小时前
AWS WAF(配合 CloudFront)基础防护配置:免费能做什么、要不要开日志、如何限制危险方法
网络安全·aws·cloudfront
乾元3 小时前
终端安全(EDR):用深度学习识别未知勒索软件
运维·人工智能·网络协议·安全·网络安全·自动化·安全架构
Whoami!3 小时前
⓫⁄₁₃ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 利用Windows计划任务提权
网络安全·信息安全·利用windows计划任务提权
虚构之人1 天前
二进制漏洞挖掘(WinAFL Fuzzing)Windows篇
汇编·网络安全·信息安全·系统安全
迎仔1 天前
04-网络安全基础:数字世界的防盗门与守卫
网络·安全·web安全