Administración de sistemas Windows | unfantasmaenelsistema.com
La interfaz de línea de comandos de Windows (CMD) lleva en el sistema operativo desde los tiempos del MS-DOS, y sigue siendo hoy una de las herramientas más potentes para administrar, diagnosticar y auditar sistemas Windows. Muchas de las herramientas que vamos a ver en este artículo son exactamente las que usan los atacantes para realizar reconocimiento interno una vez dentro de una red: la diferencia entre el defensor y el atacante es quién las usa primero y con qué propósito.
Cada comando incluye ejemplos visuales con sintaxis coloreada y, debajo de cada bloque, el mismo texto en formato copiable para que puedas pegarlo directamente en tu terminal. También se incluye el contexto de seguridad de cada herramienta: qué señales de alarma detectar y cómo usarla en una auditoría real.


Cómo abrir CMD correctamente

Los 10 comandos: resumen

1. systeminfo — inventario completo del sistema
systeminfo es la primera herramienta que ejecuta un administrador en un equipo desconocido y la primera que ejecuta un atacante tras ganar acceso a un sistema. En una sola pantalla revela la versión exacta del sistema operativo, los parches de seguridad instalados (y por tanto los que faltan), la configuración de red, si el equipo pertenece a un dominio, y el tiempo que lleva encendido.

| REM Información general del sistema: |
| systeminfo |
| REM Filtrar campos específicos: |
| systeminfo | findstr /i «os name» |
| systeminfo | findstr /i «os version» |
| systeminfo | findstr /i «domain» |
| systeminfo | findstr /i «hotfix» |
| systeminfo | findstr /i «total physical memory» |
| REM Ver solo parches instalados: |
| systeminfo | findstr /i «KB» |
| REM Exportar a archivo de texto: |
| systeminfo > C:\temp\inventario_%COMPUTERNAME%.txt |
| REM Consultar equipo remoto: |
| systeminfo /s NOMBRE_EQUIPO_REMOTO /u DOMINIO\usuario /p contraseña |
| REM Formato CSV: |
| systeminfo /fo csv > inventario.csv |
▲ Texto copiable

2. tasklist + taskkill — procesos activos y gestión
tasklist muestra todos los procesos en ejecución con su PID y uso de memoria. La variante tasklist /svc es especialmente útil en auditorías: muestra qué servicios está ejecutando cada instancia de svchost.exe, permitiendo detectar instancias sin servicios legítimos o con nombres maliciosos.

| REM Listar todos los procesos activos: |
| tasklist |
| REM Ver procesos con servicios asociados: |
| tasklist /svc |
| REM Ver procesos con información del ejecutable: |
| tasklist /v |
| REM Filtrar por nombre de proceso: |
| tasklist /fi «imagename eq svchost.exe» |
| REM Filtrar por PID: |
| tasklist /fi «pid eq 4821» |
| REM Buscar procesos sin empresa firmante: |
| tasklist /v | findstr /i «N/A» |
| REM Exportar a CSV: |
| tasklist /fo csv > procesos.csv |
| REM Matar proceso por nombre: |
| taskkill /im notepad.exe /f |
| REM Matar proceso por PID: |
| taskkill /pid 4821 /f |
| REM Matar proceso y todos sus hijos: |
| taskkill /pid 4821 /f /t |
▲ Texto copiable

3. netstat — conexiones de red y puertos en escucha
netstat es la ventana a la actividad de red del sistema. Con el flag -ano muestra todas las conexiones TCP y UDP activas junto con el PID del proceso responsable. Es la primera herramienta para detectar conexiones sospechosas a IPs externas o puertos no estándar que pueden indicar una reverse shell o un beacon de malware.

| REM Ver todas las conexiones y puertos en escucha: |
| netstat -ano |
| REM Solo conexiones activas: |
| netstat -ano | findstr «ESTABLISHED» |
| REM Solo puertos en escucha: |
| netstat -ano | findstr «LISTENING» |
| REM Conexiones a un puerto específico: |
| netstat -ano | findstr «:443» |
| netstat -ano | findstr «:4444» |
| REM Detectar conexiones a IPs externas: |
| netstat -ano | findstr «ESTABLISHED» | findstr /v «127.0.0.1» | findstr /v «192.168.» |
| REM Estadísticas de protocolo: |
| netstat -s |
| REM Refrescar cada 5 segundos: |
| netstat -ano 5 |
▲ Texto copiable

4. nslookup — consultas DNS y diagnóstico
nslookup permite realizar consultas DNS directamente desde CMD, tanto para resolver nombres de dominio como para consultar tipos específicos de registros (MX, TXT, NS, A). Es imprescindible para diagnosticar problemas de resolución de nombres, verificar la configuración DNS de un dominio, y detectar envenenamiento de caché DNS comparando las respuestas de distintos servidores.

| REM Resolver un dominio a IP: |
| nslookup ejemplo.com |
| REM Consulta inversa (IP a dominio): |
| nslookup 93.184.216.34 |
| REM Usar un servidor DNS específico: |
| nslookup ejemplo.com 8.8.8.8 |
| nslookup ejemplo.com 1.1.1.1 |
| REM Modo interactivo — consultar registros específicos: |
| nslookup |
| > set type=MX |
| > ejemplo.com |
| > set type=TXT |
| > ejemplo.com |
| > set type=NS |
| > ejemplo.com |
| > exit |
| REM Diagnosticar resolución DNS: |
| nslookup google.com |
| nslookup google.com 8.8.8.8 |
▲ Texto copiable
5. tracert + pathping — trazar rutas y diagnosticar latencia
tracert (trace route) muestra el camino que siguen los paquetes desde tu equipo hasta un destino, mostrando cada router intermedio y el tiempo de respuesta en cada salto. pathping va más allá: después de trazar la ruta, envía paquetes estadísticos a cada salto y calcula el porcentaje de pérdida de paquetes en cada punto, permitiendo identificar exactamente dónde hay un problema de red.

| REM Trazar la ruta hasta un destino: |
| tracert google.com |
| REM Sin resolver DNS (más rápido): |
| tracert -d google.com |
| REM Limitar a 10 saltos: |
| tracert -h 10 google.com |
| REM Timeout de 500ms por salto: |
| tracert -w 500 google.com |
| REM Pathping (tracert + estadísticas de pérdida): |
| pathping google.com |
| REM Pathping sin resolución DNS: |
| pathping -n google.com |
▲ Texto copiable
6. net user + net localgroup — gestión y auditoría de cuentas
Los comandos net user y net localgroup son las herramientas de gestión de cuentas locales de Windows sin necesidad de interfaz gráfica. En una auditoría de seguridad, lo primero es ejecutar net localgroup Administradores: cualquier usuario no reconocido en ese grupo es una señal de alarma inmediata.

| REM Listar todos los usuarios locales: |
| net user |
| REM Ver información de un usuario específico: |
| net user Administrador |
| REM Crear usuario: |
| net user nuevo_usuario Passw0rd! /add |
| REM Eliminar usuario: |
| net user usuario_a_eliminar /delete |
| REM Activar/desactivar cuenta Administrador: |
| net user Administrador /active:yes |
| net user Administrador /active:no |
| REM Cambiar contraseña: |
| net user usuario NuevaContraseña! |
| REM Forzar cambio de contraseña en próximo login: |
| net user usuario /logonpasswordchg:yes |
| REM Ver todos los grupos locales: |
| net localgroup |
| REM Ver miembros de un grupo: |
| net localgroup Administradores |
| REM Añadir usuario a un grupo: |
| net localgroup Administradores nuevo_usuario /add |
| REM Eliminar usuario de un grupo: |
| net localgroup Administradores usuario /delete |
▲ Texto copiable

7. icacls — permisos NTFS de archivos y carpetas
icacls (Integrity Control Access Control Lists) permite ver y modificar los permisos NTFS de archivos y carpetas desde CMD. En el contexto de seguridad, su uso más crítico es detectar archivos del sistema con permisos incorrectos: un ejecutable del sistema escribible por usuarios no privilegiados es un vector directo de escalada de privilegios.

| REM Ver permisos de un archivo: |
| icacls C:\Windows\System32\cmd.exe |
| REM Ver permisos recursivamente: |
| icacls C:\carpeta\ /T |
| REM Buscar archivos del sistema escribibles por usuarios (escalada de privilegios): |
| icacls C:\Windows\System32\*.exe | findstr «Usuarios:(F» |
| icacls C:\Windows\System32\*.exe | findstr «Usuarios:(M» |
| REM Otorgar permisos de lectura a un usuario: |
| icacls C:\datos\informe.pdf /grant usuario:(R) |
| REM Otorgar con herencia (carpeta + contenido): |
| icacls C:\carpeta\ /grant usuario:(OI)(CI)(M) |
| REM Eliminar permisos de un usuario: |
| icacls C:\datos\privado.txt /remove usuario |
| REM Restaurar permisos por defecto: |
| icacls C:\carpeta\ /reset /T |
▲ Texto copiable
8. sc — gestión y auditoría de servicios
sc (Service Control) es la interfaz de línea de comandos para el Administrador de control de servicios de Windows. Permite listar, iniciar, detener y configurar servicios sin abrir la interfaz gráfica. En una auditoría, el comando sc qc nombre_servicio para cada servicio con inicio automático es fundamental: el campo BINARY_PATH_NAME revela la ruta del ejecutable, y cualquier ruta fuera de System32 o Program Files merece investigación.

| REM Listar todos los servicios: |
| sc query type= all |
| REM Listar servicios en ejecución: |
| sc query state= running |
| REM Ver información detallada de un servicio: |
| sc qc wuauserv |
| REM Iniciar un servicio: |
| sc start wuauserv |
| REM Detener un servicio: |
| sc stop wuauserv |
| REM Cambiar tipo de inicio: |
| sc config wuauserv start= disabled |
| sc config wuauserv start= auto |
| sc config wuauserv start= demand |
| REM Crear un servicio: |
| sc create NombreServicio binPath= «C:\ruta\ejecutable.exe» |
| REM Eliminar un servicio: |
| sc delete NombreServicio |
▲ Texto copiable

9. reg — gestión del registro de Windows
El registro de Windows es la base de datos de configuración del sistema. El comando reg permite consultar, modificar, exportar e importar claves del registro desde CMD. Las claves de Run y RunOnce son las más auditadas: son el mecanismo de persistencia más usado por el malware para sobrevivir a reinicios del sistema.

| REM Consultar una clave: |
| reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
| REM Consultar recursivamente: |
| reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /s |
| REM Buscar un valor en todo el registro: |
| reg query HKLM /f «svchost32» /s |
| REM Las 4 claves de arranque automático más importantes: |
| reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
| reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
| reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce |
| reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce |
| REM Añadir un valor: |
| reg add HKCU\SOFTWARE\MiApp /v ConfigKey /t REG_SZ /d «valor» /f |
| REM Eliminar un valor: |
| reg delete HKCU\SOFTWARE\MiApp /v ConfigKey /f |
| REM Exportar clave a archivo .reg: |
| reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run C:\backup\run.reg |
| REM Importar desde archivo .reg: |
| reg import C:\backup\run.reg |
▲ Texto copiable

10. findstr — buscar patrones de texto
findstr es el equivalente de grep en Windows CMD: permite buscar cadenas de texto (o expresiones regulares básicas) en archivos o en el output de otros comandos mediante pipe. Es imprescindible para filtrar la salida de comandos como netstat, tasklist o systeminfo, y para buscar credenciales hardcodeadas en archivos de configuración web o en código fuente.

| REM Buscar en un archivo: |
| findstr «error» C:\Windows\Logs\CBS\CBS.log |
| REM Sin distinción de mayúsculas: |
| findstr /i «error» archivo.log |
| REM En múltiples archivos: |
| findstr /i «password» C:\inetpub\wwwroot\*.config |
| REM Búsqueda recursiva en subcarpetas: |
| findstr /s /i «password» C:\inetpub\wwwroot\*.php |
| REM Mostrar número de línea: |
| findstr /n «error» archivo.log |
| REM Mostrar líneas que NO contienen el patrón: |
| findstr /v «#» config.ini |
| REM Filtrar output de otros comandos: |
| netstat -ano | findstr «ESTABLISHED» |
| tasklist | findstr /i «powershell» |
| systeminfo | findstr /i «hotfix» |
| sc query | findstr /i «running» |
| REM Guardar resultados en archivo: |
| findstr /s /i «password» C:\web\*.php > passwords_encontradas.txt |
▲ Texto copiable
Bonus: pipelines potentes combinando comandos
El verdadero poder de CMD no está en los comandos individuales sino en combinarlos. Con el operador pipe (|) puedes pasar el output de un comando como input de otro, y con >> puedes acumular resultados en un archivo. Aquí están las combinaciones más útiles para administradores y auditores.

| REM 1. Conexiones externas con su proceso: |
| netstat -ano | findstr «ESTABLISHED» |
| tasklist /fi «pid eq NUMERO_PID» |
| REM 2. Auditoría de arranque automático: |
| reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
| reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
| REM 3. Detectar svchost sin servicios legítimos: |
| tasklist /svc | findstr «svchost» |
| REM 4. Inventario de parches instalados: |
| systeminfo | findstr /i «KB» |
| REM 5. Buscar credenciales en archivos web: |
| findstr /s /i «password=» C:\inetpub\wwwroot\*.config |
| findstr /s /i «connectionstring» C:\inetpub\wwwroot\*.config |
| REM 6. Usuarios con sesión activa ahora mismo: |
| query user |
| REM 7. Todos los administradores locales: |
| net localgroup Administradores |
| REM 8. Puertos en escucha con su proceso: |
| netstat -ano | findstr «LISTENING» |
| REM 9. Exportar inventario completo: |
| echo === SISTEMA === > inventario.txt |
| systeminfo >> inventario.txt |
| echo === USUARIOS === >> inventario.txt |
| net user >> inventario.txt |
| echo === ADMINISTRADORES === >> inventario.txt |
| net localgroup Administradores >> inventario.txt |
| echo === RED === >> inventario.txt |
| netstat -ano >> inventario.txt |
| echo === SERVICIOS === >> inventario.txt |
| sc query state= running >> inventario.txt |
| echo === ARRANQUE === >> inventario.txt |
| reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run >> inventario.txt |
▲ Texto copiable
Referencia rápida

Conclusión
Estos 10 comandos son la base del trabajo diario de cualquier administrador de sistemas Windows y el punto de partida de cualquier auditoría interna. Lo que los distingue en manos de un profesional de seguridad es saber qué buscar en el output: una instancia de svchost sin servicios, una conexión establecida a un puerto 4444, un usuario no reconocido en el grupo Administradores, un servicio con BINARY_PATH fuera de System32. Todos estos son indicadores que un administrador experimentado detecta en segundos.
El siguiente artículo de esta serie cubrirá PowerShell: los equivalentes modernos de estos comandos y muchas capacidades adicionales que CMD simplemente no tiene. PowerShell es la herramienta de administración por excelencia en Windows moderno, y dominarla es imprescindible para cualquier profesional que trabaje con infraestructura Windows.

unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)
