Service and Process Management - Linux Fundamentals
linux
htb
security
Objetivo
Dominar la gestión de servicios y procesos en Linux: systemd, procesos en background, y señales.
Introducción
Los servicios (daemons) y procesos son fundamentales en Linux. Saber gestionarlos es esencial para administración y pentesting.
Escenario
Necesitas: 1. Gestionar servicios del sistema 2. Controlar procesos en ejecución 3. Ejecutar tareas en background
Systemd
Gestión de Servicios
# Iniciar servicio
sudo systemctl start ssh
# Detener servicio
sudo systemctl stop ssh
# Reiniciar servicio
sudo systemctl restart ssh
# Estado del servicio
sudo systemctl status ssh
# Habilitar al inicio
sudo systemctl enable ssh
# Deshabilitar al inicio
sudo systemctl disable sshListar Servicios
# Todos los servicios
systemctl list-units --type=service
# Servicios activos
systemctl list-units --type=service --state=active
# Servicios habilitados
systemctl list-unit-files --type=service | grep enabledJournalctl - Logs
# Logs de un servicio
journalctl -u ssh.service
# Logs recientes
journalctl -u ssh.service -n 50
# Seguir en tiempo real
journalctl -u ssh.service -f
# Desde un momento específico
journalctl -u ssh.service --since "2023-02-20 10:00:00"Gestión de Procesos
ps - Estado de Procesos
# Procesos del usuario actual
ps
# Todos los procesos
ps aux
# Procesos con formato personalizado
ps -eo pid,ppid,user,cmd
# Buscar proceso
ps aux | grep sshdtop / htop
# Monitor en tiempo real
top
# htop (más visual)
htop
# Ordenar por CPU (en top)
# Presionar P
# Ordenar por memoria
# Presionar MSeñales
Lista de Señales
kill -l| Señal | Nombre | Descripción |
|---|---|---|
| 1 | SIGHUP | Hangup (recargar configuración) |
| 2 | SIGINT | Interrupción (Ctrl+C) |
| 9 | SIGKILL | Matar inmediatamente |
| 15 | SIGTERM | Terminar gracefulmente |
| 19 | SIGSTOP | Detener proceso |
| 20 | SIGTSTP | Detener terminal (Ctrl+Z) |
kill / pkill / killall
# Enviar señal por PID
kill 1234
kill -9 1234
# Matar por nombre
pkill firefox
# Matar todos los procesos por nombre
killall firefox
# Matar proceso de usuario específico
pkill -u usuario firefoxBackground y Foreground
Enviar a Background
# Ejecutar en background
ping google.com &
# Suspender proceso actual
# Ctrl+Z
# Ver jobs
jobs
# Enviar job a background
bg %1Traer a Foreground
# Traer último job
fg
# Traer job específico
fg %1nohup - Persistir Procesos
# Ejecutar después de cerrar sesión
nohup ./script.sh &
# Ver output
cat nohup.outMúltiples Comandos
Ejecución Secuencial
# Ejecutar todos (;)
comando1 ; comando2 ; comando3
# Solo si anterior exitoso (&&)
comando1 && comando2 && comando3
# Solo si anterior falla (||)
comando1 || comando2Pipes
# Pasar output a otro comando
ps aux | grep ssh
cat archivo | grep patron | wc -lPrioridad de Procesos
nice y renice
# Iniciar con prioridad baja
nice -n 10 ./script.sh
# Cambiar prioridad
renice -n 5 -p 1234
# Ver prioridades
ps -eo pid,ni,cmdCasos de Uso en Pentesting
Identificar Procesos Sensibles
# Procesos corriendo como root
ps aux | grep root
# Procesos con SUID
find / -perm -4000 -type f 2>/dev/null
# Servicios expuestos
ss -tlnpPersistencia
# Crear servicio malicioso
sudo systemctl enable malicious.serviceAnálisis de Procesos
# Archivos abiertos por proceso
lsof -p PID
# Conexiones de red
lsof -i
# Verificar proceso sospechoso
ls -la /proc/PID/exe¿Qué Aprendimos?
- systemctl: Gestión de servicios
- ps/top: Monitoreo de procesos
- kill/pkill: Enviar señales
- bg/fg: Background y foreground
- journalctl: Logs de servicios
Autoevaluación
- ¿Cómo verificas si un servicio está activo?
- ¿Qué señal envía Ctrl+C?
- ¿Cómo pones un proceso en background?
- ¿Cómo ves los logs de un servicio?
- ¿Qué hace
kill -9?