Cómo escanear puertos abiertos en tu red y asegurar tu sistema

Editor’s note on June 4, 2015: El artículo de Chad Perrin de abril de 2008 sobre herramientas para listar los servicios activos y los puertos abiertos sigue siendo uno de nuestros artículos más populares, por lo que le pedimos a Jack Wallen que escribiera una actualización en 2015 sobre el tema. El artículo original de Chad aparece directamente después de la actualización de Jack.

Uno de los mayores dolores de cabeza para los administradores de redes son los puertos abiertos en los dispositivos. A menos que haya instalado manualmente el sistema operativo en cada dispositivo de su red, asegurándose de cerrar todos los puertos no esenciales, corre el riesgo de sufrir ataques.

Los puertos que debes desactivar variarán según el sistema e incluso pueden estar determinados por las necesidades de software especializado (por ejemplo, QuickBooks requiere puertos específicos, determinados por la versión, para funcionar). Necesitas crear una lista de puertos que puedan o deban permanecer abiertos. Una vez que tengas esa lista, puedes cerrar aquellos puertos en las máquinas correspondientes.

Pero ¿cómo sabes qué máquinas tienen qué puertos abiertos? Claro, podrías ir a cada máquina de tu red, abrir lo que se esté utilizando como firewall y asegurarte manualmente de que los puertos necesarios estén abiertos y los innecesarios estén cerrados.

O puedes escanear la red y averiguar qué máquinas tienen qué puertos abiertos. Cuando sepas la ubicación de los puertos abiertos, puedes verificar esa información con tu lista principal y cerrar todo lo necesario. Ahora viene la parte complicada.

Los peligros de implementar mecanismos de acceso excepcionales en la seguridad informática
Índice de Contenido
  1. Cómo ejecutar un escaneo de puertos
  2. La herramienta de escaneo de puertos que deberías utilizar
  3. En resumen
    1. FreeBSD
    2. Distribuciones de Linux
    3. Microsoft Windows XP
    4. Sistemas UNIX comerciales

Cómo ejecutar un escaneo de puertos

¿Cómo puedes averiguar qué máquina tiene qué puerto abierto? Ejecutando un escaneo de puertos. En caso de que no sepas cómo hacerlo, te explicaré el proceso.

Estoy utilizando una máquina Linux para el escaneo. ¿Por qué? Porque Linux tiene excelentes herramientas de escaneo listas para la tarea, gratuitas y fáciles de usar.

Si no tienes una máquina con Linux, no te preocupes, puedes descargar una distribución en vivo de penetración de red como Kali Linux, grabar la ISO en un CD o USB y arrancar una máquina en una instancia en vivo de Linux (no se realizarán cambios en la máquina utilizada, ya que la instancia en vivo se ejecuta completamente desde la RAM). Con la instancia en vivo funcionando, tendrás a tu disposición una increíble variedad de herramientas de análisis y forense de red.

La herramienta de escaneo de puertos que deberías utilizar

La mejor herramienta para el escaneo de puertos es Nmap. Si no quieres perder tiempo con la línea de comandos, hay una excelente interfaz gráfica llamada Zenmap, que está disponible para Linux, Windows y Mac. Si no quieres complicarte con Linux, puedes instalarlo en Windows. (Nmap es mucho más potente que las herramientas de escaneo de red incorporadas de Windows). Nmap y Zenmap funcionan de la misma manera en todas las plataformas, por lo que cuando sepas cómo usar la herramienta en una plataforma, podrás usarla en todas.

Después de instalar Zenmap, estás listo para ejecutar un escaneo completo de puertos en tu red. El tamaño de tu red dictará el tiempo que tarda en ejecutarse el escaneo. Con Zenmap, puedes realizar escaneos muy generales y muy específicos. Primero hagamos un escaneo muy general para tener una idea de lo que estamos tratando. Ejecutaremos un escaneo en toda la red 192.168.1.x.

  1. Abre Zenmap.
  2. En la sección de Destino, ingresa 192.168.1.1/24 (o el tamaño que necesites).
  3. En el Perfil, selecciona Escaneo Intensivo.
  4. Haz clic en el botón Escanear.

Deberías ver de inmediato los resultados en la pestaña de Salida de Nmap; los resultados muestran los puertos abiertos en las máquinas de tu red (Figura A). El escaneo intensivo puede llevar mucho tiempo, pero si quieres obtener la mayor cantidad de información sobre tu red, es la mejor opción.

Cómo proteger tu privacidad en Windows 10: Pasos para desactivar las opciones de privacidad

Figura A

Una vez que se complete el escaneo, verás una lista de todos los dispositivos encontrados en la red en el panel izquierdo. Haz clic en uno de los dispositivos, desplázate por la Salida de Nmap y busca las secciones que mencionen Puerto, Estado y Servicio (Figura B).

Figura B

Si no tienes tiempo para revisar el escaneo, siempre puedes guardarlo y verlo más tarde (usando Zenmap). Para guardar el escaneo, ve a Escaneo | Guardar Escaneo, dale un nombre y haz clic en Guardar.

Para ver rápidamente los puertos abiertos en tu red, haz clic en la pestaña Puertos/Hosts para ver qué puertos están completamente abiertos (Figura C).

Figura C

Las nuevas características empresariales de Windows 10 que impulsarán la migración

Si no quieres depender de la interfaz gráfica, con Nmap (que se instala cuando instalas Zenmap), puedes ejecutar el mismo escaneo desde la línea de comandos. Por ejemplo, si deseas ejecutar un escaneo intensivo en un solo host, abre una ventana de terminal y emite este comando.

sudo nmap -T4 -A -v 192.168.1.1/24

Estos son los parámetros para el comando anterior.

  • T4 ─ establece el tiempo en 4 (0-5, donde 5 es el más rápido)
  • A ─ habilita la detección del sistema operativo
  • v ─ información detallada

En este punto (ya sea que hayas usado Nmap a través de la línea de comandos o la interfaz gráfica de Zenmap), deberías tener una lista completa de los puertos abiertos en tu red. Ahora que sabes qué puertos están abiertos y en qué máquinas, tienes muchas más posibilidades de asegurar esos puertos y, a su vez, tu red.

En resumen

Nmap/Zenmap no es la única opción de escaneo de red en el mercado, aunque será difícil encontrar una herramienta más sencilla y poderosa para ayudarte a descubrir qué puertos están abiertos en tu red.


Por Chad Perrin, publicado originalmente el 15 de abril de 2008

La carrera entre los buenos y los malos: cómo se desarrolló una vulnerabilidad de Adobe Flash Player

Debes desactivar cualquier servicio que no necesites realmente para que no se convierta en un punto de entrada de amenazas de seguridad. Los diferentes sistemas tendrán diferentes servicios en funcionamiento de forma predeterminada, incluso entre diferentes versiones del Service Pack de MS Windows XP, y si te encuentras en una situación en la que debes asumir la responsabilidad de la seguridad de las computadoras que ya estaban configuradas antes de que llegaras, es seguro que hay servicios en ejecución distintos a la instalación predeterminada del sistema. Lo que se necesita es una herramienta para enumerar los servicios activos y los puertos abiertos. Explicaré cómo se pueden utilizar estas herramientas en tres tipos de sistemas: distribuciones de Linux, FreeBSD y MS Windows.

Como se menciona en el artículo "10 consejos de seguridad para todos los sistemas operativos de propósito general", debes desactivar cualquier servicio que no necesites realmente para que no se convierta en un punto de entrada de amenazas de seguridad. En mi artículo posterior "10 servicios que debes desactivar en MS Windows XP", se mencionan diez servicios específicos de Microsoft Windows. Si bien diez es un buen número para una lista rápida en un artículo, está lejos de ser exhaustiva.

Esencialmente, no hay forma de proporcionar una lista exhaustiva. Los diferentes sistemas tendrán diferentes servicios en ejecución de forma predeterminada, incluso entre diferentes versiones del Service Pack de MS Windows XP, y si te encuentras en una situación en la que debes asumir la responsabilidad de la seguridad de las computadoras que ya estaban configuradas antes de que llegaras, es seguro que hay servicios en ejecución distintos a la instalación predeterminada del sistema. Además, se están inventando nuevos servicios de vez en cuando, lo que amplía la cantidad de servicios que pueden estar en ejecución en una computadora determinada.

Lo que se necesita es una herramienta para enumerar los servicios activos y los puertos abiertos. Explicaré cómo se pueden utilizar estas herramientas en tres tipos de sistemas, en orden alfabético: distribuciones de Linux, FreeBSD y MS Windows; además, cómo utilizar una herramienta adicional para sistemas UNIX comerciales donde las otras herramientas pueden no estar disponibles.

FreeBSD

En un sistema Unix FreeBSD, al igual que en otros sistemas BSD Unix, tienes una serie de utilidades con una instalación base del sistema que se pueden utilizar para enumerar archivos abiertos, procesos en ejecución y conexiones de red. La utilidad netstat es mantenida como parte del sistema base de FreeBSD por los desarrolladores principales de FreeBSD y ofrece exactamente el tipo de funcionalidad que necesitas para enumerar los puertos abiertos en tu sistema.

netstat

Para enumerar los puertos de red abiertos y los procesos a los que pertenecen en FreeBSD con netstat, puedes usar este comando:

Cómo los atacantes roban datos sin usar malware: un análisis de CrowdStrike
netstat -a | egrep 'Proto|LISTEN' 

La salida para esto en mi portátil con FreeBSD es:

Proto Recv-Q Send-Q  Dirección Local      Dirección Externa    (estado) 
tcp4       0      0  localhost.ipp      *.*                LISTEN 
tcp6       0      0  localhost.ipp      *.*                LISTEN 
tcp4       0      0  *.2200             *.*                LISTEN 
tcp6       0      0  *.2200             *.*                LISTEN 
tcp4       0      0  *.x11              *.*                LISTEN 
tcp6       0      0  *.x11              *.*                LISTEN 

La entrada localhost.ipp se refiere al Protocolo de Impresión en Internet utilizado por CUPS para comunicarse con la impresora de red. La entrada *.2200 se refiere a SSH, que he configurado en un puerto no estándar, por lo que no es reconocido por las capacidades de asociación de puerto a servicio de netstat. *.x11 se refiere al protocolo X Window System.

Puedes agregar la opción -n a netstat para obtener números de puerto en lugar de que la utilidad intente proporcionar nombres de servicios:

netstat -an | egrep 'Proto|LISTEN' 

La salida sería algo así:

proto recv-q send-q  dirección local  extranjera (estado) 
tcp4       0         127.0.0.1.631  *.*     escuchar 
tcp6                       ::1.631  *.2200 *.6000 

Esta información se puede utilizar para determinar qué servicios están en ejecución, en casos donde los servicios usan puertos estándar. En un sistema FreeBSD, puedes obtener una lista de asociaciones de puertos estándar buscando a través del contenido de /etc/services

Por ejemplo, si deseas saber qué ocurre en el puerto 631, podrías usar este comando:

10 señales para identificar un mensaje de phishing
grep -w 631 /etc/services 

La salida:

ipp     631/tcp    #IPP (Protocolo de Impresión en Internet) 
ipp     631/udp    #IPP (Protocolo de Impresión en Internet) 

sockstat

Además de netstat, el comando más limitado sockstat es especialmente útil para recopilar este tipo de información. Para obtener una lista de puertos en escucha y sus procesos asociados, puedes usar este comando:

 sockstat -4l 

La salida puede ser aún más útil que la de netstat anteriormente:

usuario comando pid  fd proto  dirección local extranjera 
root cupsd   170  4  tcp4   127.0.0.1:631 *:* 
                  6  udp4    *:631 
     sshd    1685            *:2200 
     xorg    1154 3          *:6000 
     syslogd 907  7          *:514 

Distribuciones de Linux

Al igual que FreeBSD, la opción obvia de herramienta a utilizar para enumerar los puertos abiertos es netstat. La mayoría de las distribuciones de Linux utilizan una versión diferente de la utilidad, que se mantiene de forma independiente a la distribución de Linux como un proyecto de desarrollo de software independiente.

Una consecuencia de ese hecho es que las opciones de línea de comandos utilizadas para lograr los mismos resultados pueden ser diferentes con FreeBSD que con Debian, Ubuntu o sistemas Fedora Core Linux. En un sistema Linux típico, este comando enumerará los puertos de red abiertos y los procesos a los que pertenecen:

netstat -lnptu 

La salida debería verse algo así:

Los 5 mejores programas antivirus portátiles para mantener tu PC libre de infecciones
Conexiones de internet activas (solo servidores)
Proto Recv-Q Send-Q Dirección Local   Dirección Externa  Estado   PID/Nombre del programa
tcp        0      0 127.0.0.1:631   0.0.0.0:*        EN ESCUCHA  2458/cupsd
tcp        0      0 127.0.0.1:5432  0.0.0.0:*        EN ESCUCHA  2353/postgres
tcp6       0      0 :::22           :::*             EN ESCUCHA  2335/sshd
udp        0      0 0.0.0.0:631     0.0.0.0:*                2458/cupsd

Como puedes ver en esta salida, el sistema Debian GNU/Linux en el que ejecuté ese comando tiene solo cuatro puertos abiertos, dos para CUPS, para que la computadora pueda comunicarse con la impresora de red; uno para PostgreSQL, para que las aplicaciones en desarrollo puedan comunicarse con él; SSH, para que pueda accederlo de forma remota desde mi portátil.

Microsoft Windows XP

Microsoft Windows también ofrece un comando netstat que se puede ejecutar desde la línea de comandos para obtener una lista de puertos abiertos. La versión estándar de MS Windows de netstat es ligeramente más limitada que sus contrapartes de sistemas similares a Unix, pero sigue siendo suficiente para obtener una lista de servicios en escucha:

netstat -a | find listening 

La salida de este comando se verá algo así:

TCP    nombredehost:epmap           nombredehost:0               EN ESCUCHA 
TCP    nombredehost:microsoft-ds    nombredehost:0               EN ESCUCHA 
TCP    nombredehost:10110           nombredehost:0               EN ESCUCHA 
TCP    nombredehost:netbios-ssn     nombredehost:0               EN ESCUCHA 

Nota: "nombredehost" se reemplaza por el nombre de host del sistema.

Sistemas UNIX comerciales

Para la mayoría de los sistemas UNIX comerciales, incluso si no hay una versión de netstat o sockstat disponible, deberías poder instalar lsof, que es una abreviatura de "listar archivos abiertos". La mayoría de las distribuciones de Linux y sistemas UNIX BSD lo proporcionarán con una instalación predeterminada o a través de sus respectivos sistemas de administración de software. También está disponible para descargar en muchos otros sistemas UNIX comerciales. El siguiente comando limitará la salida de la utilidad a los puertos de red:

lsof -i -n | egrep 'COMANDO|EN ESCUCHA' 

10 formas económicas de mejorar la seguridad de tu empresa

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Cómo escanear puertos abiertos en tu red y asegurar tu sistema , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.