Table of Contents
ToggleUn poco de historia sobre Linux
¿Dónde se usa Linux?
Es justo decir que Linux es mucho más intimidante de abordar que los sistemas operativos como Windows. Ambas variantes tienen sus propias ventajas y desventajas. Por ejemplo, Linux es considerablemente mucho más ligero y te sorprendería saber que hay una buena posibilidad de que hayas usado Linux de una forma u otra todos los días. Linux potencia cosas como:
• Sitios web que visitas
• Paneles de control/entretenimiento para automóviles
• Sistemas de punto de venta (PoS), como cajas registradoras y cajas registradoras en tiendas
• Infraestructuras críticas como controladores de semáforos o sensores industriales
Sabores de Linux
El nombre «Linux» es en realidad un término general para varios sistemas operativos basados en UNIX (otro sistema operativo). Gracias a que UNIX es de código abierto, las variantes de Linux vienen en todas las formas y tamaños, y se adaptan mejor al uso del sistema.
Por ejemplo, Ubuntu y Debian son algunas de las distribuciones más comunes de Linux porque es muy extensible. Es decir, puede ejecutar Ubuntu como un servidor (como sitios web y aplicaciones web) o como un escritorio completo. Para esta serie, vamos a usar Ubuntu. Ubuntu Server puede ejecutarse en sistemas con solo 512 MB de RAM
De manera similar a cómo tiene diferentes versiones de Windows (7, 8 y 10), hay muchas versiones/distribuciones diferentes de Linux.
Interactuar con su primera máquina Linux (en el navegador)
Esta sala tiene una máquina Ubuntu Linux con la que puede interactuar desde su navegador mientras sigue el material de esta sala. Sin embargo, para comenzar, simplemente presione el botón verde «Iniciar máquina» en la parte superior derecha de esta tarea indicada por la flecha a la derecha. Una vez desplegada, aparecerá una carta en la parte superior de la habitación.
Contiene toda la información de la máquina desplegada en la sala, incluida la dirección IP y el temporizador de caducidad, junto con los botones para administrar la máquina. Recuerde » Terminar » una máquina una vez que haya terminado con la sala. Más información sobre esto se puede encontrar en la sala de tutoriales. Por ahora, presione » Iniciar máquina » donde podrá interactuar con su propia máquina Linux dentro de su navegador mientras sigue esta sala:
Ejecutar los primeros comandos
Un gran punto de sistemas Linux es cuán livianos pueden ser. Esto, por supuesto, no viene sin sus desventajas, donde por ejemplo, a menudo no hay GUI (interfaz gráfica de usuario) a menos que haya sido instalado. Una gran parte de la interacción con estos sistemas es usar la «Terminal». El «Terminal» está basado puramente en texto. Veamos los primeros comandos
Comando | Descripción |
echo | Salida de cualquier texto que proporcionamos |
whoami | ¡Descubre con qué usuario estamos conectados actualmente! |
Interactuando con el sistema de archivos
Comando | Nombre completo |
ls | listado |
cd | cambio de directorio |
cat | concatenar |
pwd | imprimir directorio de trabajo |
Listado de archivos en nuestro directorio actual (ls)
Antes de que podamos hacer algo como averiguar el contenido de cualquier archivo o carpeta, primero debemos saber qué existe. Esto se puede hacer usando el comando «ls» (abreviatura de listado). Usando «ls» para listar el contenido del directorio actual. En la captura de pantalla anterior, podemos ver que hay los siguientes directorios/carpetas:
Cambiando Nuestro Directorio Actual (cd)
Ahora que sabemos qué carpetas existen, necesitamos usar el comando » cd » (abreviatura de change directory ) para cambiar a ese directorio. Digamos que, si quisiera abrir el directorio «Escritorio», haría » cd Escritorio». Donde nuevamente, queremos encontrar el contenido de este directorio y para hacerlo, usaríamos » ls » nuevamente.
Prestar atención a las mayúsculas. Si no se escribe exacto no funciona. Es una falla tonta, pero presente en máquinas de THM. Donde la explicación que te dan está mal escrita, generalmente por la diferencia entre un carácter que debía, o no, ir en mayúsculas.
Salida del contenido de un archivo (cat)
Vamos a hablar de simplemente ver el contenido de los archivos de texto usando un comando llamado » cat».
«Cat» es la abreviatura de concatenación y es una forma fantástica de mostrar el contenido de los archivos (¡no solo los archivos de texto!).
Encontrar la ruta completa a nuestro directorio de trabajo actual (pwd)
Notará que a medida que avanza en la navegación de su máquina Linux, el nombre del directorio en el que está trabajando actualmente aparecerá en su terminal.
Es fácil perder la noción de dónde estamos exactamente en el sistema de archivos. «pwd» significa print working directory. Em este momento estoy en el Escritorio, pero ¿dónde está exactamente en el sistema de archivos de la máquina Linux? Podemos averiguarlo usando este comando «pwd».
Desglosemos esto:
1. Ya sabemos que estamos en «Documentos» gracias a nuestro terminal, pero en este momento, no tenemos idea de dónde se almacena «Documentos» para que podamos volver a él fácilmente en el futuro.
2. He usado el comando » pwd » (imprimir directorio de trabajo) para encontrar la ruta completa del archivo de esta carpeta «Escritorio».
3. Linux nos dice que este directorio «Escritorio» está almacenado en «/root/Escritorio» en la máquina.
4. Ahora, en el futuro, si nos encontramos en una ubicación diferente, podemos usar cd /root/Escritorio
para cambiar nuestro directorio de trabajo a este directorio «Escritorio».
Búsqueda de archivos
El comando FIND
Comencemos de manera simple y supongamos que ya sabemos el nombre del archivo que estamos buscando, ¡pero no podemos recordar dónde está exactamente! En este caso, estamos buscando «contraseñas.txt». Si recordamos el nombre del archivo, podemos simplemente usar find -name passwords.txt donde el comando buscará en cada carpeta de nuestro directorio actual ese archivo específico de la siguiente manera:
Supongamos que no sabemos el nombre del archivo, o queremos buscar todos los archivos que tienen una extensión como «.txt». Podemos usar un comodín (*) para buscar cualquier cosa que tenga .txt al final. Construiremos un comando como find -name *.txt. Donde «find» ha podido encontrar cada archivo .txt y luego nos ha dado la ubicación de cada uno:
Usando Grep
El comando grep nos permite buscar en el contenido de los archivos valores específicos. Tomemos por ejemplo el registro de acceso de un servidor web. En este caso, el access.log de un servidor web tiene 244 entradas.
Podemos usar grep para buscar en todo el contenido de este archivo cualquier entrada del valor que estamos buscando. Queremos ver todo lo que ha visitado la dirección IP «81.143.211.90» (tenga en cuenta que esto es ficticio)
Una introducción a los operadores de Shell
Operador | Descripción |
& | Permite ejecutar comandos en el fondo de su terminal. |
&& | Permite combinar varios comandos en una sola línea de su terminal. |
> | Es un redirector, lo que significa que podemos tomar el resultado de un comando (como usar cat para generar un archivo) y dirigirlo a otro lugar. |
>> | Este operador hace la misma función que el > operador, pero agrega la salida en lugar de reemplazarla (lo que significa que no se sobrescribe nada). |
Operador «&»
Este operador nos permite ejecutar comandos en segundo plano. Por ejemplo, digamos que queremos copiar un archivo grande. Obviamente, esto llevará bastante tiempo y nos dejará sin poder hacer nada más hasta que el archivo se copie con éxito. El operador de shell «&» nos permite ejecutar un comando y hacer que se ejecute en segundo plano (como una copia de archivo), lo que nos permite hacer otras cosas.
Operador «&&»
Podemos usar «&&» para hacer una lista de comandos para ejecutar, por ejemplo, command1 && command2. Sin embargo, vale la pena señalar que command2solo se ejecutará si command1 tuvo éxito.
Operador «>»
Es un redirector de salida. Tomamos el resultado de un comando que ejecutamos y lo enviamos a otro lugar. Lo que podemos hacer en su lugar, es redirigir «hola» a algo como un archivo nuevo. Podemos crear un archivo llamado «bienvenido» con el mensaje «hey». Debemos ejecutar echo hey > welcome donde queramos el archivo creado con el contenido «hey» así:
Operador «>>»
Este operador también es un redirector de salida, pero en lugar de sobrescribir cualquier contenido dentro de un archivo coloca la salida al final. Siguiendo con nuestro ejemplo anterior donde tenemos el archivo «bienvenido» que tiene el contenido de «hey». Si usara echo para agregar «hola» al archivo usando el > operador, el archivo ahora solo tendrá «hola» y no «hey». El >> operador permite agregar la salida al final del archivo, en lugar de reemplazar los contenidos de esta manera:
Task 2 A Bit of Background on Linux
En 1991, Linus Torvalds lo diseñó y creó a modo de pasatiempo. Mientras estaba en la universidad, intentó crear una versión open source, alternativa y gratuita del sistema operativo MINIX, que a su vez se basaba en los principios y el diseño de Unix.
Task 4 Running Your First few Commands
What is the username of who you’re logged in as on your deployed Linux machine?
Task 5 Interacting With the Filesystem!
Which directory contains a file?
What is the contents of this file?
Use the cd command to navigate to this file and find out the new current working directory. What is the path?
Task 6 Searching for Files
Use grep on «access.log» to find the flag that has a prefix of «THM». What is the flag?
THM{ACCESS}
Task 7 An Introduction to Shell Operators
If I wanted to replace the contents of a file named «passwords» with the word «password123», what would my command be?
echo password123 > password
Now if I wanted to add «tryhackme» to this file named «passwords» but also keep «passwords123», what would my command be
echo tryhackme >> password
Felicidades has finalizado – Happy Hacking! Nos vemos en la parte 2