menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right 004-添加root用户 chevron_right 007-动态链接库后门.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    007-动态链接库后门.md
    1.23 KB / 2021-07-17 00:01:42
        ## 动态链接库后门
    
    linux操作系统的动态链接库在加载过程中,动态链接器会先读取LDPRELOAD环境变量和默认配置文件/etc/ld.so.preload,并将读取到的动态链接库文件进行预加载,即使程序不依赖这些动态链接库,LDPRELOAD环境变量和/etc/ld.so.preload配置文件中指定的动态链接库依然会被装载,这样就导致了动态链接库文件可以被当做后门使用。
    
    **LD_PRELOAD**
    
    这里创建了一个test.c文件,其中调用time方法、然后创建了一个testlib.c、其中生成了一个time方法供test调用 编译后用LD_PRELOAD=$PWD/testlib.so ./test劫持了time。
    
    ```bash
    //test.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int main(){
      srand(time(NULL));
            return 0;
    }
    //编译:gcc -o test test.c
    
    ```
    
    ```
    //testlib.c
    #include <stdio.h>
    int time(){
        printf("hello hacker");
        return 0; //the most random number in the universe
    }
    //编译:gcc -shared -fPIC testlib.c -o test.so
    
    ```
    
    ![](images/security_wiki/15905819897123.png)
    
    
    ![](images/security_wiki/15905819935807.png)
    
    
    **ld.so.preload**
    
    同理,修改/etc/ld.so.conf.d/下的conf文件也可以达到劫持的目的。
    
    ![](images/security_wiki/15905820007100.png)
    
    
    
    
    links
    file_download