← Teoría P9 · UF0853 · Procesos, servicios y malware ✓ Guardado

Práctica 9 · Procesos, servicios y malware

UF: UF0853 · Sesión: 9 / 10 · Modalidad: individual
Entorno: VM Windows + VM Ubuntu · NO requiere antivirus de terceros
Entregable: este archivo con capturas y respuestas

De qué va. Diseccionarás procesos y servicios en ambos sistemas, simularás cuellos de botella, gestionarás los servicios que arrancan con el SO y harás una prueba real con el archivo EICAR para ver cómo reacciona Defender. Termina configurando el Firewall y revisando logs de seguridad.

Por qué importa. «Mi PC va lento» es el ticket más común. Y los ataques entran por procesos disfrazados. Detectarlos rápido es la diferencia entre un incidente menor y un desastre.

Cuidado: el archivo EICAR no es un virus real, pero los antivirus lo detectan como tal a propósito. Es seguro y diseñado para probar antivirus. No lo metas en un PC de producción si tienes EDR corporativo: te puede generar alertas en el SOC.

1 Administrador de tareas a fondo (Windows)

Abre con Ctrl+Mayús+Esc y recorre cada pestaña:
  • Procesos: ordena por «Memoria». ¿Qué proceso consume más?
  • Rendimiento: mira los gráficos en tiempo real. Stress: abre 10 pestañas de Edge.
  • Historial de aplicaciones: apps de la Store y su consumo acumulado.
  • Aplicaciones de inicio: aquí se ahorra mucho.
  • Usuarios: sesiones activas.
  • Detalles: vista cruda con PID, prioridad, usuario.
  • Servicios: atajo a services.msc.
#ProcesoRAM (MB)
1
2
3
Simular cuello de botella de CPU
REM PowerShell elevado: bucle infinito que satura un núcleo
Start-Process powershell -ArgumentList '-NoProfile -Command "while($true){}"'

REM Repite 2-3 veces para usar varios núcleos

Mira el Administrador de tareas → Rendimiento → CPU. Verás los núcleos al 100%. Identifica los procesos culpables en «Detalles» y termínalos con clic derecho → Finalizar tarea.

Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

Cambiar prioridad y afinidad

  1. Detalles → clic derecho en un proceso → Establecer prioridad → Inactivo (idle) / Por debajo de lo normal / Por encima / Alta / Tiempo real.
  2. Detalles → clic derecho → Establecer afinidad → permite limitarlo a unos núcleos.

Limpiar el arranque (¡regla de oro!)

Pestaña «Aplicaciones de inicio»: ordena por «Impacto en el inicio». Deshabilita todo lo que no necesites al inicio (puedes ejecutarlo a mano cuando lo necesites).

2 Servicios de Windows (services.msc)

Explorar
  1. services.msc.
  2. Ordena por «Estado» → ves cuáles están «En ejecución».
  3. Busca «Windows Update» (wuauserv). Doble clic → estado, tipo de inicio.
  4. Busca «Print Spooler» (Spooler). Detente y reinícialo.

Desde CMD · sc y net

REM Listar todos los servicios
sc query type=service state=all | findstr SERVICE_NAME

REM Estado de uno concreto
sc query Spooler

REM Detener / arrancar / reiniciar
net stop Spooler
net start Spooler

REM Tipo de inicio: auto, demand (manual), disabled
sc config Spooler start= demand

REM PowerShell (más moderno)
Get-Service | Where-Object {$_.Status -eq 'Running'} | Select-Object Name,DisplayName,StartType | Format-Table
Get-Service Spooler | Restart-Service
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Experimento: deshabilitar un servicio y ver consecuencias
  1. Detén «Print Spooler» (Spooler).
  2. Abre Paint → File → Imprimir. ¿Qué pasa?
  3. Vuelve a iniciarlo.
  4. Repite con «Audio de Windows» (Audiosrv) y prueba a reproducir un sonido.

3 Procesos en Linux: ps, top, htop, kill

# Vista detallada con ps
ps aux | head
ps aux --sort=-%mem | head      # top RAM
ps aux --sort=-%cpu | head      # top CPU
ps -ef --forest | head -30      # árbol de procesos

# Buscar un proceso por nombre
pgrep -a firefox
ps aux | grep firefox

# top (interactivo)
top
# Dentro: P ordena por CPU, M ordena por memoria, k mata, q sale

# htop (mejor visualmente)
sudo apt install -y htop
htop
# F6 ordena, F9 mata, F10 sale
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

Simular cuello de botella en Linux

# Generar carga en 1 núcleo
yes > /dev/null &
# En otra terminal: htop → verás un núcleo al 100%

# Identificar el PID y matarlo
pgrep yes
kill $(pgrep yes)

# Si no muere con kill normal, kill -9
yes > /dev/null &
kill -9 $(pgrep yes)

# stress-ng para tests más serios
sudo apt install -y stress-ng
stress-ng --cpu 2 --timeout 30s    # 30 s de carga en 2 núcleos

Señales (lo que envía kill)

SeñalNúmeroQué hace
SIGTERM15Pide cerrar limpiamente. Por defecto en kill PID.
SIGKILL9Mata sin contemplaciones. No se puede ignorar. Último recurso.
SIGHUP1Recargar configuración (servicios suelen reaccionar).
SIGSTOP19Pausar (luego SIGCONT lo continúa).
SIGINT2Lo que envía Ctrl+C.

Prioridad con nice y renice

nice -n 19 yes > /dev/null &    # lanza con prioridad muy baja
ps -o pid,ni,comm $(pgrep yes)

# Cambiar prioridad de un proceso ya lanzado
sudo renice -n -10 -p <PID>

4 Demonios y systemd (Linux)

# Listar todos los servicios
systemctl list-units --type=service --state=running | head
systemctl list-unit-files --type=service | head

# Estado de uno
systemctl status ssh
systemctl status cron

# Gestión típica
sudo systemctl start cron
sudo systemctl stop cron
sudo systemctl restart cron
sudo systemctl reload nginx       # si lo tienes

# Que arranque al inicio
sudo systemctl enable cron
sudo systemctl disable cron       # quita del arranque

# Ver logs de un servicio
journalctl -u ssh
journalctl -u ssh --since today
journalctl -u ssh -f              # live tail

# Cualquier evento del sistema
journalctl -xe | head -30
Instalar y gestionar un servicio real
sudo apt install -y openssh-server

systemctl status ssh
sudo ss -tlnp | grep :22

# Probar localmente
ssh localhost
# pide contraseña; di no si te pregunta confianza

# Detener y ver
sudo systemctl stop ssh
ssh localhost   # debe fallar

# Reanudar
sudo systemctl start ssh
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

5 Probar la detección de malware con EICAR

Qué es EICAR. Un archivo estándar diseñado para probar antivirus: cualquier antivirus serio lo detecta como malware aunque no haga nada malicioso real. Es seguro y aprobado por la industria.

Windows · Microsoft Defender

Comprobar que Defender está activo
REM PowerShell elevado
Get-MpComputerStatus | Select-Object AMServiceEnabled,AntivirusEnabled,RealTimeProtectionEnabled,AntivirusSignatureLastUpdated
Crear el archivo EICAR para que Defender lo detecte
  1. Abre el Bloc de notas.
  2. Copia y pega exactamente esta cadena en una sola línea (sin saltos, sin espacios al inicio):
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
  1. Archivo → Guardar como → en el Escritorio → nombre eicar.comimportante: en «Tipo» elige «Todos los archivos», no «Documento de texto», para que no se quede como eicar.com.txt.

En cuanto pulses Guardar (o incluso antes), si Defender está activo, lo intercepta y verás:

  • Una notificación de Windows Security con texto del tipo «Amenaza detectada».
  • El archivo desaparece del Escritorio (lo ha movido a cuarentena).
  • En el centro de seguridad: Inicio → «Seguridad de Windows» → Protección antivirus → Historial de protección.
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Análisis manual
REM Análisis rápido
Start-MpScan -ScanType QuickScan

REM Análisis completo (LENTO)
Start-MpScan -ScanType FullScan

REM Análisis de una ruta concreta
Start-MpScan -ScanType CustomScan -ScanPath C:\Users\$env:USERNAME\Desktop

REM Histórico de amenazas detectadas
Get-MpThreatDetection
Get-MpThreat       REM amenazas que está vigilando

REM Actualizar firmas
Update-MpSignature

Linux · ClamAV

Linux no necesita antivirus para sí mismo, pero sí lo usan los servidores de archivos y correo para no propagar malware a clientes Windows. ClamAV es el antivirus libre estándar en Linux.

# 1) Instalación. El paquete -daemon es el servicio que vigila en segundo plano
sudo apt install -y clamav clamav-daemon

# 2) Actualizar firmas: freshclam descarga la base de virus más reciente
#    Puede tardar unos minutos la primera vez
sudo freshclam

# 3) Verificar versión y que se ha instalado bien
clamscan --version

# 4) Crear el archivo EICAR (literalmente la misma cadena que en Windows).
#    Las comillas SIMPLES son importantes: con dobles, bash interpretaría
#    los $ y rompería la cadena.
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/eicar.com

# 5) Escanear el archivo concreto
clamscan /tmp/eicar.com
#    Debes ver una línea: /tmp/eicar.com: Eicar-Signature FOUND

# 6) Escanear toda tu carpeta personal de forma recursiva
clamscan -r ~/

# 7) Limpieza: borrar el archivo de prueba
rm /tmp/eicar.com
Caso real. Defender es buen antivirus pero no es perfecto. En entornos profesionales se complementa con un EDR (Crowdstrike, SentinelOne, Microsoft Defender for Endpoint). Pero como base para PCs domésticos y pymes, está más que bien.

6 Firewall

Windows Defender Firewall

  1. wf.msc abre Windows Defender Firewall con seguridad avanzada.
  2. Recorre: Reglas de entrada · Reglas de salida · Reglas de seguridad de conexión.
  3. Crea una regla nueva → Puerto → TCP → 8080 → Bloquear → todos los perfiles → nombre Bloqueo_8080_test.
  4. Comprueba que está creada.
REM Desde CMD elevado
netsh advfirewall show allprofiles state
netsh advfirewall firewall show rule name="Bloqueo_8080_test"

REM Bloquear el ping (ICMP echo entrante)
netsh advfirewall firewall add rule name="Bloquear_Ping" protocol=icmpv4:8,any dir=in action=block

REM Probarlo: desde la otra VM haz ping. Debería fallar.

REM Quitar la regla
netsh advfirewall firewall delete rule name="Bloquear_Ping"
netsh advfirewall firewall delete rule name="Bloqueo_8080_test"
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

UFW en Linux

# Ubuntu trae ufw preinstalado; está inactivo por defecto
sudo ufw status

# Política por defecto
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Permitir SSH (¡antes de activar el firewall, importante si gestionas por SSH!)
sudo ufw allow ssh
sudo ufw allow 22/tcp

# Activar
sudo ufw enable

# Ver reglas
sudo ufw status verbose
sudo ufw status numbered

# Permitir un rango
sudo ufw allow from 10.10.10.0/24

# Borrar regla por número
sudo ufw delete 2

# Apagar
sudo ufw disable
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

7 Visor de eventos y logs de seguridad

Windows · Visor de eventos

  1. eventvwr.msc.
  2. Registros de Windows → Seguridad. Filtra por ID 4624 (logon correcto) y 4625 (logon fallido).
  3. Registros de Windows → Sistema. Filtra por «Crítico» y «Error».
  4. Registros de Aplicaciones y servicios → Microsoft → Windows → Windows Defender → Operational.
REM Desde PowerShell
Get-EventLog -LogName Security -Newest 10 | Format-Table -AutoSize
Get-WinEvent -LogName Security -MaxEvents 5 -FilterXPath "*[System[EventID=4624]]"

Linux · journalctl y /var/log

sudo journalctl --since "1 hour ago" -p err     # errores última hora
sudo grep "Failed password" /var/log/auth.log | head    # intentos fallidos SSH
sudo grep -i "session opened" /var/log/auth.log | tail -10

# Logs del kernel
sudo dmesg | tail -20
sudo journalctl -k --since today
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

✓ Autoevaluación final

Progreso0%