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

相关推荐
黄焖鸡能干四碗1 小时前
信息系统安全保护措施文件方案
大数据·开发语言·人工智能·web安全·制造
塔子终结者2 小时前
网络安全A模块专项练习任务十解析
java·服务器·网络安全
2301_780789663 小时前
渗透测试与网络安全审计的关系
网络·数据库·安全·web安全·网络安全
王火火(DDoS CC防护)4 小时前
服务器IP暴露被攻击了怎么办?
服务器·网络安全·ddos攻击
卓码软件测评6 小时前
第三方web测评机构:【WEB安全测试中HTTP方法(GET/POST/PUT)的安全风险检测】
前端·网络协议·安全·web安全·http·xss
2401_865382507 小时前
各省市信息化项目管理办法中的网络安全等级保护如何规定的?
网络安全·信息化项目·项目审批
似水流年 光阴已逝14 小时前
《网络安全实战:CC攻击(应用层)与DDoS攻击(网络层)的底层逻辑与防御体系》
安全·web安全·ddos·网络攻击·安全防护·cc攻击
墨染 殇雪15 小时前
文件上传漏洞基础及挖掘流程
网络安全·漏洞分析·漏洞挖掘·安全机制
网络安全大学堂15 小时前
【网络安全入门基础教程】网络安全零基础学习方向及需要掌握的技能
网络·学习·安全·web安全·网络安全·黑客
码农101号17 小时前
Linux 网络安全运维与文件权限控制和日志操作
运维·web安全·云计算