linux进程的电源管理

不论是现实生活中的渗透测试,还是 CTF 竞赛中的赛题,都经常会出现/proc这个目录,利用该目录中的一些子目录或者文件不仅可以获取有用的环境变量信息甚至可以直接Getshell

操作系统中的/proc是一个位于内存中的伪文件系统(或者叫做虚拟文件系统)。该目录下保存的不是真正的文件和目录,而是一些"运行时"的信息,例如系统内存、磁盘IO、设备挂载信息和硬件配置信息等。proc目录是一个控制中心,用户可以通过更改其中某些文件来改变内核的运行状态,proc目录也是内核提供给一个的查询中心,可以通过这些文件查看有关系统硬件及当前正在运行进程的信息。在

简单一点来讲,/proc目录就是保存在系统中的信息,其包含许多以数字命名的子目录,这些数字代表着当前系统正在运行进程的进程号,里面包含对应进程相关的多个信息文件

一般来说,在/proc目录下会存在以下的文件和目录

每一个 /proc/pid 目录中还存在一系列目录和文件, 这些文件和目录记录的都是关于 pid 对应进程的信息. 例如在 /proc/pid 的目录下存在一个 task 目录, 在 task 目录下又存在 task/tid 这样的目录, 这个目录就是包含此进程中的每个线程的信息, 其中的 tid 是内核线程的 tid, 通过 GETDENTS 遍历 /proc 就能够看到所有的 /proc/pid 的目录, 当然通过 ls -al /proc 的方式也可以看到所有的信息 proc 下面还有许多其他的文件记录了系统中的各种信息

高级电源管理(APM)版本信息及电池相关状态信息,通常由apm命令使用

用于诊断内存碎片问题的相关信息文件;

在启动时传递至内核的相关参数信息,这些信息通常由lilogrub等启动管理工具进行传递

处理器的相关信息的文件

系统上已安装的内核使用的密码算法及每个算法的详细信息列表

> 这是一个子目录,包含了当前进程打开的每一个文件,每一个条目都是一个文件描述符,这些文件描述符是指向实际文件的一个符号链接,即每个通过这个进程打开的文件都会显示在这里,可以通过`fd`目录里的文件获得指定进程打开的每个文件的路径以及文件内容 > `fd`的另一个用途在于:在`linux`系统中,当一个程序用`open()`打开了一个文件但最终没有关闭该文件,即使从外部删除这个文件,但是在`/proc`这个进程的`pid`目录下的`fd`文件描述符目录下还是会有这个文件的文件描述符,通过这个文件描述符可以得到被删除文件的内容 [+] 查看指定进程打开的某个文件的路径 [+] 查看指定进程打开的某个文件的内容

赛题中往往需要的都是当前进程中的有用信息,而在上述的操作中基本都是目标环境中指定的进程信息,这时可以通过/proc/self来获取当前进程的信息,相较于/proc/$pid/proc/self不仅能够更方便的获取本进程的信息,还可以避免在forkdaemon等情况下pid发生变化,感兴趣的话可以看看

[+] 获取当前启动进程的完整命令
[+] 获取目标当前进程环境的运行目录与目录里的文件
[+] 获得当前进程的可执行文件的完整路径
[+] 获取当前进程的环境变量信息
[+] 获取当前进程打开的文件内容
 

tip:当找不到网站路径的时候可以利用/proc/self/cwd目录来读取apache进程的php文件源码

 

打开题目界面只有一个登录框,随便输入点东西后发现url的形式可能存在任意文件读取,尝试后成功下载/etc/passwd

 

成功拿到当前文件的名字,使用/proc/self/cwd来获取文件内容

 
 

观察源代码后发现关键点:os.remove(SECRET_FILE),这里导致SECRET_FILE文件被删除了,结合上文分析可以知道,fd可以用来读取被删除的文件,所以只需要爆破id值就可以成功读取到被删除文件的内容,这里爆破出来的id=3

后面就是常规的步骤了,利用拿到的SECRET_FILE来反弹 shell 即可

 
 

  

针对嵌入式系统的低功耗要求,

提出高效的电源管理方案。

源管理技术的基础上,增加启动加载程序对电源管理的支持,修改

处理器和系统外设进行电源管理,建立用户空间电源管理守护进

当系统处于空闲状态时,

种典型的系统工作频率下,

该电源管理软件系统可将系统功耗降低至未进行电源

关健词:高级电源管理;内存休眠;低功耗设计;

嵌入式系统大多是功耗敏感的,

尤其是便携式手持设备,

高和服务功能的多样化,

低功耗设计成为设计的主要目标之一。

我要回帖

更多关于 linux休眠时间设置 的文章

 

随机推荐