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.
1 Administrador de tareas a fondo (Windows)
- 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.
| # | Proceso | RAM (MB) |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 |
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.
Cambiar prioridad y afinidad
- Detalles → clic derecho en un proceso → Establecer prioridad → Inactivo (idle) / Por debajo de lo normal / Por encima / Alta / Tiempo real.
- 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)
- services.msc.
- Ordena por «Estado» → ves cuáles están «En ejecución».
- Busca «Windows Update» (wuauserv). Doble clic → estado, tipo de inicio.
- 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
- Detén «Print Spooler» (Spooler).
- Abre Paint → File → Imprimir. ¿Qué pasa?
- Vuelve a iniciarlo.
- 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
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ñal | Número | Qué hace |
|---|---|---|
| SIGTERM | 15 | Pide cerrar limpiamente. Por defecto en kill PID. |
| SIGKILL | 9 | Mata sin contemplaciones. No se puede ignorar. Último recurso. |
| SIGHUP | 1 | Recargar configuración (servicios suelen reaccionar). |
| SIGSTOP | 19 | Pausar (luego SIGCONT lo continúa). |
| SIGINT | 2 | Lo 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
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
5 Probar la detección de malware con EICAR
Windows · Microsoft Defender
REM PowerShell elevado Get-MpComputerStatus | Select-Object AMServiceEnabled,AntivirusEnabled,RealTimeProtectionEnabled,AntivirusSignatureLastUpdated
- Abre el Bloc de notas.
- 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*
- Archivo → Guardar como → en el Escritorio → nombre eicar.com → importante: 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.
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
6 Firewall
Windows Defender Firewall
- wf.msc abre Windows Defender Firewall con seguridad avanzada.
- Recorre: Reglas de entrada · Reglas de salida · Reglas de seguridad de conexión.
- Crea una regla nueva → Puerto → TCP → 8080 → Bloquear → todos los perfiles → nombre Bloqueo_8080_test.
- 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"
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
7 Visor de eventos y logs de seguridad
Windows · Visor de eventos
- eventvwr.msc.
- Registros de Windows → Seguridad. Filtra por ID 4624 (logon correcto) y 4625 (logon fallido).
- Registros de Windows → Sistema. Filtra por «Crítico» y «Error».
- 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