Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 4

Diagnóstico de Red con Comandos Esenciales

Recommended resources

¡Hola! En la lección anterior, dominaste herramientas cruciales como grep, las tuberías (|) y las redirecciones, que te permiten buscar y filtrar información de manera eficiente en la línea de comandos. Esta habilidad para manejar grandes volúmenes de texto es fundamental para un pentester.

En esta lección, aplicaremos directamente esas habilidades al ámbito de las redes. Aprenderás a utilizar los comandos de red esenciales de Linux: ip, netstat y ss. Con ellos, podrás inspeccionar la configuración de red de un sistema, descubrir qué servicios están en ejecución y qué conexiones están activas. Para un pentester, esta es una de las primeras acciones al analizar un objetivo, ya que te proporciona un mapa inicial de los posibles puntos de entrada y la arquitectura de la red.

Inspeccionando la Configuración de Red: El Comando ip

En el pasado, comandos como ifconfig y route eran el estándar para la configuración de redes en Linux. Sin embargo, han sido reemplazados por una herramienta mucho más potente y unificada: ip. Aunque es bueno reconocer los comandos antiguos, ya que podrías encontrarlos en sistemas más viejos, ip es la herramienta moderna que debes dominar.

Los dos usos más comunes del comando ip que necesitarás constantemente son:

  1. ip addr (o su abreviatura ip a): Muestra las interfaces de red del sistema, junto con sus direcciones IP (tanto IPv4 como IPv6) y sus direcciones MAC.
  2. ip route (o su abreviatura ip r): Muestra la tabla de enrutamiento del sistema, que determina cómo se envía el tráfico a otras redes. La línea default via ... es especialmente importante, ya que te indica la dirección del gateway o puerta de enlace predeterminada, tu salida a Internet.

Para obtener una base sólida sobre la gestión de redes en Linux y el uso del comando ip, te recomiendo leer las siguientes secciones de un artículo de CiberAULA.

Administración de Redes en Linux (I): TCP/IP, Protocolos y Configuración

Este artículo ofrece una excelente introducción a la administración de redes en Linux. Te ayudará a comprender el contexto en el que operan estos comandos.

Concéntrate en dos partes: La sección "Configuración de interfaces de red". Presta atención a la explicación sobre los nombres de las interfaces y la transición de ifconfig al comando ip. Revisa la tabla de comandos básicos de ip. La sección "Direccionamiento IP y enrutamiento". Enfócate en la explicación sobre el enrutamiento y la tabla de rutas. Observa los ejemplos de comandos para ver la dirección IP y la puerta de enlace.

Para complementar la lectura con una demostración práctica, el siguiente video de HackerSploit te muestra estos comandos en acción.

Linux Essentials For Hackers - #14 - Networking (ifconfig, netstat & netdiscover)

Este video, parte de la serie "Linux Essentials For Hackers", te mostrará cómo obtener esta información directamente desde la terminal.

Observa cómo el instructor utiliza los siguientes comandos: ip route show: para ver la tabla de enrutamiento. ip addr: para inspeccionar las interfaces de red y las direcciones IP.


Descubriendo Conexiones y Puertos Abiertos: netstat y ss

Una vez que estás en un sistema, una de las primeras preguntas que debes hacerte como pentester es: ¿qué servicios están corriendo? ¿Hay un servidor web, una base de datos, un servicio SSH? Cada servicio que "escucha" (LISTEN) en un puerto de red es una posible superficie de ataque.

Para responder a esta pregunta, tenemos dos comandos principales: netstat y ss.

netstat: El Comando Clásico

netstat (network statistics) es la herramienta tradicional para mostrar conexiones de red, tablas de enrutamiento y estadísticas de interfaces. Aunque está siendo reemplazado por ss, todavía se encuentra en muchísimos sistemas, por lo que es crucial que sepas cómo usarlo.

La combinación de opciones más útil y extendida es netstat -tulnp:

  • -t: Muestra conexiones TCP.
  • -u: Muestra conexiones UDP.
  • -l: Muestra solo los sockets que están en estado de escucha (LISTEN).
  • -n: Muestra las direcciones y puertos en formato numérico (evita hacer lentas resoluciones DNS).
  • -p: Muestra el PID (ID del Proceso) y el nombre del programa asociado al socket. (Esta opción generalmente requiere privilegios de sudo).
Salida típica del comando `netstat`. Observa las columnas que indican el protocolo (tcp, udp), la dirección local y el puerto en el que se está escuchando, y el estado "ESCUCHAR" (LISTEN).

El siguiente recurso de Unihackers explica perfectamente por qué netstat es tan valioso en un contexto de ciberseguridad.

Comandos Linux Esenciales para Ciberseguridad (2026) | Unihackers

Este artículo pone los comandos de red en el contexto de un analista de seguridad o un pentester.

Lee la sección "Que Comandos de Red Usan los Analistas de Seguridad Diariamente?". Presta especial atención a la explicación de por qué netstat es importante y al ejemplo de uso netstat -tulpn. El artículo también menciona cómo puedes combinarlo con grep para buscar puertos específicos, conectando con lo que aprendiste en la lección anterior.

ss: El Sucesor Moderno

El comando ss (socket statistics) es el sucesor de netstat. Es más rápido y proporciona más información porque obtiene los datos directamente del kernel de Linux, en lugar de leer archivos del sistema de ficheros /proc. En sistemas modernos, siempre deberías preferir ss.

Afortunadamente, las opciones son muy similares a netstat. La combinación ss -tulnp funciona exactamente igual y te dará una lista de todos los puertos TCP y UDP que están escuchando, junto con los procesos que los poseen.

Salida del comando `ss` que muestra los sockets TCP en estado de escucha (LISTEN). Es más concisa y clara que la de `netstat`.

Para aprender a usar ss de manera efectiva, el siguiente video de Learn Linux TV es un recurso excelente y muy claro.

How to Use the ss Command (Linux Crash Course Series)

Este video es un tutorial completo y práctico sobre el comando ss.

Mira las siguientes partes para dominar los fundamentos: Introducción: Explica para qué sirve ss. Uso básico: Muestra la salida de ss sin opciones. Conexiones TCP: Cubre las opciones -t (TCP) y -l (listening), mostrándote el útil comando ss -lt. Conexiones UDP: Explica cómo usar las opciones -u y -lu para ver los puertos UDP. Filtrado por puerto: Muestra un ejemplo avanzado de cómo verificar un puerto específico, como el puerto 22 para SSH.


✏️ Ejercicio Práctico

Ahora es tu turno de actuar como un pentester que acaba de acceder a una nueva máquina y necesita hacer un reconocimiento inicial de la red.

Abre tu terminal de Linux y sigue estos pasos:

  1. Encuentra tu identidad en la red:
    Ejecuta ip a para ver tus interfaces y direcciones IP. Identifica tu interfaz de red principal (probablemente algo como eth0 o enp0s3) y anota tu dirección IPv4.

  2. Descubre tu salida a Internet:
    Ejecuta ip r. Localiza la línea que comienza con default y anota la dirección IP del gateway. Este es tu router.

  3. Simula un servicio web:
    Vamos a levantar un servidor web muy simple en el puerto 8080 usando Python. Este comando iniciará un servicio que escucha en ese puerto. Déjalo corriendo en tu terminal.

    python3 -m http.server 8080
    

    Si no tienes python3, puedes usar netcat para un propósito similar. Abre una nueva terminal y ejecuta:

    nc -lvnp 8080
    
  4. Enumera los servicios en escucha:
    Abre una nueva pestaña o ventana en tu terminal (sin cerrar el servidor que acabas de iniciar). Ejecuta el siguiente comando para ver todos los servicios que están escuchando. Deberías ver el puerto 8080 en la lista.

    sudo ss -tulnp
    

    La opción -p te mostrará que el proceso python3 o nc es el que está usando ese puerto.

  5. Filtra la salida para encontrar tu servicio:
    Ahora, imagina que la salida es enorme. Usa tus habilidades de la lección anterior para encontrar rápidamente si el puerto 8080 está abierto.

    sudo ss -tulnp | grep ":8080"
    

    Este comando debería mostrarte únicamente la línea correspondiente al servicio que iniciaste. ¡Has combinado con éxito el análisis de red con el filtrado de texto!

Puedes detener el servidor web o el netcat volviendo a su terminal y presionando Ctrl+C.


Conclusión

¡Excelente trabajo! Has aprendido a usar las herramientas fundamentales de Linux para la inspección de redes. Este conocimiento es absolutamente indispensable en el pentesting. Cada vez que obtengas acceso a un sistema Linux, ejecutar ip a, ip r y ss -tulnp será uno de tus primeros pasos para orientarte y planificar tus siguientes movimientos.

Puntos clave:

  • ip es la herramienta moderna y unificada para gestionar interfaces (ip a) y rutas (ip r).
  • netstat es el comando clásico para ver conexiones, útil en sistemas antiguos. La combinación netstat -tulnp es tu navaja suiza.
  • ss es el reemplazo moderno y más eficiente de netstat. Utiliza ss -tulnp en sistemas actuales.
  • Combinar estos comandos con grep y tuberías te permite filtrar rápidamente la información de red para encontrar exactamente lo que buscas.

En la próxima lección, "Instalar y configurar Kali Linux en un entorno de virtualización", darás un paso gigante en la preparación de tu laboratorio. Instalarás el sistema operativo de pentesting por excelencia, que viene pre-cargado con cientos de herramientas y está optimizado para las tareas que comenzarás a realizar.