Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
kmon — Administrador del kernel de Linux y monitor de actividad 🐧💻 | Kitploit
Herramientas/GitHubGitHub/orhun/kmon
Utilidades de Propósito General
GitHuborhun/kmon

kmon

Administrador del kernel de Linux y monitor de actividad 🐧💻

Ver RepositorioSitio web
2.9k94hace 20 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir


Administrador del Kernel de Linux y Monitor de Actividad 🐧💻


El kernel es la parte del sistema operativo que facilita las interacciones entre los componentes de hardware y software. En la mayoría de los sistemas, se carga al inicio después del cargador de arranque y maneja las solicitudes de E/S, así como los periféricos como teclados, monitores, adaptadores de red y altavoces. Normalmente, el kernel es responsable de la gestión de memoria, gestión de procesos, gestión de dispositivos, llamadas al sistema y seguridad. Las aplicaciones utilizan el mecanismo de llamada al sistema para solicitar un servicio al sistema operativo y, la mayoría de las veces, esta solicitud se pasa al kernel mediante una biblioteca proporcionada por el sistema operativo para invocar la función del kernel correspondiente. Mientras el kernel realiza estas tareas de bajo nivel, reside en una parte separada de la memoria llamada espacio protegido del kernel al que las aplicaciones y otras partes del sistema no pueden acceder. Por el contrario, aplicaciones como navegadores, editores de texto, gestores de ventanas o reproductores de audio/vídeo utilizan un área separada diferente de la memoria, el espacio de usuario. Esta separación evita que los datos del usuario y del kernel interfieran entre sí causando inestabilidad y lentitud, así como evita que los programas de aplicación defectuosos paralicen todo el sistema operativo.
Existen diferentes diseños de kernel debido a las diferentes formas de gestionar las llamadas al sistema y los recursos. Por ejemplo, mientras que los núcleos monolíticos ejecutan todas las instrucciones del sistema operativo en el mismo espacio de direcciones por velocidad, los micronúcleos utilizan espacios diferentes para los servicios de usuario y kernel por modularidad. Además de estos, existen núcleos híbridos, nanonúcleos y exonúcleos. La arquitectura de núcleo híbrido se basa en combinar aspectos de los micronúcleos y los núcleos monolíticos.

El kernel de Linux es el kernel de sistema operativo de código abierto, monolítico y tipo Unix que se utiliza en las distribuciones de Linux, varios sistemas embebidos como enrutadores, así como en todos los sistemas basados en Android. Linus Torvalds concibió y creó el kernel de Linux en 1991 y todavía hoy lo desarrollan miles de desarrolladores. Es un ejemplo destacado de software libre y de código abierto y se utiliza en otros proyectos de software libre, notablemente el sistema operativo GNU. Aunque los sistemas operativos basados en Linux dominan la mayor parte de la informática, todavía presentan algunos de los defectos de diseño que fueron objeto de bastante debate en los primeros días de Linux. Por ejemplo, tiene la mayor huella y la mayor complejidad sobre los otros tipos de núcleos. Pero es una característica de diseño inherente a los núcleos monolíticos. Este tipo de problemas de diseño llevaron a los desarrolladores a agregar nuevas características y mecanismos al kernel de Linux que otros núcleos no tienen.

A diferencia de los núcleos monolíticos estándar, el kernel de Linux también es modular, aceptando módulos de kernel cargables (LKM) que normalmente se utilizan para agregar soporte para nuevo hardware (como controladores de dispositivo) y/o sistemas de archivos, o para agregar llamadas al sistema. Dado que los LKM se pueden cargar y descargar del sistema en tiempo de ejecución, tienen la ventaja de extender el kernel sin necesidad de reiniciar y recompilar. Por lo tanto, las funcionalidades del kernel proporcionadas por los módulos no residirían en la memoria sin ser utilizadas y el módulo correspondiente se puede descargar para liberar memoria y otros recursos.
Los módulos de kernel cargables se encuentran en /lib/modules con la extensión .ko (kernel object) en Linux. Mientras que el comando lsmod se puede utilizar para listar los módulos del kernel cargados, modprobe o insmod/rmmod se utiliza para cargar o descargar un módulo del kernel. insmod/rmmod se utilizan para módulos independientes de modprobe y sin necesidad de instalación en /lib/modules/$(uname -r).

A continuación se muestra un ejemplo simple de un módulo del kernel de Linux que imprime un mensaje cuando se carga y se descarga. Los pasos de compilación e instalación del módulo usando un Makefile se muestran a continuación.``` make # build sudo make install # install sudo modprobe lkm_example # load sudo modprobe -r lkm_example # unload

root@kitploit:~
El comando [dmesg](https://linux.die.net/man/8/dmesg) se utiliza a continuación para recuperar el búfer de mensajes del kernel.```
[16994.295552] [+] Example kernel module loaded.
[16996.325674] [-] Example kernel module unloaded.

kmon proporciona una interfaz de usuario basada en texto para gestionar los módulos del kernel de Linux y monitorear las actividades del kernel. Gestionar significa cargar, descargar, incluir en la lista negra y mostrar la información de un módulo. Estas actualizaciones en los módulos del kernel, registros sobre el hardware y otros mensajes del kernel se pueden rastrear con el monitor de actividad en tiempo real de kmon. Dado que para estas tareas en Linux se requiere el uso de diferentes herramientas como dmesg y kmod, kmon tiene como objetivo reunirlas en una sola ventana de terminal y facilitar el uso tanto como sea posible sin perder funcionalidad.

kmon está escrito en Rust y utiliza las bibliotecas Ratatui y termion para su interfaz de usuario basada en texto.

Tabla de contenido

  • Instalación
    • Cargo
    • Arch Linux
    • Nixpkgs
    • Alpine Linux
    • Docker
      • Construir
      • Ejecutar
    • Manual
      • Nota
  • Uso
    • Opciones
    • Comandos
      • Ordenar
  • Atajos de teclado
  • Características
    • Ayuda
    • Navegación y desplazamiento
      • Desplazamiento de actividades del kernel
      • Desplazamiento suave
    • Menú de opciones
    • Tamaños de bloque
    • Posiciones de bloque
    • Información del kernel
    • Información del módulo
      • Mostrar los módulos dependientes
      • Saltar a módulos dependientes
    • Buscar un módulo
    • Cargar un módulo
    • Descargar un módulo
    • Incluir un módulo en la lista negra
    • Recargar un módulo
    • Limpiar el buffer circular
    • Copiar y pegar
    • Ordenar/invertir los módulos del kernel
    • Personalizar los colores
      • Colores admitidos
      • Usar un color personalizado
      • Cambiar el color de acento
    • Símbolos Unicode

Instalación

Packaging status

Cargo

kmon se puede instalar desde crates.io usando Cargo si Rust está instalado.``` cargo install kmon

root@kitploit:~
La versión mínima de Rust soportada (MSRV) es `1.74.1`.

### Arch Linux

**kmon** se puede instalar desde el [repositorio oficial](https://www.archlinux.org/packages/extra/x86_64/kmon/) de Arch Linux.```
pacman -S kmon

También hay un paquete de desarrollo en el AUR. Usa tu ayudante de AUR favorito para instalarlo. Por ejemplo,``` paru -S kmon-git

root@kitploit:~
### Nixpkgs

**kmon** se puede instalar utilizando el [gestor de paquetes Nix](https://nixos.org/nix/) desde el canal `nixpkgs-unstable`.```
nix-channel --add https://nixos.org/channels/nixpkgs-unstable
nix-channel --update nixpkgs
nix-env -iA nixpkgs.kmon

En NixOS:``` nix-channel --add https://nixos.org/channels/nixos-unstable nix-channel --update nixos nix-env -iA nixos.kmon

root@kitploit:~
### Alpine Linux

**kmon** está disponible para [Alpine Edge](https://pkgs.alpinelinux.org/packages?name=kmon&branch=edge). Se puede instalar mediante [apk](https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper) después de habilitar el [repositorio comunitario](https://wiki.alpinelinux.org/wiki/Repositories).```
apk add kmon

Docker

Estado de compilación de Docker Hub``` docker run -it --cap-add syslog orhunp/kmon:tagname

root@kitploit:~
#### Compilación```
docker build -t kmon .

Ejecutar```

docker run -it --cap-add syslog kmon

root@kitploit:~
### Manual

1. Descarga el último binario de la sección [releases](https://github.com/orhun/kmon/releases) y elige entre el binario de [glibc](https://en.wikipedia.org/wiki/Glibc) o [musl-libc](https://musl.libc.org/).
2. Para descargar el paquete compilado con [glibc](https://en.wikipedia.org/wiki/Glibc) ejecuta:```
wget https://github.com/orhun/kmon/releases/download/v[VERSION]/kmon-[VERSION]-x86_64-unknown-linux-gnu.tar.gz
  1. Para descargar el paquete compilado con musl-libc ejecute:``` wget https://github.com/orhun/kmon/releases/download/v[VERSION]/kmon-[VERSION]-x86_64-unknown-linux-musl.tar.gz
root@kitploit:~
3. Extrae los archivos.```
tar -xvzf kmon-*.tar.gz
  1. Entra en la nueva carpeta.``` cd kmon-[VERSION]
root@kitploit:~
5. Ejecuta el binario.```
./kmon
  1. Mueve el binario a /usr/local/bin/ para ejecutarlo desde la terminal usando el comando kmon.

  2. La página de manual y las completaciones de shell se generan durante la compilación en el directorio target.

Nota

libxcb debe estar instalado para usar los comandos de copiar/pegar de X11.

p. ej.: Instala el paquete libxcb1-dev para Debian/Ubuntu* y el paquete libxcb-devel para Fedora/openSUSE/Void Linux.

Uso```

kmon [OPTIONS] [COMMAND]

root@kitploit:~
### Opciones```
-a, --accent-color <COLOR>  Set the accent color using hex or color name [default: white]
-c, --color <COLOR>         Set the main color using hex or color name [default: darkgray]
-t, --tickrate <MS>         Set the refresh rate of the terminal [default: 250]
-r, --reverse               Reverse the kernel module list
-u, --unicode               Show Unicode symbols for the block titles
-E, --regex                 Interpret the module search query as a regular expression
-h, --help                  Print help information
-V, --version               Print version information

Comandos```

sort Sort kernel modules

root@kitploit:~
#### Ordenar```
kmon sort [OPTIONS]

Opciones:``` -s, --size Sort modules by their sizes -n, --name Sort modules by their names -d, --dependent Sort modules by their dependent modules -h, --help Print help information

root@kitploit:~
## Atajos de Teclado

|                         |                                       |
| ----------------------- | ------------------------------------- |
| `[?], F1`               | Ayuda                                 |
| `right/left, h/l`       | Cambiar entre bloques                 |
| `up/down, k/j, alt-k/j` | Desplazar arriba/abajo [bloque seleccionado] |
| `pgup/pgdown`           | Desplazar arriba/abajo [actividades del núcleo] |
| `</>`                   | Desplazar arriba/abajo [información del módulo] |
| `alt-h/l`               | Desplazar derecha/izquierda [actividades del núcleo] |
| `ctrl-t/b, home/end`    | Desplazar al inicio/fin [lista de módulos] |
| `alt-e/s`               | Expandir/contraer el bloque seleccionado |
| `ctrl-x`                | Cambiar la posición del bloque        |
| `ctrl-l/u, alt-c`       | Limpiar el buffer del anillo del núcleo |
| `[d], alt-d`            | Mostrar los módulos dependientes      |
| `[1]..[9]`              | Saltar al módulo dependiente          |
| `[\], tab, backtab`     | Mostrar la siguiente información del núcleo |
| `[/], s, enter`         | Buscar un módulo del núcleo            |
| `[+], i, insert`        | Cargar un módulo del núcleo           |
| `[-], u, backspace`     | Descargar el módulo del núcleo        |
| `[x], b, delete`        | Bloquear el módulo del núcleo         |
| `ctrl-r, alt-r`         | Recargar el módulo del núcleo         |
| `m, o`                  | Mostrar el menú de opciones           |
| `y/n`                   | Ejecutar/cancelar el comando          |
| `c/v`                   | Copiar/pegar                          |
| `r, F5`                 | Refrescar                             |
| `q, ctrl-c/d, ESC`      | Salir                                 |

## Funcionalidades

### Ayuda

Presiona '`?`' mientras se ejecuta la interfaz de usuario de terminal para ver los atajos de teclado.

![Ayuda](https://assets.kitploit.com/production/public/readmes/4513/092daae0aa14fca490bc69381d3db28d4ff9a539c794a1991fb91c71e4424379.gif)

### Navegación y Desplazamiento

Las `teclas de flecha` se utilizan para navegar entre bloques y desplazarse.

![Navegación y Desplazamiento](https://assets.kitploit.com/production/public/readmes/4513/da959ba770e1c03f848633a36d54097b8f82c8b41ef9e8e046ba31f6c976a3a3.gif)

#### Desplazamiento de Actividades del Núcleo

Algunos mensajes del núcleo pueden ser lo suficientemente largos como para no caber en el bloque de actividades del núcleo, ya que no se ajustan. En esta situación, las actividades del núcleo se pueden desplazar horizontalmente con las teclas `alt-h y alt-l`. El mecanismo de desplazamiento vertical es el mismo que en otros bloques.

![Desplazamiento de Actividades del Núcleo](https://assets.kitploit.com/production/public/readmes/4513/025efb6bfd17e6228b1f623e756c871836df78251defe58c57c65505616a4837.gif)

#### Desplazamiento Suave

Las teclas `alt-j y alt-k` se pueden usar para desplazar lentamente el bloque de actividad del núcleo y de información del módulo.

![Desplazamiento Suave](https://assets.kitploit.com/production/public/readmes/4513/e195f5f4ad41495fa7211bb3a91e12e9b4892a79418e2ce621dec963bed21e42.gif)

### Menú de Opciones

Las teclas `m` y `o` se pueden usar como atajo para las operaciones de gestión del núcleo. Al presionarlas, se mostrará un menú de opciones para gestionar el módulo del núcleo actualmente seleccionado.

![Menú de Opciones](https://assets.kitploit.com/production/public/readmes/4513/8e5d26b77f927e4a5817c2e4402da8f53a91ec96621b049d05328c8dae544386.gif)

### Tamaños de Bloques

Las teclas `alt-e y alt-s` se pueden usar para expandir/contraer el bloque seleccionado.

![Tamaños de Bloques](https://assets.kitploit.com/production/public/readmes/4513/d563b6e8a665b57a9100ed1ee1dddf4c58029821e38e1ad2ff91d22e4c5c7e2c.gif)

### Posiciones de Bloques

La tecla `ctrl-x` se puede usar para cambiar las posiciones de los bloques.

![Posiciones de Bloques](https://assets.kitploit.com/production/public/readmes/4513/3cf0ddc44319f9fe7e5fa6027d8f66de5e33ea96032e0e19bae8b75d8d276c84.gif)

### Información del Núcleo

Usa una de las teclas `\, tab, backtab` para alternar entre la versión del núcleo, la versión de lanzamiento y la información de la plataforma.

![Información del Núcleo](https://assets.kitploit.com/production/public/readmes/4513/2003d3fef4bee4ddebbf578f97432611dbadb685f18c93f706f327b7a320bfa1.gif)

### Información del Módulo

El estado de un módulo del núcleo se muestra al seleccionarlo.

![Información del Módulo](https://assets.kitploit.com/production/public/readmes/4513/fbd0a6aa127a5de68390c6776bb7ff019f328b600101d53a937fe3b58746c19b.gif)

#### Mostrar los Módulos Dependientes

Usa una de las teclas `d, alt-d` para mostrar todos los módulos dependientes del módulo seleccionado.

![Mostrar los Módulos Dependientes](https://assets.kitploit.com/production/public/readmes/4513/93b382f93492bc58575981ef3bd2e9a5203eab4ee0d3df3cb04f5edc27511adf.gif)

#### Saltar a Módulos Dependientes

Para saltar a un módulo del núcleo dependiente desde su módulo padre, las `teclas numéricas` (1-9) se pueden usar para especificar el índice del módulo en la columna _Usado por_.

![Información de Dependencias](https://assets.kitploit.com/production/public/readmes/4513/ddfa494abda891dfe1ac81d6d0c46fe8892ef07314f1ae80702e0603ff37306f.gif)

### Buscar un Módulo

Cambia al área de búsqueda con las teclas de flecha o usando una de `/, s, enter` y proporciona una consulta de búsqueda para el nombre del módulo.

![Buscar un Módulo](https://assets.kitploit.com/production/public/readmes/4513/08a4df2fb9795e789c77cf19fc289a37bd5ec551a6f466e4c8240fb0b1f18f8c.gif)

### Cargar un Módulo

Para agregar un módulo al núcleo de Linux, cambia al modo de carga con una de las teclas `+, i, insert` y proporciona el nombre del módulo a cargar. Luego confirma/cancela la ejecución del comando de carga con `y/n`.

![Cargar un Módulo](https://assets.kitploit.com/production/public/readmes/4513/fcb829b17f0fe7d09e29a3edbddfac451f17fb6ef5a8739eee855170876ac9ba.gif)

El comando utilizado para cargar un módulo:```
modprobe <module_name> || insmod <module_name>.ko

Descargando un módulo

Use una de las teclas -, u, backspace para eliminar el módulo seleccionado del kernel de Linux.

Descargando un módulo

El comando utilizado para eliminar un módulo:``` modprobe -r <module_name> || rmmod <module_name>

root@kitploit:~
### Bloqueando un módulo

El [bloqueo](https://wiki.archlinux.org/index.php/Kernel_module#Blacklisting) es un mecanismo para evitar que el módulo del kernel se cargue. Para bloquear el módulo seleccionado, usa una de las teclas `x, b, delete` y confirma la ejecución.

![Bloqueando un módulo](https://assets.kitploit.com/production/public/readmes/4513/58af72f6d1ba84074928fbad372c58bf054fe3e16ac6c42e6dadb257ca7c9b41.gif)

El comando utilizado para bloquear un módulo:```
if ! grep -q <module_name> /etc/modprobe.d/blacklist.conf; then
  echo 'blacklist <module_name>' >> /etc/modprobe.d/blacklist.conf
  echo 'install <module_name> /bin/false' >> /etc/modprobe.d/blacklist.conf
fi

Recargar un módulo

Usa la tecla ctrl-r o alt-r para recargar el módulo seleccionado.

Reloading a module

El comando que se usa para recargar un módulo:``` modprobe -r <module_name> || rmmod <module_name> && modprobe <module_name> || insmod <module_name>.ko

root@kitploit:~
### Limpiando el búfer de anillo

El búfer de anillo del kernel se puede limpiar usando una de las teclas `ctrl-l/u, alt-c`.

![Limpiando el búfer de anillo](https://assets.kitploit.com/production/public/readmes/4513/5c693de033427319d9960aa2c1e35cf773a711e736962beb980b564bf071dfbd.gif)```
dmesg --clear

Copiar y pegar

Las teclas c/v están configuradas para operaciones de copiar y pegar.

Copiar y pegar

Use ctrl-c/ctrl-v para copiar y pegar mientras está en modo de entrada.

Ordenar/invertir los módulos del kernel

El subcomando sort se puede usar para ordenar los módulos del kernel por sus nombres, tamaños o módulos dependientes.``` kmon sort --name kmon sort --size kmon sort --dependent

root@kitploit:~
![Sorting the kernel modules](https://assets.kitploit.com/production/public/readmes/4513/2e134a1dc23793a61ee9cbb5523063dc8791e9e10b70550cc738da00f8c61f39.gif)

Además, la bandera `-r, --reverse` se utiliza para invertir la lista de módulos del kernel.```
kmon --reverse

Reversing the kernel modules

Personalizando los colores

kmon utiliza los colores del terminal por defecto, pero el color de resaltado se puede especificar con la opción -c, --color. Alternativamente, el color de texto predeterminado se puede establecer mediante la opción -a, --accent-color.

Colores soportados

Los colores de terminal soportados son: black, red, green, yellow, blue, magenta, cyan, gray, darkgray, lightred, lightgreen, lightyellow, lightblue, lightmagenta, lightcyan, white.``` kmon --color red

root@kitploit:~
![Colores compatibles](https://assets.kitploit.com/production/public/readmes/4513/03a0e1fbb0b033dd9571a77a29658679aa74cebc983af4430d590174861649a9.gif)

#### Usando un color personalizado

Proporcione un valor hexadecimal para el color a utilizar.```
kmon --color 19683a

Using a custom color

Cambiando el color de acento

El color de texto predeterminado puede causar problemas de legibilidad en algunos temas que tienen transparencia. La opción -a, --accent-color puede usarse de manera similar a la opción -c, --color para superar este problema.``` kmon --color 6f849c --accent-color e35760

root@kitploit:~
![Cambiando el color de acento](https://assets.kitploit.com/production/public/readmes/4513/78d04e79126d2382ccfbe48d2a60e183c252c62282e9ef0e501499f07b9f7c60.gif)

### Símbolos Unicode

Use la opción `-u, --unicode` para mostrar símbolos Unicode en los títulos de los bloques.```
kmon --unicode

Símbolos Unicode

Configurando la tasa de actualización del terminal

-t, --tickrate opción se puede usar para establecer el intervalo de actualización de la interfaz del terminal en milisegundos.

Configurando la tasa de actualización del terminal

Buscando módulos mediante expresión regular

-E, --regex opción se puede usar para buscar módulos mediante expresión regular.

Hoja de ruta

kmon aspira a ser una herramienta estándar para la gestión del kernel de Linux, compatible con la mayoría de las distribuciones de Linux.

Accesibilidad

Para lograr este objetivo, kmon debería ser accesible desde diferentes gestores de paquetes como Snap* y RPM.

Dependencias

Es necesario tener las herramientas esenciales como dmesg y kmod en el sistema para que kmon funcione correctamente. Por lo tanto, el siguiente paso sería usar solo los recursos del sistema para estas funciones.

Funcionalidades

Las acciones de gestión del kernel de Linux deberían ser aplicables en kmon para minimizar la dependencia de la línea de comandos y otras herramientas.

Pruebas

kmon debería ser probado y reportado en diferentes arquitecturas para su posterior desarrollo y soporte.

Recursos

Sobre el proyecto

  • Código de conducta
  • Contribuir
  • Crear un lanzamiento

Artículos

  • Explorando el kernel de Linux por Bob Cromwell
  • Anatomía del módulo del kernel cargable de Linux por Terenceli
  • Gestión de módulos del kernel con kmod por Lucas De Marchi

En los medios

  • Gestionar y monitorear módulos del kernel de Linux con Kmon ( OSTechNix)
  • Kmon: el software de gestión y monitoreo del kernel de Linux (Brodie Robertson en YouTube)

Galería

Fedora 31Debian 10Manjaro 19
kmon en fedorakmon en debiankmon en manjaro
Ubuntu 18.04openSUSEVoid Linux
kmon en ubuntukmon en opensusekmon en voidlinux

Redes sociales

  • Sigue a @kmonitor_ en Twitter
  • Sigue al autor:
    • @orhun en GitHub
    • @orhundev en Twitter

Financiamiento

GitHub

Apoya el desarrollo de mis proyectos apoyándome en GitHub Sponsors.

Patreon

Botón de Patreon

Open Collective

Patrocinadores de Open Collective Colaboradores de Open Collective

Apoya los esfuerzos de desarrollo de código abierto convirtiéndote en un colaborador o patrocinador.

Botón de Open Collective

Licencia

Licencia General Pública GNU (3.0)

Derechos de autor

Copyright © 2020-2024, Orhun Parmaksız

Descargar herramienta
  • Establecer la tasa de refresco del terminal
  • Buscar módulos mediante expresión regular
  • Hoja de ruta
    • Accesibilidad
    • Dependencias
    • Características
    • Pruebas
  • Recursos
    • Acerca del proyecto
    • Artículos
    • En los medios
    • Galería
    • Redes sociales
  • Financiación
    • GitHub
    • Patreon
    • Open Collective
  • Licencia
  • Copyright