TryHackMe #4 – “Fundamentos de Linux 1” emerge como el cimiento esencial para todo aspirante a profesional. Este artículo te sumergirá en los fundamentos de Linux, una piedra angular para comprender la arquitectura y asegurar sistemas en el ámbito cibernético.
¿Te gustaría enterarte de cuando lanzamos descuentos al Máximo o Nuevos Cursos?
Un 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
Investiga: ¿En qué año se lanzó por primera vez un sistema operativo Linux?
1991
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
Si quisiéramos imprimir el texto “TryHackMe”, ¿cuál sería nuestro comando?
echo TryHackMe
¿Cuál es el nombre de usuario con el que ha iniciado sesión en su máquina Linux?
tryhackme
Task 5 Interacting With the Filesystem!
En la máquina Linux, ¿cuántas carpetas hay?
4
¿Qué directorio contiene un archivo?
folder4
¿Cuál es el contenido de este archivo?
Hello World
Utiliza el comando cd para navegar hasta este archivo y averiguar el nuevo directorio de trabajo actual. ¿Cuál es la ruta?
/home/tryhackme/folder4
Task 6 Searching for Files
Usa grep en “access.log” para encontrar la bandera que tiene el prefijo “THM”. ¿Cuál es el indicador?
THM{ACCESS}
Task 7 An Introduction to Shell Operators
Si quisiéramos ejecutar un comando en segundo plano, ¿qué operador querríamos utilizar?
&
Si quisiera sustituir el contenido de un archivo llamado “contraseñas” por la palabra “contraseña123”, ¿cuál sería mi comando?
echo password123 > password
Ahora bien, si quisiera añadir “tryhackme” a este archivo llamado “passwords” pero también conservar “passwords123”, ¿cuál sería mi comando?
echo tryhackme >> password
FELICIDADES!!!!!!!!! Con TryHackMe #4, has traspasado las puertas de entrada a los Fundamentos de Linux. Ahora, armado con conocimientos fundamentales, estás preparado para explorar el fascinante mundo de la seguridad informática basada en Linux.
Felicidades has finalizado – Happy Hacking! Nos vemos en la parte 2
Hacking Ético Ofensivo. 100% Practico en Red Team. +42hs
Aprende Hacking Ético y Pentesting 100% Practicando. Laboratorios donde te explicamos detalladamente cada herramienta: https://achirou.com/ctf-red-team
Lo que aprenderás
- Hacking Ético Ofensivo
- Ser un Hacker Ético Profesional Ofensivo (Red Team)
- Utilizar Herramientas para Hacking
- Montar un Laboratorio para hacer las Prácticas
- Introducción a Redes
- Modelo OSI
- Dirección IP, Protocolos de Red y Puertos
- Conexiones Inversas, Directas y Lado del Cliente
- Las 5 Fases del Pentesting
- Herramientas Útiles para Realizar Escaneo
- Herramientas Útiles para Encontrar Vulnerabilidades
- Herramientas Útiles para Obtener Acceso al Sistema
- Utilizar Tryhackme
- Diferencias entre Red Team y Blue Team
- Cómo Realizar Investigaciones Autodidactas
- Manejar Linux como todo un Profesional
- Usa la Herramienta Nmap como todo un Profesional
- Entender, Escanear y Explotar el Servicio de Red SMB
- Entender, Escanear y Explotar el Servicio de Red Telnet
- Entender, Escanear y Explotar el Servicio de Red FTP
- Entender, Escanear y Explotar el Servicio de Red NFS
- Entender, Escanear y Explotar el Servicio de Red SMTP
- Entender, Escanear y Explotar el Servicio de Red MySQL
- Cómo Funcionan y se Crean los Sitios Web
- Cómo Funciona toda la Web
- Uso de la Herramienta Burp Suite como todo un profesional
- Entender, Enumerar, Explotar y Reconocer las TOP 10 Vulnerabilidades de OWASP
- Poner en Práctica la Explotación de las Vulnerabilidades OWASP
- Entender, Enumerar, Reconocer y Explotar la Vulnerabilidad de Carga de Archivos
- Escenarios Reales donde Prácticar Pentesting Ofensivo