Hola hacketones! Bienvenidos a un nuevo CTF de la ruta de Cyber Security 101 para la certificación SEC1 en este post resolveremos: TryHackMe – Networking Concepts
DNS: Recordando direcciones
¿Recuerdas las direcciones IP de tus sitios web favoritos? A menos que se trate de una dirección IP privada de un dispositivo local, nadie tiene que preocuparse por memorizarlas. Esto se debe en parte al Sistema de Nombres de Dominio ( DNS ), responsable de asignar correctamente un nombre de dominio a una dirección IP.
El DNS opera en la capa de aplicación, es decir, la capa 7 del modelo ISO OSI. El tráfico DNS utiliza el puerto UDP 53 por defecto y el puerto TCP 53 como respaldo. Existen muchos tipos de registros DNS ; sin embargo, en esta tarea, nos centraremos en los cuatro siguientes:
- Registro A : El registro A (Dirección) asigna un nombre de host a una o más direcciones IPv4. Por ejemplo, puede configurarlo example.compara que se resuelva en [nombre de host 172.17.2.172].
- Registro AAAA : El registro AAAA es similar al registro A, pero es para IPv6. Recuerde que es AAAA (quad-A), ya que AA y AAA se refieren al tamaño de una batería; además, AAA se refiere a Autenticación, Autorización y Contabilidad ; ninguno de estos registros se incluye en DNS .
- Registro CNAME : El registro CNAME (nombre canónico) asigna un nombre de dominio a otro. Por ejemplo, www.example.comse puede asignar a example.como incluso a example.org.
- Registro MX : el registro MX (Mail Exchange) especifica el servidor de correo responsable de manejar los correos electrónicos de un dominio.
En otras palabras, cuando usted escribe example.comen su navegador, este intenta resolver este nombre de dominio consultando al servidor DNS para encontrar el registro A. Sin embargo, cuando intenta enviar un correo electrónico a test@example.com, el servidor de correo consultará al servidor DNS para encontrar el registro MX.
Si desea consultar la dirección IP de un dominio desde la línea de comandos, puede usar una herramienta como nslookup. Considere el ejemplo en la terminal a continuación, donde buscamos example.com.
Terminal
user@TryHackMe$nslookupwww.example.comServer: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: www.example.com
Address: 93.184.215.14
Name: www.example.com
Address: 2606:2800:21f:cb07:6820:80da:af6b:8b2c
La consulta anterior generó cuatro paquetes. En la terminal a continuación, podemos ver que el primer y el tercer paquete envían consultas DNS para los registros A y AAAA, respectivamente. El segundo y el cuarto paquete muestran las respuestas a las consultas DNS .
Terminal
user@TryHackMe$tshark -rdns-query.pcapng -Nn 1 0.000000000 192.168.66.89 → 192.168.66.1 DNS86 Standard query 0x2e0f A www.example.com OPT
2 0.059049584 192.168.66.1 → 192.168.66.89 DNS102 Standard query response 0x2e0f A www.example.com A 93.184.215.14 OPT
3 0.059721705 192.168.66.89 → 192.168.66.1 DNS86 Standard query 0x96e1 AAAA www.example.com OPT
4 0.101568276 192.168.66.1 → 192.168.66.89 DNS114 Standard query response 0x96e1 AAAA www.example.com AAAA 2606:2800:21f:cb07:6820:80da:af6b:8b2c OPT
Responda las preguntas a continuación
¿Qué tipo de registro DNS se refiere a IPv6?
AAAA
¿Qué tipo de registro DNS se refiere al servidor de correo electrónico?
MX
Whois
En la tarea anterior, vimos cómo se resuelve un nombre de dominio en una dirección IP. Sin embargo, para que esto suceda, alguien debe tener la autoridad para configurar los registros A, AAAA y MX, entre otros registros DNS para el dominio. Quien registra un nombre de dominio tiene esta autoridad. Por lo tanto, si registra ejemplo.com, puede configurar cualquier registro DNS válido para ejemplo.com.
Puede registrar cualquier nombre de dominio disponible por uno o más años. Debe pagar la cuota anual y proporcionar información de contacto precisa como registrante. Esta información forma parte de los datos disponibles a través de los registros WHOIS y es pública. (Aunque se escribe en mayúsculas, WHOIS no es un acrónimo; se pronuncia » who is «). Sin embargo, no se preocupe si desea registrar un dominio sin revelar su información de contacto públicamente; puede usar uno de los servicios de privacidad que ocultan toda su información de los registros WHOIS.
Puede consultar los registros WHOIS de cualquier nombre de dominio registrado mediante uno de los servicios en línea o la herramienta de línea de comandos whois, disponible en sistemas Linux , entre otros. Como es de esperar, un registro WHOIS proporciona información sobre la entidad que registró un nombre de dominio, incluyendo nombre, número de teléfono, correo electrónico y dirección. En la captura de pantalla a continuación, puede ver cuándo se creó el registro por primera vez y cuándo se actualizó por última vez. Además, puede encontrar el nombre, la dirección, el teléfono y el correo electrónico del registrante.

En la salida del terminal a continuación, hemos utilizado el whoiscomando para buscar un dominio cuyo registro WHOIS esté protegido por protección de privacidad.
Terminal
user@TryHackMe$whois [REDACTED].com[…]
Domain Name: [REDACTED].COM
Registry Domain ID: [REDACTED]
Registrar WHOIS Server: whois.godaddy.com
Registrar URL: https://www.godaddy.com
Updated Date: 2017-07-05T16:02:43Z
Creation Date: 1993-04-02T00:00:00Z
Registrar Registration Expiration Date: 2026-10-20T14:56:17Z
Registrar: GoDaddy.com, LLC
Registrar IANAID: 146
Registrar Abuse Contact Email: abuse@godaddy.com
Registrar Abuse Contact Phone: +1.4806242505
[…]
Registrant Name: Registration Private
Registrant Organization: Domains By Proxy, LLC
Registrant Street: DomainsByProxy.com
[…]
Responda las preguntas a continuación
¿Cuándo se creó el registro x.com? Indique la respuesta en formato AAAA-MM-DD.
1993-04-02
¿Cuándo se creó el registro de twitter.com? Indique la respuesta en formato AAAA-MM-DD.
2000-01-21
HTTP(S): Acceso a la Web
Al iniciar su navegador, utiliza principalmente los protocolos HTTP y HTTPS. HTTP significa Protocolo de Transferencia de Hipertexto; la S de HTTPS significa Seguro. Este protocolo se basa en TCP y define cómo se comunica su navegador web con los servidores web.
Algunos de los comandos o métodos que su navegador web comúnmente emite al servidor web son:
- GETrecupera datos de un servidor, como un archivo HTML o una imagen.
- POSTNos permite enviar nuevos datos al servidor, como enviar un formulario o cargar un archivo.
- PUTSe utiliza para crear un nuevo recurso en el servidor y para actualizar y sobrescribir la información existente.
- DELETE, como sugiere su nombre, se utiliza para eliminar un archivo o recurso específico en el servidor.
HTTP y HTTPS comúnmente utilizan los puertos TCP 80 y 443, respectivamente, y con menor frecuencia otros puertos como 8080 y 8443.
En el siguiente ejemplo, usamos nuestro navegador Firefox para acceder al servidor web en [nombre del servidor] 10.10.74.8. Nuestro navegador obtiene la página web y la muestra correctamente; sin embargo, nos interesa saber qué sucede en segundo plano.

Usando Wireshark, podemos examinar el intercambio entre el navegador Firefox y el servidor web con mayor detalle. La siguiente captura de pantalla de Wireshark muestra el texto enviado por nuestro navegador en rojo y la respuesta del servidor web en azul . Como puede observar, se intercambia mucha información entre el cliente y el servidor que no se muestra al usuario. Algunos ejemplos incluyen la versión del servidor web y la fecha de la última modificación de la página.

Como recordará de Conceptos de Redes , usamos el telnetcliente para conectarnos al servidor web que se ejecuta 10.10.74.8en el puerto 80. Tuvimos que enviar un par de líneas: GET / HTTP/1.1y Host: anythingpara obtener la página deseada. (En algunos servidores, se puede obtener el archivo sin enviar Host: anything). Puede usar este método para acceder a cualquier página, no solo a la página predeterminada /. Para obtener file.html, enviaría GET /file.html HTTP/1.1, por ejemplo ( GET /file.htmlpodría funcionar según el servidor web en uso). Este enfoque es eficiente para la resolución de problemas, ya que estaría «hablando HTTP » con el servidor.
Responda las preguntas a continuación
Úselo telnetpara acceder al archivo flag.htmlen 10.10.74.8. ¿Qué es la bandera oculta?
THM{TELNET-HTTP}
FTP: Transferencia de archivos
A diferencia de HTTP , diseñado para acceder a páginas web, el Protocolo de Transferencia de Archivos ( FTP ) está diseñado para transferir archivos. Por lo tanto, FTP es muy eficiente para la transferencia de archivos y, en igualdad de condiciones, puede alcanzar velocidades más altas que HTTP .
Los comandos de ejemplo definidos por el protocolo FTP son:
- USERse utiliza para ingresar el nombre de usuario
- PASSse utiliza para introducir la contraseña
- RETR(recuperar) se utiliza para descargar un archivo del servidor FTP al cliente.
- STOR(tienda) se utiliza para cargar un archivo desde el cliente al servidor FTP .
El servidor FTP escucha en el puerto TCP 21 de forma predeterminada; la transferencia de datos se realiza a través de otra conexión desde el cliente al servidor.
En la terminal a continuación, ejecutamos el comando ftp 10.10.74.8para conectarnos al servidor FTP remoto mediante el ftpcliente local. A continuación, seguimos los siguientes pasos:
- Usamos el nombre de usuario anonymouspara iniciar sesión.
- No necesitamos proporcionar ninguna contraseña
- La emisión lsdevolvió una lista de archivos disponibles para descargar
- type asciicambió al modo ASCII ya que es un archivo de texto
- get coffee.txtnos permitió recuperar el archivo que queremos
El intercambio de comandos a través del cliente FTP se muestra en la terminal a continuación.
Terminal
user@TryHackMe$ftp10.10.74.8Connected to 10.10.74.8 (10.10.74.8).
220 (vsFTPd 3.0.5)
Name (10.10.74.8:strategos): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,10,41,192,134,10).
150 Here comes the directory listing.
-rw-r–r– 1 0 0 1480 Jun 27 08:03 coffee.txt
-rw-r–r– 1 0 0 14 Jun 27 08:04 flag.txt
-rw-r–r– 1 0 0 1595 Jun 27 08:05 tea.txt
226 Directory send OK.
ftp> type ascii
200 Switching to ASCII mode.
ftp> get coffee.txt
local: coffee.txt remote: coffee.txt
227 Entering Passive Mode (10,10,41,192,57,100).
150 Opening BINARY mode data connection for coffee.txt (1480 bytes).
WARNING! 47 bare linefeeds received in ASCII mode
File may not have transferred correctly.
226 Transfer complete.
1480 bytes received in 8e-05 secs (18500.00 Kbytes/sec)
ftp> quit
221 Goodbye.
Usamos Wireshark para examinar los mensajes intercambiados con más detalle. Los mensajes del cliente están en rojo , mientras que las respuestas del servidor están en azul . Observe cómo difieren los distintos comandos entre el cliente y el servidor. Por ejemplo, al escribir lsen el cliente, este envía los comandos LISTal servidor. Cabe destacar que el directorio y el archivo que descargamos se envían cada uno a través de una conexión independiente.

Responda las preguntas a continuación
Usando el cliente FTP ftpde AttackBox, acceda al servidor FTP en 10.10.74.8y recupere [nombre del archivo] flag.txt. ¿Cuál es la bandera encontrada?
THM{FAST-FTP}
SMTP: Envío de correo electrónico
Al igual que navegar por la web y descargar archivos, enviar correos electrónicos requiere su propio protocolo. El Protocolo Simple de Transferencia de Correo ( SMTP ) define cómo un cliente de correo se comunica con un servidor de correo y cómo este se comunica con otro.
La analogía del protocolo SMTP es cuando vas a la oficina de correos local a enviar un paquete. Saludas al empleado, le indicas adónde quieres enviarlo y proporcionas la información del remitente antes de entregárselo. Dependiendo del país en el que te encuentres, es posible que te pidan tu documento de identidad. Este proceso no es muy diferente de una sesión SMTP .
Presentamos algunos de los comandos utilizados por su cliente de correo cuando transfiere un correo electrónico a un servidor SMTP :
- HELOo EHLOinicia una sesión SMTP
- MAIL FROMespecifica la dirección de correo electrónico del remitente
- RCPT TOespecifica la dirección de correo electrónico del destinatario
- DATAIndica que el cliente comenzará a enviar el contenido del mensaje de correo electrónico.
- .Se envía en una línea por sí solo para indicar el final del mensaje de correo electrónico.
La terminal a continuación muestra un ejemplo de un correo electrónico enviado mediante [nombre del servidor] telnet. El servidor SMTP escucha en el puerto TCP 25 por defecto.
Terminal
user@TryHackMe$telnet 10.10.74.8 25Trying 10.10.74.8…
Connected to 10.10.74.8.
Escape character is ‘^]’.
220 example.thmESMTP Exim 4.95 Ubuntu Thu, 27 Jun 2024 16:18:09 +0000
HELO client.thm250 example.thmHello client.thm[10.11.81.126]
MAIL FROM: <user@client.thm>
250 OK
RCPT TO: <strategos@server.thm>
250 Accepted
DATA
354 Enter message, ending with «.» on a line by itself
From: user@client.thmTo: strategos@server.thmSubject: Telnet email
Hello. I am using telnet to send you an email!
.
250 OK id=1sMrpq-0001Ah-UT
QUIT
221 example.thmclosing connection
Connection closed by foreign host.
Obviamente, enviar un correo electrónico telnetes bastante engorroso; sin embargo, te ayuda a comprender mejor los comandos que tu cliente de correo electrónico emite internamente. La captura de Wireshark muestra el intercambio en colores: los mensajes del cliente están en rojo, mientras que las respuestas del servidor están en azul.

Ahora que hemos cubierto algunos comandos básicos de HTTP , FTP y SMTP , deberías tener una sólida comprensión de cómo se diseñan y utilizan los protocolos. Aprender cómo funcionan otros protocolos basados en texto, como POP3 e IMAP , debería ser muy sencillo.
Responda las preguntas a continuación
¿Qué comando SMTP indica que el cliente comenzará a ejecutar el contenido del mensaje de correo electrónico?
DATA
¿Qué mensaje envía el cliente de correo electrónico para indicar que el mensaje se ha introducido correctamente?
.
Tarea 7 POP3: Recepción de correo electrónico
Ha recibido un correo electrónico y desea descargarlo a su cliente de correo local. El Protocolo de Oficina Postal versión 3 ( POP3 ) está diseñado para permitir que el cliente se comunique con un servidor de correo y recupere mensajes de correo electrónico.
Sin entrar en detalles técnicos, un cliente de correo electrónico envía sus mensajes mediante SMTP y los recupera mediante POP3 . SMTP es similar a entregar un sobre o paquete en la oficina de correos, y POP3 es similar a revisar el buzón local para ver si hay cartas o paquetes nuevos.
Algunos comandos POP3 comunes son:
- USER <username>identifica al usuario
- PASS <password>proporciona la contraseña del usuario
- STATsolicita el número de mensajes y el tamaño total
- LISTenumera todos los mensajes y sus tamaños
- RETR <message_number>recupera el mensaje especificado
- DELE <message_number>marca un mensaje para eliminarlo
- QUITFinaliza la sesión POP3 aplicando cambios, como eliminaciones.
En la terminal a continuación, podemos ver una sesión POP3 a través de Telnet. Dado que el servidor POP3 escucha en el puerto TCP 110 por defecto, el comando para conectarse al puerto Telnet es telnet 10.10.74.8 110. El siguiente intercambio recupera el mensaje de correo electrónico enviado en la tarea anterior.
Terminal
user@TryHackMe$telnet 10.10.74.8 110Trying 10.10.74.8…
Connected to 10.10.74.8.
Escape character is ‘^]’.
+OK [XCLIENT] Dovecot (Ubuntu) ready.
AUTH
+OK
PLAIN
.
USER strategos
+OK
PASS
+OK Logged in.
STAT
+OK 3 1264
LIST
+OK 3 messages:
1 407
2 412
3 445
.
RETR 3
+OK 445 octets
Return-path: <user@client.thm>
Envelope-to: strategos@server.thmDelivery-date: Thu, 27 Jun 2024 16:19:35 +0000
Received: from [10.11.81.126] (helo=client.thm)
by example.thmwith smtp(Exim 4.95)
(envelope-from <user@client.thm>)
id 1sMrpq-0001Ah-UT
for strategos@server.thm;
Thu, 27 Jun 2024 16:19:35 +0000
From: user@client.thmTo: strategos@server.thmSubject: Telnet email
Hello. I am using telnet to send you an email!
.
QUIT
+OK Logging out.
Connection closed by foreign host.
Alguien que capture los paquetes de red podría interceptar el tráfico intercambiado. Según capturas anteriores de Wireshark, los comandos en rojo son enviados por el cliente y las líneas en azul son las del servidor. También es evidente que alguien que capture el tráfico puede leer las contraseñas.

Para conectarse a un servidor POP3 se requiere autenticación. Utilice las siguientes credenciales de inicio de sesión cuando sea necesario:
- Nombre de usuario:linda
- Contraseña:Pa$$123
Responda las preguntas a continuación
Al observar el intercambio de tráfico, ¿cuál es el nombre del servidor POP3 que se ejecuta en el servidor remoto?
Dovecot
Úselo telnetpara conectarse al 10.10.74.8servidor POP3. ¿Cuál es la bandera contenida en el cuarto mensaje?
THM{TELNET_RETR_EMAIL}
IMAP: Sincronización de correo electrónico
POP3 es suficiente cuando se trabaja desde un solo dispositivo, por ejemplo, con tu cliente de correo favorito en tu ordenador de escritorio. Sin embargo, ¿qué ocurre si quieres consultar tu correo desde el ordenador de la oficina y desde tu portátil o smartphone? En este caso, necesitas un protocolo que permita sincronizar los mensajes en lugar de eliminarlos tras recuperarlos. Una solución para mantener un buzón sincronizado en varios dispositivos es el Protocolo de Acceso a Mensajes de Internet ( IMAP ).
IMAP permite sincronizar mensajes leídos, movidos y eliminados. IMAP es muy práctico al consultar el correo electrónico a través de varios clientes. A diferencia de POP3 , que tiende a minimizar el almacenamiento del servidor al descargarse y eliminarse el correo electrónico del servidor remoto, IMAP suele utilizar más almacenamiento, ya que el correo electrónico se guarda en el servidor y se sincroniza entre los clientes.
Los comandos del protocolo IMAP son más complejos que los del protocolo POP3 . A continuación, se muestran algunos ejemplos:
- LOGIN <username> <password>autentica al usuario
- SELECT <mailbox>Selecciona la carpeta del buzón con la que trabajar
- FETCH <mail_number> <data_item_name>Ejemplo fetch 3 body[]para obtener el mensaje número 3, encabezado y cuerpo.
- MOVE <sequence_set> <mailbox>mueve los mensajes especificados a otro buzón
- COPY <sequence_set> <data_item_name>copia los mensajes especificados a otro buzón
- LOGOUTcierra la sesión
Sabiendo que el servidor IMAP escucha en el puerto TCP 143 de manera predeterminada, lo usaremos telnetpara conectarnos al 10.10.74.8puerto 143 y recuperar el mensaje que enviamos en una tarea anterior.
Terminal
user@TryHackMe$telnet 10.10.41.192 143Trying 10.10.41.192…
Connected to 10.10.41.192.
Escape character is ‘^]’.
* OK [CAPABILITY IMAP4rev1 SASL-IRLOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Ubuntu) ready.
A LOGIN strategos
A OK [CAPABILITY IMAP4rev1 SASL-IRLOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE] Logged in
B SELECT inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 4 EXISTS
* 0 RECENT
* OK [UNSEEN 2] First unseen.
* OK [UIDVALIDITY 1719824692] UIDs valid
* OK [UIDNEXT 5] Predicted next UIDB OK [READ-WRITE] Select completed (0.001 + 0.000 secs).
C FETCH 3 body[]
* 3 FETCH (BODY[] {445}
Return-path: <user@client.thm>
Envelope-to: strategos@server.thmDelivery-date: Thu, 27 Jun 2024 16:19:35 +0000
Received: from [10.11.81.126] (helo=client.thm)
by example.thmwith smtp(Exim 4.95)
(envelope-from <user@client.thm>)
id 1sMrpq-0001Ah-UT
for strategos@server.thm;
Thu, 27 Jun 2024 16:19:35 +0000
From: user@client.thmTo: strategos@server.thmSubject: Telnet email
Hello. I am using telnet to send you an email!
)
C OK Fetch completed (0.001 + 0.000 secs).
D LOGOUT
* BYE Logging out
D OK Logout completed (0.001 + 0.000 secs).
Connection closed by foreign host.
La siguiente captura de pantalla muestra los mensajes intercambiados entre el cliente y el servidor, tal como se ven desde Wireshark. El cliente solo necesitó enviar cuatro comandos, que se muestran en rojo, y las respuestas largas del servidor se muestran en azul.

Responda las preguntas a continuación
¿Qué comando IMAP recupera el cuarto mensaje de correo electrónico?
FETCH 4 body[]
Conclusión
En la sesión anterior, hablamos del protocolo TELNET; esta sesión se centró en otros protocolos fundamentales: DNS , HTTP , FTP , SMTP , POP3 e IMAP . Con los protocolos cubiertos, ahora comprendemos mejor cómo se resuelven los nombres de dominio, cómo se sirven las páginas web y cómo se envía y recibe el correo electrónico. Otro objetivo principal de esta sesión es brindarles una buena comprensión del funcionamiento de un protocolo detrás de las interfaces gráficas.
La siguiente tabla resume los números de puerto predeterminados de los protocolos que hemos cubierto hasta ahora.
| Protocolo | Protocolo de transporte | Número de puerto predeterminado |
| TELNET | TCP | 23 |
| DNS | UDP o TCP | 53 |
| HTTP | TCP | 80 |
| HTTPS | TCP | 443 |
| FTP | TCP | 21 |
| SMTP | TCP | 25 |
| POP3 | TCP | 110 |
| IMAP | TCP | 143 |
Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!