Linux后门权限维持手法

0x01 Linux

1. 预加载型动态链接库后门

inux操作系统的动态链接库在加载过程中,动态链接器会先读取LD_PRELOAD环境变量和默认配置文件/etc/ld.so.preload,并将读取到的动态链接库文件进行预加载,即使程序不依赖这些动态链接库,LD_PRELOAD环境变量和/etc/ld.so.preload配置文件中指定的动态链接库依然会被装载,因为它们的优先级比LD_LIBRARY_PATH环境变量所定义的链接库查找路径的文件优先级要高,所以能够提前于用户调用的动态库载入。这就是为什么在watchdogs挖矿木马中使用top、ps等命令无法发现挖矿进程的原因,这种后门推荐使用静态编译的ls、ps等命令或者busybox进行查找。

利用LD_PRELOAD

检测
echo $LD_PRELOAD
#默认无输出,如果有输出就需要去看下文件是否为异常文件了
清除
unset LD_PRELOAD
#使用命令unset LD_PRELOAD即可卸载使用LD_PRELOAD环境变量安装的恶意动态链接库

利用/etc/ld.so.preload

检测
1、文件完整性检测
修改了默认的动态链接库后文件完整性发生变化,可以使用rpm等来校验
首先获取系统中的动态链接器的文件路径(interp段指定了动态链接器的位置)
readelf -a /bin/ps | grep interpreter
然后判断该动态链接器文件的完整性
busybox ls -al /usr/local/lib/libioset.so
rpm -Vf /usr/local/lib/libioset.so
2、使用strace
strace可以跟踪一个进程执行时所产生的系统调用,包括参数,返回值,执行消耗的时间和所接收的信号
strace -f -e trace=file /bin/ps
-f 表示同时跟踪fork和vfork出来的进程
-e trace=file 表示只跟踪有关文件操作的系统调用
清除
清除调用的对应恶意文件即可

2. strace后门

上面提到使用strace检测预加载型动态链接库后门,它可以跟踪任何进程的系统调用和数据,所以strace同样可以作为后门,比如用来记录ssh,su,sudo的数据。

首先找到sshd的进程PID

ps -ef | grep sshd #父进程PID

然后写入文件

strace -f -p 2908 -o /tmp/.ssh.log -e trace=read,write -s 2048

同样的,可以通过配置用户目录下.login配置获取ssh明文密码

#vim /etc/bashrc
alias ssh='strace -o /tmp/.ssh.log -e read,write,connect -s 2048 ssh'
#su,sudo同样的道理

检测

查看shell的配置文件或者alias命令即可发现,例如~/.bashrc或~/.zshrc文件查看是否有恶意的alias

参考

http://paper.tuisec.win/detail/447d17afffb299c

猜你喜欢

转载自www.cnblogs.com/17bdw/p/10564902.html