Linux mount-bind 进程隐藏

前言:Linux mount-bind 进程隐藏笔记

参考文章:https://dfir.ch/posts/slash-proc/
参考文章:https://www.cnblogs.com/xingmuxin/p/8446115.html

关于mount挂载

在Linux系统中,我们可以使用mount命令将设备挂载到目录中,这允许我们当前这台机器可以访问设备的文件系统。

例如,在/mnt/usb目录上,挂载一个U盘(用/dev/sdc1代指),然后ls其内容

mkdir /mnt/usb
mount /dev/sdc1 /mnt/usb
ls /mnt/usb

最比较常见的就是长期保存数据,通过挂载大容量的NAS到机器进行存放文件

执行完挂载命令后查看机器的挂载情况,可以看到成功挂载NAS到本地机器上,如下图所示

sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport xxxxxx-rlp93.cn-hangzhou.nas.aliyuncs.com:/ /mnt

不需要挂载的时候直接umount对应的挂载目录即可,如下图所示

mount -o remount,rw /

关于mount -o remount,rw /命令的意思是重新挂载(remount)文件系统,并将其设置为可写(rw)。

具体来说mount命令用于挂载文件系统,-o选项用于指定挂载选项,其中支持"remount"选项用于重新挂载已经挂载的文件系统,rw选项表示将文件系统设置为可写模式。

通常情况下,文件系统会被挂载为只读(read-only)模式,这是保护文件系统不被意外修改的一种方式。但是在某些情况下,用户可能需要对文件系统进行修改,这时就需要将其重新挂载为可写模式。

使用mount -o remount,rw /命令可以实现这个目的。 需要注意的是,修改文件系统可能会导致数据丢失或系统崩溃,因此在执行这个命令之前,应该仔细考虑,并备份文件系统中重要的数据。

这里还有一个点是需要注意的,这边我碰到过,就是mount -o rw,remount /,这样可以挂载,mount -o remount,rw /system这样挂载就报错,所以碰到的话也可以换着位置试试。

mount-bind

bind是一种特殊的mount,可以把文件系统中的某一个部分进行挂载。

原理:当执行了mount --bind directory1 directory2,内核将挂载目录(test1)的目录项记录在内存里的一个s_root对象里,在mount执行时,VFS会创建一个vfsmount对象,这个对象里包含了整个文件系统所有的mount信息,其中也会包括本次mount中的信息,这个对象是一个HASH值对应表(HASH值通过对路径字符串的计算得来),表里就有/directory1/directory2两个目录的HASH值对应关系。

注意:mount-bind特性是从linux2.4.0开始的。

测试实验

磁盘原目录结构为如下图所示

当执行命令mount --bind test1 test2,Linux将会把被挂载目录的目录项(也就是该目录文件的块block,记录了下级目录的信息)屏蔽,即test2的下级路径被隐藏起来了(注意,只是隐藏不是删除,数据都没有改变,只是访问不到了)。

具体情况:当访问/test2下的文件时,系统会告知/test2的目录项被屏蔽掉了,自动转到内存里找VFS,通过vfsmount了解到/test2/test1的对应关系,从而读取到/test1的inode,这样在/test2下读到的全是/test1目录下的文件

如下图所示,命令执行完后,可以看到相关的test1test2目录的节点标识都为922262。

进程隐藏

lsof -i -n

ps -ef | grep 52498

执行mount-bind操作完之后,重新查看进程通信netstat -anltp,可以发现此时对应的52498 PID的通信已经被隐藏了,如下图所示

mkdir -p spoof/fd
mount -o bind spoof /proc/52498

查看对应的/proc/52498目录情况,可以看到显示的只有上面mount-bind挂载到spoof下面的fd目录

ls -la /proc/52498

排查操作

/proc/52498和其他/proc/下面的目录相比,特征就是多了w的权限,如下图所示

执行umount /proc/9212进行解除挂载,重新进行查看,如下图所示

x

posted @   zpchcbd  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示