Linux威胁之SSH后门案例学习

admin 2022年8月12日19:05:07评论47 views字数 1155阅读3分51秒阅读模式

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以及修改时间存在变动的情况,于是可以针对性提取文件到本地排查是否有异常。

Linux威胁之SSH后门案例学习


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

Linux威胁之SSH后门案例学习


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


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

Linux威胁之SSH后门案例学习


参考链接

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

原文始发于微信公众号(OnionSec):Linux威胁之SSH后门案例学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月12日19:05:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux威胁之SSH后门案例学习http://cn-sec.com/archives/1234619.html

发表评论

匿名网友 填写信息