Bienvenidos a este capítulo de este Curso de Linux para Hackers – Sintaxis de comandos. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis.

Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.

En esta guía veremos desde cero un tema tan amplio como es Linux y lo haremos desde el punto de vista del hacking y la ciberseguridad.

Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Lo que aprenderás en este artículo:

  1. Qué es un comando en Linux y su función en la CLI.
  2. Comando ls y sus opciones más comunes.
  3. Sintaxis de comandos en Linux.
  4. Uso de argumentos y opciones en los comandos.
  5. Alias de Bash y su utilidad.
  6. Funciones Bash y su estructura.
  7. Importancia de la sintaxis de comandos para hackers.
  8. Ejemplos de automatización, control remoto y manipulación del sistema usando comandos.

Sintaxis de comandos básicos

Este módulo se ocupa exclusivamente de la CLI o interfaz de línea de comandos, en lugar de la GUI o interfaz gráfica de usuario con la que quizás esté más familiarizado. El terminal CLI es una poderosa herramienta y a menudo es el método principal utilizado para administrar dispositivos pequeños de bajo consumo, servidores de computación de gran capacidad en la nube, y mucho más. Una comprensión básica del terminal es esencial para diagnosticar y reparar la mayoría de los sistemas basados en Linux. Puesto que Linux se ha vuelto tan omnipresente, incluso aquellos que planean trabajar con sistemas que no utilizan el núcleo Linux pueden beneficiarse de tener una comprensión básica del terminal.

La sintaxis de comandos en Linux es una herramienta esencial para cualquier usuario avanzado, administrador de sistemas o hacker. Dominar la línea de comandos permite interactuar de manera directa y eficiente con el sistema operativo, ya que Linux se diseñó originalmente para ser controlado a través de ella. Para los hackers, comprender y dominar la sintaxis de comandos es una habilidad fundamental, pues les otorga un control preciso sobre el sistema y la capacidad de ejecutar tareas complejas de forma rápida. Este artículo analiza a fondo la sintaxis de comandos en Linux, su estructura, y por qué es crucial para quienes buscan explotar vulnerabilidades en sistemas de manera eficiente.

¿Qué es un comando?

Un comando es un programa de software que, cuando se ejecuta en la CLI (interfaz de línea de comandos), realiza una acción en el sistema. Cuando escribe un comando, el sistema operativo ejecuta un proceso para leer su entrada, manipular datos y producir resultados. Un comando ejecuta un proceso en el sistema operativo, que luego hace que realice una tarea determinada.

Para ejecutar un comando, el primer paso es escribir el nombre del comando. Haga clic en el terminal de la derecha. Escriba ls y pulse Enter. Obtendrá un resultado parecido al del siguiente ejemplo:

Comando ls de Linux

El comando ls es el comando de lista en Linux. Mostrará la lista completa o el contenido de su directorio. Simplemente escriba ls y presione la tecla Enter. Se mostrará todo el contenido.

ls es un comando que se utiliza para listar directorios y archivos de ordenador en sistemas operativos Unix y similares a Unix.

Comportamiento

Los sistemas operativos Unix y similares gestionan la idea de un directorio de trabajo. ls enumera varios archivos dentro del directorio de trabajo cuando se utiliza sin argumentos. En ese directorio, se enumeran los archivos si se menciona un directorio. Los argumentos pueden incluir directorios y archivos.

Los nombres que comienzan con el símbolo “.” están ocultos. El directorio “.” se conoce como el directorio de trabajo y el símbolo “..” se conoce como el directorio principal. De forma predeterminada, se muestran. Todos los archivos se muestran utilizando -a. Los nombres de archivo especificados explícitamente siempre se muestran.

ls solo muestra nombres sin opciones. Se pueden combinar varias opciones. Las opciones básicas son:

  • -h: muestra los tamaños de los resultados en un formato legible para humanos (por ejemplo, 2G 234M, 1K, etc.).
  • -l: Significa formato largo. Muestra los tipos de archivos Unix, la cantidad de enlaces físicos, los permisos, el grupo, el propietario, el nombre y la fecha y hora de la última modificación, y el tamaño. Si la fecha de modificación es anterior a seis meses, la hora se sustituye por el año. Algunas implementaciones agregan indicadores adicionales a los permisos.

Es posible mostrar distintos elementos con distintos tipos de colores. Es un área en la que las implementaciones difieren:

  • FreeBSD ls aplica la opción -G. Inspecciona únicamente el tipo y los permisos de los archivos Unix y utiliza la base de datos termcap.
  • GNU ls aplica la opción –color. Inspecciona la extensión, el permiso y el tipo de archivo de Unix y utiliza su base de datos para administrar los colores controlados mediante dircolors.

Ejemplo:

 ls

A continuación, puede ver que, después de ingresar el comando ls, obtuvimos la lista completa de contenido del directorio home/laprovittera/Escritorio

Para ejecutar un comando, el primer paso es escribir el nombre del comando. En la terminal escriba ls y pulse Enter. Obtendrá un resultado parecido al del siguiente ejemplo:

Generalmente, el nombre del comando se basa en la tarea que hace o en lo que el programador que creó el comando cree que mejor describe la función del comando. Por ejemplo, el comando ls muestra una lista de información sobre archivos. Asociar el nombre del comando con algo mnemotécnico sobre lo que hace puede ayudarle a recordar los comandos más fácilmente.

Generalmente, los comandos distinguen entre mayúsculas y minúsculas. Por ejemplo LS es incorrecto y generará un mensaje de error, pero ls es correcto y se ejecutará normalmente.

La mayoría de los comandos siguen un patrón de sintaxis simple:

comando [opciones…] [argumentos…]

En otras palabras, escriba un comando, seguido de las opciones y/o argumentos antes de presionar la tecla Enter. Generalmente, las opciones (options) alteran el comportamiento del comando y los argumentos (arguments) son elementos o valores sobre los que debe actuar el comando. Aunque hay algunos comandos en Linux que no son completamente consistentes con estas normas de sintaxis, la mayoría de los comandos usan esta sintaxis o alguna similar.

En el ejemplo anterior, el comando ls se ejecutó sin opciones ni argumentos. Cuando este es el caso, su comportamiento predeterminado es el de devolver una lista de los archivos contenidos en el directorio actual.

¿Qué es la Sintaxis de Comandos en Linux?

La sintaxis de comandos en Linux se refiere al formato y las reglas que definen cómo los comandos deben ser escritos e interpretados por el sistema. En su forma más simple, un comando en Linux sigue la estructura básica:

comando [opciones…] [argumentos…]

  • Comando: El programa o acción que quieres ejecutar.
  • Opciones: Modifican el comportamiento del comando. Suelen empezar con un guion (-) o doble guion (–).
  • Argumentos: Los archivos, directorios o datos sobre los cuales opera el comando.

Por ejemplo, el comando básico ls se utiliza para listar el contenido de un directorio. Al agregar opciones y argumentos, se puede modificar su comportamiento:

Argumentos

Un argumento (argument) se puede usar para especificar algo sobre lo que el comando debe actuar. Si al comando ls se le da el nombre de un directorio como argumento, obtendremos como resultado una lista del contenido de ese directorio. En el siguiente ejemplo, el directorio Desktop se utilizará como argumento:

En este caso:

  • ls es el comando para listar archivos.
  • -la son las opciones, donde l indica el formato largo (con más detalles) y a incluye archivos ocultos.
  • /home/carlos es el argumento que especifica el directorio a listar.

Opciones

comando [opciones…] [argumentos…]

Las opciones (options) se pueden utilizar para modificar el comportamiento de un comando. En el ejemplo anterior, el comando ls se utilizó para enumerar el contenido de un directorio. En el ejemplo siguiente, la opción -l se agrega al comando ls para obtener un resultado de “pantalla larga”, y proporcionar más información sobre cada uno de los archivos enumerados:

Tenga en cuenta que, en el comando anterior, -l es la letra “L” minúscula.

A menudo, el carácter elegido para el comando es mnemotécnico de su propósito en inglés. Por ejemplo, la letra l para indicar largo (long) o r para invertir (reverse en inglés). De forma predeterminada, el comando ls imprime los resultados en orden alfabético, al agregar la opción -r se imprimirán los resultados en orden alfabético inverso.

Se pueden usar varias opciones a la vez, ya sea como opciones separadas como en -l -r o combinadas como -lr . El resultado de los siguientes ejemplos sería el mismo:

ls -l -r
ls -rl
ls -lr

Como se ha explicado anteriormente, -l proporciona un formato de listado largo y -r invierte el listado. El resultado de usar ambas opciones será un listado largo en orden alfabético inverso:

Los comandos pueden utilizar muchas combinaciones de opciones y argumentos. Las posibilidades para cada comando serán únicas.

Lista de Colores

Hay muchos tipos de archivos en Linux.  Este es un breve resumen de algunos de los tipos de archivo más comunes:

TipoDescripción
plain file (archivo simple)Un archivo que no es un tipo de archivo especial; también se llama un archivo normal
directory (directorio)Un directorio de archivos (contiene otros archivos)
executable (ejecutable)Un archivo que se puede ejecutar como un programa
symbolic linkUn archivo que apunta a otro archivo (enlace simbólico)

En muchas distribuciones de Linux, las cuentas de usuario regulares son modificadas de tal manera que el comando ls muestre los nombres de archivo, codificados por colores según el tipo de archivo. Por ejemplo, los directorios pueden aparecer en azul, archivos ejecutables pueden verse en verde, y enlaces simbólicos pueden ser visualizados en cian (azul claro).

Esto no es un comportamiento normal para el comando ls, sino algo que sucede cuando se utiliza la opción –color para el comando ls. La razón por la que el comando ls parece realizar automáticamente estos colores, es que hay un alias para el comando ls para que se ejecute con la opción –color:

Cuando se ejecuta el comando ls, en realidad se ejecuta el comando ls –color=auto. En algunos casos, puede que no quieras ver todos los colores. Para evitar el uso de los alias, coloca un carácter de barra invertida \ antes de tu comando:

Bash alias

Si deseamos crear alias de bash para nuestro usuario, debemos hacerlo en el archivo ~/.bashrc (la virgulilla significa ‘nuestro home’). El archivo comienza por un punto ‘.’ lo que le hace oculto. Para mostrar los archivos ocultos con ls debemos añadir la opción -a. Si deseamos crear alias de bash para todos los usuarios, debemos hacerlo como root en el archivo /etc/bash.bashrc

La mayoría de los comandos que utilizamos al utilizar la interfaz de línea de comandos son habituales y la gente puede ejecutarlos de la misma forma todos los días. Sin embargo, tenemos una opción en Bash para crear nuestros propios atajos con la ayuda de alias, lo que eliminará la escritura innecesaria mediante el uso de nombres abreviados.

Bash Alias ​​se utiliza para establecer un comando de acceso directo para un comando más largo. El comando alias nos permite ejecutar cualquier comando o establecer comandos utilizando una sola palabra. Por ejemplo, podemos establecer el comando ‘cc’ como un acceso directo para el comando ‘clear’. Usar ‘cc + enter’ es comparativamente mucho más rápido que escribir el comando ‘clear’.

El alias generalmente se declara dentro del archivo ~/.bash_profile o ~/.bashrc .

” Los archivos .bash_profile y .bashrc se denominan archivos de configuración para el shell bash. Todas las configuraciones de bash, como todas las sesiones de terminal, la configuración que comprende las variables de entorno, el directorio predeterminado, el color, el tema bash, etc., se almacenan en el archivo de configuración. El nombre del archivo de configuración suele ser “.bashrc” para las sesiones de terminal y ” .bash_profile ” para los shells de inicio de sesión”.

Estructura de alias de Bash

Un alias bash contiene la siguiente estructura:

alias [alias_nombre]=”[comando_a_alias]”  

Un nuevo alias se define en una nueva línea con la palabra clave ‘ alias ‘. Necesitamos definir el comando de acceso directo que queremos usar con el nombre del alias, seguido de un signo igual. Luego, escribimos el comando completo que queremos ejecutar dentro de las comillas. No debe haber espacio entre los elementos vecinos y el signo igual. Es importante recordar esto; de lo contrario, el comando no funcionará.

Crear un alias de Bash

Crear alias en bash es muy sencillo. Podemos declarar los alias en la línea de comandos siguiendo la estructura que se muestra arriba.

Comencemos ahora con un alias bash simple. Uno de los comandos más utilizados que muchas personas usan para obtener la lista de todos los archivos y directorios, incluidos los archivos ocultos, es ” ls -la “. Podemos crear un acceso directo ” ll ” para realizar una acción de ” ls -la ” escribiendo el siguiente comando en una terminal:

alias  ll = “ls -la”  

Ahora, si escribimos el alias ” ll ” en una terminal, recibiremos el listado de todos los archivos y directorios en un formato largo similar al comando ” ls -la “.

Nota: Cabe señalar que si configuramos los alias a través de una terminal de esta manera, los alias solo estarán disponibles para la sesión de shell actual. Cuando abramos una nueva ventana de terminal, los alias no estarán disponibles.

Si queremos que los alias definidos sean persistentes, tenemos que añadirlos a uno de los archivos que se leen cuando se inicia una sesión de shell. Las opciones más comunes son ~/.bash_profile o ~/.bashrc , como hemos mencionado anteriormente. Debemos abrir cualquiera de estos archivos y añadir los alias allí.

Es una buena práctica asignar nombres a los alias que sean fáciles de recordar. También se recomienda agregar un comentario que declare una función completa relacionada con los alias de bash para referencia futura.

Si queremos que nuestro archivo .bashrc sea más modular, podemos colocar los alias en un archivo aparte, es decir, ~/.bash_aliases . Debemos asegurarnos de que el código aparezca en el archivo ~/.bashrc :

if [ -e $HOME/.bash_aliases ]; then  
source $HOME/.bash_aliases 
fi

Eliminar/Borrar un alias de Bash

Para eliminar el alias, debemos utilizar la siguiente estructura:

unalias [alias_name]=”[comando_a_alias]”  

Para eliminar el alias “ll” que hemos creado anteriormente, podemos utilizar el comando unalias:

unalias ll  

Lista de alias de Bash

Podemos enumerar todos los alias configurados utilizando el comando ” alias ” en una terminal sin ningún argumento:

alias  

Se verá así:

Alias ​​de Bash con argumentos (funciones de Bash)

En algunos casos, es posible que necesitemos alias que acepten uno o más argumentos. En tales casos, las funciones bash resultan útiles.

A continuación se muestra la sintaxis para crear funciones bash. Se puede declarar en dos formatos diferentes:

function_name  () {  
    [commands]  
}  

O 

function function_name {  
    [commands] 
}

Para pasar cualquier cantidad de argumentos a la función bash, podemos simplemente colocarlos justo después del nombre de la función separados por un espacio. Los parámetros pasados ​​pueden ser $1, $2, $3, etc. Generalmente depende de la posición correspondiente del parámetro después del nombre de la función. La variable $0 se mantiene reservada para el nombre de la función.

Ahora, vamos a crear una función bash simple, que creará un directorio y luego navegará hacia él sin usar los comandos ‘mkdir’ y ‘cd’:

mkcd () 
{  
mkdir -p -- "$1" && cd -p -- "$1"  
}

Al igual que los alias, debemos agregar la función al archivo ~/.bashrc y ejecutar source~/.bash_profile para volver a cargar el archivo. Aquí, el operador AND (&&) garantiza que el segundo comando se ejecute solo si el primero se ejecuta correctamente. Y el signo de doble guión (–) garantiza que no estemos pasando un argumento adicional al comando.

Ahora, podemos crear un nuevo directorio y luego movernos a ese directorio usando el comando:

 mkcd directorio

Por lo tanto, los alias son una excelente alternativa para reducir la cantidad de escritura repetida de comandos largos.

NOTA: Si no sabes programar y no comprendes bien esta parte no te preocupes.

Te recomiendo leer todo este curso una primera vez para familiarizarte con los conceptos y luego iniciarlo nuevamente haciendo las practicas. Veras que es MUCHO más fácil teniendo una vista general de todos los conceptos.

¿Por qué es importante para los hackers?

Los hackers, en su búsqueda por explotar vulnerabilidades, deben tener un control absoluto sobre el sistema que están atacando o defendiendo. Conocer la sintaxis de comandos les permite ejecutar acciones críticas, como modificar archivos, cambiar permisos, monitorear actividad en el sistema y ocultar su presencia. A continuación, veremos algunos de los aspectos más importantes de la sintaxis de comandos en Linux y por qué son esenciales para los hackers.

Control total sobre el sistema

El dominio de la sintaxis de comandos le otorga al hacker un control exhaustivo sobre el sistema operativo. Esto incluye la capacidad de crear, leer, modificar y eliminar archivos, gestionar procesos, controlar el hardware, administrar redes y más. La línea de comandos en Linux es extremadamente poderosa y muchas de las acciones que un hacker necesita realizar no pueden ser ejecutadas fácilmente mediante interfaces gráficas.

Ejemplo: Modificación de permisos de archivos

Un hacker que gana acceso a un sistema puede necesitar modificar los permisos de archivos críticos para evitar ser detectado o para otorgarse a sí mismo mayores privilegios.

chmod777 /var/www/html/archivo.php

Este comando cambia los permisos del archivo archivo.php para que cualquiera pueda leerlo, escribirlo o ejecutarlo. Esta acción puede ser utilizada para modificar archivos de configuración en servidores web, por ejemplo.

Automatización de tareas repetitivas

Los hackers a menudo necesitan ejecutar una serie de comandos repetitivos para analizar o comprometer un sistema. Usando scripts y la línea de comandos, pueden automatizar estas tareas para ahorrar tiempo y reducir la posibilidad de errores humanos.

Ejemplo: Creación de un script simple para escanear puertos

#!/bin/bash
for ip in $(cat ips.txt); do
    echo "Escaneando $ip..."
    nmap -p 22,80,443 $ip
done

Este script toma una lista de IPs desde el archivo ips.txt y ejecuta un escaneo de puertos específicos (22, 80, 443) en cada IP utilizando la herramienta nmap. Los hackers utilizan scripts como este para escanear redes rápidamente y buscar vulnerabilidades.

Manipulación de usuarios y permisos

Una de las principales prioridades de un hacker es obtener y elevar privilegios. Esto puede implicar el uso de comandos para modificar usuarios o permisos dentro del sistema.

Ejemplo: Creación de un nuevo usuario con privilegios root

Si un hacker obtiene acceso de administrador, podría crear un nuevo usuario con permisos de superusuario para mantener acceso persistente al sistema.

sudo useradd -m hacker
sudo passwd hacker
sudo usermod -aG sudo hacker

Este conjunto de comandos:

  • Crea un nuevo usuario llamado hacker.
  • Establece una contraseña para el usuario.
  • Añade al usuario al grupo de sudo, lo que le otorga permisos administrativos.

Explotación de configuraciones del sistema

Muchos sistemas Linux mal configurados pueden ser vulnerables a exploits de escalada de privilegios o a accesos no autorizados. Los hackers utilizan la línea de comandos para explorar y manipular estas configuraciones, ya sea accediendo a archivos de configuración mal protegidos o ejecutando comandos específicos para aprovechar vulnerabilidades conocidas.

Ejemplo: Búsqueda de archivos con permisos indebidos

Un hacker podría buscar archivos con permisos inseguros (como archivos con el bit setuid activo), lo que le permitiría ejecutar comandos con permisos elevados.

find / -perm -4000 2>/dev/null

Este comando busca archivos en todo el sistema que tengan activado el bit setuid. Estos archivos permiten que el usuario que los ejecuta obtenga los permisos del propietario del archivo, lo que puede permitir que un hacker ejecute comandos con permisos de root.

Acceso remoto y control de sistemas

Otra aplicación clave de la sintaxis de comandos en Linux es el acceso y control de sistemas de manera remota. Utilizando comandos como ssh, los hackers pueden acceder a otros sistemas dentro de una red o incluso desde una ubicación remota, lo que les permite comprometer sistemas que no están físicamente cerca.

Ejemplo: Acceso remoto con SSH

Un hacker podría acceder a un servidor de forma remota utilizando SSH, siempre que tenga las credenciales correctas o haya explotado alguna vulnerabilidad para obtenerlas.

ssh usuario@192.168.1.10

Una vez dentro, tiene acceso completo a la línea de comandos del servidor remoto y puede ejecutar comandos de forma tan libre como lo haría localmente. Solo a modo de ejemplo veamos este caso:

Explotación del puerto 22 SSH

Metasploit tiene una función auxiliar que usaremos en el servicio SSH que se ejecuta en el puerto 22. Una vez que obtengamos nuestra sesión a través de él, lo actualizaremos a Meterpreter.

Este módulo probará los inicios de sesión ssh en una variedad de máquinas e informará los inicios de sesión exitosos. Si ha cargado un complemento de base de datos y se ha conectado a una base de datos, este módulo registrará los inicios de sesión y los hosts exitosos para que pueda realizar un seguimiento de su acceso.

Exploración y manipulación de la red

Las capacidades de red de Linux permiten a los hackers explorar redes, identificar dispositivos y servicios activos, y lanzar ataques dirigidos. Herramientas como netstat, ifconfig, ping, y nmap son fundamentales para estos fines, y su uso requiere un buen dominio de la sintaxis de comandos.

Ejemplo: Escaneo de red con nmap

nmap -sP 192.168.1.0/24

Este comando escanea todos los dispositivos activos en la red local 192.168.1.0/24 y puede ayudar a un hacker a identificar los objetivos potenciales dentro de esa red.

Exfiltración y ocultación de datos

Los hackers a menudo necesitan extraer datos sensibles de un sistema comprometido y, al mismo tiempo, ocultar sus huellas. Usando la línea de comandos, pueden hacer que archivos confidenciales sean transferidos a servidores remotos o a unidades de almacenamiento, y luego eliminar registros o modificar archivos para evitar ser detectados.

Ejemplo: Transferencia de archivos con scp

scp archivo.txt usuario@192.168.1.20:/home/usuario/descargas/

Este comando copia el archivo archivo.txt a un servidor remoto utilizando el protocolo seguro scp. Una vez transferido, el hacker puede eliminar el archivo local y los registros de transferencia.

NOTA:  NO HAGAS ESTO!
Si bien esto es solo un chiste es técnicamente posible. Trabajar con alias da muchas posibilidades.

Conclusión

Dominar la sintaxis de comandos en Linux es un requisito imprescindible para cualquier hacker. Esta habilidad proporciona el control directo sobre el sistema, permite automatizar tareas, escalar privilegios, manipular redes, y ocultar actividades maliciosas. A través del uso de comandos eficientes y bien estructurados, los hackers pueden acceder, modificar y explotar sistemas de manera silenciosa y efectiva.

Resumen y Puntos claves:

  1. Qué es un comando en Linux
    Un comando en Linux es un programa que, cuando se ejecuta en la CLI, realiza una acción en el sistema. Cada comando ejecuta un proceso, y su salida puede variar según los argumentos o opciones proporcionados.
  2. Comando ls y sus opciones
    El comando ls lista archivos y directorios en el sistema. Al usar opciones como -l (lista larga) o -h (tamaño legible), se puede personalizar la salida para mostrar detalles adicionales como permisos, tamaño y fechas de modificación.
  3. Sintaxis de comandos en Linux
    La estructura básica de un comando es:
    comando [opciones] [argumentos].
    Las opciones modifican el comportamiento del comando, y los argumentos son los elementos sobre los cuales actúa el comando. Ejemplo: ls -la /home.
  4. Uso de argumentos y opciones
    Los argumentos especifican sobre qué elementos debe operar el comando, como un archivo o directorio, mientras que las opciones permiten alterar su comportamiento. Por ejemplo, ls -la /home lista todos los archivos (incluso ocultos) en el directorio /home en formato detallado.
  5. Alias de Bash
    Un alias es un acceso directo a un comando más largo. Se define en el archivo .bashrc para automatizar tareas comunes. Por ejemplo, el alias ll puede representar el comando ls -la.
  6. Funciones Bash
    Las funciones Bash permiten crear comandos personalizados que pueden aceptar argumentos. Su estructura es simple y se define usando la palabra clave function o directamente con (). Ejemplo:
    • mkcd() { mkdir -p "$1" && cd "$1"; }
  7. Importancia de la sintaxis de comandos para hackers
    Conocer la sintaxis de comandos permite a los hackers modificar permisos, automatizar tareas y realizar operaciones avanzadas en sistemas. Por ejemplo, chmod 777 archivo.php cambia los permisos para que cualquier usuario pueda leer, escribir o ejecutar ese archivo.
  8. Ejemplos de automatización y control del sistema
    Los hackers pueden usar scripts para automatizar tareas repetitivas, como escanear redes o manipular usuarios. Comandos como ssh, scp, y nmap son herramientas clave para acceso remoto, exfiltración de datos y exploración de vulnerabilidades en redes.

Pon en práctica lo aprendido

Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.

Preguntas

  1. ¿Qué es un comando en Linux y cómo interactúa con el sistema operativo?
  2. ¿Cómo se estructura la sintaxis de un comando en la CLI de Linux?
  3. ¿Qué hace el comando ls y cuáles son algunas de sus opciones más comunes?
  4. ¿Qué diferencias hay entre el uso de mayúsculas y minúsculas en los comandos de Linux?
  5. ¿Qué representa el símbolo . y .. en el contexto de la CLI en Linux?
  6. ¿Cómo se pueden combinar varias opciones en un mismo comando, y cuál es un ejemplo?
  7. ¿Qué es un alias en Bash y cómo se crea?
  8. ¿Cómo puedes hacer que un alias en Bash sea persistente entre sesiones?
  9. ¿Qué utilidad tienen las funciones de Bash y cómo se declaran?
  10. ¿Por qué es importante la sintaxis de comandos en Linux para un hacker?

Ejercicios

  1. Utiliza el comando ls para listar el contenido de tu directorio actual, mostrando archivos ocultos.
  2. Crea un alias llamado la que ejecute ls -la para listar archivos en formato largo e incluyendo archivos ocultos.
  3. Usa el comando chmod para permitir que todos los usuarios puedan leer, escribir y ejecutar el archivo config.php.
  4. Muestra la lista de archivos y directorios de /home, usando el formato largo con tamaños legibles para humanos.
  5. Crea una función Bash llamada mkcd que cree un directorio y navegue hacia él en un solo paso.
  6. Crea un alias llamado clr que sea un acceso directo al comando clear en Bash.
  7. Escribe un comando que busque todos los archivos con permisos de setuid en el sistema y redirige los errores a /dev/null.
  8. Escribe un script Bash que lea un archivo de texto llamado ips.txt y use ping para verificar la conectividad de cada dirección IP.
  9. Escribe un comando SSH para conectarte a un servidor remoto con la IP 192.168.1.50 y el usuario admin.
  10. Usa scp para copiar un archivo llamado backup.tar.gz desde tu sistema a /home/usuario en un servidor remoto con la IP 192.168.1.100.

Respuestas a las Preguntas

  1. Un comando en Linux es un programa o script que ejecuta una acción específica cuando se introduce en la CLI (interfaz de línea de comandos), interactuando directamente con el sistema operativo.
  2. La sintaxis de un comando en Linux sigue la estructura:
    • comando [opciones] [argumentos]
      Las opciones modifican el comportamiento del comando, mientras que los argumentos especifican sobre qué actúa el comando.
  3. El comando ls se utiliza para listar el contenido de un directorio. Las opciones comunes son -l para formato largo, -a para incluir archivos ocultos y -h para tamaños legibles por humanos.
  4. En Linux, los comandos son sensibles a mayúsculas y minúsculas. Por ejemplo, LS no funcionará, pero ls sí.
  5. El símbolo . representa el directorio actual y .. representa el directorio padre.
  6. Las opciones se pueden combinar en un mismo comando. Por ejemplo, ls -lh muestra una lista de archivos con tamaño legible por humanos en formato largo.
  7. Un alias en Bash es un atajo para un comando largo o frecuente. Se crea con la estructura:
    • alias nombre_alias='comando'
  8. Para hacer que un alias sea persistente, debes añadirlo al archivo .bashrc o .bash_profile y luego ejecutar source ~/.bashrc para aplicar los cambios.
  9. Las funciones Bash permiten ejecutar secuencias de comandos con parámetros. Se declaran de la siguiente manera:
    • function nombre_funcion { comando1 comando2 }
  10. Los hackers dependen de la línea de comandos para realizar tareas críticas, como cambiar permisos, manipular archivos y scripts, y ejecutar acciones que no se pueden realizar fácilmente en una interfaz gráfica.

Respuestas a los 10 Ejercicios

  1. Comando para mostrar archivos ocultos:
    • códigols -a
  2. Alias para ls -la:
    • alias la="ls -la"
  3. Comando chmod para cambiar permisos:
    • chmod 777 config.php
  4. Comando para mostrar lista en formato largo con tamaños legibles:
    • ls -lh /home
  5. Función Bash para crear y entrar en un directorio:
    Añadir esto en .bashrc o ejecutar directamente en la terminal:
    • mkcd() { mkdir -p "$1" && cd "$1" }
  6. Alias para clear:
    • alias clr="clear"
  7. Comando para buscar archivos con permisos setuid:
    • find / -perm -4000 2>/dev/null
  8. Script Bash para verificar conectividad IPs:
    Crea un archivo ping_ips.sh con el siguiente contenido:
    • #!/bin/bash while read -r ip; do ping -c 1 "$ip" done < ips.txt
  9. Comando SSH para conectarse a un servidor remoto:
    • sh admin@192.168.1.50
  10. Comando SCP para transferir un archivo a un servidor remoto:
scp backup.tar.gz usuario@192.168.1.100:/home/usuario

No te detengas, sigue avanzando

Aquí tienes un propósito que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

Hacker de 0 a 100 desde las bases hasta conseguir empleo

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/hacker-de-0-a-100-desde-las-bases-hasta-conseguir-empleo/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.

Este es un mega post. Una guía con más de 250 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).

Creamos esta guía (futuro curso) para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).

El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!

Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.

Saludos amigos y happy hacking!!!