Linux后门权限维持手法
0x01 Linux1. 预加载型动态链接库后门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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |