首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux Procfs (一) proc* 文件实例解析

Procfs 1.1 Procfs概述 Procfs 是进程文件系统的缩写,包含一个伪文件系统(启动时动态生成的文件系统),用于通过内核访问进程信息。...1.2 Procfs文件用途 Procfs的文件都在/proc目录下,可以直接cd到对应目录进行查看。...Procfs具体文件 2.1 /proc/* 具体文件解析 本文以笔者的云主机中(centos7,内核版本3.10.0-1160.15.2.el7.x86_64 )的/proc目录为例进行说明,共分41...在linux中,可以使用boot管理器比如lilo或者grub进行linux内核的启动,也可以直接传递参数给linux内核来启动。...以下为linux系统中中断/异常向量表的0-19项(CPU指定,一般固定),供了解NMI和Exception的读者参考。也可以查看此链接查看linux源代码里定义的中断向量。

5.4K00
您找到你想要的搜索结果了吗?
是的
没有找到

Linux用户态与内核态通信的几种方式

本文首发于我的公众号 Linux云计算网络 Linux 用户态和内核态由于 CPU 权限的限制,通信并不像想象中的使用进程间通信方式那么简单,今天这篇文章就来看看 Linux 用户态和内核态究竟有哪些通信方式...(关于 Linux 用户态和内核态可以参考 xx) 除此之外,还有以下四种方式: procfs(/proc) sysctl(/proc/sys) sysfs(/sys) netlink 套接口 procfs...和 procfs 的区别在于: procfs 主要是输出只读数据,而 sysctl 输出的大部分信息是可写的。...和 procfs 不同的是,sysfs 是将一些原本在 procfs 中的,关于设备和驱动的部分,独立出来,以 “设备树” 的形式呈现给用户。...总结 Linux 用户态和内核态通信主要的四种方式,其中 netlink 和 procfs 是最常见的方式。 ----

6K52

Linux pstack 源码里的基础知识

1. pstack简介 pstack是Linux下一款堆栈跟踪工具,可以打印一个在跑程序的实时堆栈信息,其用法非常简单,只需要给定进程号即可: Usage: pstack 举例如下...这里简单说说Linuxprocfs。...虽然并不是所有的UNIX-Like操作系统都支持procfs,也不是Linux首创了这种虚拟文件系统,但绝对是Linux将其发扬光大的,早起内核中甚至达到了滥用的程度,内核开发者喊了好多年,说procfs...即将被淘汰,但依然很火,主要是因为太方便了,比如procfs可以很容易的进行应用层与内核态进行通信。...procfsLinux中的应用不止是进程信息导出,详细的应用与内核模块联动,后续会写专门的文章介绍,如有兴趣,可以参考《深入理解Linux内核架构》和《Linux设备驱动程序》,关于进程的,以下信息可以了解一下

4.7K20

一行代码如何隐藏 Linux 进程?

作者 | dog250 原文 | https://blog.csdn.net/dog250/article/details/108032383 总有朋友问隐藏Linux进程的方法,我说你想隐藏到什么程度...网上通篇论述的无外乎 hook 掉 procfs 或者类似的用户态方案,也都难免长篇大论,我说,这些场面都太大了,太复杂了。对于希望马上看到效果的而言,看到这么一堆复杂的东西,大概率望而却步。...本文介绍一种将Linux进程小隐于用户的非常规方法,仅仅一行代码: 修改掉进程的pid即可。 注意是小隐,所以,不值得反制,逗一下高级会议工程师搞个恶作剧玩玩得了。...如果你觉得 guru 模式的 stap 怪怪的,那么你完全可以编写自己独立的 Linux kernel module,采用修改完即退的方法: target->pid = xxxx; return -1;...简单的说一下原理: task被创建的时候,根据其pid注册procfs目录结构。 展示procfs目录结构的时候,遍历task list以其pid作为key来查找procfs目录结构。

2.3K40

命名空间介绍之三:PID 命名空间

对于传统 Linux (或 UNIX)系统,PID 命名空间内的进程 ID 是唯一的,从 1 开始依次分配,对于传统 Linux 系统,PID 1 是 init 进程,比较特殊:它是第一个在命名空间内创建的进程.../proc/PID and PID namespaces Linux 系统上的每个进程都有一个 /proc/PID 目录,包含了一些描述进程的伪文件。该模式可直接转换为 PID 命名空间模型。...在在如上运行 pidns_init_sleep 的 shell 中,我们将一个新的 procfs 挂载在 /proc2。在真实的用法中,该 procfs(如果需要的话)通常被挂载在 /proc。...在递归的最后,最后一个子进程执行 sleep(),输出如下: Mounting procfs at /proc4 Mounting procfs at /proc3 Mounting procfs at.../proc2 Mounting procfs at /proc1 Mounting procfs at /proc0 Final child sleeping 看一下每个 procfs 中的 PID,

3.2K10

Docker容器逃逸

Linux一种安全机制,在linux内核2.2之后引入,用于对权限更细致的控制 而容器社区一直在努力将纵深防护,最小权限等理念和原则落地 单容器环境内的信息收集 当我们拿到了一个shell,首先要判断的是当前环境是否为容器环境...在 Linux 系统中,当在容器中运行进程时,每个进程会被分配到一个或多个 cgroup 中,cgroup 可以对进程的资源使用进行控制和限制。...逃逸 我们常说挂载宿主机 procfs 逃逸,其本质上因为宿主机挂载了procfs,导致我们可以像宿主机内写入一段恶意的payload,比如反弹shell,然后利用代码制造崩溃,触发内存转储,就会执行我们恶意的...payload 什么是procfs procfs是一个伪文件系统,它动态反映着系统内进程及其他组件的状态,其中有许多十分敏感重要的文件。...core_pattern(核心转储模式)是Linux系统中的一个配置参数,用于定义在程序崩溃时生成核心转储文件的方式和位置。

32730

【云原生攻防研究】容器逃逸技术概览

2挂载宿主机procfs的情况 对于熟悉Linux和云计算的朋友来说,procfs绝对不是一个陌生的概念,不熟悉的朋友可以参考网络上相关文章或直接在Linux命令行下执行man proc查看文档。...procfs是一个伪文件系统,它动态反映着系统内进程及其他组件的状态,其中有许多十分敏感重要的文件。...procfs中的/proc/sys/kernel/core_pattern负责配置进程崩溃时内存转储数据的导出方式。...具体而言,攻击者进入到一个挂载了宿主机procfs(为方便区分,我们将其挂载到容器内/host/proc)的容器中,具有root权限,然后向宿主机procfs写入payload: echo -e "|/...kernel was just patched [12].Linux Programmer's Manual: capabilities - overview of Linux capabilities

2.9K10

Linux Namespace浅析

目前Linux内核总共支持以下6种Namespace: IPC:隔离System V IPC和POSIX消息队列。 Network:隔离网络资源。 Mount:隔离文件系统挂载点。...Linux对Namespace的操作,主要是通过clone、setns和unshare这3个系统调用来完成的,clone创建新进程时,接收一个叫flags的参数,这些flag包括CLONE_NEWNS、...当想要给已存在进程设置已存在的namespace,可通过setns函数(int setns(int fd, int nstype))来完成设置,每个进程在procfs目录下存储其相关的namespace...目前Linux内核总共支持以下6种Namespace,分别是IPC、Network、Mount、PID、UTS、User: IPC IPC也就是进程间通信,Linux下有多种进程间通信,比如socket...这是因为ps命令是从procfs读取信息的,而procfs并没有得到隔离。虽然能看到这些进程,但由于它们其实是在另一个PID Namespace中,因此无法向这些进程发送信号。

1.4K10

Docker容器逃逸

Linux一种安全机制,在linux内核2.2之后引入,用于对权限更细致的控制而容器社区一直在努力将纵深防护,最小权限等理念和原则落地单容器环境内的信息收集当我们拿到了一个shell,首先要判断的是当前环境是否为容器环境查询...在 Linux 系统中,当在容器中运行进程时,每个进程会被分配到一个或多个 cgroup 中,cgroup 可以对进程的资源使用进行控制和限制。...逃逸我们常说挂载宿主机 procfs 逃逸,其本质上因为宿主机挂载了procfs,导致我们可以像宿主机内写入一段恶意的payload,比如反弹shell,然后利用代码制造崩溃,触发内存转储,就会执行我们恶意的...因此,将宿主机的procfs挂载到不受控的容器中也是十分危险的,尤其是在该容器内默认启用root权限,且没有开启User Namespace时。什么是core_pattern文件?...core_pattern(核心转储模式)是Linux系统中的一个配置参数,用于定义在程序崩溃时生成核心转储文件的方式和位置。

34521

云安全容器安全扫盲 之 CDK工具介绍与使用

Tool: 修复渗透过程中常用linux命令以及与Docker/K8s API交互命令。 使用场景 伴随着容器技术的快速发展,容器安全问题也逐渐成为企业所关注的话题。...针对容器场景的渗透测试一方面要求攻击者理解对Docker/K8s以及云服务的原理、特性以及漏洞利用方式;另一方面,攻击者通过业务漏洞(如WEB RCE)攻入容器后往往面对的是一个缩减后的容器环境,缺乏常用的linux...本地信息收集-环境变量,敏感进程,服务] [本地信息收集-可用命令,特权容器] 如果是以特权模式启动的话,CapEff对应的掩码值应该为0000003fffffffff [本地信息收集-容器挂载] 利用:Procfs...目录挂载逃逸 https://github.com/cdk-team/CDK/wiki/Exploit:-mount-procfs [本地信息收集-网络namespace隔离] 判断容器是否与宿主机共享

2.6K10

【云原生攻防研究】一文读懂runC近几年漏洞:统计分析与共性案例研究

当容器A启动时,它试图将procfs挂载到路径 /evil/level1~/level2,但由于容器B不断地交换 /evil/level1 和 /evil/level1~,容器A实际上会将procfs挂载到了...AppArmor和SELinux开启方式的利用:容器中AppArmor和SELinux这类LSM机制的开启都是向procfs写入label,攻击者只需要阻止写入的过程即可避免LSM的开启。...Procfs的利用:procfs是一个伪文件系统,实际是内核虚拟文件系统。如果攻击者可以控制/proc,则实际的AppArmor和SELinux策略就不会被内核应用。...CVE-2022-29162:在使用 runC exec --cap 命令执行进程时,这些进程会具有非空的可继承 Linux 进程能力(Linux process capabilities)。...,这违反了Linux中预期的安全行为,构成了一个安全隐患。

12410
领券