Linux威胁之SSH后门案例学习
2022-8-12 17:57:32 Author: OnionSec(查看原文) 阅读量:31 收藏

SSH后门是Linux环境下比较常见的驻留后门手段,这里介绍的实质是属于pam后门,pam是Linux默认的SSH认证登录机制,因为它是开源的,所以攻击者可以修改源码实现自定义认证逻辑,达到记录密码、自定义密码登录、dns带外等功能,于是pam认证模块实现了后门功能。

攻击者入侵Linux系统成功后,为了实现驻留后门,一般的做法是会先查询当前系统的pam版本rpm -qa | grep pam,默认为CentOS或者RedHat系统。获取到对应版本后,直接下载对应版本的源码,接着对源码文件进行修改,添加所需的恶意代码实现SSH后门功能。一般添加的代码有两种实现逻辑,第一种为内嵌一个万能密码,只要攻击者使用该密码登陆SSH就会通过逻辑校验而成功登陆;第二种为记录用户登录过的密码存放在本地文件里,因此攻击者读取特定文件内容可以获取到用户曾经使用过的密码。恶意代码添加完成后攻击者会直接在受害系统或者本地系统(需要与系统版本一致)进行编译得到带有后门功能的so文件。将生成的后门pam_unix.so文件替换系统自带的pam_unix.so文件。最后为了隐蔽,黑客也有可能会修改后门pam_unix.so的时间戳,避免后续被安全分析人员取证的时候快速发现。

在针对Linux环境实际取证过程中,一般比较简单的是利用rpm自带的核验功能快速排查系统文件是否存在异常(当然也不能完全相信,只能作为参考,因为笔者在真实事件中经过实践会存在一定的异常误报),如下检查的结果发现pam_unix.so文件有大小与md5以及修改时间存在变动的情况,于是可以针对性提取文件到本地排查是否有异常。

目前在大部分场景下,应急响应人员利用VirusTotal等在线扫描检测平台确实可以提高分析的效率,但是往往会存在少部分漏报的情况,因此如果单单相信扫描检测结果则会出现风险遗留的问题,如有条件的还是需要本地反汇编后深入分析排查下。

由于前面部分介绍了后门的编写是攻击者直接对源码进行了修改,所以我们可以比对对应版本的源码进行核验。这里笔者遇到的案例比较简单,可以直接定位到pam源码包里pam_unix_auth.c文件,然后找到pam_sm_authenticate函数进行排查,该函数是模块实现SSH登陆认证的函数。

经过对pam_unix.so文件反汇编分析后得出最后的结论为属于被篡改的pam后门(其实从功能上也属于SSH后门),存在黑客的SSH登陆万能密码“Lxxxxxxxx”,用户成功登陆后的SSH密码会被记录到路径为“/xxx/xxx/xxxxxxx”的文件中。

参考链接

https://y4er.com/post/linux-backdoor-pam/


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyMTUwMzI3Ng==&mid=2247484642&idx=1&sn=ace88af603f558cfa6794835b53d5734&chksm=f9db53a1ceacdab742c02bb2af435edf6ad2a120363cb67c54ea710eed44a7b9c1c80717fc4c#rd
如有侵权请联系:admin#unsafe.sh