0

0

pam.d/sshd 注入 pam_exec 的后门日志排查

舞夢輝影

舞夢輝影

发布时间:2026-01-31 18:01:01

|

713人浏览过

|

来源于php中文网

原创

识别可疑 pam_exec 条目需检查 /etc/pam.d/sshd 中含 pam_exec.so 的行,重点排查临时路径脚本、expose_authtok 参数、log=/dev/null 或 seteuid 隐藏行为,因其默认不写系统日志,须结合进程监控、文件访问和网络连接动态验证。

pam.d/sshd 注入 pam_exec 的后门日志排查

sshd 的 pam.d 配置里怎么识别可疑的 pam_exec 条目

直接看 /etc/pam.d/sshd 文件,重点扫描含 pam_exec.so 的行。合法使用通常带明确路径、quietstdout 等可控参数;后门倾向省略日志控制、调用非常规脚本(如 /tmp/.x/dev/shm/a.sh)、或加 expose_authtok 窃取密码明文。

常见可疑模式包括:

  • auth [default=ignore] pam_exec.so /tmp/.p —— 路径在临时目录,无日志输出
  • auth [success=done] pam_exec.so expose_authtok /var/log/.a —— expose_authtok 是高危标志,且目标脚本名伪装成日志
  • 同一行混用 seteuid + log=/dev/null —— 主动屏蔽执行痕迹

为什么 pam_exec 后门往往不写系统日志

因为默认情况下 pam_exec.so 不自动记录到 syslog,除非显式加 log=file_path 或脚本自身调用 logger。攻击者正是利用这个默认静默行为绕过常规审计。

排查时不能只盯 /var/log/secure/var/log/auth.log 里有没有 pam_exec 记录——大概率什么都没有。真正线索藏在:

  • 脚本自身的网络外连(netstat -tupn | grep :443 查异常连接)
  • 脚本读取的环境变量env | grep -i pass 可能暴露被窃凭证)
  • 脚本是否设了 seteuid 并 fork 子进程隐藏父 PID

如何动态验证某条 pam_exec 是否真在执行

别依赖日志,改用进程和文件监控。在测试账号登录前后快速抓快照:

Sesame AI
Sesame AI

一款开创性的语音AI伴侣,具备先进的自然对话能力和独特个性。

下载
  • strace -f -e trace=execve,openat,connect -p $(pgrep -f "sshd.*@") 2>&1 | grep -E "(execve|/tmp|.sh)" 捕获实际调用
  • 对疑似脚本加 inotifywait -m -e access,modify /tmp/.backdoor.sh,再触发一次 SSH 登录看是否触发
  • 检查该脚本是否设置了 LD_PRELOADPATH 劫持(strings /tmp/.x | grep -E "(LD_|PATH=)"

注意:某些后门会检测是否在 strace 下运行,进而跳过敏感逻辑,所以多换几种方式交叉验证。

排查时最容易忽略的两个点

一是 /etc/pam.d/common-auth/etc/pam.d/system-auth 被间接 include 进 sshd,后门可能不在 sshd 本体文件里;二是容器或云主机中,/etc/pam.d/sshd 可能被 overlayfs 或 initramfs 覆盖,真实生效配置得查 grep -r "pam_exec" /usr/lib/pam.d/ 或运行时 sshd -T | grep -i pam

另外,pam_exec 支持传参给脚本,比如 pam_exec.so /bin/sh -c 'id >> /dev/shm/log',这种内联命令极难静态识别,必须结合运行时行为分析。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

237

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

479

2024.03.01

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

223

2023.12.07

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

326

2023.10.09

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

411

2023.10.16

asp连接access数据库的方法
asp连接access数据库的方法

连接的方法:1、使用ADO连接数据库;2、使用DSN连接数据库;3、使用连接字符串连接数据库。想了解更详细的asp连接access数据库的方法,可以阅读本专题下面的文章。

121

2023.10.18

access和trunk端口的区别
access和trunk端口的区别

access和trunk端口的区别是Access端口用于连接终端设备,提供单个VLAN的接入,而Trunk端口用于连接交换机之间,提供多个VLAN的传输;Access端口只传输属于指定VLAN的数据,而Trunk端口可以传输多个VLAN的数据,并使用VLAN标签进行区分。想了解更多access和trunk端口相关内容,可以阅读本专题下面的文章。

332

2023.10.31

access怎么导入数据
access怎么导入数据

access导入数据步骤:1. 选择数据源 2. 选择要导入的文件 3. 指定导入选项 4. 选择导入目标 5. 预览数据 6. 导入数据即可。想了解更多access的相关内容,可以阅读本专题下面的文章。

443

2024.04.10

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

54

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.7万人学习

10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号