comando netstat

11
1. Netstat redes y seguridad Bien quizas a muchos como a mi nos preguntamos para que sirve el comando netstat y como y para que son las extenciones que vienen con el mismo. Pero nos vemos en la necesidad de dar algunas definiciones recomiendo leer todo el post, para entender de que se trata. Siempre que alguien me pide que explique qué es un puerto lo hago con un símil: imaginemos una casa; en una casa tenemos puertas y ventanas que solemos tener cerradas si no queremos que se nos cuelen ladrones. Ahora, imaginemos que en los bajos de nuestra casa tenemos una tienda. Necesitaremos, entonces, tener la puerta de la calle abierta, para que entre gente y compre. Pues en informática, los puertos serían las ventanas y puertas nuestra casa, es decir, servicios que ofrecemos y que normalmente utilizamos para comunicarnos, bien internamente (localhost) o bien externamente. En informática localhost, se refiere habitualmente a nuestra propia maquina o sistema, es decir, y aunque suene paradójico, localhost se refiere a la red formado por un solo equipo, el nuestro y es que el Sistema Operativo suele crear puertos que habilitan la comunicación de procesos entre sí exclusivos para nuestro propio equipo. La diferencia entre nuestra casa y nuestro ordenador, es que en este último tenemos 65535 puertos. Los 1024 primeros son los que denominamos puertos conocidos, es decir del puerto número 1 al 1023. Los que van a partir del 1024 hasta el 49152 son denominados puertos registrados, y a partir del puerto número 49153 hasta el 65535 puertos dinámicos o para uso privado, es decir sin ningún propósito preestablecido, toda esta catalogación de puertos está hecha acorde a la IANA Internet Assigned Numbers Authority o Agencia de Asignación de Números de Internet. Alguien interesado en robar en nuestra casa lo primero que revisará son posibles entradas a través de puntos que estén abiertos. En un PC es lo mismo: lo primero que hará un intruso es revisar qué puertos tenemos y qué hay detrás de esos puertos. En nuestro anterior ejemplo, teníamos una tienda abierta en los bajos de nuestra casa; un posible ladrón, se fijaría en las medidas de seguridad que tiene esa tienda y si encuentra alguna debilidad la explotará para intentar colarse y robarnos. En nuestro PC detrás de los puertos abiertos, siempre hay “tiendas” que solemos denominar servicios, y lo que haría nuestro posible intruso es lo mismo que en una casa: fijarse en los puntos débiles de ese servicio para intentar explotarlos y colarse en nuestro PC. En todo Sistema Operativo se abren unos puertos por defecto que el sistema utiliza para intercomunicar los diferentes procesos entre sí, es decir, que si no utilizamos medidas tendremos las puertas de nuestra casa abiertas de par en par. ¿Y que hacemos para cerrar esos puertos? Es obvio que en nuestra casa las cerramos con llave y solucionado. Pues en un PC lo mismo, utilizamos un firewall o cortafuegos que impide que los diferentes procesos que están a la espera de establecer alguna conexión en esos puertos se comuniquen con procesos externos a nuestra máquina.

Upload: jorge-vega-trigueros

Post on 11-Aug-2015

88 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Comando Netstat

1. Netstat redes y seguridad

Bien quizas a muchos como a mi nos preguntamos para que sirve el comando netstat y como y

para que son las extenciones que vienen con el mismo. Pero nos vemos en la necesidad de dar

algunas definiciones recomiendo leer todo el post, para entender de que se trata.

Siempre que alguien me pide que explique qué es un puerto lo hago con un símil: imaginemos una

casa; en una casa tenemos puertas y ventanas que solemos tener cerradas si no queremos que se

nos cuelen ladrones. Ahora, imaginemos que en los bajos de nuestra casa tenemos una tienda.

Necesitaremos, entonces, tener la puerta de la

calle abierta, para que entre gente y compre. Pues en informática, los puertos serían las ventanas

y puertas nuestra casa, es decir, servicios que ofrecemos y que normalmente utilizamos para

comunicarnos, bien internamente (localhost) o bien externamente. En informática localhost, se

refiere habitualmente a nuestra propia maquina o sistema, es decir, y aunque suene paradójico,

localhost se refiere a la red formado por un solo equipo, el nuestro y es que el Sistema Operativo

suele crear puertos que habilitan la comunicación de procesos entre sí exclusivos para nuestro

propio equipo.

La diferencia entre nuestra casa y nuestro ordenador, es que en este último tenemos 65535

puertos. Los 1024 primeros son los que denominamos puertos conocidos, es decir del puerto

número 1 al 1023. Los que van a partir del 1024 hasta el 49152 son denominados puertos

registrados, y a partir del puerto número 49153 hasta el 65535 puertos dinámicos o para uso

privado, es decir sin ningún propósito preestablecido, toda esta catalogación de puertos está

hecha acorde a la IANA Internet Assigned Numbers Authority o Agencia de Asignación de Números

de Internet.

Alguien interesado en robar en nuestra casa lo primero que revisará son posibles entradas a través

de puntos que estén abiertos. En un PC es lo mismo: lo primero que hará un intruso es revisar qué

puertos tenemos y qué hay detrás de esos puertos.

En nuestro anterior ejemplo, teníamos una tienda abierta en los bajos de nuestra casa; un posible

ladrón, se fijaría en las medidas de seguridad que tiene esa tienda y si encuentra alguna debilidad

la explotará para intentar colarse y robarnos. En nuestro PC detrás de los puertos abiertos,

siempre hay “tiendas” que solemos denominar servicios, y lo que haría nuestro posible intruso es

lo mismo que en una casa: fijarse en los puntos débiles de ese servicio para intentar explotarlos y

colarse en nuestro PC.

En todo Sistema Operativo se abren unos puertos por defecto que el sistema utiliza para

intercomunicar los diferentes procesos entre sí, es decir, que si no utilizamos medidas tendremos

las puertas de nuestra casa abiertas de par en par. ¿Y que hacemos para cerrar esos puertos? Es

obvio que en nuestra casa las cerramos con llave y solucionado. Pues en un PC lo mismo,

utilizamos un firewall o cortafuegos que impide que los diferentes procesos que están a la espera

de establecer alguna conexión en esos puertos se comuniquen con procesos externos a nuestra

máquina.

Page 2: Comando Netstat

En este punto cabe preguntarse cómo saber los puertos que tienen algún proceso escuchando en

nuestra máquina y si podemos determinar los servicios que se ejecutan detrás de ellos. Pues bien,

todos los Sistemas Operativos, o al menos los que yo conozco, proveen un método para averiguar

todo esto, y es el comando “netstat”.

Este comando quizás sea desconocido para muchos pero es una interesante herramienta para

poder determinar nuestras conexiones tanto internas (localhost) como externas.

Para trabajar con esta herramienta utilizaremos, nuestro querido “símbolo de sistema”, es decir,

iremos a inicio/ejecutar y teclearemos la orden cmd.exe, esto nos abrirá una pantalla negra, en

nuestro WinXP

El comando netstat dispone de una completa ayuda que podremos obtener tecleando la orden

netstat /?. Esto nos proporcionará un listado con todos los parámetros o modificadores

disponibles con el que podremos lanzar la herramienta netstat,

Algunos de los modificadores más populares para trabajar con este comando en Sistemas

Operativos con núcleo NT son:

a – que nos va a mostrar todas las conexiones que tenemos a nuestros diferentes puertos.

n – si omitimos este parámetro por defecto, netstat nos ofrecerá el resultado de traducir la

dirección remota y el puerto de números a nombres, si lo incluimos nos mostrará esta misma

información pero en formato númerico.

o – muestra el identificador númerico del proceso que esta ejecutándose en este puerto.

El parámetro “o” la verdad es que ha perdido algo de popularidad con la introducción del SP2 de

Windows XP, ya que este muestra los procesos que se están ejecutando detrás de un determinado

puerto de forma mucho más cómoda. Los parámetros añadidos por este Service Pack son:

b – que muestra el ejecutable que está escuchando en el puerto en cuestión.

v – que muestra todos los componentes que están implicados con el ejecutable que escucha en el

puerto, es decir, que suele ser utilizado con el anterior parámetro.

Los modificadores de Netstat no suelen requerir ser escritos en un orden preciso, así que podemos

teclearlos como más cómodo nos sean. La siguiente orden combinaría los parámetros A, O y N. Es

decir nos mostraría todas las conexiones en formato numérico y agregaría el número de ID del

proceso que está ejecutándose en ese puerto,

Netstat –noa

Page 3: Comando Netstat

Pero en realidad, podemos combinar las letras de los modificadores como mejor nos venga en

gana y su función será la misma, es decir que todas estas órdenes son equivalentes:

Netstat –ano (yo lo suelo teclear de esta forma, puesto que lo recuerdo mejor)

Nestat – ona

Nestat – oan

En fin, que podemos permutar las letras de los modificadores a nuestro gusto. Ahora toca

interpretar los resultados de netstat, una sálida típica de este comando introduciendo los

parámetro “-ano” sería

Proto Dirección local Dirección remota Estado P

TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1296

TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4

TCP 0.0.0.0:18350 0.0.0.0:0 LISTENING 596

TCP 127.0.0.1:1025 127.0.0.1:1026 ESTABLISHED 472

TCP 127.0.0.1:1026 127.0.0.1:1025 ESTABLISHED 472

TCP 127.0.0.1:1032 127.0.0.1:18350 ESTABLISHED 400

TCP 127.0.0.1:1038 0.0.0.0:0 LISTENING 136

TCP 127.0.0.1:1045 127.0.0.1:1046 ESTABLISHED 1864

TCP 127.0.0.1:1046 127.0.0.1:1045 ESTABLISHED 1864

TCP 127.0.0.1:18350 127.0.0.1:1032 ESTABLISHED 596

TCP 192.168.1.100:139 0.0.0.0:0 LISTENING 4

TCP 192.168.1.100:1047 80.32.98.223:143 ESTABLISHED 1864

TCP 192.168.1.100:1056 65.17.220.40:143 ESTABLISHED 1864

TCP 192.168.1.100:1288 80.32.98.223:143 ESTABLISHED 1864

TCP 192.168.1.100:1893 62.57.8.8:119 ESTABLISHED 1864

TCP 192.168.1.100:1894 62.57.8.8:119 CLOSE_WAIT 1864

TCP 192.168.1.100:1922 62.57.8.8:119 ESTABLISHED 1864

TCP 192.168.1.100:1924 62.57.8.8:119 CLOSE_WAIT 1864

TCP 192.168.1.100:1943 212.34.136.130:80 TIME_WAIT 0

TCP 192.168.1.100:1944 212.34.136.130:80 TIME_WAIT 0

UDP 0.0.0.0:445 *:* 4

UDP 0.0.0.0:500 *:* 1060

UDP 0.0.0.0:1029 *:* 1612

UDP 0.0.0.0:1030 *:* 1612

UDP 0.0.0.0:1345 *:* 1612

UDP 0.0.0.0:4500 *:* 1060

UDP 127.0.0.1:123 *:* 1440

UDP 127.0.0.1:1900 *:* 1684

UDP 192.168.1.100:123 *:* 1440

UDP 192.168.1.100:137 *:* 4

UDP 192.168.1.100:138 *:* 4

UDP 192.168.1.100:1900 *:* 1684

2.1. Análisis de la salida del comando netstat

Page 4: Comando Netstat

Analicemos la salida del comando que como vemos nos ofrece información en varias columnas: en

la columna de más a la izquierda vemos la columna Proto, es decir el protocolo establecido para

establecer la comunicación. Aquí fundamentalmente veremos tres tipos de protocolos: ICMP, UDP

y TCP, y ¿esto qué es?, nos preguntaremos. Pues bien, siguiendo con el símil de nuestra tienda,

imaginemos que tenemos una clientela que es internacional y habla diferentes idiomas. Si

tratamos de ofrecer un buen servicio, deberemos hablarles preferiblemente en su idioma o bien

en una lengua que ambos dominemos, por ejemplo el inglés. Los protocolos indican lo mismo y

nos sirven para comunicar procesos entre si, pero de diferente manera.

UDP, Protocolo de datagrama de usuario (UDP, User Datagram Protocol) es un estándar y está

definido en la RFC 768. UDP nos sirve para comunicar procesos entre sí de una forma rápida ya

que no verifica la entrega. Imaginemos que mandamos a alguien a por el periódico, pero después

no verificamos si lo ha comprado; UDP hace lo mismo: manda paquetes pero no verifica su

correcta recepción. Este protocolo consta de los mismos 65535 puertos que antes hemos

explicados. Si tenemos curiosidad en conocer los puertos utilizados por este protocolo podemos

consultar el siguiente documento en el que vienen todos definidos.

http://www.isi.edu/in-notes/iana/assignments/port-numbers

TCP, Este protocolo, a diferencia del anterior, sí que verifica la correcta entrega. Es como si

llamáramos por teléfono a alguien: no podremos hablar nunca con nuestro interlocutor si éste no

nos coge el telefono. El protocolo TCP permite entrega de paquetes más largos que UDP y es

también más lento, además con UDP no se establece comunicación entre host. Esto último es

similar a cuando enviamos una carta: no hace falta verificar si la persona a la que remitimos

nuestro correo está disponible en ese momento o no, simplemente la mandamos.

Por último tenemos el protocolo ICMP. Protocolo de control de mensajes Internet (ICMP, Internet

Control Message Protocol), establece rutinas que permiten verificar el estado de un host. A través

del popular comando “ping” utilizamos este protocolo. Siguiendo con los símiles, sería como

preguntarle a alguien por la salud. ICMP, permite preguntar por la salud de un host o PC y saber su

estado

Dirección Local, Aquí nos aparece el número de IP local que establece una comunicación de salida.

Esto es lo mismo que los móviles: todos los móviles precisan tener un número asignado que es

utilizado para establecer comunicaciones con él. Cuando nosotros llamamos a alguien tenemos

comunicaciones salientes, y si nos llaman tenemos comunicaciones entrantes.

En la columna dirección local aparecen, por tanto, nuestro número identificativo. En la salida que

he puesto de ejemplo, vemos diferentes números o IPs que definen diferentes procesos de

comunicación. Por un lado tenemos la IP número 127.0.0.1. Esta IP se utiliza para que nuestro

ordenador se comunique consigo mismo, es decir son comunicaciones internas o lo que hemos

dado antes en denominar localhost. También vemos una dirección IP, que nos puede resultar algo

extraña, pero que es utilizada en cualquier Sistema Operativo, ya que la IP 0.0.0.0 es la dirección

de encaminamiento por defecto. Cualquier comunicación establecida hacia una red no conocida

pasará por esta IP. En este punto sólo nos interesa saber que esta dirección corresponde también

a nuestro equipo local y que es normal que aparezca en ese estado de listening y por norma

general sin ninguna conexión establecida.

Page 5: Comando Netstat

La siguiente dirección IP que observamos es la 192.168.1.100, esta también es una dirección IP

reservada para uso público, y es utilizada normalmente en comunicaciones entre equipos de

nuestra propia RED. Para ser exactos esa es la IP de la tarjeta de red de mi equipo que tiene salida

a Internet y que está conectada con mi router, si tuviéramos salida directa a Internet en lugar de

ver ese número de IP veríamos la dirección IP asignada por nuestro proveedor de Internet para

que la gente sepa dónde estamos y poder establecer comunicaciones con nosotros. Siguiendo con

el ejemplo del móvil, lo que veríamos ahí sería nuestro número de móvil.

La direcciones IP reservadas para uso público y utilizadas para establecer comunicaciones dentro

de nuestra red, pueden pertenecer a tres rangos:

A 10.0.0.0 hasta 10.255.255.255

B 172.16.0.0 hasta 172.31.0.0

C 192.168.0.0 hasta 192.168.255.0

La columna que hay a continuación de la que ya hemos comentado es la de dirección remota. En

esta columna vemos la dirección IP remota a la que estamos conectados, y vemos también que

aparece la direccion correspondiente a localhost, es decir a nuestro propio equipo. Y también es

normal, puesto que como he dicho antes nuestro Sistema Operativo utiliza esa IP para establecer

comunicaciones entre procesos internos. Digamos que nuestro ordenador está hablando consigo

mismo.

Las comunicaciones que normalmente son interesantes son las que tengamos establecidas entre la

tarjeta de red que esté configurada como salida a Internet, y las direcciones IP en la columna de

“direcciones remotas” que no se correspondan con ninguna de las IP’s reservadas bien para uso

público o bien para uso privado y que antes hemos listado.

La columna que tenemos a continuación nos indica en que estado se encuentra la comunicación

entre procesos, y veremos diferentes tipos (en nuestro ejemplo no salen todos):

LISTENING, o escuchando, significa que detrás de ese puerto hay un proceso esperando que

alguien hable con él, es decir, en disposición de aceptar comunicaciones.

ESTABLISHED, o establecidas, significa que el proceso que está detrás de ese puerto ya está

hablando con algo o alguien; la columna de dirección remota nos indica con quién habla.

SYN_SEND, indica una solicitud de comunicación por nuestra parte, es decir, es como si

estuviéramos llamando a alguien y esperando a que nos respondiera.

SYN_RECEIVED, indica que el servidor remoto ha aceptado nuestra solicitud de comunicación. Al

que estábamos llamando por móvil ya nos ha descolgado, pero todavía no nos ha dicho nada.

<!--[if !supportLineBreakNewLine]-->

Page 6: Comando Netstat

<!--[endif]-->

FIN_WAIT_1, indica que hemos solicitado terminar la comunicación. A nuestro amigo el del móvil,

le hemos dicho que vamos a colgar.

FIN_WAIT_2, no es muy habitual ver este estado en nuestra comunicaciones, entramos en él

cuando hemos solicitado terminar la comunicación pero el servidor no se da por enterado.

TIMED_WAIT, estamos esperando a que el servidor acepte nuestra petición de cerrar

comunicación. Nuestro amigo el del móvil, nos ha dicho que nos esperemos un momento antes de

colgar.

CLOSE_WAIT, indica una solicitud de cierre pasiva entre cliente y servidor. Siguiendo con nuestro

amigo el del móvil, digamos que aceptamos esperar hasta terminar la comunicación y le decimos

que la cierre él cuando quiera, que nosotros dejamos el móvil encendido y nos vamos a hacer

otras cosas.

LAST_ACK, aquí es nuestro amigo el del móvil el que nos dice que nos cuelga, es decir es el

servidor el que nos dice que va a cerrar la comunicación.

CLOSED, comunicación entre cliente y servidor cerrada. ¡Por fin hemos conseguido colgar el móvil!

Las conexiones más interesantes son las LISTENING o ESTABLISHED.

Hay que recalcar en este punto que para que un puerto tenga posibilidad de escuchar o establecer

conexiones, éste deberá tener un servicio corriendo detrás ya que de otro modo, ante posibles

escaneos, el puerto se mostrará como cerrado. Si hubiera un servicio detrás escuchando se

mostraría como abierto y finalmente si nuestro firewall corta las comunicaciones entre ese puerto

y el exterior se mostrará como bloqueado.

Podéis haceros vosotros mismos vuestros propios escaneos para saber cómo ven los demás los

puertos que tenéis, ya que en la red de redes, hay muchas herramientas online que hacen este

tipo de escaneos. Como siempre, os recomendamos que echéis un vistazo a nuestra sección de

enlaces.

O sea, que los hackers lo que buscan son vulnerabilidades en los procesos que escuchan en esos

puertos. Si no hubiera procesos o servicios escuchando en esos puertos la presencia de un firewall

no sería necesaria ya que no habría nada que explotar. Es como si intentaramos robar una tienda

que todavía no está abierta al público y que no tiene mercancía dentro, ni dinero, ni mobiliario, es

decir, que sólo estuviera el local; si fuera así, no habría nada que robar. Pero en la realidad esto

nunca es así, ya que por defecto siempre tendremos determinados puertos escuchando al exterior

de no utilizar un firewall. Los principales y los que han sido objeto de más antención por sus

vulnerabilidades, por parte de los hackers son lo siguientes:

Page 7: Comando Netstat

Puerto 135 – correspondiente al Proceso RPC Llamada a Procedimiento Remoto, o Remote

Procedure Call. En realidad este proceso existe en otros sistemas operativos, y su función siempre

suele ser la misma: habilitar conexiones entre Programas y Conexiones remotas sin tener que

entender un protocolo de comunicación entre redes . En Windows XP, este puerto es imposible

cerrarlo si no es mediante la presencia de un firewall que bloquee las comunicaciones a ese puerto

ya que es un servicio esencial en el sistema, siendo imposible trabajar con Windows con él

deshabilitado.

Puerto 445 - correspondiente al proceso LSASS, y que también es esencial para el correcto

funcionamiento de nuestro Windows XP. LSASS (Local Security Authority Subsystem Service) está

encargado de gestionar todos los procesos de autentificación en nuestro sistema y la seguridad

local.

Ambos servicios han tenido vulnerabilidades que han sido explotadas con éxito por infinidad de

virus, entre ellos el Blaster, para el servicio RPC de Windows con núcleo NT o el Sasser para el

servicio Lsass. Ninguno de estos virus podría haber llevado a cabo su labor de haber estado

ejecutándose un firewall que bloquease las comunicaciones externas con dichos procesos. De ahí

la importancia de tener siempre un cortafuegos instalado, en ejecución y correctamente

configurado en nuestro sistema operativo.

Hay otros puertos muy populares y que es importantísimo no tener nunca abiertos, entre ellos, los

puertos 137, 138 y 139, correspondientes a protocolos que utilizan Netbios o el ya desfasado

Netbeui que son protocolos de comunicación utilizados para comunicarse en redes de trabajo. La

importancia de ternerlos cerrados, es que estos puertos son los que proporcionan información de

los recursos compartidos en un nuestra red. Imaginemos que tenemos compartido todo el disco

duro “C”. De tener abiertos estos puertos al exterior estariamos compartiendo todo nuestro disco

duro con el resto del mundo, aparte de otra información, que es esencial tener a buen recaudo.

De todas formas, Netbios está en proceso de desaparición y Netbeui totalmente en desuso, ya que

a partir de WinXP se introduce un nuevo protocolo de comunicaciones. La asignación directa de

host a través del protocolo SMB (Server Message Block) que utiliza también el puerto 445, y que

como hemos visto antes, es importantísimo tenerlo cerrado al exterior. En Sistemas Operativos

WinXP y posteriores cobra mucha importancia utilizar este protocolo en lugar de Netbios ya que

simplifica el transporte de red al no utilizar servidores de traducción de nombres ya desfasados

como Wins, Pero todo esto es tema aparte… tenéis más información sobre este tema en el

siguiente artículo de la KB:

Hay multitud de puertos más, que varían dependiendo de qué servicios tengamos habilitados.

Esencialmente, los puertos más populares en Internet y su utilidad son los siguientes:

25 - protocolo smtp, permite el envio de correo siempre y cuando tengamos un

servidor de correo instalado MTA o Mail Transfer Agent. Este puerto es el que utilizamos para

enviar correo, y los que utilizan también los servidores de correos para comunicarse entre sí.

Page 8: Comando Netstat

110, 143 - protocolos pop3 e imap3, utilizados para la recepción y reparto

del correo en nuestro MTA. Viene a ser algo parecido a la oficina de correos.

80 - HTTP: Utilizado por los servidores de páginas web, habitualmente cuando

navegamos nuestro navegador se conecta a este puerto, por lo que es preciso que cualquier

servidor web lo tenga abierto si pretende servir páginas. De cara al cliente se utiliza un puerto

aleatorio por encima del 1024, por lo que no debemos abrir ningún puerto para navegar,

únicamente debemos tener la precaución de no restringir las comunicaciones salientes a nuestro

navegador.

443 - HTTPS, lo mismo que el anterior pero con comunicaciones encriptadas utilizadas

habitualmente para compras online o en página bancarias.

21. FTP. para subir y bajar archivos (básicamente).

<!--[if !supportLineBreakNewLine]-->

<!--[endif]-->

23 - Telnet, muy vulnerable, permite comunicaciones mediante texto en claro

entre ordenadores, es decir, que todo lo que viaja en esa comunicación puede ser interceptado e

interpretado por una tercera persona ya que todo lo que escribamos, (contraseñas, ordenes, etc.)

se transmite tal cual por la red.

8080 - para servidor proxy.

Hay muchísimos más, pero es casí imposible hacer una lista exhaustiva. Simplemente recalcar que

no necesitamos ningún puerto abierto si no tenemos que ofrecer ningún servicio al exterior ya que

nuestro sistema operativo elige puertos aleatorios por encima del 1024 (puertos conocidos) para

establecer comunicaciones salientes con otros servidores. En caso de que queramos tener

comunicaciones entrantes a un determinado servicio, por supuesto, tendríamos que habilitarle el

puerto correspondiente.

Por ejemplo, en caso de un servidor de correo precisaríamos abrir, los puertos 25, 110 y 143. Y en

caso de un servidor Web, el puerto 80, que es al que se conecta cualquier navegado por defecto

cuando establecemos comunicaciones.

Page 9: Comando Netstat

2.Utilizando el comando Netstat para detectar malware Comando netstat: Este comando permite visualizar las conexiones establecidas por el equipo en un determinado momento, para ejecutarlo debemos ingresar al Símbolo del sistema (Inicio/Ejecutar/cmd) y escribir el nombre del comando. Si escribimos netstat /? (ayuda) podremos ver todas sus opciones y una descripción de las mismas, en particular me voy a centrar en una de ellas que es muy sencilla de utilizar y comprender.

Una de las sentencias que se pueden utilizar con netstat es la -o (netstat -o), esta permite -como la ayuda lo indica- identificar los ID de procesos asociados a cada conexión. Este ID es un número también conocido como PID que se puede observar en la lista de procesos del Administrador de tareas (Ctrl+Shit+Esc). Por defecto el PID no se muestra, pero lo podemos habilitar si en la pestaña "Procesos" accedemos al menú "Ver/Seleccionar Columnas" y luego marcamos la opción "Identificador de procesos (PID)":

Page 10: Comando Netstat

Volviendo al comando netstat, si ejecutamos un netstat -o se desplegará la lista de programas que están conectados a la red y su PID correspondiente. De esta forma, por ejemplo, en la siguiente imagen se puede apreciar una conexión identificada con el PID 3108. Observando la lista de procesos del Administrador de tareas puedo fácilmente verificar a qué programa pertenece, en este caso comprobé que se trataba del programa firefox.exe:

Otra forma de chequear el PID del programa es ejecutar dentro de la misma ventana, el comando tasklist. Este desplegará la lista completa de procesos en ejecución y su PID correspondiente:

Otro ejemplo: con el comando netstat -o veo en acción al PID 2960 y gracias al tasklist puedo determinar que pertenece al archivo "ekrn..exe", además dicho ya de paso, observo que está haciendo un uso interesante de la memoria del sistema:

Page 11: Comando Netstat

Buscando algo de información en Google o sitios con información sobre procesos, veo que el proceso corresponde al antivirus Nod32 y por lo tanto su actividad es normal. Identificando el malware: Teniendo todo este proceso presente, ahora podremos detectar conexiones extrañas generadas por malwares o programas no deseados. Vale la pena utilizar el netstat de vez en cuando para verificar las conexiones del PC, y sobre todo cuando notemos comportamientos extraños o una conexión algo lenta, producto tal vez de malwares o programas no deseados que consuman el ancho de banda. Cabe mencionar que el comando netstat también cumple muchas otras funciones y también se puede utilizar para controlar puertos y ver hacia dónde se comunican. Netstat funciona tanto en Windows XP como en Vista, para este último sistema operativo veremos en una próxima entrada una herramienta de monitoreo del propio sistema que facilita toda esta tarea de identificación de programas conectados.