当前位置:网站首页 > 技术博客 > 正文

linux kernel pwn



Kdump 是一个实用程序,用于在系统崩溃时捕获系统核心转储。

这些捕获的核心转储可用于稍后分析系统故障的确切原因并实施必要的修复以防止将来发生崩溃。

Kdump 为称为 crashkernel 的辅助内核保留一小部分内存。

这个辅助或崩溃内核用于在系统崩溃时捕获核心转储映像。

首先,安装 kdump,它是 kexec-tools 包的一部分。

安装软件包后,编辑 /boot/grub/grub.conf 文件并设置为 kdump 崩溃内核保留的内存量。

您可以编辑 /boot/grub/grub.conf 的值 crashkernel 并将其设置为自动或用户指定的值。对于 2G 内存或更高内存的机器,建议至少使用 128M。

在以下示例中,查找以“kernel”开头的行,将其设置为“crashkernel=auto”。

一旦内核崩溃,可以根据 /etc/kdump.conf 中定义的设置将核心转储捕获到本地文件系统或远程文件系统 (NFS)(在 SLES 操作系统中,路径为 /etc/sysconfig/kdump)。

该文件是在安装 kexec-tools 软件包时自动创建的。

默认情况下,此文件中的所有条目都将被注释掉。您可以取消注释最佳选项所需的注释。

在上面的文件中:

  • 要将转储写入原始设备,您可以取消注释“raw /dev/sda5”并将其更改为指向正确的转储位置。
  • 如果要更改转储位置的路径,请取消注释并将“path /var/crash”更改为指向新位置。
  • 对于 NFS,您可以取消注释“#net my.server.com:/export/tmp”并指向当前 NFS 服务器位置。

下一步是在 Kdump 配置文件中配置核心收集器。压缩捕获的数据并从捕获的核心文件中过滤所有不必要的信息非常重要。

要启用核心收集器,请取消注释以下以 core_collector 开头的行。

  • 在 core_collector 中指定的 makedumpfile 实际上是通过压缩数据来生成一个小的 DUMPFILE。
  • makedumpfile 提供了两种 DUMPFILE 格式(ELF 格式和 kdump 压缩格式)。
  • 默认情况下,makedumpfile 以 kdump 压缩格式生成 DUMPFILE。
  • kdump-compressed 格式只能使用 crash 实用程序读取,并且由于支持压缩,它可以小于 ELF 格式。
  • GDB 和 crash 实用程序可以读取 ELF 格式。
  • -c 是按每页压缩转储数据
  • -d 是不必要的页数,可以忽略。

如果取消注释 #default shell 行,则在 kdump 无法收集核心时调用 shell。然后管理员可以使用 makedumpfile 命令手动获取核心转储。

配置好 kdump 后,重新启动 kdump 服务,

如果您在启动服务时遇到任何问题,则可能是 kdump 模块或 crashkernel 参数设置不正确。因此,请验证 /proc/cmdline 并确保它反映了包含 crashkernel 值。

您可以使用以下命令手动触发核心转储:

服务器将自行重启并生成故障转储。

重新启动服务器后,您将看到核心文件根据 /var/crash 中定义的位置在 /var/crash 下生成。

您将看到 vmcore 和 vmcore-dmseg.txt 文件:

Crash 实用程序用于分析 kdump 捕获的核心文件。

它还可用于分析其他转储实用程序(如 netdump、diskdump、xendump)创建的核心文件。

您需要确保存在“kernel-debuginfo”包并且它与内核处于同一级别。

启动崩溃工具,如下所示。执行此命令后,您将收到一个现金提示,您可以在其中执行崩溃命令:

在崩溃提示符下执行 ps 命令,会显示系统崩溃时所有正在运行的进程。

在崩溃提示符下执行 swap 命令,将显示系统崩溃时的交换空间使用情况。

在崩溃提示符下执行 ipcs 命令,会显示系统崩溃时的共享内存使用情况。

在崩溃提示符下执行 irq 命令,该命令将显示系统崩溃时的IRQ 统计信息。

vtop - 此命令将用户或内核虚拟地址转换为其物理地址。
foreach - 此命令显示系统中多个任务的数据
waitq - 此命令显示在等待队列中排队的所有任务。

在崩溃提示符下执行 vm 命令,会显示系统崩溃时的虚拟内存使用情况。

在崩溃提示符下执行 files 命令,将显示系统崩溃时打开的文件。

在崩溃提示符下执行 sys 命令,系统崩溃时会显示系统信息。

  • 上一篇: actionscript菜鸟教程
  • 下一篇: c udp发送数据
  • 版权声明


    相关文章:

  • actionscript菜鸟教程2025-01-13 22:00:59
  • pywin32教程2025-01-13 22:00:59
  • java类的测试2025-01-13 22:00:59
  • 逻辑回归模型介绍2025-01-13 22:00:59
  • debian完整镜像2025-01-13 22:00:59
  • c udp发送数据2025-01-13 22:00:59
  • 弹性负载均衡系统支持三种调度算法2025-01-13 22:00:59
  • linux ioctl函数详解2025-01-13 22:00:59
  • oracle视图的作用能否提高查询效率2025-01-13 22:00:59
  • 数组指针的用法二维数组2025-01-13 22:00:59