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

相关推荐
缘友一世18 小时前
漏洞扫描POC和web漏洞扫描工具
网络·安全·web安全
christine-rr19 小时前
linux常用命令(6)——网络管理
linux·服务器·网络·ubuntu·网络安全
合作小小程序员小小店21 小时前
Web渗透之身份认证与访问控制缺陷(越权(水平垂直),访问控制(没有验证),脆弱验证(Cookie,JWT,Session等))
安全·web安全·网络安全·asp.net·网络攻击模型
huluang1 天前
网络安全等级保护要求(10+4 层面)记忆总结
服务器·网络·web安全
kali-Myon1 天前
NewStarCTF2025-Week2-Web
web安全·sqlite·php·web·ctf·文件上传·文件包含
啦啦9117141 天前
Wise Duplicate Finder查重清理软件!一键查重,支持批量处理!
5g·网络安全
旺仔Sec2 天前
新疆维吾尔自治区第一届“丝路杯”网络安全大赛暨2026年新疆职业院校技能大赛网络安全赛项竞赛样题
安全·web安全
我不是QI2 天前
DES 加密算法:核心组件、加解密流程与安全特性
经验分享·算法·安全·网络安全·密码学
搞科研的小刘选手2 天前
【通信&网络安全主题】第六届计算机通信与网络安全国际学术会议(CCNS 2025)
大数据·人工智能·网络安全·vr·通信工程·网络技术·计算机工程
Che_Che_2 天前
论文阅读-IDFUZZ: Intelligent Directed Grey-box Fuzzing
论文阅读·网络安全·模糊测试·定向模糊测试