← Todas las guías
ExplotaciónReferencia + prácticaPrincipiante42 min

Linux para pentesting: los 30 comandos que realmente necesitas

Aprende un repertorio compacto de 30 comandos Linux para orientarte, inspeccionar archivos, filtrar texto, observar procesos y red, y conservar evidencia verificable en un laboratorio autorizado.

1. Un flujo pequeño vale más que cien comandos memorizados

La terminal es una composición: orientarte, inspeccionar, filtrar, registrar y verificar. El carácter | conecta la salida estándar de un programa con la entrada del siguiente. Las comillas protegen espacios o patrones frente a la shell. Esos operadores forman parte de la shell y no cuentan como comandos adicionales.

Dato

La línea o valor que el sistema devolvió: una ruta, un PID, una dirección o un código de estado.

Inferencia

La explicación provisional. Un puerto en escucha no demuestra exposición desde Internet.

Evidencia

Dato conservado con contexto, ruta de origen, hora, permisos y una huella verificable.

Criterio de parada

Permiso denegado, objetivo fuera de alcance o efecto inesperado: no eleves privilegios por reflejo.

Preparación

Los ejemplos usan GNU/Linux y están pensados para Kali, Debian o Ubuntu actuales. Crea una instantánea de la VM. Si falta alguna utilidad, instala los paquetes desde los repositorios firmados de tu distribución. Los gestores siguientes preparan el entorno y no forman parte de los 30 comandos.

Kali · Debian · Ubuntu
sudo apt updatesudo apt install -y man-db less file findutils grep coreutils procps iproute2 iputils-ping dnsutils curl
Fedora
sudo dnf install -y man-db less file findutils grep coreutils procps-ng iproute iputils bind-utils curl
Arch Linux
sudo pacman -S --needed man-db man-pages less file findutils grep coreutils procps-ng iproute2 iputils bind curl

Las opciones largas que aparecen en la guía son propias de las implementaciones GNU o de los proyectos indicados. En BusyBox, macOS u otros Unix pueden cambiar: consulta man en ese sistema.

2. Contexto y archivos: comandos 01-10

Empieza siempre por responder «¿dónde estoy?» y «¿qué voy a tocar?». Esta decena reduce los errores de ruta y evita tratar una extensión, una fecha o un permiso como verdad absoluta.

  1. pwd

    Confirma el directorio de trabajo antes de leer, copiar o borrar nada.

    Comando 01
    pwd

    Cómo leerlo: La salida debe ser una ruta absoluta, por ejemplo /home/analista/cubix-lab.

  2. ls

    Lista contenido y, con -la, muestra ocultos, permisos, propietario, tamaño y fecha.

    Comando 02
    ls -la --time-style=long-iso ~/cubix-lab

    Cómo leerlo: La primera columna son permisos; las entradas que empiezan por punto están ocultas.

  3. mkdir

    Crea el espacio de trabajo sin fallar si los directorios padre aún no existen.

    Comando 03
    mkdir -p ~/cubix-lab/evidencia

    Cómo leerlo: No muestra salida cuando tiene éxito; ls -ld ~/cubix-lab/evidencia lo confirma.

  4. cd

    Cambia el contexto de la shell a una ruta conocida.

    Comando 04
    cd ~/cubix-lab

    Cómo leerlo: Tampoco imprime al acertar: ejecuta pwd después para verificar el destino.

  5. cp

    Trabaja sobre una copia y conserva las marcas de tiempo cuando son parte de la evidencia.

    Comando 05
    cp --preserve=timestamps /etc/os-release ~/cubix-lab/evidencia/sistema.txt

    Cómo leerlo: El archivo de destino debe existir y mantener las fechas del original.

  6. mv

    Mueve o renombra; --no-clobber evita reemplazar un destino existente.

    Comando 06
    mv --no-clobber ~/cubix-lab/evidencia/sistema.txt ~/cubix-lab/evidencia/sistema-base.txt

    Cómo leerlo: El nombre anterior desaparece y el nuevo aparece; si ya existía, no se sobrescribe.

  7. rm

    Elimina un archivo explícito; -i obliga a confirmar la decisión.

    Comando 07
    rm -i ~/cubix-lab/evidencia/copia-temporal.txt

    Cómo leerlo: Responde y solo continúa si la ruta mostrada es exactamente la copia desechable.

    Precaución: No uses rm -rf, comodines ni rutas construidas con variables mientras aprendes. La papelera no interviene.

  8. find

    Localiza archivos por ruta, tipo, nombre y tiempo sin depender de un índice previo.

    Comando 08
    find /var/log -maxdepth 2 -type f -name '*.log' -mtime -1

    Cómo leerlo: Cada línea es una coincidencia modificada en el último día; «Permission denied» es un límite, no un hallazgo.

  9. file

    Estima el tipo por el contenido en vez de confiar en la extensión.

    Comando 09
    file ~/cubix-lab/evidencia/sistema-base.txt

    Cómo leerlo: Esperas texto ASCII o Unicode; «data» solo significa que no reconoció un formato más específico.

  10. stat

    Obtiene tamaño, permisos y marcas de tiempo precisas de un artefacto.

    Comando 10
    stat --format='%n | %s bytes | %y | %a' ~/cubix-lab/evidencia/sistema-base.txt

    Cómo leerlo: Lee nombre, tamaño, modificación y modo; una fecha por sí sola no demuestra quién cambió el archivo.

3. Leer, reducir y conservar texto: comandos 11-20

Un análisis útil rara vez consiste en volcar todo. Primero conserva la fuente; después toma una muestra, filtra, ordena, cuenta y guarda el resultado. Cada tubería debe poder explicarse de izquierda a derecha.

  1. cat

    Muestra archivos pequeños completos y resulta útil al encadenar salida hacia otra herramienta.

    Comando 11
    cat /etc/os-release

    Cómo leerlo: NAME, VERSION y otros pares clave-valor describen la distribución, no necesariamente el kernel.

  2. less

    Recorre texto grande sin cargarlo entero en una pantalla ni modificarlo.

    Comando 12
    less /etc/services

    Cómo leerlo: Usa /ssh para buscar, n para la siguiente coincidencia y q para salir.

  3. head

    Toma una muestra del comienzo de un archivo o flujo.

    Comando 13
    head -n 20 /etc/services

    Cómo leerlo: Verás como máximo veinte líneas; no infieras el contenido del resto a partir de esa muestra.

  4. tail

    Muestra el final, donde suelen aparecer los eventos más recientes de un registro cronológico.

    Comando 14
    tail -n 20 /etc/services

    Cómo leerlo: Son las últimas veinte líneas del archivo, no necesariamente los últimos veinte eventos temporales.

  5. grep

    Filtra líneas con un patrón y añade el número de línea para volver a la fuente.

    Comando 15
    grep -nE '^ssh[[:space:]]' /etc/services

    Cómo leerlo: Una coincidencia confirma texto, no que el servicio SSH esté activo; para eso usarás ss.

  6. sort

    Ordena líneas para comparar datos y preparar una deduplicación fiable.

    Comando 16
    grep -Ev '^(#|$)' /etc/services | sort

    Cómo leerlo: La salida está ordenada según la configuración regional; aún puede contener duplicados.

  7. uniq

    Agrupa líneas adyacentes repetidas; por eso normalmente recibe antes la salida de sort.

    Comando 17
    grep -Ev '^(#|$)' /etc/services | sort | uniq -c

    Cómo leerlo: El número inicial indica repeticiones consecutivas, no frecuencia si omitiste ordenar.

  8. wc

    Cuenta líneas para medir un conjunto y detectar cambios rápidos entre capturas.

    Comando 18
    grep -Ev '^(#|$)' /etc/services | wc -l

    Cómo leerlo: Obtienes un total, no el detalle; conserva también la fuente si el número servirá como evidencia.

  9. tee

    Muestra un resultado y lo guarda a la vez, evitando perder contexto durante la sesión.

    Comando 19
    ip -brief address | tee ~/cubix-lab/evidencia/red.txt

    Cómo leerlo: La misma salida aparece en pantalla y en red.txt; sin -a, un archivo existente se reemplaza.

  10. sha256sum

    Calcula una huella para comprobar después si un artefacto cambió.

    Comando 20
    sha256sum ~/cubix-lab/evidencia/red.txt

    Cómo leerlo: El hash identifica ese contenido concreto; no prueba por sí solo su origen ni su veracidad.

4. Identidad y procesos: comandos 21-24

Antes de interpretar procesos, confirma tu identidad efectiva. Los listados son fotografías: cambian mientras los observas y necesitan contexto temporal. Aquí no se mata, migra ni modifica ningún proceso.

  1. id

    Aclara con qué usuario, UID, grupo primario y grupos suplementarios estás operando.

    Comando 21
    id

    Cómo leerlo: Compara uid, gid y groups con el alcance concedido; pertenecer a un grupo puede ampliar acceso.

  2. chmod

    Reduce quién puede leer o escribir un archivo de evidencia.

    Comando 22
    chmod 600 ~/cubix-lab/evidencia/red.txt

    Cómo leerlo: El propietario conserva lectura y escritura; grupo y resto quedan sin permisos.

    Precaución: Anota el modo anterior con stat. Si era correcto y necesitas restaurarlo, aplica explícitamente ese modo, no uno supuesto.

  3. ps

    Toma una fotografía de procesos y los ordena por consumo de CPU.

    Comando 23
    ps aux --sort=-%cpu

    Cómo leerlo: PID identifica el proceso; %CPU es una medición contextual y un valor alto aislado no demuestra actividad maliciosa.

  4. pgrep

    Busca procesos por nombre y muestra PID junto a la línea de ejecución.

    Comando 24
    pgrep -a ssh

    Cómo leerlo: Sin salida suele significar que no encontró coincidencias; comprueba el nombre antes de concluir que no existe.

5. Red y ayuda autónoma: comandos 25-30

Separa configuración local, sockets, conectividad, DNS y aplicación. Que una capa funcione no confirma las siguientes. example.com es un dominio reservado para documentación; en un laboratorio aislado, sustitúyelo por el nombre o la IP privada autorizada.

  1. ip

    Resume interfaces y direcciones con la herramienta mantenida de iproute2.

    Comando 25
    ip -brief address

    Cómo leerlo: UP describe estado de la interfaz; una dirección asignada no garantiza conectividad con otro host.

  2. ss

    Enumera sockets en escucha y separa TCP, UDP, direcciones y puertos numéricos.

    Comando 26
    ss -lntup

    Cómo leerlo: Local Address:Port indica dónde escucha; los datos de proceso pueden faltar sin permisos suficientes.

  3. ping

    Comprueba localmente el intercambio ICMP y mide pérdida y tiempo de ida y vuelta.

    Comando 27
    ping -c 4 127.0.0.1

    Cómo leerlo: Cuatro respuestas y 0% de pérdida validan la pila local; un host remoto puede bloquear ICMP y seguir disponible.

  4. dig

    Consulta DNS y permite separar la respuesta del resolvedor de otras capas de red.

    Comando 28
    dig example.com A +noall +answer

    Cómo leerlo: ANSWER muestra registros recibidos; ausencia de respuesta requiere revisar estado, servidor consultado y conectividad.

  5. curl

    Realiza una solicitud controlada y, con --head, inspecciona solo las cabeceras HTTP.

    Comando 29
    curl --fail --silent --show-error --head https://example.com/

    Cómo leerlo: La primera línea contiene el estado HTTP; --fail hace que errores 400 o superiores produzcan un fallo detectable.

  6. man

    Convierte la propia máquina en la referencia principal de la versión instalada.

    Comando 30
    man ss

    Cómo leerlo: Busca con /LISTEN, avanza con n y sal con q; SYNOPSIS separa opciones de argumentos.

6. Ejercicio final: inventario mínimo y verificable

Ejecuta este bloque en la VM. Produce cuatro archivos dentro de ~/cubix-lab/evidencia: identidad, red, sockets y hashes. No necesita sudo; si una asociación de proceso no aparece en ss, regístralo como límite en vez de ampliar privilegios.

VM Linux · artefacto final
mkdir -p ~/cubix-lab/evidenciaid | tee ~/cubix-lab/evidencia/identidad.txtip -brief address | tee ~/cubix-lab/evidencia/red.txtss -lntup | tee ~/cubix-lab/evidencia/escucha.txtsha256sum ~/cubix-lab/evidencia/identidad.txt ~/cubix-lab/evidencia/red.txt ~/cubix-lab/evidencia/escucha.txt | tee ~/cubix-lab/evidencia/hashes.sha256sha256sum --check ~/cubix-lab/evidencia/hashes.sha256

El cierre correcto muestra OK para los tres archivos. Abre cada uno con less y escribe tres conclusiones separadas: qué observaste, qué infieres y qué dato falta para confirmarlo. Si repites la captura, un hash distinto indica contenido distinto; no explica la causa del cambio.

7. Errores habituales, recuperación y checklist

Copiar sin mirar la ruta

Ejecuta pwd y ls antes de cp, mv o rm. Prefiere rutas completas en cualquier acción que cambie archivos.

Ocultar todos los errores

No envíes stderr a /dev/null por costumbre: «Permission denied» y «No such file» explican el límite.

Confundir silencio con éxito

Muchos comandos no imprimen al acertar. Verifica la ruta, el modo o el archivo producido.

Tratar salida como veredicto

Correlaciona proceso, socket y solicitud. Una coincidencia de texto rara vez basta para un hallazgo.

  • Puedo explicar qué consulta o cambia cada uno de los 30 comandos.
  • Sé salir de less y man con q y detener ping continuo con Ctrl+C.
  • No he usado sudo para saltar un límite de alcance.
  • He conservado identidad.txt, red.txt, escucha.txt y hashes.sha256.
  • Los tres archivos pasan sha256sum --check sin modificaciones posteriores.
  • Mis conclusiones separan observación, inferencia y dato pendiente.

Glosario

Ruta absoluta

Ruta que empieza en la raíz / y localiza un objeto sin depender del directorio actual.

Salida estándar (stdout)

Canal principal por el que un programa entrega sus resultados normales.

Error estándar (stderr)

Canal separado que un programa usa para avisos y errores de ejecución.

Tubería (pipe)

Operador | de la shell que conecta la salida de un proceso con la entrada del siguiente.

PID

Identificador numérico que Linux asigna a un proceso mientras existe.

Socket

Extremo de comunicación asociado a un protocolo, una dirección y, cuando procede, un puerto.

Proceso en escucha

Proceso con un socket preparado para aceptar tráfico entrante en una dirección y puerto.

Hash SHA-256

Huella de 256 bits usada para detectar si el contenido de un archivo ha cambiado.

Ver más guías
Linux para pentesting: los 30 comandos que realmente necesitas | Cubix Academia