<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
En cualquier servidor IIS donde recibas un 302 puedes intentar eliminar el encabezado Host y usar HTTP/1.0 y dentro de la respuesta el encabezado Location podría indicarte la dirección IP interna:
Puedes subir archivos .config y usarlos para ejecutar código. Una forma de hacerlo es añadiendo el código al final del archivo dentro de un comentario HTML: [Descargar ejemplo aquí](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config)
Más información y técnicas para explotar esta vulnerabilidad [aquí](https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/)
En resumen, hay varios archivos web.config dentro de las carpetas de la aplicación con referencias a archivos "**assemblyIdentity**" y "**namespaces**". Con esta información es posible saber **dónde están ubicados los ejecutables** y descargarlos.\
De los **Dlls descargados** también es posible encontrar **nuevos namespaces** donde deberías intentar acceder y obtener el archivo web.config para encontrar nuevos namespaces y assemblyIdentity.\
Como cualquier aplicación .Net, las aplicaciones MVC tienen un archivo **web.config**, donde las etiquetas XML "**assemblyIdentity**" identifican cada archivo binario que utiliza la aplicación.
```markup
GET /download_page?id=..%2f..%2fweb.config HTTP/1.1
En la salida anterior puedes encontrar referencias a varios "**assemblyIdentity**". Estos son archivos que pueden estar ubicados dentro de la carpeta /bin. Por ejemplo: **/bin/WebGrease.dll.**
Además, las aplicaciones .Net MVC están estructuradas para definir **otros archivos web.config**, con el objetivo de incluir cualquier declaración para espacios de nombres específicos para cada conjunto de viewpages, liberando a los desarrolladores de declarar espacios de nombres "@using" en cada archivo.
Desde una respuesta anterior, la declaración de un **espacio de nombres personalizado** (ya que otros espacios de nombres son predeterminados) sugiere que una DLL llamada "**WebApplication1**" está presente en el directorio /bin.
Supongamos que la DLL anterior está importando un espacio de nombres llamado **WebApplication1.Areas.Minded.** un atacante puede inferir que otros archivos web.config están presentes en la aplicación, en rutas adivinables/por defecto como **/area-name/Views/**, que contienen configuraciones específicas que pueden referirse a otros archivos DLL presentes en la carpeta /bin.
Tenga en cuenta cómo en la salida anterior puede ver un nuevo espacio de nombres llamado: **WebApplication1.AdditionalFeatures** lo que indica que hay otro Dll en la carpeta /bin llamado **WebApplication1.AdditionalFeatures.dll**
Significa que el servidor **no recibió el nombre de dominio correcto** dentro del encabezado Host.\
Para acceder a la página web podrías revisar el **Certificado SSL** proporcionado y quizás puedas encontrar el nombre del dominio/subdominio allí. Si no está allí, puede que necesites **fuerza bruta en VHosts** hasta encontrar el correcto.
## Vulnerabilidades antiguas de IIS que vale la pena buscar
### Vulnerabilidad/Característica del carácter tilde “\~” de Microsoft IIS – Divulgación de Nombre de Archivo/Carpeta Corto
Puedes intentar **enumerar carpetas y archivos** dentro de cada carpeta descubierta (incluso si requiere Autenticación Básica) utilizando esta **técnica**.\
La principal limitación de esta técnica si el servidor es vulnerable es que **solo puede encontrar hasta las primeras 6 letras del nombre de cada archivo/carpeta y las primeras 3 letras de la extensión** de los archivos.
Puedes usar [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) para probar esta vulnerabilidad:`java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/`
También puedes usar **metasploit**: `use scanner/http/iis_shortname_scanner`
### Omisión de Autenticación Básica
**Omitir** una autenticación básica (**IIS 7.5**) intentando acceder a: `/admin:$i30:$INDEX_ALLOCATION/admin.php` o `/admin::$INDEX_ALLOCATION/admin.php`
Puedes intentar **combinar** esta **vulnerabilidad** y la última para encontrar nuevas **carpetas** y **omitir** la autenticación.
## Depuración habilitada de ASP.NET Trace.AXD
ASP.NET incluye un modo de depuración y su archivo se llama `trace.axd`.
Mantiene un registro muy detallado de todas las solicitudes realizadas a una aplicación durante un período de tiempo.
Esta información incluye IP's de clientes remotos, ID de sesiones, todas las cookies de solicitud y respuesta, rutas físicas, información del código fuente y potencialmente incluso nombres de usuario y contraseñas.
* **`decryptionIV`** (cadena): vector de inicialización codificado en hexadecimal (por defecto un vector de ceros).
* **`decryptionKey`** (cadena): clave codificada en hexadecimal para usar en el descifrado.
Sin embargo, algunas personas usarán los **valores predeterminados** de estos parámetros y usarán como **cookie el correo electrónico del usuario**. Por lo tanto, si puedes encontrar una web que use la **misma plataforma** que está utilizando la cookie ASPXAUTH y **creas un usuario con el correo electrónico del usuario que quieres suplantar** en el servidor bajo ataque, podrías ser capaz de **usar la cookie del segundo servidor en el primero** y suplantar al usuario.\
Este ataque funcionó en este [**informe**](https://infosecwriteups.com/how-i-hacked-facebook-part-two-ffab96d57b19).
## Omisión de Autenticación en IIS con contraseñas en caché (CVE-2022-30209) <a href="#3-iis-authentication-bypass" id="3-iis-authentication-bypass"></a>
Un error en el código **no verificaba correctamente la contraseña proporcionada por el usuario**, por lo que un atacante cuyo **hash de contraseña coincida con una clave** que ya está en la **caché** podrá iniciar sesión como ese usuario ([informe completo aquí](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html)).
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).