Hola hacketones! Bienvenidos a un nuevo CTF de la ruta completa de Web Fundamentals, en este capítulo veremos: TryHackMe Content Discovery
Descubrimiento de contenido
En el mundo de la ciberseguridad, lo que el usuario promedio ve al navegar es apenas la punta de un iceberg digital. Como investigadores, entendemos que un sitio web es un ecosistema complejo donde el «contenido» real va mucho más allá de imágenes y texto. Bajo la superficie se esconden archivos de configuración, copias de seguridad de bases de datos, funciones de depuración, portales para empleados y paneles de administración que jamás deberían haber sido expuestos.

El descubrimiento de contenido es la fase crítica de reconocimiento donde buscamos todo aquello que no se nos presenta de inmediato. No es solo «curiosidad técnica»; es un proceso analítico para mapear la superficie de ataque. En esta guía, exploraremos cómo lo invisible puede comprometer la integridad de toda una infraestructura.

Tarea 1¿Qué es el descubrimiento de contenido?
En primer lugar, en el contexto de la seguridad de aplicaciones web, debemos preguntarnos qué es el contenido. El contenido puede ser muchas cosas: un archivo, un vídeo, una imagen, una copia de seguridad o una función del sitio web. Cuando hablamos de descubrimiento de contenido, no nos referimos a lo obvio que vemos en un sitio web; se trata de lo que no se nos presenta de inmediato y que no siempre estuvo destinado al acceso público.
Este contenido podría ser, por ejemplo, páginas o portales destinados al personal, versiones anteriores del sitio web, archivos de copia de seguridad, archivos de configuración, paneles de administración, etc.
Existen tres formas principales de descubrir contenido en un sitio web que abordaremos: manual, automatizada y OSINT (Inteligencia de Fuentes Abiertas).

Inicie AttackBox (haciendo clic en el botón azul «Iniciar AttackBox») y el equipo se encargará de esta tarea.
Responda las preguntas a continuación
¿Qué es el método de descubrimiento de contenido que comienza con M?
Manually
¿Cuál es el método de descubrimiento de contenido que comienza con A?
Automated
¿Cuál es el método de descubrimiento de contenido que comienza con O?
Osint
Descubrimiento manual – Robots.txt
Hay varios lugares que podemos revisar manualmente en un sitio web para comenzar a descubrir más contenido.
Robots.txt
El archivo robots.txt indica a los motores de búsqueda qué páginas pueden mostrar en sus resultados de búsqueda o prohibirles rastrear el sitio web. Es común restringir ciertas áreas del sitio web para que no se muestren en los resultados. Estas páginas pueden ser portales de administración o archivos para los clientes del sitio web. Este archivo nos proporciona una lista completa de ubicaciones del sitio web que los propietarios no quieren que descubramos como expertos en pruebas de penetración.
Eche un vistazo al archivo robots.txt en el sitio web de soporte de TI de Acme para ver si tienen algo que no desean incluir en la lista. Para ello, abra Firefox en AttackBox e ingrese la URL: http ://MACHINE_IP/robots.txt ( esta URL se actualizará 2 minutos después de que inicie la máquina en la tarea 1 )

Es una de las ironías más persistentes de la seguridad web: los archivos diseñados para guiar o restringir a los motores de búsqueda suelen ser los primeros que consulta un atacante. El archivo robots.txt es un estándar que indica a los rastreadores qué rutas no deben indexar. Sin embargo, al intentar ocultar un directorio sensible, los administradores a menudo terminan señalándolo directamente.
«Este archivo nos proporciona una lista completa de ubicaciones del sitio web que los propietarios no quieren que descubramos».
Al auditar activos como el sitio de soporte técnico de Acme IT, es común encontrar directorios restringidos que despiertan interés inmediato. De igual forma, el sitemap.xml puede revelar rutas hacia aplicaciones antiguas que ya no están vinculadas en el sitio principal, pero que siguen activas en el servidor, como el directorio /s3cr3t-area.
Consejo de remediación: No confíe en robots.txt como una medida de seguridad. Si un archivo es privado, utilice mecanismos de autenticación y autorización robustos en lugar de simplemente pedirle a Google que «no mire allí».
Descubrimiento manual – Favicon
Favicon
El favicon es un pequeño ícono que se muestra en la barra de direcciones o en la pestaña del navegador y se utiliza para marcar la marca de un sitio web.

A veces, al usar frameworks para crear un sitio web, se sobra un favicono de la instalación. Si el desarrollador no lo reemplaza por uno personalizado, esto puede darnos una pista sobre el framework en uso. OWASP alberga una base de datos de iconos comunes de frameworks que se puede usar para comparar con el favicon de destino : https://wiki.owasp.org/index.php/OWASP_favicon_database . Una vez que conocemos la pila del framework, podemos usar recursos externos para obtener más información (ver la siguiente sección).

Ejercicio práctico:
En AttackBox, abre Firefox e ingresa la URL https://static-labs.tryhackme.cloud/sites/favicon/ aquí verás un sitio web básico con una nota que dice «Sitio web próximamente…», si miras tus pestañas notarás un ícono que confirma que este sitio está usando un favicon.
Al ver el código fuente de la página, verá que la línea seis contiene un enlace al archivo images/favicon.ico.

Si ejecuta el siguiente comando en AttackBox, descargará el favicon y obtendrá su valor hash md5 que luego podrá buscar en
https://wiki.owasp.org/index.php/OWASP_favicon_database .
user@machine$curlhttps://static-labs.tryhackme.cloud/sites/favicon/images/favicon.ico |md5sum
Nota: Este curl fallará en AttackBox si eres un usuario gratuito, en cuyo caso deberías usar una máquina virtual. Si tu hash termina en 427e, tu curl falló y podrías tener que volver a intentarlo. También puedes ejecutarlo en Windows con PowerShell, como se muestra a continuación.
PowerShell
PS C:\> curl https://static-labs.tryhackme.cloud/sites/favicon/images/favicon.ico -UseBasicParsing -o favicon.ico
PS C:\> Get-FileHash .\favicon.ico -Algorithm MD5


Un pequeño icono de 16×16 píxeles en la pestaña del navegador puede ser la clave para derribar un servidor. Muchos frameworks de desarrollo, como Cgiirc, instalan un favicon por defecto. Si el equipo de desarrollo olvida reemplazarlo, está dejando una huella digital (fingerprint) estática de su tecnología.
Como investigadores, utilizamos el hash MD5 de estos archivos para compararlos con bases de datos globales como la de OWASP. Usamos MD5 porque genera un identificador único basado en el contenido del archivo; si el hash coincide con el de un framework conocido, ya conocemos la «pila» (stack) tecnológica del objetivo sin haber lanzado un solo exploit.
Esta fase manual incluye también la revisión de comentarios en el código fuente. En el caso de Acme IT, un simple comentario sobre el tiempo de carga del framework puede llevar a descubrir portales de administración ocultos, donde el descuido de mantener credenciales por defecto nos entrega banderas críticas como THM{CHANGE_DEFAULT_CREDENTIALS}.
Responda las preguntas a continuación
¿A qué marco pertenecía el favicon?
Cgiirc
Mapa del sitio.xml
A diferencia del archivo robots.txt, que restringe lo que los rastreadores de los motores de búsqueda pueden ver, el archivo sitemap.xml proporciona una lista de todos los archivos que el propietario del sitio web desea que aparezcan en un motor de búsqueda. En ocasiones, estos archivos pueden contener áreas del sitio web más difíciles de navegar o incluso incluir páginas web antiguas que el sitio actual ya no utiliza, pero que siguen funcionando en segundo plano.
Eche un vistazo al archivo sitemap.xml en el sitio web de soporte de TI de Acme para ver si hay algún contenido nuevo que aún no hayamos descubierto: http://10.67.161.39/sitemap.xml (abra esto en el navegador FireFox en AttackBox).
Responda las preguntas a continuación
¿Cuál es la ruta del área secreta que se puede encontrar en el archivo sitemap.xml?
s3cr3t-area
Descubrimiento manual: encabezados HTTP
Encabezados HTTP
Cuando realizamos solicitudes al servidor web, este devuelve varios encabezados HTTP . Estos encabezados a veces pueden contener información útil, como el software del servidor web y posiblemente el lenguaje de programación/scripting utilizado. En el siguiente ejemplo, podemos ver que el servidor web usa NGINX versión 1.18.0 y PHP versión 7.4.3. Con esta información, podríamos encontrar versiones vulnerables del software utilizado. Pruebe a ejecutar el siguiente comando curl en el servidor web, donde la opción -v habilita el modo detallado, lo que mostrará los encabezados (¡podría haber algo interesante!).
user@machine$curlhttp://10.67.161.39 -v* Trying 10.67.161.39:80…
* TCP_NODELAY set
* Connected to 10.67.161.39 (10.67.161.39) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.67.161.39
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx/1.18.0 (Ubuntu)< X-Powered-By: PHP/7.4.3< Date: Mon, 19 Jul 2021 14:39:09 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive

Responda las preguntas a continuación
¿Cuál es el valor de la bandera del encabezado X-FLAG?
THM{HEADER_FLAG}

Cada interacción con un servidor web genera una respuesta cargada de metadatos en los encabezados HTTP (Headers). Mientras el usuario ve la página, el investigador analiza variables como Server y X-Powered-By.
Exponer que un sitio corre bajo NGINX 1.18.0 o PHP 7.4.3 es proporcionarle al atacante el manual de instrucciones para su explotación, permitiéndole buscar vulnerabilidades específicas (CVEs) para esas versiones. A veces, la filtración es aún más directa: hemos encontrado encabezados personalizados como X-FLAG que devuelven directamente secretos del sistema o tokens de acceso, como el valor THM{HEADER_FLAG} obtenido en nuestras pruebas de laboratorio.
Consejo de remediación: Configure sus servidores para eliminar o «limpiar» los encabezados que revelan versiones de software y elimine cualquier bandera personalizada utilizada durante la fase de desarrollo.
Descubrimiento manual – Framework Stack
Pila de marcos
Una vez que se haya definido la estructura de un sitio web, ya sea con el ejemplo del favicono anterior o buscando pistas en el código fuente de la página, como comentarios, avisos de derechos de autor o créditos, se puede localizar el sitio web de la estructura. A partir de ahí, podemos obtener más información sobre el software y otros datos, lo que podría dar lugar a más contenido. La Inteligencia de Fuentes Abiertas (OSINT) nos permite descubrir contenido sin enviar un solo paquete al servidor de la víctima.
Al consultar el código fuente de nuestro sitio web de soporte técnico de Acme ( http://10.67.161.39 ) , verá un comentario al final de cada página con el tiempo de carga y un enlace al sitio web del framework: https://static-labs.tryhackme.cloud/sites/ thm -web-framework . Echemos un vistazo a ese sitio web. La página de documentación nos muestra la ruta del portal de administración del framework, que nos indica si se accede desde el sitio web de soporte técnico de Acme.
Responda las preguntas a continuación
¿Cuál es la bandera del portal de administración del framework?
THM{CHANGE_DEFAULT_CREDENTIALS}

OSINT – Hackeo de Google / Dorking
También hay recursos externos disponibles que pueden ayudar a descubrir información sobre su sitio web de destino; estos recursos a menudo se denominan OSINT o (Inteligencia de código abierto), ya que son herramientas disponibles gratuitamente que recopilan información:
Hackeo de Google / Dorking
Google hacking / Dorking utiliza las funciones avanzadas del motor de búsqueda de Google, que permiten seleccionar contenido personalizado. Por ejemplo, puedes seleccionar resultados de un nombre de dominio específico usando el filtro site:, por ejemplo (site: tryhackme.com ). Luego, puedes compararlo con ciertos términos de búsqueda, por ejemplo, la palabra admin (site:tryhackme.com admin). Esto solo devolvería resultados del sitio web tryhackme.com que contengan la palabra admin. También puedes combinar varios filtros. Aquí tienes un ejemplo de otros filtros que puedes usar:
| Filtrar | Ejemplo | Descripción |
| sitio | sitio:tryhackme.com | devuelve resultados solo de la dirección del sitio web especificado |
| URL interna | URL: admin | devuelve resultados que tienen la palabra especificada en la URL |
| tipo de archivo | tipo de archivo:pdf | devuelve resultados que son una extensión de archivo particular |
| título | título:admin | devuelve resultados que contienen la palabra especificada en el título |
Puede encontrar más información sobre el hackeo de Google aquí: https://en.wikipedia.org/wiki/Google_hacking
Responda las preguntas a continuación
¿Qué operador dork de Google se puede utilizar para mostrar solo resultados de un sitio en particular?
Site:

OSINT – Wappalyzer
Wappalyzer ( https://www.wappalyzer.com/ ) es una herramienta en línea y una extensión del navegador que ayuda a identificar qué tecnologías utiliza un sitio web, como marcos, sistemas de gestión de contenido ( CMS ), procesadores de pago y mucho más, e incluso puede encontrar números de versión.
Responda las preguntas a continuación
¿Qué herramienta en línea se puede utilizar para identificar qué tecnologías utiliza un sitio web?
Wappalyzer
OSINT – Máquina Wayback
Máquina del tiempo
Wayback Machine ( https://archive.org/web/ ) es un archivo histórico de sitios web que data de finales de los 90. Puedes buscar un nombre de dominio y te mostrará todas las veces que el servicio extrajo la página web y guardó su contenido. Este servicio puede ayudar a descubrir páginas antiguas que aún podrían estar activas en el sitio web actual.
Responda las preguntas a continuación
¿Cuál es la dirección del sitio web de Wayback Machine?

OSINT – GitHub
GitHub
Para entender GitHub, primero necesitas entender Git . Git es un sistema de control de versiones que rastrea los cambios en los archivos de un proyecto. Trabajar en equipo es más fácil porque puedes ver lo que cada miembro del equipo está editando y qué cambios hicieron en los archivos. Cuando los usuarios terminan de hacer sus cambios, los confirman con un mensaje y luego los devuelven a una ubicación central (repositorio) para que los otros usuarios luego extraigan esos cambios a sus máquinas locales. GitHub es una versión alojada de Git en Internet. Los repositorios pueden configurarse como públicos o privados y tienen varios controles de acceso. Puedes usar la función de búsqueda de GitHub para buscar nombres de empresas o nombres de sitios web para intentar localizar repositorios que pertenecen a tu objetivo. Una vez descubierto, puedes tener acceso al código fuente, contraseñas u otro contenido que aún no habías encontrado.
Responda las preguntas a continuación
¿Qué es Git?
version control system

OSINT – buckets S3
Los buckets S3 son un servicio de almacenamiento proporcionado por Amazon AWS , que permite a las personas guardar archivos e incluso contenido estático de sitios web en la nube accesible a través de HTTP y HTTPS. El propietario de los archivos puede configurar permisos de acceso para que los archivos sean públicos, privados e incluso escribibles. A veces, estos permisos de acceso se configuran incorrectamente y, sin darse cuenta, permiten el acceso a archivos que no deberían estar disponibles para el público. El formato de los buckets S3 es http (s):// {name}. s3 .amazonaws.com donde {name} lo decide el propietario, como tryhackme-assets. s3 .amazonaws.com . Los buckets S3 se pueden descubrir de muchas maneras, como encontrar las URL en el código fuente de la página del sitio web, repositorios de GitHub o incluso automatizar el proceso. Un método de automatización común es usar el nombre de la empresa seguido de términos comunes como {name} -assets, {name} -www, {name} -public, {name} -private, etc.
Responda las preguntas a continuación
¿En qué formato de URL terminan los buckets de Amazon S3?
.s3.amazonaws.com
Descubrimiento automatizado
¿Qué es el descubrimiento automatizado?
El descubrimiento automatizado consiste en usar herramientas para descubrir contenido en lugar de hacerlo manualmente. Este proceso está automatizado, ya que suele contener cientos, miles o incluso millones de solicitudes a un servidor web. Estas solicitudes comprueban si un archivo o directorio existe en un sitio web, lo que nos da acceso a recursos que desconocíamos. Este proceso es posible gracias a un recurso llamado listas de palabras.

¿Qué son las listas de palabras?
Las listas de palabras son simplemente archivos de texto que contienen una larga lista de palabras de uso común; pueden abarcar diversos casos de uso. Por ejemplo, una lista de contraseñas incluiría las más utilizadas, mientras que en nuestro caso buscamos contenido, por lo que necesitaríamos una lista con los nombres de directorios y archivos más comunes. Un excelente recurso para listas de palabras preinstalado en THM AttackBox es https://github.com/danielmiessler/SecLists , gestionado por Daniel Miessler.
Herramientas de automatización
Si bien hay muchas herramientas de descubrimiento de contenido diferentes disponibles, todas con sus características y fallas, cubriremos tres que están preinstaladas en nuestro cuadro de ataque, ffuf, dirb y gobuster .
En AttackBox, ejecute los siguientes tres comandos, apuntando al sitio web de soporte técnico de Acme y vea qué resultados obtiene.
Usando ffuf:
ffuf
user@machine$ffuf -w/usr/share/wordlists/SecLists/Discovery/Web-Content/common.txt -uhttp://10.67.161.39/FUZZ
Usando dirb:
dirb
user@machine$dirb http://10.67.161.39/ /usr/share/wordlists/SecLists/Discovery/Web-Content/common.txt
Usando Gobuster:
rompegotas
user@machine$gobuster dir–urlhttp://10.67.161.39/ -w/usr/share/wordlists/SecLists/Discovery/Web-Content/common.txt

Utilizando los resultados de los comandos anteriores, responda las siguientes preguntas:
Responda las preguntas a continuación
¿Cuál es el nombre del directorio que comienza con «/mo….» que fue descubierto?
/monthly
¿Cuál es el nombre del archivo de registro que se descubrió?
/development.log
Bandera encontrada que no va en ningún lado: THM{KEEP_YOUR_SOFTWARE_UPDATED}

Cuando el análisis manual agota sus posibilidades, recurrimos a la fuerza bruta dirigida. Herramientas de alto rendimiento como ffuf, dirb y gobuster realizan miles de solicitudes por minuto para «adivinar» rutas ocultas basándose en diccionarios o wordlists.
Utilizando recursos especializados como SecLists de Daniel Miessler, podemos descubrir en segundos lo que a un humano le tomaría años. En el servidor de Acme IT, esta automatización es la que nos permite hallar el directorio /monthly y archivos de registro críticos como /development.log. El descubrimiento de estos archivos no es solo un hallazgo; es un recordatorio de que la oscuridad no es seguridad. Al final del día, incluso si un archivo está oculto, si el software que lo sirve tiene vulnerabilidades, el sistema caerá. Por ello, la máxima en seguridad siempre será: THM{KEEP_YOUR_SOFTWARE_UPDATED}.

El descubrimiento de contenido es una disciplina que separa a los aficionados de los profesionales. Lo que hemos analizado demuestra que la seguridad no puede depender de la esperanza de que un atacante no encuentre una ruta o no reconozca un icono. Los archivos de configuración, los encabezados y las huellas digitales en el código son las migas de pan que conducen al corazón de una aplicación.

La seguridad real nace de auditar lo no evidente y mitigar la exposición de datos técnicos. Como administradores o desarrolladores, nuestra misión es reducir la superficie del iceberg tanto como sea posible.
Si hoy auditaras tu sitio web con estas herramientas, ¿qué archivos encontrarías que preferirías que permanecieran ocultos?
Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!