Skip to main content

Welcome to a Grasp lesson

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

Lesson 1

Gestión de Archivos en Linux: Línea de Comandos

Recommended resources

¡Hola! Bienvenido a tu primera lección. Este es el punto de partida en tu camino para convertirte en un profesional del pentesting.

Hoy nos centraremos en una de las habilidades más fundamentales para cualquier hacker: el dominio de la línea de comandos de Linux. Para un pentester, la terminal no es solo una herramienta, es el entorno de trabajo principal. Desde aquí ejecutarás herramientas, analizarás sistemas, gestionarás archivos y te moverás a través de redes comprometidas.

En esta lección, aprenderás a navegar por el sistema de archivos de Linux y a gestionar archivos y directorios. Dominar estos comandos te dará la fluidez necesaria para operar de manera eficiente y sentará las bases para las tareas más complejas que abordaremos más adelante en el curso.

Entendiendo el Entorno de la Terminal

Antes de empezar a teclear comandos, es importante entender dónde estamos trabajando. Cuando abres una ventana de terminal, estás interactuando con un shell. El shell es un programa que interpreta tus comandos y le pide al núcleo del sistema operativo (el "kernel" de Linux) que los ejecute. Hay varios tipos de shells, como Bash (el más común), Zsh o Fish, pero todos comparten una base de comandos similar.

La Estructura de Archivos de Linux

A diferencia de Windows que utiliza letras de unidad (C:, D:), los sistemas operativos basados en UNIX como Linux organizan todo en una única estructura de árbol invertido. El punto de partida de este árbol es el directorio raíz, representado por una barra inclinada: /.

Para entender mejor esta estructura, puedes ver el siguiente video, que explica cómo se organizan los directorios en Linux.

LINUX BASICO PARA HACKERS | COMANDOS INDISPENSABLES

El video "LINUX BASICO PARA HACKERS" del canal SEGURIDAD CERO ofrece una buena introducción a la estructura de archivos.

Presta atención a la explicación sobre la estructura del sistema, donde se visualiza el sistema de archivos como un árbol con su raíz (/) y sus diferentes ramas (directorios).

A continuación, tienes una imagen que resume los directorios más comunes y su propósito. Como pentester, te familiarizarás rápidamente con directorios como /etc (archivos de configuración), /home (directorios de usuario), /tmp (archivos temporales) y /var (archivos variables como logs).

Esta imagen muestra los directorios estándar en un sistema Linux y una breve descripción de su función. Familiarizarte con ellos te ayudará a orientarte rápidamente en cualquier sistema.

Navegación Esencial: Moviéndote por el Sistema

Ahora que tienes una idea de la estructura, empecemos a movernos. Los siguientes tres comandos son la base de la navegación en la terminal.

  1. pwd (Print Working Directory): Te dice en qué directorio te encuentras actualmente. Es tu "Usted está aquí" en el mapa del sistema de archivos.
  2. ls (List): Muestra el contenido del directorio actual (archivos y otras carpetas).
  3. cd (Change Directory): Te permite moverte a otros directorios.

El siguiente video demuestra estos comandos en acción. Observa cómo el presentador los combina para explorar el sistema.

Comandos LINUX Para Navegar entre Directorios desde la Terminal 👨‍💻📁

El video "Comandos LINUX Para Navegar entre Directorios" del canal Contando Bits es muy práctico para ver estos comandos en uso.

Concéntrate en las siguientes partes: pwd y cd: Observa cómo se usan para saber dónde estás y para cambiar de directorio, incluyendo el uso de .. para subir de nivel y de rutas absolutas. ls y sus opciones: Presta atención a cómo se usa ls para listar el contenido y, muy importante, cómo las opciones -l y -a cambian la salida para mostrar más detalles y archivos ocultos. Un truco que verás es el autocompletado con la tecla Tab. Es una de las funciones más útiles de la terminal para ahorrar tiempo y evitar errores de tipeo. Úsala siempre.

El Poder de la Documentación: man y --help

No necesitas memorizar cada opción de cada comando. Linux incluye su propia documentación.

  • comando --help: Muestra una ayuda rápida.
  • man comando: Muestra el manual completo (página "man") del comando. Usa las flechas para navegar y presiona q para salir.

Acostúmbrate a consultar los manuales. Es una habilidad crucial que te permitirá aprender y utilizar cualquier herramienta de forma autónoma.


Gestión de Archivos y Directorios

Una vez que sabes moverte, el siguiente paso es interactuar con los archivos y directorios. Esto es esencial en pentesting para crear directorios donde guardar la información recolectada ("loot"), copiar archivos de configuración sensibles o crear scripts.

Para esta sección, te recomiendo leer un extracto de "El Manual de Comandos de Linux" de freeCodeCamp. Cubre de manera clara los comandos que necesitas.

El Manual de Comandos de Linux

Este manual es una excelente referencia. Nos centraremos en los comandos para gestionar el sistema de archivos.

Lee las siguientes secciones para aprender los comandos fundamentales: Navegación y Listado: ls: Para listar archivos y entender las opciones -a y -l. cd: Para cambiar de directorio, usando rutas relativas (..) y absolutas (/). pwd: Para confirmar tu ubicación actual. Creación y Eliminación: mkdir: Para crear directorios, incluyendo la útil opción -p para crear directorios anidados. rmdir: Para eliminar directorios vacíos. rm: El comando para eliminar archivos y, con la opción -r (recursivo), directorios no vacíos. ¡Mucho cuidado con rm -rf! Este comando borra todo sin pedir confirmación y no hay papelera de reciclaje en la línea de comandos. Un error puede ser destructivo. Manipulación: mv: Para mover y renombrar archivos y directorios. cp: Para copiar archivos y directorios (usando la opción -r). touch: Para crear archivos vacíos o actualizar su fecha de modificación. Búsqueda: find: Para buscar archivos y directorios. Es una herramienta muy potente. Por ejemplo, find /etc -name "shadow" buscaría el archivo "shadow" dentro del directorio /etc.


✏️ Ejercicio Práctico

La mejor forma de asimilar estos comandos es usándolos. Vamos a simular una situación común en un pentest.

Objetivo: Crear una estructura de directorios para organizar los hallazgos de una auditoría ficticia.

Abre tu terminal y sigue estos pasos:

  1. Verifica tu ubicación: Primero, asegúrate de que estás en tu directorio personal. Ejecuta pwd. Debería mostrar algo como /home/tu_usuario. Si no es así, ejecuta cd ~ para ir allí.

  2. Crea la estructura del proyecto: Imagina que vas a auditar "CorpX". Crea una estructura de directorios para organizar tu trabajo.

    mkdir -p CorpX/loot/creds
    mkdir CorpX/scripts
    mkdir CorpX/report
    

    El comando mkdir -p es útil porque crea los directorios padres (CorpX y loot) si no existen.

  3. Navega y verifica: Muévete dentro de tu nueva estructura y verifica que todo se creó correctamente.

    cd CorpX
    ls -R
    

    El comando ls -R lista el contenido de forma recursiva, mostrando el árbol de directorios completo.

  4. Crea archivos de notas: Vamos a crear algunos archivos para guardar información.

    touch loot/notes.txt
    touch loot/creds/passwords.txt
    echo "192.168.1.10" > loot/targets.txt
    

    Aquí usamos touch para crear archivos vacíos y echo con el operador > para crear un archivo con contenido.

  5. Organiza tus archivos: Supongamos que notes.txt debería estar en la carpeta principal del proyecto, no en loot.

    mv loot/notes.txt .
    

    Recuerda que . es una referencia al directorio actual. Ahora, haz una copia de seguridad de tus objetivos.

    cp loot/targets.txt loot/targets.bak
    
  6. Limpia el entorno: Una vez terminado el "trabajo", elimina toda la estructura.

    cd ~ 
    rm -r CorpX
    

    Nos movemos primero a nuestro directorio home (~) para no estar dentro de la carpeta que queremos borrar. Luego, usamos rm -r para eliminar el directorio CorpX y todo su contenido.


Conclusión

¡Felicidades por completar tu primera lección! Hoy has aprendido a manejar la línea de comandos de Linux, una habilidad indispensable para el pentesting.

Puntos clave:

  • El shell es tu interfaz para comunicarte con el sistema operativo.
  • El sistema de archivos de Linux es una jerarquía que comienza en la raíz (/).
  • Los comandos de navegación básicos son pwd, ls y cd.
  • Para la gestión de archivos, dominas mkdir, touch, cp, mv y rm.
  • Siempre debes ser extremadamente cuidadoso con el comando rm, especialmente con las opciones -r y -f.
  • Puedes usar man y --help para aprender sobre cualquier comando por tu cuenta.

En la próxima lección, "Configurar permisos y propietarios de archivos usando chmod y chown", daremos el siguiente paso lógico. Ahora que puedes crear y gestionar archivos, aprenderás a controlar quién puede leerlos, escribirlos o ejecutarlos. Entender los permisos es crucial, ya que las configuraciones incorrectas son una de las vulnerabilidades más comunes que explotarás como pentester.