应急响应中Linux库文件劫持

文章介绍了Linux系统中动态链接库预加载机制的概念和原理,以及如何被恶意利用进行攻击,包括更改LD_PRELOAD环境变量、修改/etc/ld.so.preload配置文件和劫持动态链接器三种方式。同时,提供了相应的检测和处置方法,如检查环境变量、文件属性和动态链接器完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在日常的应急工作中,经常遭遇挖矿病毒的案例,但是往往用ps,top等命令是看不到异常的,且即使kill掉进程和计划任务项往往过一会进程就会重新起来。这种情况往往是存在预加载恶意动态链接库的后门,其实网上有很多详细的文章去讲解这个技术,这里笔者也是为了插个眼。

概述

动态链接库预加载机制是系统提供给用户运行自定义动态链接库的一种方式,在可执行程序运行之前就会预先加载用户定义的动态链接库的一种技术。

原理

在网上有大佬已经做了总结,感兴趣的可以去看看:

https://www.freebuf.com/column/162604.html

1.  应用程序在通过系统接口调用内核时会预先加载动态链接库, 即使程序不依赖这些动态链接库,LD_PRELOAD环境变量和/etc/ld.so.preload配置文件中指定的动态链接库依然会被加载。

    2.  这个库里面主要包括两个内容:LD_PRELOAD和/etc/ld.so.preload

    3.  LD_PRELOAD用于预加载环境变量

    4.  /etc/ld.so.preload用于预加载配置文件

    5.  默认情况下LD_PRELOAD和/etc/ld.so.preload无配置

    6.  动态编译:不论程序依赖不依赖动态链接库,都会加载LD_PRELOAD环境变量和/etc/ld.so.preload配置文件中指定的动态链接库依然会被装载,他们的优先级比LD_LIBRARY_PATH环境变量所定义的链接库查找路径的文件优先级高

   
    7.  全局符号:全局符号介入指的是应用程序调用库函数时,调用的库函数如果在多个动态链接库中都存在,即存在同名函数,那么链接器只会保留第一个链接的函数,而忽略后面链接进来的函数,所以只要预加载的全局符号中有和后加载的普通共享库中全局符号重名,那么就会覆盖后装载的共享库以及目标文件里的全局符号。
        注:这也是造成劫持的某种手段

    8.  静态编译:不动态加载系统库文件,直接将程序所需要的各种文件全部集中到该软件平台中,这样就可以解决系统库文件被劫持,中了rootkit等导致连接、网络等被隐藏的情况,常用的工具如busybox
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值