Gestión de Procesos
Comandos esenciales para monitorear, controlar y gestionar procesos en sistemas Linux.
Monitoreo de Procesos
Section titled “Monitoreo de Procesos”ps - Listar procesos
Section titled “ps - Listar procesos”Muestra información sobre procesos en ejecución. Fundamental para monitoreo de sistema y detección de actividad sospechosa.
# Procesos del usuario actualps
# Todos los procesos con detallesps aux
# Procesos en formato árbolps auxf
# Procesos de un usuario específicops -u username
# Procesos por PIDps -p 1234
# Procesos con información de redps aux | grep -E "(LISTEN|ESTABLISHED)"Uso en pentesting: Identificar servicios en ejecución, procesos sospechosos y aplicaciones que pueden tener vulnerabilidades.
top - Monitor dinámico de procesos
Section titled “top - Monitor dinámico de procesos”Monitor en tiempo real del uso de CPU, memoria y procesos activos. Esencial para análisis de rendimiento.
# Monitor básicotop
# Ordenar por CPUtop -o %CPU
# Ordenar por memoriatop -o %MEM
# Mostrar procesos de un usuariotop -u username
# Modo batch (no interactivo)top -b -n 1htop - Monitor mejorado (si está instalado)
Section titled “htop - Monitor mejorado (si está instalado)”Versión mejorada de top con interfaz más amigable y funciones adicionales. Mejor para análisis interactivo.
htoppstree - Árbol de procesos
Section titled “pstree - Árbol de procesos”Muestra procesos en estructura jerárquica tipo árbol. Útil para entender relaciones padre-hijo entre procesos.
# Árbol completopstree
# Con PIDspstree -p
# De un usuario específicopstree usernameControl de Procesos
Section titled “Control de Procesos”kill - Terminar procesos
Section titled “kill - Terminar procesos”Envía señales a procesos para terminarlos o controlarlos. Comando crítico para gestión de procesos maliciosos.
# Terminar proceso por PIDkill 1234
# Forzar terminaciónkill -9 1234
# Terminar gracefullykill -15 1234
# Listar señales disponibleskill -lkillall - Terminar por nombre
Section titled “killall - Terminar por nombre”Termina todos los procesos que coincidan con un nombre específico. Útil para detener servicios o aplicaciones.
# Terminar todos los procesos con ese nombrekillall firefox
# Forzar terminaciónkillall -9 firefox
# Terminar procesos de un usuariokillall -u usernamepkill - Terminar por patrón
Section titled “pkill - Terminar por patrón”Termina procesos basándose en patrones de nombre o atributos. Más flexible que killall para selección avanzada.
# Terminar por nombre parcialpkill fire
# Terminar por usuariopkill -u username
# Terminar por terminalpkill -t pts/0pgrep - Buscar procesos
Section titled “pgrep - Buscar procesos”Busca procesos por nombre o atributos y devuelve sus PIDs. Útil para scripting y automatización.
# Buscar por nombrepgrep firefox
# Buscar por usuariopgrep -u username
# Mostrar nombre del procesopgrep -l firefoxGestión de Trabajos
Section titled “Gestión de Trabajos”Trabajos en primer y segundo plano
Section titled “Trabajos en primer y segundo plano”# Ejecutar en segundo planocommand &
# Ver trabajos activosjobs
# Traer trabajo a primer planofg %1
# Enviar trabajo a segundo planobg %1
# Suspender proceso actualCtrl+Zbg - Enviar a segundo plano
Section titled “bg - Enviar a segundo plano”Reanuda trabajos suspendidos en background. Útil para continuar procesos sin bloquear la terminal.
# Ejecutar en segundo planocommand &
# Ver trabajos activosjobs
# Enviar trabajo a segundo planobg %1
# Suspender proceso actualCtrl+Zfg - Traer a primer plano
Section titled “fg - Traer a primer plano”Trae trabajos de background al foreground. Permite retomar control interactivo de procesos.
# Traer trabajo a primer planofg %1jobs - Trabajos en segundo plano
Section titled “jobs - Trabajos en segundo plano”Muestra trabajos activos en la sesión actual. Importante para gestión de tareas en background.
# Ver trabajos activosjobsnohup - Ejecutar sin hangup
Section titled “nohup - Ejecutar sin hangup”Ejecuta comandos que persisten al cerrar la sesión. Esencial para procesos de larga duración.
# Ejecutar comando que persiste al cerrar terminalnohup long_running_command &
# Redirigir salidanohup command > output.log 2>&1 &screen - Sesiones persistentes
Section titled “screen - Sesiones persistentes”# Crear nueva sesiónscreen
# Crear sesión con nombrescreen -S session_name
# Listar sesionesscreen -ls
# Reconectar a sesiónscreen -r session_name
# Desconectar sesión (dentro de screen)Ctrl+A, dtmux - Multiplexor de terminal
Section titled “tmux - Multiplexor de terminal”# Nueva sesióntmux
# Nueva sesión con nombretmux new -s session_name
# Listar sesionestmux ls
# Conectar a sesióntmux attach -t session_name
# Desconectar (dentro de tmux)Ctrl+B, dServicios del Sistema
Section titled “Servicios del Sistema”systemctl - Control de servicios (systemd)
Section titled “systemctl - Control de servicios (systemd)”Gestiona servicios del sistema en distribuciones con systemd. Fundamental para administración de servicios.
# Estado de un serviciosystemctl status service_name
# Iniciar serviciosystemctl start service_name
# Detener serviciosystemctl stop service_name
# Reiniciar serviciosystemctl restart service_name
# Habilitar al iniciosystemctl enable service_name
# Deshabilitar al iniciosystemctl disable service_name
# Listar todos los serviciossystemctl list-units --type=service
# Servicios fallidossystemctl --failedservice - Control de servicios (SysV)
Section titled “service - Control de servicios (SysV)”Gestiona servicios en sistemas SysV init. Comando tradicional para control de demonios del sistema.
# Estado del servicioservice service_name status
# Iniciar servicioservice service_name start
# Detener servicioservice service_name stop
# Reiniciar servicioservice service_name restartInformación del Sistema
Section titled “Información del Sistema”uptime - Tiempo de actividad
Section titled “uptime - Tiempo de actividad”uptimew - Usuarios conectados y actividad
Section titled “w - Usuarios conectados y actividad”wwho - Usuarios conectados
Section titled “who - Usuarios conectados”wholast - Últimos logins
Section titled “last - Últimos logins”# Últimos loginslast
# Últimos logins de un usuariolast username
# Últimos reinicioslast rebootEjemplos para Pentesting
Section titled “Ejemplos para Pentesting”Identificar procesos sospechosos
Section titled “Identificar procesos sospechosos”# Procesos ejecutándose como rootps aux | grep "^root"
# Procesos con conexiones de rednetstat -tulpn | grep LISTEN
# Procesos con archivos abiertoslsof -i
# Procesos que consumen más CPU/memoriaps aux --sort=-%cpu | head -10ps aux --sort=-%mem | head -10Monitorear actividad del sistema
Section titled “Monitorear actividad del sistema”# Procesos iniciados recientementeps -eo pid,ppid,cmd,etime --sort=etime | head -20
# Procesos con privilegios elevadosps aux | grep -E "(sudo|su|root)"
# Servicios de red activosss -tulpn | grep LISTENAnálisis forense básico
Section titled “Análisis forense básico”# Historial de comandos de usuarioshistorycat ~/.bash_history
# Procesos zombieps aux | grep -i zombie
# Carga del sistemacat /proc/loadavgControl de Recursos
Section titled “Control de Recursos”nice - Prioridad de procesos
Section titled “nice - Prioridad de procesos”# Ejecutar con prioridad bajanice -n 10 command
# Cambiar prioridad de proceso existenterenice 10 -p PIDionice - Prioridad de E/S
Section titled “ionice - Prioridad de E/S”# Ejecutar con baja prioridad de E/Sionice -c 3 commandtimeout - Limitar tiempo de ejecución
Section titled “timeout - Limitar tiempo de ejecución”# Ejecutar comando con timeouttimeout 30s commandNota de Seguridad: Al analizar procesos en un sistema comprometido, ten cuidado de no alertar al atacante. Usa comandos que generen mínimo ruido en los logs del sistema.