-¿Te unes?- ㊜Suscribete!!!

Seguridad en internet los puertos y comunicaciones - DetectViruS


¿QUÉ ES UN PUERTO?
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.


2. EL 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

 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

 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.

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.


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:

3. LOS PUERTOS MÁS HABITUALES

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í.


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).


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.

El programa esta desarrollado en el lenguaje bat existe una nueva versión que lo puedes encontrar en la descarga.


Pasos a seguir











Descargar

Pinterest

Donación paypal
ADVERTENCIA: NO INTENTE HACER UN ATAQUE SIN EL PERMISO DE PROPIETARIO DEL SITIO WEB. ES UN PROPÓSITO EDUCATIVO SOLAMENTE. NO ES RESPONSABLE DE NINGUN TIPO DE PROBLEMA ILEGAL.

PERMANECE LEGAL. GRACIAS!
Si tienes algún problema, deja un comentario.

Entradas populares de este blog

Instalar DoxWeb con Termux

Termux Instalar Ngrok

Hackear contraseñas WiFi con Python fácilmente con este sencillo script

banner logo

📽video

Únete al chat

Comentarios

Blog Populares

Instalar DoxWeb con Termux

Instalar Metasploit-Framework En Android Con Termux

Termux Instalar Ngrok

Hackear contraseñas WiFi con Python fácilmente con este sencillo script

Generar combos+verificar cuentas para spotify

👻 By Blog

By Luishiño

Security

Compartir el Link

Copiar

Estamos en constante crecimiento


× IMPORTANTE!

»El autor de este blog tiene como objetivo principal facilitar el acceso a información

sobre seguridad informática, tecnología, programación, técnicas de hacking e inteligencia artificial.

Es importante destacar que el blog está destinado exclusivamente a fines educativos y NO promueve actividades ilegales.

El autor se desliga de cualquier responsabilidad sobre descargas, opiniones y comentarios de los textos que se citen en el blog.

La misión principal es compartir conocimiento responsable para mejorar la seguridad digital y promover el uso ético de la tecnología.

Se hace un llamado a los lectores para utilizar sus habilidades de manera responsable y nunca para dañar a otros.

Descarga gratis la app The Seven Codes y comparte con tus amig@s

Google play

Esta obra de Luishiño está bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual CC BY-NC-SA 4.0 Internacional

Aviso Legal


>_Si te gustan los contenidos de este sitio,
¿Deseas realizar una aportación?
Puedes colaborar con una pequeña donación via PayPal. La forma rápida y segura de pagar en Internet. シ

Apoyar al sitio


📡Los interesados en información sobre contrato de soporte Asistencia Técnica , licencia de uso/actualizaciones de sus utilidades, contacten con The Seven Codes para hacer su presupuesto y/o consultar por el servicio al twitter:@Lpericena

Mis redes sociales

© Copyright 2020-2024 .Todos los derechos reservados
by Luishiño - The Seven Codes