¿Tu computadora está actuando de manera extraña? ¿parece que la conexión se presenta más lenta de lo normal? Es posible que existan intrusos en la PC o haya sido infectada con malware o virus.
No siempre es fácil determinar si tu computadora se ha infectado con un virus, troyano o software espía que utiliza los protocolos de red; los autores de software malintencionado hacen todo lo posible por disfrazar su trabajo. Sin embargo, puede estar atento a ciertos signos de que su computadora está siendo interceptada.
Hoy estaremos analizando las conexiones de red con el comando netstat, para investigar de forma remota quien se comunica directamente con tu PC.
¿Qué es el comando netstat?
El comando netstat significa estadísticas de red. Básicamente, es un comando del símbolo del sistema que se utiliza para mostrar información muy detallada sobre cómo su computadora se comunica con otras computadoras o dispositivos de red.
Específicamente, el comando netstat puede mostrar detalles sobre conexiones de red individuales, estadísticas de redes generales y específicas del protocolo y mucho más, todo lo cual podría ayudar a detectar intrusos en la PC a través de redes.
Acceder al comando Netstat
El comando netstat está disponible desde el símbolo del sistema en la todas las versiones de Windows, incluido Windows 10. Fue diseñado como un comando multiplataforma, lo que significa que también está disponible en otros sistemas operativos como macOS y Linux.
La disponibilidad de ciertos conmutadores de comando netstat y otra sintaxis de comando netstat puede diferir de un sistema operativo a otro.
En Windows, puedes acceder mediante la línea de comandos (cmd.exe). Esta se encuentra en el menú de inicio, en la carpeta Accesorios > Símbolo de sistema. De manera alternativa, se puede acceder desde el menú de inicio escribiendo cmd o abriendo la línea de comandos Ejecutar, oprimiendo conjuntamente las teclas Windows + R y después escribiendo cmd.
Cómo leer la sintaxis de los comandos
La sintaxis de los comandos de netstat sigue el siguiente patrón:
netstat [ -a ] [ -b ] [ -e ] [ -f ] [ -n ] [ -o ] [ -p protocol ] [ -r ] [ -s ] [ -t ] [ -x ] [ -y ] [ time_interval ] [ /? ]
[OPCIÓN] | Comando | Descripción del modo |
---|---|---|
netstat | Modo estándar que informa sobre todas las conexiones de red activas | |
-a | netstat -a | Enumera también los puertos abiertos |
-b | netstat -b | Muestra el archivo ejecutable de una conexión o de un puerto de escucha (requiere permisos de administrador). |
-e | netstat -e | Estadísticas de interfaz (paquetes de datos recibidos y enviados, etc.) |
-f | netstat -f | Devuelve el nombre de dominio cualificado (FQDN) de las direcciones remotas |
-i | netstat -i | Abre el menú general de netstat |
-n | netstat -n | Visualización numérica de direcciones y números de puerto |
-o | netstat -o | Añade el ID de proceso correspondiente a cada conexión |
-p Protocol | netstat -p TCP | Muestra las conexiones para el protocolo especificado, en este caso TCP (también posible: UDP, TCPv6 o UDPv6) |
-q | netstat -q | Lista todas las conexiones, todos los puertos TCP en escucha y todos los puertos TCP abiertos que no están en escucha |
-r | netstat -r | Muestra la tabla de enrutamiento |
-s | netstat -s | Recupera estadísticas sobre los protocolos de red importantes como TCP, IP o UDP |
-t | netstat -t | Muestra el estado de descarga (descarga TCP para liberar al procesador principal) de las conexiones activas |
-x | netstat -x | Informa sobre todas las conexiones, los oyentes y los puntos finales compartidos para NetworkDirect |
-y | netstat -y | Muestra qué plantillas de conexión se utilizaron para las conexiones TCP activas |
Interval | netstat -p 10 | Muestra de nuevo las estadísticas respectivas después de un número seleccionado de segundos (aquí 10); puede combinarse según sea necesario (aquí con -p),[CTRL] +[C] finaliza la visualización de intervalos |
Ejemplos de netstat para detectar intrusos en la PC
Ejemplo1
En este primer ejemplo, ejecutamos netstat para mostrar todas las conexiones TCP activas. Sin embargo, queremos ver las computadoras a las que estamos conectados en formato FQDN [-f] en lugar de una simple dirección IP.
netstat -f
Aquí tienes un ejemplo de lo que podrías ver:
Conexiones activas
Proto Dirección local Dirección externa Estado
TCP 127.0.0.1:5357 VM-Windows-7: 49229 TIME_WAIT
TCP 127.0.0.1:49225 VM-Windows-7: 12080 TIME_WAIT
TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT
TCP 192.168 .1.14: 49196 a795sm.avast.com:http CLOSE_WAIT
TCP 192.168.1.14:49197 a795sm.avast.com:http CLOSE_WAIT
TCP 192.168.1.14:49230 TIM-PC: wsd TIME_WAIT
TCP 192.168.1.14:49231 TIM-PC: icsEDlap
TCP 192.168.1.14:49232 TIM-PC: netbios-ssn TIME_WAIT
TCP 192.168.1.14:49233 TIM-PC: netbios-ssn TIME_WAIT
TCP [:: 1]: 2869 VM-Windows-7: 49226
TCP ESTABLECIDO [:: 1] : 49226 VM-Windows-7: icslap ESTABLECIDO
Como puede ver, había 11 conexiones TCP activas en el momento en que se ejecutó netstat en este ejemplo. El único protocolo (en la columna Proto) listado es TCP, que se esperaba porque no usamos -a.
También puede ver a tres conjuntos de direcciones IP en el local Dirección columna de la dirección real-IP 192.168.1.14 y ambos IPv4 e IPv6 versiones de las direcciones de bucle, junto con el puerto cada conexión está utilizando. La columna Dirección extranjera enumera el FQDN (75.125.212.75 no se resolvió por alguna razón) junto con ese puerto también.
Finalmente, la columna Estado enumera el estado de TCP de esa conexión en particular.
Ejemplo 2
En este ejemplo, netstat se ejecutará normalmente, por lo que solo muestra las conexiones TCP activas, pero también queremos ver el identificador de proceso correspondiente [-o] para cada conexión para que podamos determinar qué programa en la computadora inició cada una.
netstat -o
Esto es lo que mostró la computadora:
Conexiones activas
Proto Dirección local Dirección extranjera Estado PID
TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT 2948
TCP 192.168.1.14:49196 a795sm: http CLOSE_WAIT 2948
TCP 192.168.1.14:49197 a795sm: http CLOSE_WAIT 2948
Probablemente haya notado la nueva columna PID . En este caso, los PID son todos iguales, lo que significa que el mismo programa en la computadora abrió estas conexiones.
Para determinar qué programa está representado por el PID de 2948 en la computadora, todo lo que tienes que hacer es abrir el Administrador de tareas, seleccionar la pestaña Procesos y anotar el nombre de la imagen que aparece junto al PID que estamos buscando en la columna PID . 1
El uso del comando netstat con la opción -o puede ser muy útil para rastrear qué programa está usando una parte demasiado grande de su ancho de banda. También puede ayudar a localizar el destino donde algún tipo de intrusos en la PC, o incluso un software legítimo, podría estar enviando información sin su permiso.
Ejemplo 3
En este ejemplo, queremos ver estadísticas específicas del protocolo [-s] pero no todas, solo estadísticas de TCP [-p tcp]. También queremos que las direcciones extranjeras se muestren en formato FQDN [-f].
netstat -s -p tcp -f
Esto es lo que produjo el comando netstat, en la computadora:
Estadísticas de TCP para IPv4
Aperturas activas = 77
Aperturas pasivas = 21
Intentos de conexión fallidos = 2
Restablecer conexiones = 25
Conexiones actuales = 5
Segmentos recibidos = 7313
Segmentos enviados = 4824
Segmentos retransmitidos = 5
Conexiones activas
Proto Dirección local Dirección externa Estado
TCP 127.0.0.1: 2869 VM-Windows-7: 49235 TIME_WAIT
TCP 127.0.0.1:2869 VM-Windows-7: 49238 ESTABLISHED
TCP 127.0.0.1:49238 VM-Windows-7: icslap ESTABLISHED
TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT
TCP 192.168.1.14:49196 a795sm.avast.com:http CLOSE_WAIT
TCP 192.168.1.14:49197 a795sm.avast.com:http CLOSE_WAIT
Como puede ver, se muestran varias estadísticas para el protocolo TCP, al igual que todas las conexiones TCP activas en ese momento.
Conclusiones
Uno de los aspectos más preocupantes, es que los intrusos en la PC generalmente prefieren evitar la fama e intentar ocultar su presencia dentro del sistema. Para ello utilizan técnicas sofisticadas, instalando puertas traseras o kits de raíz, lo que les permite obtener más tarde acceso y control total evitando la detección.
Las puertas traseras son, por diseño, a menudo difíciles de detectar. Un esquema común para enmascarar los intrusos en la PC, es ejecutar un servidor para un servicio estándar como Telnet, pero en un puerto inusual en lugar de en el puerto conocido asociado con el servicio.
Si bien existen numerosos productos de detección de intrusiones disponibles para ayudar a identificar puertas traseras y kits raíz, el comando Netstat es una práctica herramienta incorporada que los administradores de sistemas pueden usar para verificar rápidamente intrusos en la PC.