# Linux进程隐藏 [TOC] ## 方法1:libprocesshider github项目地址:https://github.com/gianlucaborello/libprocesshider 利用 LD_PRELOAD 来实现系统函数的劫持,实现如下: ```bash # ubuntu安装编译环境 sudo apt install make gcc -y # 下载程序编译 git clone https://github.com/gianlucaborello/libprocesshider.git cd libprocesshider make # 移动文件到/usr/local/lib/目录下 cp libprocesshider.so /usr/local/lib/ # 把它加载到全局动态连接局 echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload ```  使用Github项目给的python样例程序`evail_script.py`进行测试  此时运行top和ps命令发现无法找到我们所运行的测试文件,CPU占用率很高,但是却找不到任何相关的进程   ## 方法2:进程注入工具linux-inject github项目地址: https://github.com/gaffe23/linux-inject.git **注意事项:** - 在许多Linux发行版中,默认情况下将内核配置为阻止任何进程调用`ptrace()`其未创建的另一个进程(例如通过`fork()`)。 - 这是一项安全功能,旨在完全防止此工具引起的恶作剧。 - 您可以使用以下命令暂时禁用它,直到下次重新启动为止: ``` echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope ``` 进行编译: ```bash # ubuntu安装编译环境 sudo apt install make gcc gcc-multilib clang -y # 下载程序编译 git clone https://github.com/gaffe23/linux-inject.git cd linux-inject && make # 测试进程 ./sample-target # 进程注入 ./inject -n sample-target sample-library.so ```  在一个终端中,启动示例目标应用程序,该应用程序每秒简单地输出“ sleeping ...”: ```bash ./sample-target sleeping... sleeping... sleeping... sleeping... ```  在另一个终端中,将sample-library.so注入目标应用程序: ``` ./inject -n sample-target sample-library.so ```  可以通过检查来验证注入是否成功`/proc/[pid]/maps` ```bash cat /proc/$(pgrep sample-target)/maps ```  可以附加`gdb`到目标应用程序并运行`info sharedlibrary`以查看该进程当前已加载了哪些共享库 ```bash gdb -p $(pgrep sample-target) ```  # 在Linux中发现隐藏的进程 `unhide` 是一个小巧的网络取证工具,能够发现那些借助rootkit,LKM及其它技术隐藏的进程和TCP / UDP端口。这个工具在Linux,UNIX类,MS-Windows等操作系统下都可以工作。 ```bash #安装 sudo apt install unhide # 使用 unhide [options] test_list ``` 使用`unhide proc`发现隐藏进程evil_script.py,如下图所示:  最后修改:2021 年 03 月 16 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏