【我爱T00L】Spatch pam 后门的安装 更新自动安装脚本
“我爱T00LS,原创征集活动”
~~thanks t00ls
说一点感想,本人小菜,大牛别打脸。tools大牛如云~~
patch pam这个东西不是什么新东西,早几年就有了。而且有各种各样patch的方法。我之前只在网上看到过一个英文文章讲这个,那个文章已经比较老了,很多地方已经过时了。所以我根据自己测试的过程整理了这篇,方便自己以后查找使用。分享的快乐除了分享本身这个过程,还有可以学到新的东西。@lostwolf 同学提供的脚本让我知道原来网上还有个老外的视频和脚本。@zafe 同学提供了论坛之前的一个帖子,从那里我也看到了一些不错的东西。同样,我觉得,lostwolf同学分享这个脚本也是感觉很有收获的,他同时提出了centos测试不成功的问题。而我恰好测试过centos,所以给出了我的解决方案。所以这个 过程是大家都学到了新东西。so 分享吧少年,参见tools活动,大奖抱回家~
本文的定位是一个科普贴。不过看到这个自动安装的脚本以后我觉得可以有一个新的方向。关于patch pam的资料。我看到的都是一个通用的原理方法,包括前面提到的英文资料和论坛老早之前的帖子。这个帖子不同的地方就是根据我自己的调试过程给出了centos上应该如何编译,64位系统应该怎么安装的一些小小的 tips。所以我想做一个适合绝大多数linux发行版的自动化安装patch pam backdoor的脚本。这个也是pam后门的优势,比大部分rootkit更好的适应性。
不知道这个事情有木有人已经做过了。欢迎提醒。这个脚本不高深,可能只是需要不断的调试各种发行版。欢迎提供测试成功和不成功的发行版版本号。这个脚本应该是很有意思的一个事情。
## 什么pam ##
在过去,我们想要对一个使用者进行认证 (authentication),得要要求用户输入账号口令, 然后透过自行撰写的程序来判断该账号口令是否正确。也因为如此,我们常常得使用不同的机制来判断账号口令, 所以搞的一部主机上面拥有多个各别的认证系统,也造成账号口令可能不同步的验证问题! 为了解决这个问题因此有了 PAM (Pluggable Authentication Modules, 嵌入式模块) 的机制!
PAM 可以说是一套应用程序编程接口 (Application Programming Interface, API),他提供了一连串的验证机制,只要使用者将验证阶段的需求告知 PAM 后, PAM 就能够回报使用者验证的结果 (成功或失败)。由于 PAM 仅是一套验证的机制,又可以提供给其他程序所呼叫引用,因此不论你使用什么程序,都可以使用 PAM 来进行验证,如此一来,就能够让账号口令或者是其他方式的验证具有一致的结果!也让程序设计师方便处理验证的问题.[引用自鸟哥私房菜](http://vbird.dic.ksu.edu.tw/linux_basic/0410accountmanager_5.php#ps5)
## pam backdoor ##
从pam的介绍中,我们知道,其实登录系统的时候,是pam的模块来验证我们的密码是否正确的.所以就存在这样一种可能,修改pam的验证逻辑,来达到一定条件下不去跟shadow里的密码校验,而是直接返回验证正确.从而达到作为后门的目的.
patch过程如下:
下载pam的源码:http://www.linux-pam.org/library/,有很多个版本,我测试的时候都是用的最新版.没有出现问题.测试过的ubuntu10.04和centos 5.4 X64.<修改modules/pam_unix/pam_unix_auth.c文件<查找pam_sm_authenticate函数,修改如下这段函数:<改为:<这段密码的意思是设置了一个MAGIC_PASSWD,任何用户使用这个密码都可以登录.如果用户不是用MAGIC_PASSWD登录的,就把他的用户名密码记录在/usr/local/man/.pam.log文件里.
保存文件之后,<覆盖pam_unix.so之前先备份一下:<覆盖
需要注意一点.64位的系统里,pam_unix.so的路径是/lib64/security/,坑爹的是64位系统也有/lib/security/pam_unix.so这个文件,一开始调试了好久都没好....
修改文件的时间戳~~更好的隐藏~<覆盖之后,后门就马上生效了.记得要先测试过.不然断开了之后,发现有问题,连不上就2了.一个patch pam backdoor就搞定了.
##致谢##
这方面资料不是很多。感谢0daysecurity.com提供的资料分享。md写的,贴近来,改了下格式,还是有些小问题。。
感谢6楼@lostwolf 同学提供的自动安装脚本。稍微修改了下,centos默认会编译失败。添加了对centos的判断,修改configure参数。添加了64位系统的支持,自动判断路径。
本贴已经又pam模块科普和手动安装 pam 后门成功晋级为打造一个普适的linux系统pam后门自动安装脚本。欢迎测试。有任何问题可以跟帖反馈~~
测试环境:centos 5.4 x86_64 和ubuntu 10.04 。如果出现sed -e `s’ 错误,请使用bash pam.sh执行。这个错误是由于不同的shell对单双引号的规则 导致的。<

评论46次
东西很不错啊。
这个我当时自己也想到过这个问题,无奈自己脚本不咋地,哎
这个看起来很强大。。。。
补充一下,ubuntu貌似现在在 /lib/x86_64-linux-gnu/security/pam_unix.so 里面了。
感謝提供了 PAM 的後門方法, 這可是 mafix 之類 rootkit 之外的新選擇
很详细的pam使用方法。
积极投稿的孩子 都是好孩子
pam这样的自动脚本还是很不错的,谢谢分享
感谢。。。。。。。。。。。。。
谢谢大牛,非常实用
@lostwolf 谢谢大牛,非常实用
最近在研究pam后门,感谢提供:)
这个得支持
给我一份。。。
很好用的后门,感谢楼主提供!!
感谢分享哈
我写了个linux远控,,,一直用反弹..
请问pam后门安装上了,如何测试是否成功呢?直接用putty进行ssh连接吗?我怎么连不上
很不错的东西
不错,感谢分享