Sie sind auf Seite 1von 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 smil: 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 informtica, los puertos seran las ventanas y puertas nuestra casa, es decir, servicios que ofrecemos y que normalmente utilizamos para comunicarnos, bien internamente (localhost) o bien externamente. En informtica localhost, se refiere habitualmente a nuestra propia maquina o sistema, es decir, y aunque suene paradjico, 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 comunicacin 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 nmero 1 al 1023. Los que van a partir del 1024 hasta el 49152 son denominados puertos registrados, y a partir del puerto nmero 49153 hasta el 65535 puertos dinmicos o para uso privado, es decir sin ningn propsito preestablecido, toda esta catalogacin de puertos est hecha acorde a la IANA Internet Assigned Numbers Authority o Agencia de Asignacin de Nmeros de Internet. Alguien interesado en robar en nuestra casa lo primero que revisar son posibles entradas a travs de puntos que estn abiertos. En un PC es lo mismo: lo primero que har un intruso es revisar qu puertos tenemos y qu hay detrs de esos puertos. En nuestro anterior ejemplo, tenamos una tienda abierta en los bajos de nuestra casa; un posible ladrn, se fijara en las medidas de seguridad que tiene esa tienda y si encuentra alguna debilidad la explotar para intentar colarse y robarnos. En nuestro PC detrs de los puertos abiertos, siempre hay tiendas que solemos denominar servicios, y lo que hara nuestro posible intruso es lo mismo que en una casa: fijarse en los puntos dbiles 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 estn a la espera de establecer alguna conexin en esos puertos se comuniquen con procesos externos a nuestra mquina.

En este punto cabe preguntarse cmo saber los puertos que tienen algn proceso escuchando en nuestra mquina y si podemos determinar los servicios que se ejecutan detrs de ellos. Pues bien, todos los Sistemas Operativos, o al menos los que yo conozco, proveen un mtodo para averiguar todo esto, y es el comando netstat. Este comando quizs 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 smbolo 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 parmetros o modificadores disponibles con el que podremos lanzar la herramienta netstat, Algunos de los modificadores ms populares para trabajar con este comando en Sistemas Operativos con ncleo NT son: a que nos va a mostrar todas las conexiones que tenemos a nuestros diferentes puertos. n si omitimos este parmetro por defecto, netstat nos ofrecer el resultado de traducir la direccin remota y el puerto de nmeros a nombres, si lo incluimos nos mostrar esta misma informacin pero en formato nmerico. o muestra el identificador nmerico del proceso que esta ejecutndose en este puerto.

El parmetro o la verdad es que ha perdido algo de popularidad con la introduccin del SP2 de Windows XP, ya que este muestra los procesos que se estn ejecutando detrs de un determinado puerto de forma mucho ms cmoda. Los parmetros aadidos por este Service Pack son: b que muestra el ejecutable que est escuchando en el puerto en cuestin. v que muestra todos los componentes que estn implicados con el ejecutable que escucha en el puerto, es decir, que suele ser utilizado con el anterior parmetro.

Los modificadores de Netstat no suelen requerir ser escritos en un orden preciso, as que podemos teclearlos como ms cmodo nos sean. La siguiente orden combinara los parmetros A, O y N. Es decir nos mostrara todas las conexiones en formato numrico y agregara el nmero de ID del proceso que est ejecutndose en ese puerto,

Netstat noa

Pero en realidad, podemos combinar las letras de los modificadores como mejor nos venga en gana y su funcin 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 slida tpica de este comando introduciendo los parmetro -ano sera Proto Direccin local Direccin 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. Anlisis de la salida del comando netstat

Analicemos la salida del comando que como vemos nos ofrece informacin en varias columnas: en la columna de ms a la izquierda vemos la columna Proto, es decir el protocolo establecido para establecer la comunicacin. Aqu fundamentalmente veremos tres tipos de protocolos: ICMP, UDP y TCP, y esto qu es?, nos preguntaremos. Pues bien, siguiendo con el smil 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 ingls. 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 estndar y est definido en la RFC 768. UDP nos sirve para comunicar procesos entre s de una forma rpida ya que no verifica la entrega. Imaginemos que mandamos a alguien a por el peridico, pero despus no verificamos si lo ha comprado; UDP hace lo mismo: manda paquetes pero no verifica su correcta recepcin. 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 llamramos por telfono a alguien: no podremos hablar nunca con nuestro interlocutor si ste no nos coge el telefono. El protocolo TCP permite entrega de paquetes ms largos que UDP y es tambin ms lento, adems con UDP no se establece comunicacin 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 travs del popular comando ping utilizamos este protocolo. Siguiendo con los smiles, sera como preguntarle a alguien por la salud. ICMP, permite preguntar por la salud de un host o PC y saber su estado

Direccin Local, Aqu nos aparece el nmero de IP local que establece una comunicacin de salida. Esto es lo mismo que los mviles: todos los mviles precisan tener un nmero 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 direccin local aparecen, por tanto, nuestro nmero identificativo. En la salida que he puesto de ejemplo, vemos diferentes nmeros o IPs que definen diferentes procesos de comunicacin. Por un lado tenemos la IP nmero 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. Tambin vemos una direccin IP, que nos puede resultar algo extraa, pero que es utilizada en cualquier Sistema Operativo, ya que la IP 0.0.0.0 es la direccin de encaminamiento por defecto. Cualquier comunicacin establecida hacia una red no conocida pasar por esta IP. En este punto slo nos interesa saber que esta direccin corresponde tambin a nuestro equipo local y que es normal que aparezca en ese estado de listening y por norma general sin ninguna conexin establecida.

La siguiente direccin IP que observamos es la 192.168.1.100, esta tambin es una direccin IP reservada para uso pblico, 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 tuviramos salida directa a Internet en lugar de ver ese nmero de IP veramos la direccin IP asignada por nuestro proveedor de Internet para que la gente sepa dnde estamos y poder establecer comunicaciones con nosotros. Siguiendo con el ejemplo del mvil, lo que veramos ah sera nuestro nmero de mvil. La direcciones IP reservadas para uso pblico 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 continuacin de la que ya hemos comentado es la de direccin remota. En esta columna vemos la direccin IP remota a la que estamos conectados, y vemos tambin que aparece la direccion correspondiente a localhost, es decir a nuestro propio equipo. Y tambin 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 IPs reservadas bien para uso pblico o bien para uso privado y que antes hemos listado. La columna que tenemos a continuacin nos indica en que estado se encuentra la comunicacin entre procesos, y veremos diferentes tipos (en nuestro ejemplo no salen todos): LISTENING, o escuchando, significa que detrs de ese puerto hay un proceso esperando que alguien hable con l, es decir, en disposicin de aceptar comunicaciones.

ESTABLISHED, o establecidas, significa que el proceso que est detrs de ese puerto ya est hablando con algo o alguien; la columna de direccin remota nos indica con quin habla.

SYN_SEND, indica una solicitud de comunicacin por nuestra parte, es decir, es como si estuviramos llamando a alguien y esperando a que nos respondiera. SYN_RECEIVED, indica que el servidor remoto ha aceptado nuestra solicitud de comunicacin. Al que estbamos llamando por mvil ya nos ha descolgado, pero todava no nos ha dicho nada. <!--[if !supportLineBreakNewLine]-->

<!--[endif]--> FIN_WAIT_1, indica que hemos solicitado terminar la comunicacin. A nuestro amigo el del mvil, 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 comunicacin pero el servidor no se da por enterado. TIMED_WAIT, estamos esperando a que el servidor acepte nuestra peticin de cerrar comunicacin. Nuestro amigo el del mvil, 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 mvil, digamos que aceptamos esperar hasta terminar la comunicacin y le decimos que la cierre l cuando quiera, que nosotros dejamos el mvil encendido y nos vamos a hacer otras cosas.

LAST_ACK, aqu es nuestro amigo el del mvil el que nos dice que nos cuelga, es decir es el servidor el que nos dice que va a cerrar la comunicacin. CLOSED, comunicacin entre cliente y servidor cerrada. Por fin hemos conseguido colgar el mvil!

Las conexiones ms 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 detrs ya que de otro modo, ante posibles escaneos, el puerto se mostrar como cerrado. Si hubiera un servicio detrs escuchando se mostrara como abierto y finalmente si nuestro firewall corta las comunicaciones entre ese puerto y el exterior se mostrar como bloqueado. Podis haceros vosotros mismos vuestros propios escaneos para saber cmo ven los dems los puertos que tenis, ya que en la red de redes, hay muchas herramientas online que hacen este tipo de escaneos. Como siempre, os recomendamos que echis un vistazo a nuestra seccin 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 sera necesaria ya que no habra nada que explotar. Es como si intentaramos robar una tienda que todava no est abierta al pblico y que no tiene mercanca dentro, ni dinero, ni mobiliario, es decir, que slo estuviera el local; si fuera as, no habra 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 ms antencin por sus vulnerabilidades, por parte de los hackers son lo siguientes:

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 funcin siempre suele ser la misma: habilitar conexiones entre Programas y Conexiones remotas sin tener que entender un protocolo de comunicacin 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 tambin es esencial para el correcto funcionamiento de nuestro Windows XP. LSASS (Local Security Authority Subsystem Service) est encargado de gestionar todos los procesos de autentificacin 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 ncleo NT o el Sasser para el servicio Lsass. Ninguno de estos virus podra haber llevado a cabo su labor de haber estado ejecutndose un firewall que bloquease las comunicaciones externas con dichos procesos. De ah la importancia de tener siempre un cortafuegos instalado, en ejecucin y correctamente configurado en nuestro sistema operativo.

Hay otros puertos muy populares y que es importantsimo 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 comunicacin utilizados para comunicarse en redes de trabajo. La importancia de ternerlos cerrados, es que estos puertos son los que proporcionan informacin 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 informacin, que es esencial tener a buen recaudo. De todas formas, Netbios est en proceso de desaparicin y Netbeui totalmente en desuso, ya que a partir de WinXP se introduce un nuevo protocolo de comunicaciones. La asignacin directa de host a travs del protocolo SMB (Server Message Block) que utiliza tambin el puerto 445, y que como hemos visto antes, es importantsimo 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 traduccin de nombres ya desfasados como Wins, Pero todo esto es tema aparte tenis ms informacin sobre este tema en el siguiente artculo de la KB: Hay multitud de puertos ms, que varan dependiendo de qu servicios tengamos habilitados. Esencialmente, los puertos ms 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 tambin los servidores de correos para comunicarse entre s.

110, 143 - protocolos pop3 e imap3, utilizados para la recepcin y reparto del correo en nuestro MTA. Viene a ser algo parecido a la oficina de correos.

80 - HTTP: Utilizado por los servidores de pginas 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 pginas. De cara al cliente se utiliza un puerto aleatorio por encima del 1024, por lo que no debemos abrir ningn puerto para navegar, nicamente debemos tener la precaucin 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 pgina bancarias. 21. FTP. para subir y bajar archivos (bsicamente). <!--[if !supportLineBreakNewLine]--> <!--[endif]--> 23 - Telnet, muy vulnerable, permite comunicaciones mediante texto en claro entre ordenadores, es decir, que todo lo que viaja en esa comunicacin puede ser interceptado e interpretado por una tercera persona ya que todo lo que escribamos, (contraseas, ordenes, etc.) se transmite tal cual por la red. 8080 - para servidor proxy.

Hay muchsimos ms, pero es cas imposible hacer una lista exhaustiva. Simplemente recalcar que no necesitamos ningn puerto abierto si no tenemos que ofrecer ningn 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, tendramos que habilitarle el puerto correspondiente. Por ejemplo, en caso de un servidor de correo precisaramos 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.

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 Smbolo del sistema (Inicio/Ejecutar/cmd) y escribir el nombre del comando. Si escribimos netstat /? (ayuda) podremos ver todas sus opciones y una descripcin 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 conexin. Este ID es un nmero tambin 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 pestaa "Procesos" accedemos al men "Ver/Seleccionar Columnas" y luego marcamos la opcin "Identificador de procesos (PID)":

Volviendo al comando netstat, si ejecutamos un netstat -o se desplegar la lista de programas que estn conectados a la red y su PID correspondiente. De esta forma, por ejemplo, en la siguiente imagen se puede apreciar una conexin identificada con el PID 3108. Observando la lista de procesos del Administrador de tareas puedo fcilmente 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 ejecucin y su PID correspondiente:

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

Buscando algo de informacin en Google o sitios con informacin 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 extraas 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 extraos o una conexin algo lenta, producto tal vez de malwares o programas no deseados que consuman el ancho de banda. Cabe mencionar que el comando netstat tambin cumple muchas otras funciones y tambin se puede utilizar para controlar puertos y ver hacia dnde se comunican. Netstat funciona tanto en Windows XP como en Vista, para este ltimo sistema operativo veremos en una prxima entrada una herramienta de monitoreo del propio sistema que facilita toda esta tarea de identificacin de programas conectados.

Das könnte Ihnen auch gefallen